From 490b90cb51e83d8cafd90de9fd437cac9aa38d05 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sat, 6 Dec 2025 14:45:54 +0100 Subject: [PATCH 01/75] Update references in README.md Updated references section with a new paper on hyperbolic vision-language models and removed an outdated reference. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 97a1f83..27dfd4f 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ See [docs/architecture.md](docs/architecture.md) for details. * **[Poincaré Embeddings for Learning Hierarchical Representations](https://arxiv.org/abs/1705.08039)** (Nickel & Kiela, 2017) - The seminal paper demonstrating how hyperbolic space can represent hierarchies with significantly fewer dimensions than Euclidean space. * **[Hyperbolic Neural Networks](https://arxiv.org/abs/1805.09112)** (Ganea et al., 2018) - Extends deep learning operations to hyperbolic space. -* **[Excavating AI](https://excavating.ai)** (Crawford & Paglen) - An investigation into the hidden biases and taxonomies within ImageNet. +* **[Compositional Entailment Learning for Hyperbolic Vision-Language Models](https://arxiv.org/abs/2410.06912)** (Pal et al., 2024) - Defines a CLIP vision-language model on hyperbolic space ## License From 82a0e61aa383ade9f46546cc49599866ed5b3620 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Mon, 22 Dec 2025 00:10:31 +0100 Subject: [PATCH 02/75] Notebook startup readiness + storage backend --- .gitignore | 1 - docs/datasets.md | 92 ++++ notebooks/demo.ipynb | 306 +++++++++++++ pyproject.toml | 2 + scripts/demo.py | 39 +- scripts/export_frontend.sh | 9 +- src/hyperview/api.py | 214 ++++++++- src/hyperview/cli.py | 16 +- src/hyperview/core/dataset.py | 548 ++++++++++++++++++++--- src/hyperview/server/app.py | 99 +++- src/hyperview/storage/__init__.py | 19 + src/hyperview/storage/backend.py | 114 +++++ src/hyperview/storage/config.py | 75 ++++ src/hyperview/storage/lancedb_backend.py | 521 +++++++++++++++++++++ src/hyperview/storage/memory_backend.py | 173 +++++++ src/hyperview/storage/schema.py | 124 +++++ uv.lock | 76 ++++ 17 files changed, 2326 insertions(+), 102 deletions(-) create mode 100644 docs/datasets.md create mode 100644 notebooks/demo.ipynb create mode 100644 src/hyperview/storage/__init__.py create mode 100644 src/hyperview/storage/backend.py create mode 100644 src/hyperview/storage/config.py create mode 100644 src/hyperview/storage/lancedb_backend.py create mode 100644 src/hyperview/storage/memory_backend.py create mode 100644 src/hyperview/storage/schema.py diff --git a/.gitignore b/.gitignore index d7ded76..1ad5e0b 100644 --- a/.gitignore +++ b/.gitignore @@ -23,7 +23,6 @@ htmlcov/ # Local Context (Agent files) .claude/ -CLAUDE.md context/ # Generated assets diff --git a/docs/datasets.md b/docs/datasets.md new file mode 100644 index 0000000..5454baf --- /dev/null +++ b/docs/datasets.md @@ -0,0 +1,92 @@ +# Datasets + +## Creating a Dataset + +```python +import hyperview as hv + +# Persistent dataset (default) - survives restarts +dataset = hv.Dataset("my_dataset") + +# In-memory dataset - lost when process exits +dataset = hv.Dataset("my_dataset", persist=False) +``` + +**Storage location:** `~/.hyperview/lancedb/` (configurable via `HYPERVIEW_DATABASE_DIR`) + +## Adding Samples + +### From HuggingFace +```python +dataset.add_from_huggingface( + "uoft-cs/cifar100", + split="train", + image_key="img", + label_key="fine_label", + max_samples=1000, +) +``` + +### From Directory +```python +dataset.add_images_dir("/path/to/images", label_from_folder=True) +``` + +## Persistence Model: Additive + +HyperView uses an **additive** persistence model: + +| Action | Behavior | +|--------|----------| +| Add samples | New samples inserted, existing skipped by ID | +| Request fewer than exist | Existing samples preserved (no deletion) | +| Request more than exist | Only new samples added | +| Embeddings | Cached per-sample, reused across sessions | +| Projections | Recomputed when new samples added (UMAP requires refit) | + +**Example:** +```python +dataset = hv.Dataset("my_dataset") + +dataset.add_from_huggingface(..., max_samples=200) # 200 samples +dataset.add_from_huggingface(..., max_samples=400) # +200 new → 400 total +dataset.add_from_huggingface(..., max_samples=300) # no change → 400 total +dataset.add_from_huggingface(..., max_samples=500) # +100 new → 500 total +``` + +Samples are **never implicitly deleted**. Use `hv.Dataset.delete("name")` for explicit removal. + +## Computing Embeddings + +```python +# High-dimensional embeddings (CLIP/ResNet) +dataset.compute_embeddings(model="clip", show_progress=True) + +# 2D projections for visualization +dataset.compute_visualization() # UMAP to Euclidean + Hyperbolic +``` + +Embeddings are stored per-sample. If a sample already has embeddings, it's skipped. + +## Listing & Deleting Datasets + +```python +# List all persistent datasets +hv.Dataset.list_datasets() # ['cifar100_demo', 'my_dataset', ...] + +# Delete a dataset +hv.Dataset.delete("my_dataset") + +# Check existence +hv.Dataset.exists("my_dataset") # True/False +``` + +## Dataset Info + +```python +len(dataset) # Number of samples +dataset.name # Dataset name +dataset.labels # Unique labels +dataset.samples # Iterator over all samples +dataset[sample_id] # Get sample by ID +``` diff --git a/notebooks/demo.ipynb b/notebooks/demo.ipynb new file mode 100644 index 0000000..eae7ba7 --- /dev/null +++ b/notebooks/demo.ipynb @@ -0,0 +1,306 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e26a6a66", + "metadata": {}, + "source": [ + "# HyperView Demo\n", + "This notebook demonstrates how to use HyperView to visualize embeddings in both Euclidean and Hyperbolic spaces.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "0aba0ed9", + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-21T23:01:47.867950Z", + "iopub.status.busy": "2025-12-21T23:01:47.867881Z", + "iopub.status.idle": "2025-12-21T23:01:48.736348Z", + "shell.execute_reply": "2025-12-21T23:01:48.735942Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/matin/merantix/HyperView/.venv/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "HyperView version: 0.1.0\n" + ] + } + ], + "source": [ + "import sys\n", + "from pathlib import Path\n", + "\n", + "# Add src to path for development\n", + "sys.path.insert(0, str(Path.cwd().parent / \"src\"))\n", + "\n", + "import hyperview as hv\n", + "print(f\"HyperView version: {hv.__version__}\")\n" + ] + }, + { + "cell_type": "markdown", + "id": "00becfad", + "metadata": {}, + "source": [ + "## Initialize Dataset\n", + "We'll create a new dataset named `cifar100_demo`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3e5e93d5", + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-21T23:01:48.738083Z", + "iopub.status.busy": "2025-12-21T23:01:48.737879Z", + "iopub.status.idle": "2025-12-21T23:01:49.297549Z", + "shell.execute_reply": "2025-12-21T23:01:49.296797Z" + } + }, + "outputs": [], + "source": [ + "dataset = hv.Dataset(\"cifar100_demo\")\n" + ] + }, + { + "cell_type": "markdown", + "id": "2248602f", + "metadata": {}, + "source": [ + "## Load CIFAR-100 Data\n", + "We'll load 500 samples from the CIFAR-100 dataset using Hugging Face Datasets.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "0666b39a", + "metadata": { + "execution": { + "iopub.execute_input": "2025-12-21T23:01:49.299289Z", + "iopub.status.busy": "2025-12-21T23:01:49.299171Z", + "iopub.status.idle": "2025-12-21T23:01:51.732573Z", + "shell.execute_reply": "2025-12-21T23:01:51.732008Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\r\n", + "Loading uoft-cs/cifar100: 0%| | 0/500 [00:00\n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "session = hv.launch(dataset)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv (3.12.8)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/pyproject.toml b/pyproject.toml index 8fb24bd..b306a82 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,8 @@ dependencies = [ "pydantic>=2.0.0", "aiofiles>=24.0.0", "datasets>=3.0.0", + "lancedb>=0.5.0", + "pyarrow>=14.0.0", ] [project.optional-dependencies] diff --git a/scripts/demo.py b/scripts/demo.py index 7cde441..91d0717 100644 --- a/scripts/demo.py +++ b/scripts/demo.py @@ -2,6 +2,7 @@ """Run HyperView demo with CIFAR-100 dataset.""" import argparse +import os import sys from pathlib import Path @@ -12,7 +13,13 @@ def main(): parser = argparse.ArgumentParser(description="Run HyperView demo") parser.add_argument( - "--samples", type=int, default=500, help="Number of samples to load (default: 500)" + "--dataset", + type=str, + default="cifar100_demo", + help="Dataset name to use for persistence (default: cifar100_demo)", + ) + parser.add_argument( + "--samples", type=int, default=50000, help="Number of samples to load (default: 50000)" ) parser.add_argument( "--port", type=int, default=5151, help="Port to run server on (default: 5151)" @@ -20,29 +27,43 @@ def main(): parser.add_argument( "--no-browser", action="store_true", help="Don't open browser automatically" ) + parser.add_argument( + "--no-persist", action="store_true", help="Don't persist to database (use in-memory)" + ) + parser.add_argument( + "--database-dir", + type=str, + default=None, + help="Override persistence directory (sets HYPERVIEW_DATABASE_DIR)", + ) + parser.add_argument( + "--no-server", + action="store_true", + help="Don't start the web server (useful for CI / DB checks)", + ) args = parser.parse_args() + if args.database_dir: + os.environ["HYPERVIEW_DATABASE_DIR"] = args.database_dir + import hyperview as hv - print(f"Loading {args.samples} samples from CIFAR-100...") - dataset = hv.Dataset("cifar100_demo") - count = dataset.add_from_huggingface( + dataset = hv.Dataset(args.dataset, persist=not args.no_persist) + + dataset.add_from_huggingface( "uoft-cs/cifar100", split="train", image_key="img", label_key="fine_label", max_samples=args.samples, ) - print(f"Loaded {count} samples") - print("Computing embeddings...") dataset.compute_embeddings(show_progress=True) - print("Computing visualization (UMAP + Poincare)...") dataset.compute_visualization() - - print(f"Starting server at http://127.0.0.1:{args.port}") + if args.no_server: + return hv.launch(dataset, port=args.port, open_browser=not args.no_browser) diff --git a/scripts/export_frontend.sh b/scripts/export_frontend.sh index 137545b..cca765f 100755 --- a/scripts/export_frontend.sh +++ b/scripts/export_frontend.sh @@ -8,12 +8,12 @@ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" FRONTEND_DIR="$PROJECT_ROOT/frontend" STATIC_DIR="$PROJECT_ROOT/src/hyperview/server/static" -echo "🔄 Building frontend..." +echo "Building frontend..." cd "$FRONTEND_DIR" # Install dependencies if needed if [ ! -d "node_modules" ]; then - echo "📦 Installing dependencies..." + echo "Installing dependencies..." npm install fi @@ -21,13 +21,12 @@ fi npm run build # Copy to Python package -echo "📁 Copying to Python package..." +echo "Copying build output into Python package..." rm -rf "$STATIC_DIR" mkdir -p "$STATIC_DIR" cp -r out/* "$STATIC_DIR/" -echo "✅ Frontend exported to $STATIC_DIR" -echo "" +echo "Frontend exported to $STATIC_DIR" echo "To test, run:" echo " cd $PROJECT_ROOT" echo " uv run hyperview demo" diff --git a/src/hyperview/api.py b/src/hyperview/api.py index 928553b..bc0b13e 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -2,13 +2,175 @@ from __future__ import annotations +import json +import socket +import threading +import time import webbrowser +from dataclasses import dataclass +from urllib.error import URLError +from urllib.request import Request, urlopen +from uuid import uuid4 + import uvicorn from hyperview.core.dataset import Dataset from hyperview.server.app import create_app, set_dataset -__all__ = ["Dataset", "launch"] +__all__ = ["Dataset", "launch", "Session"] + + +@dataclass(frozen=True) +class _HealthResponse: + name: str | None + session_id: str | None + + +def _can_connect(host: str, port: int, timeout_s: float) -> bool: + try: + with socket.create_connection((host, port), timeout=timeout_s): + return True + except OSError: + return False + + +def _try_read_health(url: str, timeout_s: float) -> _HealthResponse | None: + try: + return _read_health(url, timeout_s=timeout_s) + except (URLError, TimeoutError, OSError, ValueError, json.JSONDecodeError): + return None + + +def _read_health(url: str, timeout_s: float) -> _HealthResponse: + request = Request(url, headers={"Accept": "application/json"}) + with urlopen(request, timeout=timeout_s) as response: + data = json.loads(response.read().decode("utf-8")) + + return _HealthResponse( + name=data.get("name"), + session_id=data.get("session_id"), + ) + + +class Session: + """A session for the HyperView visualizer.""" + + def __init__(self, dataset: Dataset, host: str, port: int): + self.dataset = dataset + self.host = host + self.port = port + self.url = f"http://{host}:{port}" + self._server_thread: threading.Thread | None = None + self._server: uvicorn.Server | None = None + self._startup_error: BaseException | None = None + self.session_id = uuid4().hex + + @property + def _connect_host(self) -> str: + return "127.0.0.1" if self.host == "0.0.0.0" else self.host + + @property + def _health_url(self) -> str: + return f"http://{self._connect_host}:{self.port}/__hyperview__/health" + + def _run_server(self): + try: + set_dataset(self.dataset) + app = create_app(self.dataset, session_id=self.session_id) + config = uvicorn.Config(app, host=self.host, port=self.port, log_level="warning") + self._server = uvicorn.Server(config) + self._server.run() + except BaseException as exc: + self._startup_error = exc + + def start(self, background: bool = True): + """Start the visualizer server.""" + if not background: + self._run_server() + return + + # Fail fast if something is already listening on this port. + if _can_connect(self._connect_host, self.port, timeout_s=0.2): + health = _try_read_health(self._health_url, timeout_s=0.2) + if health is not None and health.name == "hyperview": + raise RuntimeError( + "HyperView failed to start because the port is already serving " + f"HyperView (port={self.port}, session_id={health.session_id}). " + "Choose a different port or stop the existing server." + ) + + raise RuntimeError( + "HyperView failed to start because the port is already in use " + f"by a non-HyperView service (port={self.port}). Choose a different " + "port or stop the process listening on that port." + ) + + self._startup_error = None + self._server_thread = threading.Thread(target=self._run_server, daemon=True) + self._server_thread.start() + + deadline = time.time() + 5.0 + last_health_error: Exception | None = None + + while time.time() < deadline: + if self._startup_error is not None: + raise RuntimeError( + f"HyperView server failed to start (port={self.port}): " + f"{type(self._startup_error).__name__}: {self._startup_error}" + ) + + if self._server_thread is not None and not self._server_thread.is_alive(): + raise RuntimeError( + "HyperView server thread exited during startup. " + f"The port may be in use (port={self.port})." + ) + + try: + health = _read_health(self._health_url, timeout_s=0.2) + except (URLError, Exception) as exc: + last_health_error = exc + time.sleep(0.05) + continue + + if health.name == "hyperview" and health.session_id == self.session_id: + return + + if health.name == "hyperview": + raise RuntimeError( + "HyperView failed to start because the port is already serving " + f"a different HyperView session (port={self.port}, " + f"session_id={health.session_id})." + ) + + raise RuntimeError( + "HyperView failed to start because the port is already serving " + f"a non-HyperView app (port={self.port})." + ) + + time.sleep(0.05) + + raise TimeoutError( + "HyperView server did not become ready in time " + f"(port={self.port}). Last error: {last_health_error}" + ) + + def stop(self): + """Stop the visualizer server.""" + if self._server: + self._server.should_exit = True + + def show(self, height: int = 800): + """Display the visualizer in a notebook.""" + try: + from IPython.display import IFrame, display + + display(IFrame(self.url, width="100%", height=height)) + except ImportError: + print(f"IPython not installed. Please visit {self.url} in your browser.") + + def open_browser(self): + """Open the visualizer in a browser window.""" + webbrowser.open(self.url) def launch( @@ -16,7 +178,9 @@ def launch( port: int = 5151, host: str = "127.0.0.1", open_browser: bool = True, -) -> None: + notebook: bool | None = None, + height: int = 800, +) -> Session: """Launch the HyperView visualization server. Args: @@ -24,6 +188,11 @@ def launch( port: Port to run the server on. host: Host to bind to. open_browser: Whether to open a browser window. + notebook: Whether to display in a notebook. If None, auto-detects. + height: Height of the iframe in the notebook. + + Returns: + A Session object. Example: >>> import hyperview as hv @@ -33,14 +202,39 @@ def launch( >>> dataset.compute_visualization() >>> hv.launch(dataset) """ - set_dataset(dataset) - app = create_app(dataset) + if notebook is None: + notebook = _is_notebook() + + session = Session(dataset, host, port) + + if notebook: + session.start(background=True) + url = f"http://{host}:{port}" + print(f"\nHyperView is running at {url}") + session.show(height=height) + else: + if open_browser: + session.open_browser() + + print(" Press Ctrl+C to stop.\n") + url = f"http://{host}:{port}" + print(f"\nHyperView is running at {url}") + session.start(background=False) + + return session - url = f"http://{host}:{port}" - print(f"\n🚀 HyperView is running at {url}") - print(" Press Ctrl+C to stop.\n") - if open_browser: - webbrowser.open(url) +def _is_notebook() -> bool: + """Check if running in a notebook environment.""" + try: + from IPython import get_ipython - uvicorn.run(app, host=host, port=port, log_level="warning") + shell = get_ipython().__class__.__name__ + if shell == "ZMQInteractiveShell": + return True # Jupyter notebook or qtconsole + elif shell == "TerminalInteractiveShell": + return False # Terminal running IPython + else: + return False # Other type (?) + except (ImportError, NameError): + return False # Probably standard Python interpreter diff --git a/src/hyperview/cli.py b/src/hyperview/cli.py index 9bcd459..913f4a9 100644 --- a/src/hyperview/cli.py +++ b/src/hyperview/cli.py @@ -54,7 +54,7 @@ def main(): def run_demo(num_samples: int = 500, port: int = 5151): """Run a demo with CIFAR-100 data.""" - print("🔄 Loading CIFAR-100 dataset...") + print("Loading CIFAR-100 dataset...") dataset = Dataset("cifar100_demo") try: @@ -65,19 +65,19 @@ def run_demo(num_samples: int = 500, port: int = 5151): label_key="fine_label", max_samples=num_samples, ) - print(f"✓ Loaded {count} samples") + print(f"Loaded {count} samples") except Exception as e: print(f"Failed to load HuggingFace dataset: {e}") print("Please ensure 'datasets' is installed: pip install datasets") sys.exit(1) - print("🔄 Computing embeddings...") + print("Computing embeddings...") dataset.compute_embeddings(show_progress=True) - print("✓ Embeddings computed") + print("Embeddings computed") - print("🔄 Computing visualizations...") + print("Computing visualizations...") dataset.compute_visualization() - print("✓ Visualizations ready") + print("Visualizations ready") launch(dataset, port=port) @@ -86,9 +86,9 @@ def serve_dataset(filepath: str, port: int = 5151): """Serve a saved dataset.""" from hyperview import Dataset, launch - print(f"🔄 Loading dataset from {filepath}...") + print(f"Loading dataset from {filepath}...") dataset = Dataset.load(filepath) - print(f"✓ Loaded {len(dataset)} samples") + print(f"Loaded {len(dataset)} samples") launch(dataset, port=port) diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 44cafaf..4c9f4f9 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -7,7 +7,7 @@ import uuid from collections.abc import Callable, Iterator from pathlib import Path -from typing import Any +from typing import TYPE_CHECKING, Any import numpy as np from datasets import load_dataset @@ -15,36 +15,106 @@ from hyperview.core.sample import Sample, SampleFromArray +if TYPE_CHECKING: + from hyperview.storage.backend import StorageBackend + class Dataset: - """A collection of samples with support for embeddings and visualization.""" + """A collection of samples with support for embeddings and visualization. + + Datasets are automatically persisted to LanceDB by default, providing: + - Automatic persistence (no need to call save()) + - Vector similarity search + - Efficient storage and retrieval + + Examples: + # Create a new dataset (auto-persisted) + dataset = hv.Dataset("my_dataset") + dataset.add_images_dir("/path/to/images") + + # Open an existing dataset + dataset = hv.Dataset.open("my_dataset") - def __init__(self, name: str | None = None): + # Create an in-memory dataset (for testing) + dataset = hv.Dataset("temp", persist=False) + """ + + def __init__( + self, + name: str | None = None, + persist: bool = True, + storage: StorageBackend | None = None, + embedding_dim: int = 512, + ): """Initialize a new dataset. Args: name: Optional name for the dataset. + persist: If True (default), use LanceDB for persistence. + If False, use in-memory storage. + storage: Optional custom storage backend. If provided, persist is ignored. + embedding_dim: Dimension of embeddings (default 512 for CLIP). """ self.name = name or f"dataset_{uuid.uuid4().hex[:8]}" - self._samples: dict[str, Sample] = {} + self._embedding_dim = embedding_dim self._embedding_computer = None self._projection_engine = None - self._label_colors: dict[str, str] = {} + + # Initialize storage backend + if storage is not None: + self._storage = storage + elif persist: + from hyperview.storage import LanceDBBackend, StorageConfig + + config = StorageConfig.default(embedding_dim=embedding_dim) + self._storage = LanceDBBackend(self.name, config) + else: + from hyperview.storage import MemoryBackend + + self._storage = MemoryBackend(self.name) + + # Initialize label colors from storage + self._sync_label_colors() + + def _sync_label_colors(self) -> None: + """Sync label colors from storage and assign colors to new labels.""" + # Get existing colors from storage + existing_colors = self._storage.label_colors + + # Get all unique labels + all_labels = self._storage.get_unique_labels() + + # Assign colors to any labels without colors + for label in all_labels: + if label not in existing_colors: + self._assign_label_color(label, existing_colors) + + # Save back if we added new colors + if existing_colors != self._storage.label_colors: + self._storage.label_colors = existing_colors def __len__(self) -> int: - return len(self._samples) + return len(self._storage) def __iter__(self) -> Iterator[Sample]: - return iter(self._samples.values()) + return iter(self._storage) def __getitem__(self, sample_id: str) -> Sample: - return self._samples[sample_id] + sample = self._storage.get_sample(sample_id) + if sample is None: + raise KeyError(sample_id) + return sample def add_sample(self, sample: Sample) -> None: """Add a sample to the dataset.""" - self._samples[sample.id] = sample - if sample.label and sample.label not in self._label_colors: - self._assign_label_color(sample.label) + self._storage.add_sample(sample) + + # Assign color to label if needed + if sample.label: + colors = self._storage.label_colors + if sample.label not in colors: + self._assign_label_color(sample.label, colors) + self._storage.label_colors = colors def add_image( self, @@ -98,16 +168,31 @@ def add_images_dir( if not directory.exists(): raise ValueError(f"Directory does not exist: {directory}") - count = 0 + samples = [] pattern = "**/*" if recursive else "*" for path in directory.glob(pattern): if path.is_file() and path.suffix.lower() in extensions: label = path.parent.name if label_from_folder else None - self.add_image(str(path), label=label) - count += 1 - - return count + sample_id = hashlib.md5(str(path).encode()).hexdigest()[:12] + sample = Sample( + id=sample_id, + filepath=str(path), + label=label, + metadata={}, + ) + samples.append(sample) + + # Track label colors + if label: + colors = self._storage.label_colors + if label not in colors: + self._assign_label_color(label, colors) + self._storage.label_colors = colors + + # Batch add for efficiency + self._storage.add_samples_batch(samples) + return len(samples) def add_from_huggingface( self, @@ -117,9 +202,17 @@ def add_from_huggingface( label_key: str | None = "fine_label", label_names_key: str | None = None, max_samples: int | None = None, - ) -> int: + download_images: bool = True, + show_progress: bool = True, + skip_existing: bool = True, + image_format: str = "auto", + ) -> tuple[int, int]: """Load samples from a HuggingFace dataset. + Images are downloaded to disk at ~/.hyperview/media/huggingface/{dataset}/{split}/ + This ensures images persist across sessions and embeddings can be computed + at any time, similar to FiftyOne's approach. + Args: dataset_name: Name of the HuggingFace dataset. split: Dataset split to use. @@ -127,33 +220,65 @@ def add_from_huggingface( label_key: Key for the label column (can be None). label_names_key: Key for label names in dataset info. max_samples: Maximum number of samples to load. + download_images: If True (default), download images to local disk. + If False, use in-memory storage (won't persist). + show_progress: Whether to show progress bar. + skip_existing: If True (default), skip samples that already exist in storage. + If False, allow duplicate samples (not recommended). + image_format: Image format to save: "auto" (detect from source, fallback PNG), + "png" (lossless), or "jpeg" (smaller files). Returns: - Number of samples added. + Tuple of (num_added, num_skipped). """ + from hyperview.storage import StorageConfig + + try: + from tqdm import tqdm + except ImportError: + tqdm = None + ds = load_dataset(dataset_name, split=split) # Get label names if available label_names = None if label_key and label_names_key: if label_names_key in ds.features: - label_names = ds.features[label_names_key].names + label_names = ds.features[label_names_key].names elif label_key: if hasattr(ds.features[label_key], "names"): label_names = ds.features[label_key].names - count = 0 + # Extract dataset metadata for robust sample IDs + config_name = getattr(ds.info, "config_name", None) or "default" + fingerprint = ds._fingerprint[:8] if hasattr(ds, "_fingerprint") and ds._fingerprint else "unknown" + version = str(ds.info.version) if ds.info.version else None + + # Get media directory for this dataset + config = StorageConfig.default() + media_dir = config.get_huggingface_media_dir(dataset_name, split) + + samples = [] total = len(ds) if max_samples is None else min(len(ds), max_samples) + colors = self._storage.label_colors - for i in range(total): + # Setup progress bar + if show_progress and tqdm is not None: + iterator = tqdm(range(total), desc=f"Loading {dataset_name}") + else: + if show_progress: + print(f"Loading {total} samples from {dataset_name}...") + iterator = range(total) + + for i in iterator: item = ds[i] image = item[image_key] # Handle PIL Image or numpy array if isinstance(image, Image.Image): - image_array = np.array(image) + pil_image = image else: - image_array = image + pil_image = Image.fromarray(image) # Get label label = None @@ -164,16 +289,88 @@ def add_from_huggingface( else: label = str(label_idx) - sample = SampleFromArray.from_array( - id=f"{dataset_name.replace('/', '_')}_{split}_{i}", - image_array=image_array, - label=label, - metadata={"source": dataset_name, "split": split, "index": i}, - ) - self.add_sample(sample) - count += 1 - - return count + # Generate robust sample ID with config and fingerprint + safe_name = dataset_name.replace("/", "_") + sample_id = f"{safe_name}_{config_name}_{fingerprint}_{split}_{i}" + + # Determine image format and extension + if image_format == "auto": + # Try to preserve original format, fallback to PNG + original_format = getattr(pil_image, "format", None) + if original_format in ("JPEG", "JPG"): + save_format = "JPEG" + ext = ".jpg" + else: + save_format = "PNG" + ext = ".png" + elif image_format == "jpeg": + save_format = "JPEG" + ext = ".jpg" + else: + save_format = "PNG" + ext = ".png" + + # Enhanced metadata with dataset info + metadata = { + "source": dataset_name, + "config": config_name, + "split": split, + "index": i, + "fingerprint": ds._fingerprint if hasattr(ds, "_fingerprint") else None, + "version": version, + } + + if download_images: + # Save image to disk (FiftyOne pattern) + image_path = media_dir / f"{sample_id}{ext}" + if not image_path.exists(): + # Convert to RGB if necessary (for JPEG or non-RGB images) + if save_format == "JPEG" or pil_image.mode in ("RGBA", "P", "L"): + pil_image = pil_image.convert("RGB") + pil_image.save(image_path, format=save_format) + + sample = Sample( + id=sample_id, + filepath=str(image_path), + label=label, + metadata=metadata, + ) + else: + # Use in-memory storage (legacy behavior, won't persist) + image_array = np.array(pil_image) + sample = SampleFromArray.from_array( + id=sample_id, + image_array=image_array, + label=label, + metadata=metadata, + ) + + samples.append(sample) + + # Track label colors + if label and label not in colors: + self._assign_label_color(label, colors) + + # Check for existing samples and skip duplicates + skipped = 0 + if skip_existing and samples: + all_ids = [s.id for s in samples] + existing_ids = self._storage.get_existing_ids(all_ids) + if existing_ids: + samples = [s for s in samples if s.id not in existing_ids] + skipped = len(all_ids) - len(samples) + + # Batch add for efficiency + if samples: + self._storage.add_samples_batch(samples) + self._storage.label_colors = colors + + if download_images and show_progress: + print(f"Images saved to: {media_dir}") + if skipped > 0: + print(f"Skipped {skipped} existing samples") + + return len(samples), skipped def compute_embeddings( self, @@ -181,7 +378,7 @@ def compute_embeddings( batch_size: int = 32, show_progress: bool = True, ) -> None: - """Compute embeddings for all samples. + """Compute embeddings for samples that don't have them yet. Args: model: Embedding model to use. @@ -193,20 +390,38 @@ def compute_embeddings( if self._embedding_computer is None: self._embedding_computer = EmbeddingComputer(model=model) - samples = list(self._samples.values()) + all_samples = self._storage.get_all_samples() + # Only compute for samples without embeddings + samples_needing_embeddings = [s for s in all_samples if s.embedding is None] + + if not samples_needing_embeddings: + if show_progress: + print(f"All {len(all_samples)} samples already have embeddings") + return + + if show_progress: + skipped = len(all_samples) - len(samples_needing_embeddings) + if skipped > 0: + print(f"Skipped {skipped} samples with existing embeddings") + embeddings = self._embedding_computer.compute_batch( - samples, batch_size=batch_size, show_progress=show_progress + samples_needing_embeddings, batch_size=batch_size, show_progress=show_progress ) - for sample, embedding in zip(samples, embeddings): + # Update samples with embeddings + for sample, embedding in zip(samples_needing_embeddings, embeddings): sample.embedding = embedding.tolist() + # Batch update in storage + self._storage.update_samples_batch(samples_needing_embeddings) + def compute_visualization( self, method: str = "umap", n_neighbors: int = 15, min_dist: float = 0.1, metric: str = "cosine", + force: bool = False, ) -> None: """Compute 2D projections for visualization. @@ -215,16 +430,35 @@ def compute_visualization( n_neighbors: Number of neighbors for UMAP. min_dist: Minimum distance for UMAP. metric: Distance metric for UMAP. + force: Force recomputation even if projections exist. """ from hyperview.embeddings.projection import ProjectionEngine if self._projection_engine is None: self._projection_engine = ProjectionEngine() - samples = [s for s in self._samples.values() if s.embedding is not None] - if not samples: + samples_with_embeddings = [s for s in self._storage if s.embedding is not None] + if not samples_with_embeddings: raise ValueError("No embeddings computed. Call compute_embeddings() first.") + # Check if projections already exist (unless forced) + if not force: + samples_needing_projection = [ + s for s in samples_with_embeddings if s.embedding_2d is None + ] + if not samples_needing_projection: + print(f"All {len(samples_with_embeddings)} samples already have projections") + return + # UMAP needs consistent projections, so if any samples need it, recompute all + # (can't mix old and new UMAP projections) + if len(samples_needing_projection) < len(samples_with_embeddings): + print( + f"Some samples missing projections - recomputing all " + f"({len(samples_needing_projection)} new, " + f"{len(samples_with_embeddings) - len(samples_needing_projection)} existing)" + ) + + samples = samples_with_embeddings embeddings = np.array([s.embedding for s in samples]) # Compute Euclidean 2D projection @@ -246,35 +480,76 @@ def compute_visualization( sample.embedding_2d = coord_e.tolist() sample.embedding_2d_hyperbolic = coord_h.tolist() - def _assign_label_color(self, label: str) -> None: + # Batch update in storage + self._storage.update_samples_batch(samples) + + def find_similar( + self, + sample_id: str, + k: int = 10, + use_hyperbolic: bool = False, + ) -> list[tuple[Sample, float]]: + """Find k most similar samples to a given sample. + + Args: + sample_id: ID of the query sample. + k: Number of neighbors to return. + use_hyperbolic: If True, search in hyperbolic embedding space. + If False (default), search in high-dimensional embedding space. + + Returns: + List of (sample, distance) tuples, sorted by distance ascending. + """ + vector_column = "embedding_2d_hyperbolic" if use_hyperbolic else "embedding" + return self._storage.find_similar(sample_id, k, vector_column) + + def find_similar_by_vector( + self, + vector: list[float], + k: int = 10, + use_hyperbolic: bool = False, + ) -> list[tuple[Sample, float]]: + """Find k most similar samples to a given vector. + + Args: + vector: Query vector. + k: Number of neighbors to return. + use_hyperbolic: If True, search in hyperbolic embedding space. + + Returns: + List of (sample, distance) tuples, sorted by distance ascending. + """ + vector_column = "embedding_2d_hyperbolic" if use_hyperbolic else "embedding" + return self._storage.find_similar_by_vector(vector, k, vector_column) + + def _assign_label_color(self, label: str, colors: dict[str, str]) -> None: """Assign a color to a label.""" - # Use a predefined color palette - colors = [ + color_palette = [ "#e6194b", "#3cb44b", "#ffe119", "#4363d8", "#f58231", "#911eb4", "#46f0f0", "#f032e6", "#bcf60c", "#fabebe", "#008080", "#e6beff", "#9a6324", "#fffac8", "#800000", "#aaffc3", "#808000", "#ffd8b1", "#000075", "#808080", ] - idx = len(self._label_colors) % len(colors) - self._label_colors[label] = colors[idx] + idx = len(colors) % len(color_palette) + colors[label] = color_palette[idx] def get_label_colors(self) -> dict[str, str]: """Get the color mapping for labels.""" - return self._label_colors.copy() + return self._storage.label_colors.copy() @property def samples(self) -> list[Sample]: """Get all samples as a list.""" - return list(self._samples.values()) + return self._storage.get_all_samples() @property def labels(self) -> list[str]: """Get unique labels in the dataset.""" - return list(set(s.label for s in self._samples.values() if s.label)) + return self._storage.get_unique_labels() def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: """Filter samples based on a predicate function.""" - return [s for s in self._samples.values() if predicate(s)] + return self._storage.filter(predicate) def to_dict(self) -> dict[str, Any]: """Convert dataset to dictionary for serialization.""" @@ -282,24 +557,29 @@ def to_dict(self) -> dict[str, Any]: "name": self.name, "num_samples": len(self), "labels": self.labels, - "label_colors": self._label_colors, + "label_colors": self._storage.label_colors, } def save(self, filepath: str, include_thumbnails: bool = True) -> None: - """Save dataset to a JSON file. + """Export dataset to a JSON file. + + Note: For persistent datasets (default), data is automatically saved. + This method is for exporting to JSON format for sharing or backup. Args: filepath: Path to save the JSON file. include_thumbnails: Whether to include cached thumbnails. """ + samples = self._storage.get_all_samples() + # Cache thumbnails before saving if requested if include_thumbnails: - for s in self._samples.values(): + for s in samples: s.cache_thumbnail() data = { "name": self.name, - "label_colors": self._label_colors, + "label_colors": self._storage.label_colors, "samples": [ { "id": s.id, @@ -311,21 +591,35 @@ def save(self, filepath: str, include_thumbnails: bool = True) -> None: "embedding_2d_hyperbolic": s.embedding_2d_hyperbolic, "thumbnail_base64": s.thumbnail_base64 if include_thumbnails else None, } - for s in self._samples.values() + for s in samples ], } with open(filepath, "w") as f: json.dump(data, f) @classmethod - def load(cls, filepath: str) -> Dataset: - """Load dataset from a JSON file.""" + def load(cls, filepath: str, persist: bool = False) -> Dataset: + """Load dataset from a JSON file. + + Args: + filepath: Path to the JSON file. + persist: If True, persist the loaded data to LanceDB. + If False (default), keep in memory only. + + Returns: + Dataset instance. + """ with open(filepath) as f: data = json.load(f) - dataset = cls(name=data["name"]) - dataset._label_colors = data.get("label_colors", {}) + dataset = cls(name=data["name"], persist=persist) + # Set label colors + label_colors = data.get("label_colors", {}) + dataset._storage.label_colors = label_colors + + # Add samples + samples = [] for s_data in data["samples"]: sample = Sample( id=s_data["id"], @@ -337,6 +631,144 @@ def load(cls, filepath: str) -> Dataset: embedding_2d_hyperbolic=s_data.get("embedding_2d_hyperbolic"), thumbnail_base64=s_data.get("thumbnail_base64"), ) - dataset.add_sample(sample) + samples.append(sample) + dataset._storage.add_samples_batch(samples) return dataset + + @classmethod + def open(cls, name: str, embedding_dim: int = 512) -> Dataset: + """Open an existing persistent dataset. + + Args: + name: Name of the dataset to open. + embedding_dim: Embedding dimension (must match original). + + Returns: + Dataset instance connected to existing data. + + Raises: + ValueError: If dataset does not exist. + """ + from hyperview.storage import LanceDBBackend + + if not LanceDBBackend.dataset_exists(name): + raise ValueError( + f"Dataset '{name}' does not exist. " + f"Available datasets: {cls.list_datasets()}" + ) + + return cls(name=name, persist=True, embedding_dim=embedding_dim) + + @classmethod + def list_datasets(cls) -> list[str]: + """List all available persistent datasets. + + Returns: + List of dataset names. + """ + from hyperview.storage import LanceDBBackend + + return LanceDBBackend.list_datasets() + + @classmethod + def delete(cls, name: str, delete_media: bool = False) -> bool: + """Delete a persistent dataset. + + Args: + name: Name of the dataset to delete. + delete_media: If True, also delete associated media files from disk. + Default is False (safe, preserves media files). + + Returns: + True if dataset was deleted, False if it didn't exist. + """ + import os + + from hyperview.storage import LanceDBBackend + + if delete_media: + try: + dataset = cls.open(name) + except Exception: + dataset = None + + if dataset is not None: + for fp in (s.filepath for s in dataset.samples): + if os.path.exists(fp): + try: + os.remove(fp) + except OSError: + continue + + return LanceDBBackend.delete_dataset(name) + + @classmethod + def cleanup_orphaned_media( + cls, + delete: bool = False, + ) -> tuple[int, list[str]]: + """Find media files not referenced by any dataset. + + Scans the media directory for image files and checks if they are + referenced by any existing dataset. Useful for cleaning up disk space + after deleting datasets without the delete_media=True flag. + + Args: + delete: If True, actually delete the orphaned files. + If False (default), just report them. + + Returns: + Tuple of (count, list_of_orphaned_paths). + """ + import os + + from hyperview.storage import StorageConfig + + config = StorageConfig.default() + media_dir = config.media_dir + + if not media_dir.exists(): + return 0, [] + + # Get all filepaths from all datasets + referenced: set[str] = set() + for dataset_name in cls.list_datasets(): + try: + ds = cls.open(dataset_name) + referenced.update(s.filepath for s in ds.samples) + except Exception: + continue + + # Find orphaned files (images not referenced by any dataset) + orphaned: list[str] = [] + image_extensions = {".png", ".jpg", ".jpeg", ".webp", ".gif", ".bmp"} + + for img_path in media_dir.rglob("*"): + if img_path.is_file() and img_path.suffix.lower() in image_extensions: + if str(img_path) not in referenced: + orphaned.append(str(img_path)) + + # Optionally delete orphaned files + if delete: + for path in orphaned: + try: + os.remove(path) + except OSError: + continue + + return len(orphaned), orphaned + + @classmethod + def exists(cls, name: str) -> bool: + """Check if a persistent dataset exists. + + Args: + name: Name of the dataset to check. + + Returns: + True if dataset exists. + """ + from hyperview.storage import LanceDBBackend + + return LanceDBBackend.dataset_exists(name) diff --git a/src/hyperview/server/app.py b/src/hyperview/server/app.py index d1f6bf9..d0922b8 100644 --- a/src/hyperview/server/app.py +++ b/src/hyperview/server/app.py @@ -15,6 +15,7 @@ # Global dataset reference (set by launch()) _current_dataset: Dataset | None = None +_current_session_id: str | None = None class SelectionRequest(BaseModel): @@ -55,7 +56,29 @@ class EmbeddingsResponse(BaseModel): label_colors: dict[str, str] -def create_app(dataset: Dataset | None = None) -> FastAPI: +class SimilarSampleResponse(BaseModel): + """Response model for a similar sample with distance.""" + + id: str + filepath: str + filename: str + label: str | None + thumbnail: str | None + distance: float + metadata: dict + embedding_2d: list[float] | None = None + embedding_2d_hyperbolic: list[float] | None = None + + +class SimilaritySearchResponse(BaseModel): + """Response model for similarity search results.""" + + query_id: str + k: int + results: list[SimilarSampleResponse] + + +def create_app(dataset: Dataset | None = None, session_id: str | None = None) -> FastAPI: """Create the FastAPI application. Args: @@ -64,9 +87,11 @@ def create_app(dataset: Dataset | None = None) -> FastAPI: Returns: FastAPI application instance. """ - global _current_dataset + global _current_dataset, _current_session_id if dataset is not None: _current_dataset = dataset + if session_id is not None: + _current_session_id = session_id app = FastAPI( title="HyperView", @@ -83,6 +108,16 @@ def create_app(dataset: Dataset | None = None) -> FastAPI: allow_headers=["*"], ) + @app.get("/__hyperview__/health") + async def hyperview_health(): + return { + "name": "hyperview", + "version": app.version, + "session_id": _current_session_id, + "dataset": _current_dataset.name if _current_dataset is not None else None, + "pid": os.getpid(), + } + @app.get("/api/dataset", response_model=DatasetResponse) async def get_dataset_info(): """Get dataset metadata.""" @@ -106,14 +141,10 @@ async def get_samples( if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") - samples = _current_dataset.samples - - # Filter by label if specified - if label: - samples = [s for s in samples if s.label == label] - - total = len(samples) - samples = samples[offset : offset + limit] + # Use storage backend's native pagination (avoids loading all samples) + samples, total = _current_dataset._storage.get_samples_paginated( + offset=offset, limit=limit, label=label + ) return { "total": total, @@ -146,7 +177,7 @@ async def get_samples_batch(request: SelectionRequest): sample = _current_dataset[sample_id] samples.append(sample.to_api_dict(include_thumbnail=True)) except KeyError: - pass # Skip missing samples + continue return {"samples": samples} @@ -180,6 +211,52 @@ async def sync_selection(request: SelectionRequest): """Sync selection state (for future use).""" return {"status": "ok", "selected": request.sample_ids} + @app.get("/api/search/similar/{sample_id}", response_model=SimilaritySearchResponse) + async def search_similar( + sample_id: str, + k: int = Query(10, ge=1, le=100), + use_hyperbolic: bool = Query(False), + ): + """Return k nearest neighbors for a given sample.""" + if _current_dataset is None: + raise HTTPException(status_code=404, detail="No dataset loaded") + + try: + similar = _current_dataset.find_similar( + sample_id, k=k, use_hyperbolic=use_hyperbolic + ) + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) + except KeyError: + raise HTTPException(status_code=404, detail=f"Sample not found: {sample_id}") + + results = [] + for sample, distance in similar: + try: + thumbnail = sample.get_thumbnail_base64() + except Exception: + thumbnail = None + + results.append( + SimilarSampleResponse( + id=sample.id, + filepath=sample.filepath, + filename=sample.filename, + label=sample.label, + thumbnail=thumbnail, + distance=distance, + metadata=sample.metadata, + embedding_2d=sample.embedding_2d, + embedding_2d_hyperbolic=sample.embedding_2d_hyperbolic, + ) + ) + + return SimilaritySearchResponse( + query_id=sample_id, + k=k, + results=results, + ) + @app.get("/api/thumbnail/{sample_id}") async def get_thumbnail(sample_id: str): """Get thumbnail image for a sample.""" diff --git a/src/hyperview/storage/__init__.py b/src/hyperview/storage/__init__.py new file mode 100644 index 0000000..77a434f --- /dev/null +++ b/src/hyperview/storage/__init__.py @@ -0,0 +1,19 @@ +"""Storage backends for HyperView.""" + +from hyperview.storage.backend import StorageBackend +from hyperview.storage.config import ( + StorageConfig, + get_default_database_dir, + get_default_media_dir, +) +from hyperview.storage.lancedb_backend import LanceDBBackend +from hyperview.storage.memory_backend import MemoryBackend + +__all__ = [ + "StorageBackend", + "StorageConfig", + "get_default_database_dir", + "get_default_media_dir", + "LanceDBBackend", + "MemoryBackend", +] diff --git a/src/hyperview/storage/backend.py b/src/hyperview/storage/backend.py new file mode 100644 index 0000000..63e2162 --- /dev/null +++ b/src/hyperview/storage/backend.py @@ -0,0 +1,114 @@ +"""Abstract storage backend interface for HyperView.""" + +from __future__ import annotations + +from abc import ABC, abstractmethod +from collections.abc import Callable, Iterator +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from hyperview.core.sample import Sample + + +class StorageBackend(ABC): + """Abstract base class for storage backends.""" + + @abstractmethod + def add_sample(self, sample: Sample) -> None: + """Add a single sample to storage.""" + + @abstractmethod + def add_samples_batch(self, samples: list[Sample]) -> None: + """Add multiple samples efficiently.""" + + @abstractmethod + def get_sample(self, sample_id: str) -> Sample | None: + """Retrieve a sample by ID.""" + + @abstractmethod + def get_samples_paginated( + self, + offset: int = 0, + limit: int = 100, + label: str | None = None, + ) -> tuple[list[Sample], int]: + """Get paginated samples. Returns (samples, total_count).""" + + @abstractmethod + def get_all_samples(self) -> list[Sample]: + """Get all samples (use with caution for large datasets).""" + + @abstractmethod + def update_sample(self, sample: Sample) -> None: + """Update an existing sample.""" + + @abstractmethod + def update_samples_batch(self, samples: list[Sample]) -> None: + """Batch update samples (for embeddings, etc.).""" + + @abstractmethod + def delete_sample(self, sample_id: str) -> bool: + """Delete a sample by ID. Returns True if deleted.""" + + @abstractmethod + def __len__(self) -> int: + """Return total number of samples.""" + + @abstractmethod + def __iter__(self) -> Iterator[Sample]: + """Iterate over all samples.""" + + @abstractmethod + def __contains__(self, sample_id: str) -> bool: + """Check if sample exists.""" + + @abstractmethod + def get_unique_labels(self) -> list[str]: + """Get all unique labels.""" + + @abstractmethod + def find_similar( + self, + sample_id: str, + k: int = 10, + vector_column: str = "embedding", + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors. Returns [(sample, distance), ...].""" + + @abstractmethod + def find_similar_by_vector( + self, + vector: list[float], + k: int = 10, + vector_column: str = "embedding", + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a query vector.""" + + @abstractmethod + def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: + """Filter samples based on a predicate function.""" + + @abstractmethod + def get_existing_ids(self, sample_ids: list[str]) -> set[str]: + """Return set of sample_ids that already exist in storage. + + Args: + sample_ids: List of sample IDs to check. + + Returns: + Set of IDs that exist in storage. + """ + + @abstractmethod + def close(self) -> None: + """Close the storage connection.""" + + @property + @abstractmethod + def label_colors(self) -> dict[str, str]: + """Get label color mapping.""" + + @label_colors.setter + @abstractmethod + def label_colors(self, colors: dict[str, str]) -> None: + """Set label color mapping.""" diff --git a/src/hyperview/storage/config.py b/src/hyperview/storage/config.py new file mode 100644 index 0000000..6e5eea9 --- /dev/null +++ b/src/hyperview/storage/config.py @@ -0,0 +1,75 @@ +"""Storage configuration for HyperView.""" + +from __future__ import annotations + +import os +from dataclasses import dataclass, field +from pathlib import Path + + +def get_default_database_dir() -> Path: + """Get the default database directory. + + Uses HYPERVIEW_DATABASE_DIR env var if set, otherwise ~/.hyperview/datasets/ + """ + env_dir = os.environ.get("HYPERVIEW_DATABASE_DIR") + if env_dir: + return Path(env_dir) + return Path.home() / ".hyperview" / "datasets" + + +def get_default_media_dir() -> Path: + """Get the default media directory for downloaded images. + + Uses HYPERVIEW_MEDIA_DIR env var if set, otherwise ~/.hyperview/media/ + Similar to FiftyOne's ~/fiftyone/huggingface/hub/ pattern. + """ + env_dir = os.environ.get("HYPERVIEW_MEDIA_DIR") + if env_dir: + return Path(env_dir) + return Path.home() / ".hyperview" / "media" + + +@dataclass +class StorageConfig: + """Configuration for storage backend.""" + + database_dir: Path = field(default_factory=get_default_database_dir) + media_dir: Path = field(default_factory=get_default_media_dir) + embedding_dim: int = 512 # Default CLIP dimension + embedding_2d_dim: int = 2 + + @classmethod + def default(cls, embedding_dim: int = 512) -> StorageConfig: + """Create a default configuration with optional custom embedding dimension.""" + return cls( + database_dir=get_default_database_dir(), + media_dir=get_default_media_dir(), + embedding_dim=embedding_dim, + ) + + def ensure_dir_exists(self) -> None: + """Ensure the database directory exists.""" + self.database_dir.mkdir(parents=True, exist_ok=True) + + def ensure_media_dir_exists(self) -> None: + """Ensure the media directory exists.""" + self.media_dir.mkdir(parents=True, exist_ok=True) + + def get_huggingface_media_dir(self, dataset_name: str, split: str) -> Path: + """Get the directory for storing HuggingFace dataset media. + + Creates: ~/.hyperview/media/huggingface/{dataset_name}/{split}/ + + Args: + dataset_name: Name of the HuggingFace dataset (e.g., "cifar100") + split: Dataset split (e.g., "train", "test") + + Returns: + Path to the media directory for this dataset/split. + """ + # Sanitize dataset name for filesystem (replace / with _) + safe_name = dataset_name.replace("/", "_") + media_path = self.media_dir / "huggingface" / safe_name / split + media_path.mkdir(parents=True, exist_ok=True) + return media_path diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py new file mode 100644 index 0000000..8a531fd --- /dev/null +++ b/src/hyperview/storage/lancedb_backend.py @@ -0,0 +1,521 @@ +"""LanceDB storage backend for HyperView.""" + +from __future__ import annotations + +import json +from collections.abc import Callable, Iterator +from pathlib import Path +from typing import TYPE_CHECKING + +import lancedb +import pyarrow as pa + +from hyperview.storage.backend import StorageBackend +from hyperview.storage.config import StorageConfig, get_default_database_dir +from hyperview.storage.schema import ( + create_metadata_schema, + create_sample_schema, + dict_to_sample, + sample_to_dict, +) + +if TYPE_CHECKING: + from hyperview.core.sample import Sample + + +class LanceDBBackend(StorageBackend): + """LanceDB-based storage backend for HyperView datasets.""" + + def __init__( + self, + dataset_name: str, + config: StorageConfig | None = None, + ): + """Initialize LanceDB backend. + + Args: + dataset_name: Name of the dataset (becomes table name). + config: Storage configuration. Uses defaults if None. + """ + self.dataset_name = dataset_name + self.config = config or StorageConfig.default() + + self.config.ensure_dir_exists() + + self._db = lancedb.connect(str(self.config.database_dir)) + + self._table_name = f"hyperview_{dataset_name}" + self._metadata_table_name = f"hyperview_{dataset_name}_meta" + + self._table = self._get_or_create_table() + self._metadata_table = self._get_or_create_metadata_table() + + self._label_colors_cache: dict[str, str] | None = None + + def _get_or_create_table(self) -> lancedb.table.Table | None: + """Get existing table or return None if it doesn't exist yet.""" + if self._table_name in self._db.table_names(): + return self._db.open_table(self._table_name) + return None + + def _ensure_table_exists(self, data: list[dict]) -> lancedb.table.Table: + """Ensure table exists, creating it from data if needed. + """ + if self._table is None: + schema = create_sample_schema(self.config.embedding_dim) + arrow_table = pa.Table.from_pylist(data, schema=schema) + self._table = self._db.create_table(self._table_name, data=arrow_table) + return self._table + + def _cast_rows_to_table_schema(self, rows: list[dict]) -> pa.Table: + """Cast Python dict rows to the existing table schema.""" + if self._table is None: + raise RuntimeError("Cannot cast rows: samples table not initialized") + return pa.Table.from_pylist(rows, schema=self._table.schema) + + def _get_or_create_metadata_table(self) -> lancedb.table.Table: + """Get or create metadata table.""" + if self._metadata_table_name in self._db.table_names(): + return self._db.open_table(self._metadata_table_name) + else: + schema = create_metadata_schema() + return self._db.create_table(self._metadata_table_name, schema=schema) + + def _convert_embeddings_to_numpy(self, data: list[dict]) -> None: + """Convert high-dim embedding lists to numpy arrays in-place. + """ + import numpy as np + + for row in data: + if row.get("embedding") is not None: + row["embedding"] = np.array(row["embedding"], dtype=np.float32) + + def add_sample(self, sample: Sample) -> None: + """Add a single sample to storage.""" + data = [sample_to_dict(sample, self.config.embedding_dim)] + self._convert_embeddings_to_numpy(data) + if self._table is None: + self._ensure_table_exists(data) + else: + self._table.add(self._cast_rows_to_table_schema(data)) + + def add_samples_batch(self, samples: list[Sample]) -> None: + """Add multiple samples efficiently.""" + if not samples: + return + data = [sample_to_dict(s, self.config.embedding_dim) for s in samples] + self._convert_embeddings_to_numpy(data) + if self._table is None: + self._ensure_table_exists(data) + else: + self._table.add(self._cast_rows_to_table_schema(data)) + + def get_sample(self, sample_id: str) -> Sample | None: + """Retrieve a sample by ID.""" + if self._table is None: + return None + safe_id = sample_id.replace("'", "''") + results = self._table.search().where(f"id = '{safe_id}'").limit(1).to_list() + if results: + return dict_to_sample(results[0]) + return None + + def get_samples_paginated( + self, + offset: int = 0, + limit: int = 100, + label: str | None = None, + ) -> tuple[list[Sample], int]: + """Get paginated samples using native LanceDB queries.""" + if self._table is None: + return [], 0 + + import pyarrow.compute as pc + + if label: + arrow_table = self._table.search().select(["label"]).to_arrow() + label_column = arrow_table.column("label") + mask = pc.fill_null(pc.equal(label_column, pa.scalar(label)), False) + total = pc.sum(pc.cast(mask, pa.int64())).as_py() + else: + total = self._table.count_rows() + + query = self._table.search() + if label: + safe_label = label.replace("'", "''") + query = query.where(f"label = '{safe_label}'") + + results = query.offset(offset).limit(limit).to_list() + samples = [dict_to_sample(row) for row in results] + return samples, total + + def get_all_samples(self) -> list[Sample]: + """Get all samples.""" + if self._table is None: + return [] + arrow_table = self._table.to_arrow() + rows = arrow_table.to_pylist() + return [dict_to_sample(row) for row in rows] + + def update_sample(self, sample: Sample) -> None: + """Update an existing sample.""" + self._delete_by_id(sample.id) + self.add_sample(sample) + + def update_samples_batch(self, samples: list[Sample]) -> None: + """Batch update samples.""" + if not samples: + return + + if self._table is None: + self.add_samples_batch(samples) + return + + if self._needs_schema_migration(samples): + self._migrate_table_schema(samples) + else: + updated_data = [sample_to_dict(s, self.config.embedding_dim) for s in samples] + self._convert_embeddings_to_numpy(updated_data) + + arrow = self._cast_rows_to_table_schema(updated_data) + ( + self._table.merge_insert("id") + .when_matched_update_all() + .when_not_matched_insert_all() + .execute(arrow) + ) + + def _needs_schema_migration(self, samples: list[Sample]) -> bool: + """Check whether embedding columns exist with a non-null type.""" + schema = self._table.schema + + columns_to_check = [ + ("embedding", lambda s: s.embedding is not None), + ("embedding_2d_euclidean", lambda s: s.embedding_2d is not None), + ("embedding_2d_hyperbolic", lambda s: s.embedding_2d_hyperbolic is not None), + ] + + for col_name, has_value_fn in columns_to_check: + has_values = any(has_value_fn(s) for s in samples) + if not has_values: + continue + try: + field = schema.field(col_name) + if str(field.type) == "null": + return True + except KeyError: + return True + + return False + + def _migrate_table_schema(self, updated_samples: list[Sample]) -> None: + """Recreate the table with the current schema and merge updates.""" + existing_rows = self._table.to_arrow().to_pylist() + updates_by_id = {s.id: s for s in updated_samples} + + new_data: list[dict] = [] + for row in existing_rows: + sample_id = row.get("id") + if sample_id in updates_by_id: + new_data.append(sample_to_dict(updates_by_id[sample_id], self.config.embedding_dim)) + else: + new_data.append(row) + + self._convert_embeddings_to_numpy(new_data) + + self._db.drop_table(self._table_name) + self._table = None + self._ensure_table_exists(new_data) + + def _delete_by_id(self, sample_id: str) -> bool: + """Delete a sample by ID using native LanceDB delete.""" + if self._table is None: + return False + try: + # Use LanceDB's native delete with SQL WHERE clause + safe_id = sample_id.replace("'", "''") + self._table.delete(f"id = '{safe_id}'") + return True + except Exception: + return False + + def delete_sample(self, sample_id: str) -> bool: + """Delete a sample by ID.""" + return self._delete_by_id(sample_id) + + def __len__(self) -> int: + """Return total number of samples.""" + if self._table is None: + return 0 + return self._table.count_rows() + + def __iter__(self) -> Iterator[Sample]: + """Iterate over all samples.""" + if self._table is None: + return iter([]) + arrow_table = self._table.to_arrow() + for batch in arrow_table.to_batches(max_chunksize=1000): + batch_dict = batch.to_pydict() + for i in range(batch.num_rows): + row = {k: batch_dict[k][i] for k in batch_dict} + yield dict_to_sample(row) + + def __contains__(self, sample_id: str) -> bool: + """Check if sample exists.""" + if self._table is None: + return False + safe_id = sample_id.replace("'", "''") + try: + results = self._table.search().where(f"id = '{safe_id}'").limit(1).to_list() + return len(results) > 0 + except Exception: + return False + + def get_unique_labels(self) -> list[str]: + """Get all unique labels.""" + if self._table is None: + return [] + import pyarrow.compute as pc + + # Label-only scan - don't pull thumbnails/metadata into RAM + arrow_table = self._table.search().select(["label"]).to_arrow() + label_column = arrow_table.column("label") + unique_labels = pc.unique(label_column).to_pylist() + return sorted([label for label in unique_labels if label is not None]) + + def find_similar( + self, + sample_id: str, + k: int = 10, + vector_column: str = "embedding", + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a sample.""" + sample = self.get_sample(sample_id) + if sample is None: + raise ValueError(f"Sample not found: {sample_id}") + + query_vector = self._get_vector(sample, vector_column) + if query_vector is None: + raise ValueError(f"Sample {sample_id} has no {vector_column}") + + # Find similar, excluding self + results = self.find_similar_by_vector(query_vector, k + 1, vector_column) + return [(s, d) for s, d in results if s.id != sample_id][:k] + + def find_similar_by_vector( + self, + vector: list[float], + k: int = 10, + vector_column: str = "embedding", + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a query vector.""" + import math + + lance_column = self._map_vector_column(vector_column) + + try: + results = ( + self._table.search(vector, vector_column_name=lance_column) + .metric("cosine") + .limit(k) + .to_list() + ) + + # Normalize nan distances to 0.0 (can happen with identical vectors) + return [ + ( + dict_to_sample(row), + 0.0 + if math.isnan(d := row.get("_distance", 0.0)) + else float(d), + ) + for row in results + ] + except Exception: + return self._brute_force_search(vector, k, vector_column) + + def _brute_force_search( + self, + vector: list[float], + k: int, + vector_column: str, + ) -> list[tuple[Sample, float]]: + """Fallback brute force search when vector index is not available.""" + import numpy as np + + query = np.array(vector) + distances: list[tuple[Sample, float]] = [] + + for sample in self: + vec = self._get_vector(sample, vector_column) + if vec is None: + continue + + vec_np = np.array(vec) + norm_query = np.linalg.norm(query) + norm_vec = np.linalg.norm(vec_np) + + if norm_query == 0 or norm_vec == 0: + distance = 1.0 + else: + cosine_sim = np.dot(query, vec_np) / (norm_query * norm_vec) + distance = 1 - cosine_sim + + distances.append((sample, float(distance))) + + distances.sort(key=lambda x: x[1]) + return distances[:k] + + def _get_vector(self, sample: Sample, vector_column: str) -> list[float] | None: + """Get the appropriate vector from a sample.""" + if vector_column == "embedding": + return sample.embedding + elif vector_column in ("embedding_2d_euclidean", "embedding_2d"): + return sample.embedding_2d + elif vector_column == "embedding_2d_hyperbolic": + return sample.embedding_2d_hyperbolic + else: + raise ValueError(f"Unknown vector column: {vector_column}") + + def _map_vector_column(self, vector_column: str) -> str: + """Map vector column name to LanceDB column name.""" + mapping = { + "embedding": "embedding", + "embedding_2d": "embedding_2d_euclidean", + "embedding_2d_euclidean": "embedding_2d_euclidean", + "embedding_2d_hyperbolic": "embedding_2d_hyperbolic", + } + return mapping.get(vector_column, vector_column) + + def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: + """Filter samples based on a predicate function.""" + return [s for s in self if predicate(s)] + + def get_existing_ids(self, sample_ids: list[str]) -> set[str]: + """Return the subset of sample_ids that exist in storage.""" + if self._table is None or not sample_ids: + return set() + + existing: set[str] = set() + + def query_chunk(chunk: list[str]) -> set[str]: + escaped = [sid.replace("'", "''") for sid in chunk] + id_list = "', '".join(escaped) + results = self._table.search().where(f"id IN ('{id_list}')").select(["id"]).to_list() + return {r["id"] for r in results} + + chunk_size = 1000 + for i in range(0, len(sample_ids), chunk_size): + chunk = sample_ids[i : i + chunk_size] + try: + existing.update(query_chunk(chunk)) + except Exception: + existing.update(sid for sid in chunk if sid in self) + + return existing + + def close(self) -> None: + """Close the storage connection.""" + return + + @property + def label_colors(self) -> dict[str, str]: + """Get label color mapping.""" + if self._label_colors_cache is not None: + return self._label_colors_cache + + rows = self._metadata_table.search().where("key = 'label_colors'").limit(1).to_list() + if not rows: + self._label_colors_cache = {} + return self._label_colors_cache + + value = rows[0].get("value") + self._label_colors_cache = json.loads(value) if value else {} + + return self._label_colors_cache + + @label_colors.setter + def label_colors(self, colors: dict[str, str]) -> None: + """Set label color mapping.""" + self._label_colors_cache = colors + + try: + self._metadata_table.delete("key = 'label_colors'") + except Exception: + pass + + schema = create_metadata_schema() + row = {"key": "label_colors", "value": json.dumps(colors)} + self._metadata_table.add(pa.Table.from_pylist([row], schema=schema)) + + def create_vector_index(self, vector_column: str = "embedding") -> None: + """Create an ANN index for vector search.""" + if self._table is None: + return + num_rows = self._table.count_rows() + if num_rows < 256: + return + + lance_column = self._map_vector_column(vector_column) + + try: + self._table.create_index( + vector_column_name=lance_column, + index_type="IVF_PQ", + num_partitions=min(256, num_rows // 10), + num_sub_vectors=16, + ) + except Exception: + return + + @classmethod + def list_datasets(cls, database_dir: Path | None = None) -> list[str]: + """List all available datasets in the database directory.""" + if database_dir is None: + database_dir = get_default_database_dir() + + if not database_dir.exists(): + return [] + + db = lancedb.connect(str(database_dir)) + datasets = [] + for table_name in db.table_names(): + if table_name.startswith("hyperview_") and not table_name.endswith("_meta"): + datasets.append(table_name[len("hyperview_") :]) + return sorted(datasets) + + @classmethod + def delete_dataset(cls, dataset_name: str, database_dir: Path | None = None) -> bool: + """Delete a dataset from the database.""" + if database_dir is None: + database_dir = get_default_database_dir() + + if not database_dir.exists(): + return False + + db = lancedb.connect(str(database_dir)) + table_name = f"hyperview_{dataset_name}" + metadata_table_name = f"hyperview_{dataset_name}_meta" + + deleted = False + if table_name in db.table_names(): + db.drop_table(table_name) + deleted = True + + if metadata_table_name in db.table_names(): + db.drop_table(metadata_table_name) + + return deleted + + @classmethod + def dataset_exists(cls, dataset_name: str, database_dir: Path | None = None) -> bool: + """Check if a dataset exists.""" + if database_dir is None: + database_dir = get_default_database_dir() + + if not database_dir.exists(): + return False + + db = lancedb.connect(str(database_dir)) + table_name = f"hyperview_{dataset_name}" + return table_name in db.table_names() diff --git a/src/hyperview/storage/memory_backend.py b/src/hyperview/storage/memory_backend.py new file mode 100644 index 0000000..05f1935 --- /dev/null +++ b/src/hyperview/storage/memory_backend.py @@ -0,0 +1,173 @@ +"""In-memory storage backend for testing and development.""" + +from __future__ import annotations + +from collections.abc import Callable, Iterator +from typing import TYPE_CHECKING + +import numpy as np + +from hyperview.storage.backend import StorageBackend + +if TYPE_CHECKING: + from hyperview.core.sample import Sample + + +class MemoryBackend(StorageBackend): + """In-memory storage backend (current behavior, for testing and backwards compatibility).""" + + def __init__(self, dataset_name: str): + """Initialize in-memory backend. + + Args: + dataset_name: Name of the dataset. + """ + self.dataset_name = dataset_name + self._samples: dict[str, Sample] = {} + self._label_colors: dict[str, str] = {} + + def add_sample(self, sample: Sample) -> None: + """Add a single sample to storage.""" + self._samples[sample.id] = sample + + def add_samples_batch(self, samples: list[Sample]) -> None: + """Add multiple samples efficiently.""" + for sample in samples: + self._samples[sample.id] = sample + + def get_sample(self, sample_id: str) -> Sample | None: + """Retrieve a sample by ID.""" + return self._samples.get(sample_id) + + def get_samples_paginated( + self, + offset: int = 0, + limit: int = 100, + label: str | None = None, + ) -> tuple[list[Sample], int]: + """Get paginated samples.""" + samples = list(self._samples.values()) + if label: + samples = [s for s in samples if s.label == label] + total = len(samples) + return samples[offset : offset + limit], total + + def get_all_samples(self) -> list[Sample]: + """Get all samples.""" + return list(self._samples.values()) + + def update_sample(self, sample: Sample) -> None: + """Update an existing sample.""" + self._samples[sample.id] = sample + + def update_samples_batch(self, samples: list[Sample]) -> None: + """Batch update samples.""" + for sample in samples: + self._samples[sample.id] = sample + + def delete_sample(self, sample_id: str) -> bool: + """Delete a sample by ID.""" + if sample_id in self._samples: + del self._samples[sample_id] + return True + return False + + def __len__(self) -> int: + """Return total number of samples.""" + return len(self._samples) + + def __iter__(self) -> Iterator[Sample]: + """Iterate over all samples.""" + return iter(self._samples.values()) + + def __contains__(self, sample_id: str) -> bool: + """Check if sample exists.""" + return sample_id in self._samples + + def get_unique_labels(self) -> list[str]: + """Get all unique labels.""" + labels = {s.label for s in self._samples.values() if s.label} + return sorted(labels) + + def find_similar( + self, + sample_id: str, + k: int = 10, + vector_column: str = "embedding", + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a sample.""" + sample = self._samples.get(sample_id) + if sample is None: + raise ValueError(f"Sample not found: {sample_id}") + + query_vector = self._get_vector(sample, vector_column) + if query_vector is None: + raise ValueError(f"Sample {sample_id} has no {vector_column}") + + # Find similar, excluding self + results = self.find_similar_by_vector(query_vector, k + 1, vector_column) + return [(s, d) for s, d in results if s.id != sample_id][:k] + + def find_similar_by_vector( + self, + vector: list[float], + k: int = 10, + vector_column: str = "embedding", + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a query vector.""" + query = np.array(vector) + distances: list[tuple[Sample, float]] = [] + + for sample in self._samples.values(): + vec = self._get_vector(sample, vector_column) + if vec is None: + continue + + # Cosine distance + vec_np = np.array(vec) + norm_query = np.linalg.norm(query) + norm_vec = np.linalg.norm(vec_np) + + if norm_query == 0 or norm_vec == 0: + distance = 1.0 + else: + cosine_sim = np.dot(query, vec_np) / (norm_query * norm_vec) + distance = 1 - cosine_sim + + distances.append((sample, float(distance))) + + distances.sort(key=lambda x: x[1]) + return distances[:k] + + def _get_vector(self, sample: Sample, vector_column: str) -> list[float] | None: + """Get the appropriate vector from a sample.""" + if vector_column == "embedding": + return sample.embedding + elif vector_column == "embedding_2d_euclidean": + return sample.embedding_2d + elif vector_column == "embedding_2d_hyperbolic": + return sample.embedding_2d_hyperbolic + else: + raise ValueError(f"Unknown vector column: {vector_column}") + + def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: + """Filter samples based on a predicate function.""" + return [s for s in self._samples.values() if predicate(s)] + + def get_existing_ids(self, sample_ids: list[str]) -> set[str]: + """Return set of sample_ids that already exist in storage.""" + return {sid for sid in sample_ids if sid in self._samples} + + def close(self) -> None: + """Close the storage connection (no-op for in-memory).""" + return + + @property + def label_colors(self) -> dict[str, str]: + """Get label color mapping.""" + return self._label_colors + + @label_colors.setter + def label_colors(self, colors: dict[str, str]) -> None: + """Set label color mapping.""" + self._label_colors = colors diff --git a/src/hyperview/storage/schema.py b/src/hyperview/storage/schema.py new file mode 100644 index 0000000..03171e4 --- /dev/null +++ b/src/hyperview/storage/schema.py @@ -0,0 +1,124 @@ +"""LanceDB schema definitions for HyperView samples.""" + +from __future__ import annotations + +import json +from typing import TYPE_CHECKING, Any + +import pyarrow as pa + +if TYPE_CHECKING: + from hyperview.core.sample import Sample + + +def create_sample_schema(embedding_dim: int = 512) -> pa.Schema: + """Create the PyArrow schema for samples. + + Using PyArrow schema instead of LanceModel allows dynamic embedding dimensions. + + Args: + embedding_dim: Dimension of the high-dimensional embedding vector. + + Returns: + PyArrow schema for the samples table. + """ + # Use fixed-size lists for ANN index support in LanceDB + return pa.schema( + [ + pa.field("id", pa.utf8(), nullable=False), + pa.field("filepath", pa.utf8(), nullable=False), + pa.field("label", pa.utf8(), nullable=True), + pa.field("metadata_json", pa.utf8(), nullable=True), + pa.field("embedding", pa.list_(pa.float32(), embedding_dim), nullable=True), + pa.field("embedding_2d_euclidean", pa.list_(pa.float32(), 2), nullable=True), + pa.field("embedding_2d_hyperbolic", pa.list_(pa.float32(), 2), nullable=True), + pa.field("thumbnail_base64", pa.utf8(), nullable=True), + ] + ) + + +def create_metadata_schema() -> pa.Schema: + """Create the PyArrow schema for dataset metadata.""" + return pa.schema( + [ + pa.field("key", pa.utf8(), nullable=False), + pa.field("value", pa.utf8(), nullable=True), + ] + ) + + +def sample_to_dict(sample: Sample, embedding_dim: int = 512) -> dict[str, Any]: + """Convert a Sample to a dictionary for LanceDB insertion. + + Args: + sample: The Sample object to convert. + embedding_dim: Expected embedding dimension for padding/validation. + + Returns: + Dictionary suitable for LanceDB insertion. + """ + # Handle embedding - ensure correct dimension or None + embedding = None + if sample.embedding is not None: + embedding = list(sample.embedding) + # Pad or truncate to expected dimension + if len(embedding) < embedding_dim: + embedding.extend([0.0] * (embedding_dim - len(embedding))) + elif len(embedding) > embedding_dim: + embedding = embedding[:embedding_dim] + + return { + "id": sample.id, + "filepath": sample.filepath, + "label": sample.label, + "metadata_json": json.dumps(sample.metadata) if sample.metadata else None, + "embedding": embedding, + "embedding_2d_euclidean": list(sample.embedding_2d) if sample.embedding_2d else None, + "embedding_2d_hyperbolic": ( + list(sample.embedding_2d_hyperbolic) if sample.embedding_2d_hyperbolic else None + ), + "thumbnail_base64": sample.thumbnail_base64, + } + + +def dict_to_sample(row: dict[str, Any]) -> Sample: + """Convert a LanceDB row to a Sample object. + + Args: + row: Dictionary from LanceDB query result. + + Returns: + Sample object. + """ + from hyperview.core.sample import Sample + + metadata = {} + if row.get("metadata_json"): + try: + metadata = json.loads(row["metadata_json"]) + except (json.JSONDecodeError, TypeError): + metadata = {} + + # Convert numpy arrays to lists if needed + embedding = row.get("embedding") + if embedding is not None and hasattr(embedding, "tolist"): + embedding = embedding.tolist() + + embedding_2d = row.get("embedding_2d_euclidean") + if embedding_2d is not None and hasattr(embedding_2d, "tolist"): + embedding_2d = embedding_2d.tolist() + + embedding_2d_hyperbolic = row.get("embedding_2d_hyperbolic") + if embedding_2d_hyperbolic is not None and hasattr(embedding_2d_hyperbolic, "tolist"): + embedding_2d_hyperbolic = embedding_2d_hyperbolic.tolist() + + return Sample( + id=row["id"], + filepath=row["filepath"], + label=row.get("label"), + metadata=metadata, + embedding=embedding, + embedding_2d=embedding_2d, + embedding_2d_hyperbolic=embedding_2d_hyperbolic, + thumbnail_base64=row.get("thumbnail_base64"), + ) diff --git a/uv.lock b/uv.lock index eb32ab4..56230ae 100644 --- a/uv.lock +++ b/uv.lock @@ -373,6 +373,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/3b/5e/6f8d874366788ad5d549e9ba258037d974dda6e004843be1bda794571701/datasets-4.4.1-py3-none-any.whl", hash = "sha256:c1163de5211e42546079ab355cc0250c7e6db16eb209ac5ac6252f801f596c44", size = 511591 }, ] +[[package]] +name = "deprecation" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/d3/8ae2869247df154b64c1884d7346d412fed0c49df84db635aab2d1c40e62/deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff", size = 173788 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a", size = 11178 }, +] + [[package]] name = "dill" version = "0.4.0" @@ -752,9 +764,11 @@ dependencies = [ { name = "datasets" }, { name = "embed-anything" }, { name = "fastapi" }, + { name = "lancedb" }, { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pillow" }, + { name = "pyarrow" }, { name = "pydantic" }, { name = "umap-learn" }, { name = "uvicorn", extra = ["standard"] }, @@ -780,8 +794,10 @@ requires-dist = [ { name = "fastapi", specifier = ">=0.115.0" }, { name = "geoopt", marker = "extra == 'hyperbolic'", specifier = ">=0.5.1" }, { name = "httpx", marker = "extra == 'dev'", specifier = ">=0.27.0" }, + { name = "lancedb", specifier = ">=0.5.0" }, { name = "numpy", specifier = ">=1.26.0" }, { name = "pillow", specifier = ">=10.0.0" }, + { name = "pyarrow", specifier = ">=14.0.0" }, { name = "pydantic", specifier = ">=2.0.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" }, { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.24.0" }, @@ -830,6 +846,57 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1e/e8/685f47e0d754320684db4425a0967f7d3fa70126bffd76110b7009a0090f/joblib-1.5.2-py3-none-any.whl", hash = "sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241", size = 308396 }, ] +[[package]] +name = "lance-namespace" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "lance-namespace-urllib3-client" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4d/44/946ca6033997820623906d84cb9830af89768940bbc9f824aadec6136254/lance_namespace-0.3.2.tar.gz", hash = "sha256:51eb30f8a9f073bba15d1824460bf6e9fa7f867e224e73ee64520ed254f0c140", size = 6833 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/d2/947eedf16c59e1269c9cf7a2dc3c4522a3915cec664a9ffe8a7d1a0e2fcd/lance_namespace-0.3.2-py3-none-any.whl", hash = "sha256:794249bec15fb6e34d2b8d9f9698f11ae191179eccd9cd879743d8fb3c666ca0", size = 8335 }, +] + +[[package]] +name = "lance-namespace-urllib3-client" +version = "0.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dateutil" }, + { name = "typing-extensions" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e7/17/56d98ad4a969e59d08d6e7157f9a680383f1fe5fd2916b75a42826ad0b52/lance_namespace_urllib3_client-0.3.2.tar.gz", hash = "sha256:1474e8a16a3547faeb5be56270b8903bd2c9ce10ae04d09245f3870ede3a5c4d", size = 151790 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/8c/40ac725fb6fb7a4a13295fa2bc3b6ff877be1538d0a95ecf939ef0ceb562/lance_namespace_urllib3_client-0.3.2-py3-none-any.whl", hash = "sha256:bc73668b1086ef96c279870b019902bb293d15a6271ea8cf8eb429a57ab6a6ab", size = 256823 }, +] + +[[package]] +name = "lancedb" +version = "0.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecation" }, + { name = "lance-namespace" }, + { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "overrides", marker = "python_full_version < '3.12'" }, + { name = "packaging" }, + { name = "pyarrow" }, + { name = "pydantic" }, + { name = "tqdm" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/91/fe585b2181bd61efc65e1da410ae8ab7b29a26f156e4ca7d7d616b1234de/lancedb-0.26.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:3a0d435fff1392f056c173f695f71d495c691c555daa9802c056ea23f6a3900e", size = 41174270 }, + { url = "https://files.pythonhosted.org/packages/ce/fc/e47e092f4fc97a8810b37dbee07996689bca42f0817f3f3c38d7fb51dd9d/lancedb-0.26.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2206320fd0f33c01e264960afd768987646133cf152c4d3a8b7faf81b3017bf", size = 42936720 }, + { url = "https://files.pythonhosted.org/packages/b5/d7/323897d22a7c00ef1dc4f5b76df1a11df549fe887d8e05d689c2224e47b8/lancedb-0.26.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca0322cb4b62d526748f6f29e5b43cce4251c7f693e111897eb1f77e7f1ec2b", size = 45846184 }, + { url = "https://files.pythonhosted.org/packages/3a/0b/7671c94b27a5aa267b9f1d6db759c9e08070cb8f783828ade04da9dc7d79/lancedb-0.26.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7f2b8d69a647265b8753576b501354333c3edfd47d12ec9f47e665e8574c92fe", size = 42954293 }, + { url = "https://files.pythonhosted.org/packages/52/2e/9f720d6ae7bd3a94d096f320a0ec2f277735423af9d16cf5c61c4a70e6ca/lancedb-0.26.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:8e5cc334686a389cf2f28d1c239d13a205098ed98f3914226d3966858e58b957", size = 45896935 }, + { url = "https://files.pythonhosted.org/packages/00/0e/4b292c24a9e25ee2cd081d2da930fcdc672ee0eea531fc453c19c73addb5/lancedb-0.26.0-cp39-abi3-win_amd64.whl", hash = "sha256:2fc9b48a11f526de87388002eb3838329db7279241eefb3166c1c6c3b194a3cf", size = 50615000 }, +] + [[package]] name = "llvmlite" version = "0.45.1" @@ -1504,6 +1571,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/c3/16/873b955beda7bada5b0d798d3a601b2ff210e44ad5169f6d405b93892103/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64845709f9e8a2809e8e009bc4c8f73b788cee9c6619b7d9930344eae4c9cd36", size = 16427482 }, ] +[[package]] +name = "overrides" +version = "7.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/36/86/b585f53236dec60aba864e050778b25045f857e17f6e5ea0ae95fe80edd2/overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a", size = 22812 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/ab/fc8290c6a4c722e5514d80f62b2dc4c4df1a68a41d1364e625c35990fcf3/overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49", size = 17832 }, +] + [[package]] name = "packaging" version = "25.0" From d0a78ff468a6cacc8d9459df38e17eea48cbb036 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Fri, 26 Dec 2025 14:10:37 +0100 Subject: [PATCH 03/75] Delete requirements.txt, pyproject.toml has the required dependencies --- requirements.txt | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index c747cac..0000000 --- a/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -torch>=2.9.1 -numpy>=2.3.5 -matplotlib>=3.10.7 -geoopt>=0.5.1 -geomstats>=2.8.0 -scikit-learn>=1.7.2 From f64bfa4fe37a67359eb2a74c81a94ebd3359b3b3 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sat, 27 Dec 2025 22:44:48 +0100 Subject: [PATCH 04/75] Add DeepWiki badge to README Added a badge for DeepWiki to the README. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b9b6f17..8b11d54 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > **Open-source dataset curation with hyperbolic embeddings visualization - a FiftyOne alternative.** -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/HackerRoomAI/HyperView)

From 05ddae9a0b0123403430b5b3123a6c89b4bc35ac Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:11:12 +0100 Subject: [PATCH 05/75] chore: ignore local artifacts --- .gitignore | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.gitignore b/.gitignore index 1ad5e0b..f943cff 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,16 @@ build/ # Data cache *.hf/ .cache/ + +# external repo +viz_impl/ + +# nohup +nohup.out +frontend/nohup.out + +# Local logs / tool artifacts +.hyperview-*.log +.hyperview-*.pid +.playwright-mcp/ +frontend/tsconfig.tsbuildinfo \ No newline at end of file From 0a66aec39711f0a2b6103a3e15a8273270453e1d Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:11:57 +0100 Subject: [PATCH 06/75] chore(backend): simplify typing imports --- src/hyperview/core/dataset.py | 12 ++++-------- src/hyperview/core/sample.py | 4 +--- src/hyperview/embeddings/compute.py | 2 -- src/hyperview/embeddings/projection.py | 2 -- src/hyperview/storage/config.py | 4 +--- src/hyperview/storage/schema.py | 9 ++------- 6 files changed, 8 insertions(+), 25 deletions(-) diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 4c9f4f9..19c1359 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -1,22 +1,18 @@ """Dataset class for managing collections of samples.""" -from __future__ import annotations - import hashlib import json import uuid from collections.abc import Callable, Iterator from pathlib import Path -from typing import TYPE_CHECKING, Any +from typing import Any import numpy as np from datasets import load_dataset from PIL import Image from hyperview.core.sample import Sample, SampleFromArray - -if TYPE_CHECKING: - from hyperview.storage.backend import StorageBackend +from hyperview.storage.backend import StorageBackend class Dataset: @@ -598,7 +594,7 @@ def save(self, filepath: str, include_thumbnails: bool = True) -> None: json.dump(data, f) @classmethod - def load(cls, filepath: str, persist: bool = False) -> Dataset: + def load(cls, filepath: str, persist: bool = False) -> "Dataset": """Load dataset from a JSON file. Args: @@ -637,7 +633,7 @@ def load(cls, filepath: str, persist: bool = False) -> Dataset: return dataset @classmethod - def open(cls, name: str, embedding_dim: int = 512) -> Dataset: + def open(cls, name: str, embedding_dim: int = 512) -> "Dataset": """Open an existing persistent dataset. Args: diff --git a/src/hyperview/core/sample.py b/src/hyperview/core/sample.py index 97b0dd6..2052c85 100644 --- a/src/hyperview/core/sample.py +++ b/src/hyperview/core/sample.py @@ -1,7 +1,5 @@ """Sample class representing a single data point in a dataset.""" -from __future__ import annotations - import base64 import io from pathlib import Path @@ -97,7 +95,7 @@ def from_array( image_array: np.ndarray, label: str | None = None, metadata: dict[str, Any] | None = None, - ) -> SampleFromArray: + ) -> "SampleFromArray": """Create a sample from a numpy array.""" sample = cls( id=id, diff --git a/src/hyperview/embeddings/compute.py b/src/hyperview/embeddings/compute.py index 27d68b7..af278cc 100644 --- a/src/hyperview/embeddings/compute.py +++ b/src/hyperview/embeddings/compute.py @@ -1,7 +1,5 @@ """Embedding computation using EmbedAnything.""" -from __future__ import annotations - import os import tempfile diff --git a/src/hyperview/embeddings/projection.py b/src/hyperview/embeddings/projection.py index ecef3c8..ccf8749 100644 --- a/src/hyperview/embeddings/projection.py +++ b/src/hyperview/embeddings/projection.py @@ -1,7 +1,5 @@ """Projection methods for dimensionality reduction.""" -from __future__ import annotations - import logging import numpy as np diff --git a/src/hyperview/storage/config.py b/src/hyperview/storage/config.py index 6e5eea9..c916855 100644 --- a/src/hyperview/storage/config.py +++ b/src/hyperview/storage/config.py @@ -1,7 +1,5 @@ """Storage configuration for HyperView.""" -from __future__ import annotations - import os from dataclasses import dataclass, field from pathlib import Path @@ -40,7 +38,7 @@ class StorageConfig: embedding_2d_dim: int = 2 @classmethod - def default(cls, embedding_dim: int = 512) -> StorageConfig: + def default(cls, embedding_dim: int = 512) -> "StorageConfig": """Create a default configuration with optional custom embedding dimension.""" return cls( database_dir=get_default_database_dir(), diff --git a/src/hyperview/storage/schema.py b/src/hyperview/storage/schema.py index 03171e4..ceb1a13 100644 --- a/src/hyperview/storage/schema.py +++ b/src/hyperview/storage/schema.py @@ -1,14 +1,11 @@ """LanceDB schema definitions for HyperView samples.""" -from __future__ import annotations - import json -from typing import TYPE_CHECKING, Any +from typing import Any import pyarrow as pa -if TYPE_CHECKING: - from hyperview.core.sample import Sample +from hyperview.core.sample import Sample def create_sample_schema(embedding_dim: int = 512) -> pa.Schema: @@ -90,8 +87,6 @@ def dict_to_sample(row: dict[str, Any]) -> Sample: Returns: Sample object. """ - from hyperview.core.sample import Sample - metadata = {} if row.get("metadata_json"): try: From aea34ce8e4c6a602809f44480d3598814cbf5604 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:12:19 +0100 Subject: [PATCH 07/75] feat(cli): add host/no-browser flags --- src/hyperview/cli.py | 55 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/src/hyperview/cli.py b/src/hyperview/cli.py index 913f4a9..9bbe321 100644 --- a/src/hyperview/cli.py +++ b/src/hyperview/cli.py @@ -1,7 +1,5 @@ """Command-line interface for HyperView.""" -from __future__ import annotations - import argparse import sys @@ -30,6 +28,17 @@ def main(): default=5151, help="Port to run the server on (default: 5151)", ) + demo_parser.add_argument( + "--host", + type=str, + default="127.0.0.1", + help="Host to bind the server to (default: 127.0.0.1)", + ) + demo_parser.add_argument( + "--no-browser", + action="store_true", + help="Do not open a browser window automatically", + ) # Serve command serve_parser = subparsers.add_parser("serve", help="Serve a saved dataset") @@ -40,32 +49,52 @@ def main(): default=5151, help="Port to run the server on (default: 5151)", ) + serve_parser.add_argument( + "--host", + type=str, + default="127.0.0.1", + help="Host to bind the server to (default: 127.0.0.1)", + ) + serve_parser.add_argument( + "--no-browser", + action="store_true", + help="Do not open a browser window automatically", + ) args = parser.parse_args() if args.command == "demo": - run_demo(args.samples, args.port) + run_demo(args.samples, args.port, host=args.host, open_browser=not args.no_browser) elif args.command == "serve": - serve_dataset(args.dataset, args.port) + serve_dataset(args.dataset, args.port, host=args.host, open_browser=not args.no_browser) else: parser.print_help() sys.exit(1) -def run_demo(num_samples: int = 500, port: int = 5151): +def run_demo( + num_samples: int = 500, + port: int = 5151, + *, + host: str = "127.0.0.1", + open_browser: bool = True, +): """Run a demo with CIFAR-100 data.""" print("Loading CIFAR-100 dataset...") dataset = Dataset("cifar100_demo") try: - count = dataset.add_from_huggingface( + added, skipped = dataset.add_from_huggingface( "uoft-cs/cifar100", split="train", image_key="img", label_key="fine_label", max_samples=num_samples, ) - print(f"Loaded {count} samples") + if skipped > 0: + print(f"Loaded {added} samples ({skipped} already present)") + else: + print(f"Loaded {added} samples") except Exception as e: print(f"Failed to load HuggingFace dataset: {e}") print("Please ensure 'datasets' is installed: pip install datasets") @@ -79,10 +108,16 @@ def run_demo(num_samples: int = 500, port: int = 5151): dataset.compute_visualization() print("Visualizations ready") - launch(dataset, port=port) + launch(dataset, port=port, host=host, open_browser=open_browser) -def serve_dataset(filepath: str, port: int = 5151): +def serve_dataset( + filepath: str, + port: int = 5151, + *, + host: str = "127.0.0.1", + open_browser: bool = True, +): """Serve a saved dataset.""" from hyperview import Dataset, launch @@ -90,7 +125,7 @@ def serve_dataset(filepath: str, port: int = 5151): dataset = Dataset.load(filepath) print(f"Loaded {len(dataset)} samples") - launch(dataset, port=port) + launch(dataset, port=port, host=host, open_browser=open_browser) if __name__ == "__main__": From 69cac76bc868c11d628623f9001760e07ef3b924 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:12:51 +0100 Subject: [PATCH 08/75] fix(api): improve launch URL and server lifecycle --- src/hyperview/api.py | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/src/hyperview/api.py b/src/hyperview/api.py index bc0b13e..7017e6a 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -1,7 +1,5 @@ """Public API for HyperView.""" -from __future__ import annotations - import json import socket import threading @@ -59,7 +57,9 @@ def __init__(self, dataset: Dataset, host: str, port: int): self.dataset = dataset self.host = host self.port = port - self.url = f"http://{host}:{port}" + # Prefer a browser-connectable host for user-facing URLs. + # When binding to 0.0.0.0, users should connect via 127.0.0.1 locally. + self.url = f"http://{self._connect_host}:{port}" self._server_thread: threading.Thread | None = None self._server: uvicorn.Server | None = None self._startup_error: BaseException | None = None @@ -147,8 +147,6 @@ def start(self, background: bool = True): f"a non-HyperView app (port={self.port})." ) - time.sleep(0.05) - raise TimeoutError( "HyperView server did not become ready in time " f"(port={self.port}). Last error: {last_health_error}" @@ -209,17 +207,28 @@ def launch( if notebook: session.start(background=True) - url = f"http://{host}:{port}" - print(f"\nHyperView is running at {url}") + print(f"\nHyperView is running at {session.url}") session.show(height=height) else: + session.start(background=True) + print(" Press Ctrl+C to stop.\n") + print(f"\nHyperView is running at {session.url}") + if open_browser: session.open_browser() - print(" Press Ctrl+C to stop.\n") - url = f"http://{host}:{port}" - print(f"\nHyperView is running at {url}") - session.start(background=False) + try: + while True: + # Keep the main thread alive so the daemon server thread can run. + time.sleep(0.25) + if session._server_thread is not None and not session._server_thread.is_alive(): + raise RuntimeError("HyperView server stopped unexpectedly.") + except KeyboardInterrupt: + pass + finally: + session.stop() + if session._server_thread is not None: + session._server_thread.join(timeout=2.0) return session From 54a37b362faae50501f6b7df62cfcc6980815ae0 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:13:15 +0100 Subject: [PATCH 09/75] feat(storage): add embedding/selection query helpers --- src/hyperview/storage/backend.py | 48 ++++++++- src/hyperview/storage/lancedb_backend.py | 119 +++++++++++++++++++++-- src/hyperview/storage/memory_backend.py | 69 +++++++++++-- 3 files changed, 219 insertions(+), 17 deletions(-) diff --git a/src/hyperview/storage/backend.py b/src/hyperview/storage/backend.py index 63e2162..663d91c 100644 --- a/src/hyperview/storage/backend.py +++ b/src/hyperview/storage/backend.py @@ -1,13 +1,9 @@ """Abstract storage backend interface for HyperView.""" -from __future__ import annotations - from abc import ABC, abstractmethod from collections.abc import Callable, Iterator -from typing import TYPE_CHECKING -if TYPE_CHECKING: - from hyperview.core.sample import Sample +from hyperview.core.sample import Sample class StorageBackend(ABC): @@ -99,6 +95,48 @@ def get_existing_ids(self, sample_ids: list[str]) -> set[str]: Set of IDs that exist in storage. """ + @abstractmethod + def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: + """Retrieve multiple samples by ID. + + Implementations should preserve the input order when possible. + Missing IDs should be skipped. + """ + + @abstractmethod + def get_visualization_embeddings( + self, + ) -> tuple[list[str], list[str | None], list[list[float]], list[list[float]]]: + """Return all 2D embedding coords needed by the frontend scatter. + + Returns: + (ids, labels, euclidean_xy, hyperbolic_xy) + + Notes: + This should avoid loading heavy fields (thumbnails, high-dim embeddings) + when the backend supports column projection. + """ + + @abstractmethod + def get_lasso_candidates_aabb( + self, + *, + space: str, + x_min: float, + x_max: float, + y_min: float, + y_max: float, + ) -> tuple[list[str], "np.ndarray"]: + """Return candidate (id, xy) rows within an axis-aligned bounding box. + + Args: + space: Projection key (e.g. "euclidean", "hyperbolic"). + x_min/x_max/y_min/y_max: Bounds in the same data space as /api/embeddings. + + Returns: + (ids, coords_xy) where coords_xy has shape (n, 2) float32. + """ + @abstractmethod def close(self) -> None: """Close the storage connection.""" diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py index 8a531fd..b83618b 100644 --- a/src/hyperview/storage/lancedb_backend.py +++ b/src/hyperview/storage/lancedb_backend.py @@ -1,15 +1,13 @@ """LanceDB storage backend for HyperView.""" -from __future__ import annotations - import json from collections.abc import Callable, Iterator from pathlib import Path -from typing import TYPE_CHECKING import lancedb import pyarrow as pa +from hyperview.core.sample import Sample from hyperview.storage.backend import StorageBackend from hyperview.storage.config import StorageConfig, get_default_database_dir from hyperview.storage.schema import ( @@ -19,9 +17,6 @@ sample_to_dict, ) -if TYPE_CHECKING: - from hyperview.core.sample import Sample - class LanceDBBackend(StorageBackend): """LanceDB-based storage backend for HyperView datasets.""" @@ -414,6 +409,118 @@ def query_chunk(chunk: list[str]) -> set[str]: return existing + def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: + """Retrieve multiple samples by ID. + + Uses chunked `id IN (...)` queries to avoid per-ID round trips. + """ + if self._table is None or not sample_ids: + return [] + + rows_by_id: dict[str, dict] = {} + + def query_chunk(chunk: list[str]) -> None: + escaped = [sid.replace("'", "''") for sid in chunk] + id_list = "', '".join(escaped) + results = self._table.search().where(f"id IN ('{id_list}')").to_list() + for r in results: + rid = r.get("id") + if isinstance(rid, str): + rows_by_id[rid] = r + + chunk_size = 500 + for i in range(0, len(sample_ids), chunk_size): + query_chunk(sample_ids[i : i + chunk_size]) + + out: list[Sample] = [] + for sid in sample_ids: + row = rows_by_id.get(sid) + if row is not None: + out.append(dict_to_sample(row)) + return out + + def get_visualization_embeddings( + self, + ) -> tuple[list[str], list[str | None], list[list[float]], list[list[float]]]: + """Return ids/labels and both 2D projections for the scatter.""" + if self._table is None: + return [], [], [], [] + + rows = ( + self._table.search() + .select(["id", "label", "embedding_2d_euclidean", "embedding_2d_hyperbolic"]) + .where("embedding_2d_euclidean IS NOT NULL AND embedding_2d_hyperbolic IS NOT NULL") + .to_list() + ) + + ids: list[str] = [] + labels: list[str | None] = [] + euclidean: list[list[float]] = [] + hyperbolic: list[list[float]] = [] + + for r in rows: + eid = r.get("id") + e2 = r.get("embedding_2d_euclidean") + h2 = r.get("embedding_2d_hyperbolic") + if not isinstance(eid, str) or e2 is None or h2 is None: + continue + ids.append(eid) + labels.append(r.get("label")) + euclidean.append(list(e2)) + hyperbolic.append(list(h2)) + + return ids, labels, euclidean, hyperbolic + + def get_lasso_candidates_aabb( + self, + *, + space: str, + x_min: float, + x_max: float, + y_min: float, + y_max: float, + ) -> tuple[list[str], "np.ndarray"]: + """Return candidate (id, xy) rows within an AABB for a given projection.""" + if self._table is None: + import numpy as np + + return [], np.empty((0, 2), dtype=np.float32) + + if space == "euclidean": + col = "embedding_2d_euclidean" + elif space == "hyperbolic": + col = "embedding_2d_hyperbolic" + else: + raise ValueError(f"Unknown space: {space}") + + # Keep selection universe consistent with /api/embeddings: require both projections. + expr = ( + "embedding_2d_euclidean IS NOT NULL AND " + "embedding_2d_hyperbolic IS NOT NULL AND " + f"{col}[1] >= {x_min} AND {col}[1] <= {x_max} AND " + f"{col}[2] >= {y_min} AND {col}[2] <= {y_max}" + ) + + rows = self._table.search().select(["id", col]).where(expr).to_list() + + ids: list[str] = [] + coords: list[list[float]] = [] + for r in rows: + sid = r.get("id") + xy = r.get(col) + if not isinstance(sid, str) or xy is None: + continue + if len(xy) != 2: + continue + ids.append(sid) + coords.append([float(xy[0]), float(xy[1])]) + + import numpy as np + + if not coords: + return [], np.empty((0, 2), dtype=np.float32) + return ids, np.asarray(coords, dtype=np.float32) + def close(self) -> None: """Close the storage connection.""" return diff --git a/src/hyperview/storage/memory_backend.py b/src/hyperview/storage/memory_backend.py index 05f1935..2dad945 100644 --- a/src/hyperview/storage/memory_backend.py +++ b/src/hyperview/storage/memory_backend.py @@ -1,17 +1,12 @@ """In-memory storage backend for testing and development.""" -from __future__ import annotations - from collections.abc import Callable, Iterator -from typing import TYPE_CHECKING import numpy as np +from hyperview.core.sample import Sample from hyperview.storage.backend import StorageBackend -if TYPE_CHECKING: - from hyperview.core.sample import Sample - class MemoryBackend(StorageBackend): """In-memory storage backend (current behavior, for testing and backwards compatibility).""" @@ -158,6 +153,68 @@ def get_existing_ids(self, sample_ids: list[str]) -> set[str]: """Return set of sample_ids that already exist in storage.""" return {sid for sid in sample_ids if sid in self._samples} + def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: + """Retrieve multiple samples by ID.""" + out: list[Sample] = [] + for sid in sample_ids: + s = self._samples.get(sid) + if s is not None: + out.append(s) + return out + + def get_visualization_embeddings( + self, + ) -> tuple[list[str], list[str | None], list[list[float]], list[list[float]]]: + """Return ids/labels and both 2D projections for the scatter.""" + ids: list[str] = [] + labels: list[str | None] = [] + euclidean: list[list[float]] = [] + hyperbolic: list[list[float]] = [] + + for s in self._samples.values(): + if s.embedding_2d is None or s.embedding_2d_hyperbolic is None: + continue + ids.append(s.id) + labels.append(s.label) + euclidean.append(s.embedding_2d) + hyperbolic.append(s.embedding_2d_hyperbolic) + + return ids, labels, euclidean, hyperbolic + + def get_lasso_candidates_aabb( + self, + *, + space: str, + x_min: float, + x_max: float, + y_min: float, + y_max: float, + ) -> tuple[list[str], np.ndarray]: + """Return candidate (id, xy) rows within an AABB for a given projection.""" + if space not in ("euclidean", "hyperbolic"): + raise ValueError(f"Unknown space: {space}") + + ids: list[str] = [] + coords: list[list[float]] = [] + + for s in self._samples.values(): + # Keep selection universe consistent with /api/embeddings: require both projections. + if s.embedding_2d is None or s.embedding_2d_hyperbolic is None: + continue + + xy = s.embedding_2d if space == "euclidean" else s.embedding_2d_hyperbolic + if xy is None or len(xy) != 2: + continue + + x, y = float(xy[0]), float(xy[1]) + if x < x_min or x > x_max or y < y_min or y > y_max: + continue + + ids.append(s.id) + coords.append([x, y]) + + return ids, np.asarray(coords, dtype=np.float32) + def close(self) -> None: """Close the storage connection (no-op for in-memory).""" return From f0434f403d5b748882906cb5537b52aca4df5580 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:13:37 +0100 Subject: [PATCH 10/75] feat(server): add lasso selection endpoint --- src/hyperview/core/selection.py | 53 +++++++++++++++ src/hyperview/server/app.py | 117 ++++++++++++++++++++++++++------ 2 files changed, 148 insertions(+), 22 deletions(-) create mode 100644 src/hyperview/core/selection.py diff --git a/src/hyperview/core/selection.py b/src/hyperview/core/selection.py new file mode 100644 index 0000000..1dee065 --- /dev/null +++ b/src/hyperview/core/selection.py @@ -0,0 +1,53 @@ +"""Selection / geometry helpers. + +This module contains small, backend-agnostic utilities used by selection endpoints +(e.g. lasso selection over 2D embeddings). +""" + +from __future__ import annotations + +import numpy as np + + +def points_in_polygon(points_xy: np.ndarray, polygon_xy: np.ndarray) -> np.ndarray: + """Vectorized point-in-polygon (even-odd rule / ray casting). + + Args: + points_xy: Array of shape (m, 2) with point coordinates. + polygon_xy: Array of shape (n, 2) with polygon vertices. + + Returns: + Boolean mask of length m, True where point lies inside polygon. + + Notes: + Boundary points may be classified as outside depending on floating point + ties (common for lasso selection tools). + """ + if polygon_xy.shape[0] < 3: + return np.zeros((points_xy.shape[0],), dtype=bool) + + x = points_xy[:, 0] + y = points_xy[:, 1] + poly_x = polygon_xy[:, 0] + poly_y = polygon_xy[:, 1] + + inside = np.zeros((points_xy.shape[0],), dtype=bool) + j = polygon_xy.shape[0] - 1 + + for i in range(polygon_xy.shape[0]): + xi = poly_x[i] + yi = poly_y[i] + xj = poly_x[j] + yj = poly_y[j] + + # Half-open y-interval to avoid double-counting vertices. + intersects = (yi > y) != (yj > y) + + denom = yj - yi + # denom == 0 => intersects is always False; add tiny epsilon to avoid warnings. + x_intersect = (xj - xi) * (y - yi) / (denom + 1e-30) + xi + + inside ^= intersects & (x < x_intersect) + j = i + + return inside diff --git a/src/hyperview/server/app.py b/src/hyperview/server/app.py index d0922b8..21c3655 100644 --- a/src/hyperview/server/app.py +++ b/src/hyperview/server/app.py @@ -1,17 +1,18 @@ """FastAPI application for HyperView.""" -from __future__ import annotations - import os from pathlib import Path from fastapi import FastAPI, HTTPException, Query from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import FileResponse, JSONResponse +from fastapi.responses import JSONResponse from fastapi.staticfiles import StaticFiles from pydantic import BaseModel +import numpy as np + from hyperview.core.dataset import Dataset +from hyperview.core.selection import points_in_polygon # Global dataset reference (set by launch()) _current_dataset: Dataset | None = None @@ -24,6 +25,17 @@ class SelectionRequest(BaseModel): sample_ids: list[str] +class LassoSelectionRequest(BaseModel): + """Request model for lasso selection queries.""" + + space: str + # Polygon vertices in data space, interleaved: [x0, y0, x1, y1, ...] + polygon: list[float] + offset: int = 0 + limit: int = 100 + include_thumbnails: bool = True + + class SampleResponse(BaseModel): """Response model for a sample.""" @@ -171,15 +183,9 @@ async def get_samples_batch(request: SelectionRequest): if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") - samples = [] - for sample_id in request.sample_ids: - try: - sample = _current_dataset[sample_id] - samples.append(sample.to_api_dict(include_thumbnail=True)) - except KeyError: - continue + samples = _current_dataset._storage.get_samples_by_ids(request.sample_ids) - return {"samples": samples} + return {"samples": [s.to_api_dict(include_thumbnail=True) for s in samples]} @app.get("/api/embeddings", response_model=EmbeddingsResponse) async def get_embeddings(): @@ -187,22 +193,17 @@ async def get_embeddings(): if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") - samples = [ - s - for s in _current_dataset.samples - if s.embedding_2d is not None and s.embedding_2d_hyperbolic is not None - ] - - if not samples: + ids, labels, euclidean, hyperbolic = _current_dataset._storage.get_visualization_embeddings() + if not ids: raise HTTPException( status_code=400, detail="No embeddings computed. Call compute_visualization() first." ) return EmbeddingsResponse( - ids=[s.id for s in samples], - labels=[s.label for s in samples], - euclidean=[s.embedding_2d for s in samples], - hyperbolic=[s.embedding_2d_hyperbolic for s in samples], + ids=ids, + labels=labels, + euclidean=euclidean, + hyperbolic=hyperbolic, label_colors=_current_dataset.get_label_colors(), ) @@ -211,6 +212,78 @@ async def sync_selection(request: SelectionRequest): """Sync selection state (for future use).""" return {"status": "ok", "selected": request.sample_ids} + @app.post("/api/selection/lasso") + async def lasso_selection(request: LassoSelectionRequest): + """Compute a lasso selection over the current embeddings. + + Returns a total selected count and a paginated page of selected samples. + + Notes: + - Selection is performed in *data space* (the same coordinates returned + by /api/embeddings). + - For now we use an in-memory scan with a tight AABB prefilter. + """ + if _current_dataset is None: + raise HTTPException(status_code=404, detail="No dataset loaded") + + if request.offset < 0: + raise HTTPException(status_code=400, detail="offset must be >= 0") + if request.limit < 1 or request.limit > 2000: + raise HTTPException(status_code=400, detail="limit must be between 1 and 2000") + + if len(request.polygon) < 6 or len(request.polygon) % 2 != 0: + raise HTTPException( + status_code=400, + detail="polygon must be an even-length list with at least 3 vertices", + ) + + poly = np.asarray(request.polygon, dtype=np.float32).reshape((-1, 2)) + if not np.all(np.isfinite(poly)): + raise HTTPException(status_code=400, detail="polygon must contain only finite numbers") + + # Tight AABB prefilter. + x_min = float(np.min(poly[:, 0])) + x_max = float(np.max(poly[:, 0])) + y_min = float(np.min(poly[:, 1])) + y_max = float(np.max(poly[:, 1])) + + + try: + candidate_ids, candidate_coords = _current_dataset._storage.get_lasso_candidates_aabb( + space=request.space, + x_min=x_min, + x_max=x_max, + y_min=y_min, + y_max=y_max, + ) + except ValueError as e: + raise HTTPException(status_code=400, detail=str(e)) + + if candidate_coords.size == 0: + return {"total": 0, "offset": request.offset, "limit": request.limit, "sample_ids": [], "samples": []} + + inside_mask = points_in_polygon(candidate_coords, poly) + if not np.any(inside_mask): + return {"total": 0, "offset": request.offset, "limit": request.limit, "sample_ids": [], "samples": []} + + selected_ids = [candidate_ids[i] for i in np.flatnonzero(inside_mask)] + total = len(selected_ids) + + start = int(request.offset) + end = int(request.offset + request.limit) + sample_ids = selected_ids[start:end] + + samples = _current_dataset._storage.get_samples_by_ids(sample_ids) + sample_dicts = [s.to_api_dict(include_thumbnail=request.include_thumbnails) for s in samples] + + return { + "total": total, + "offset": request.offset, + "limit": request.limit, + "sample_ids": sample_ids, + "samples": sample_dicts, + } + @app.get("/api/search/similar/{sample_id}", response_model=SimilaritySearchResponse) async def search_similar( sample_id: str, From 4a41540b363bf9aab7ea2e7f49cfd2131687662e Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:15:12 +0100 Subject: [PATCH 11/75] docs: clarify dataset storage location --- docs/datasets.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/datasets.md b/docs/datasets.md index 5454baf..f147fe5 100644 --- a/docs/datasets.md +++ b/docs/datasets.md @@ -12,7 +12,11 @@ dataset = hv.Dataset("my_dataset") dataset = hv.Dataset("my_dataset", persist=False) ``` -**Storage location:** `~/.hyperview/lancedb/` (configurable via `HYPERVIEW_DATABASE_DIR`) +**Storage location:** `~/.hyperview/datasets/` (configurable via `HYPERVIEW_DATABASE_DIR`) + +Internally, each dataset is stored as two Lance tables (directories) inside that folder: +- `hyperview_{dataset_name}.lance/` (samples) +- `hyperview_{dataset_name}_meta.lance/` (metadata like label colors) ## Adding Samples From 856c766aa1ee45de687b5680630293dce96ccf86 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:20:32 +0100 Subject: [PATCH 12/75] feat(frontend): add shadcn/ui foundation with Rerun-inspired dark theme - Add components.json for shadcn/ui configuration - Add cn() utility for conditional class merging - Configure tailwind with HSL CSS variables - Create dark theme inspired by Rerun viewer --- frontend/.eslintrc.json | 3 -- frontend/components.json | 22 ++++++++ frontend/eslint.config.mjs | 22 ++++++++ frontend/src/app/globals.css | 100 +++++++++++++++++++++++------------ frontend/src/lib/utils.ts | 6 +++ frontend/tailwind.config.ts | 62 ++++++++++++++++++---- 6 files changed, 168 insertions(+), 47 deletions(-) delete mode 100644 frontend/.eslintrc.json create mode 100644 frontend/components.json create mode 100644 frontend/eslint.config.mjs create mode 100644 frontend/src/lib/utils.ts diff --git a/frontend/.eslintrc.json b/frontend/.eslintrc.json deleted file mode 100644 index bffb357..0000000 --- a/frontend/.eslintrc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "next/core-web-vitals" -} diff --git a/frontend/components.json b/frontend/components.json new file mode 100644 index 0000000..f826c54 --- /dev/null +++ b/frontend/components.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "registries": {} +} diff --git a/frontend/eslint.config.mjs b/frontend/eslint.config.mjs new file mode 100644 index 0000000..4c89b74 --- /dev/null +++ b/frontend/eslint.config.mjs @@ -0,0 +1,22 @@ +import path from "path"; +import { fileURLToPath } from "url"; + +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// Bridge legacy shareable configs (like `next/core-web-vitals`) into ESLint v9 flat config. +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const config = [ + { + // Mirror Next.js defaults: never lint build artifacts. + ignores: ["**/.next/**", "**/out/**", "**/node_modules/**"], + }, + ...compat.extends("next/core-web-vitals"), +]; + +export default config; diff --git a/frontend/src/app/globals.css b/frontend/src/app/globals.css index b2ce4a8..b25953f 100644 --- a/frontend/src/app/globals.css +++ b/frontend/src/app/globals.css @@ -2,50 +2,82 @@ @tailwind components; @tailwind utilities; -:root { - --background: #0a0a0b; - --surface: #18181b; - --surface-light: #27272a; - --border: #3f3f46; - --primary: #4F46E5; - --primary-light: #818CF8; - --text: #fafafa; - --text-muted: #a1a1aa; -} - -* { - box-sizing: border-box; -} - -body { - background-color: var(--background); - color: var(--text); - margin: 0; - padding: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* Custom scrollbar */ +@layer base { + :root { + /* Rerun-inspired dark theme as default (dark-first) */ + --background: 215 28% 7%; /* #0d1117 */ + --foreground: 213 27% 92%; /* #e6edf3 */ + + --card: 215 21% 11%; /* #161b22 */ + --card-foreground: 213 27% 92%; + + --popover: 215 21% 11%; + --popover-foreground: 213 27% 92%; + + --primary: 212 100% 67%; /* #58a6ff */ + --primary-foreground: 215 28% 7%; + + --secondary: 215 14% 17%; /* #21262d */ + --secondary-foreground: 213 27% 92%; + + --muted: 215 14% 17%; + --muted-foreground: 213 12% 58%; /* #8b949e */ + + --accent: 215 14% 17%; + --accent-foreground: 213 27% 92%; + + --destructive: 0 62% 50%; + --destructive-foreground: 0 0% 98%; + + --border: 215 14% 22%; /* #30363d */ + --input: 215 14% 22%; + --ring: 212 100% 67%; + + --radius: 0.375rem; + + /* Custom Rerun-specific tokens */ + --surface: 215 21% 11%; /* #161b22 */ + --surface-light: 215 14% 17%; /* #21262d */ + --surface-elevated: 215 14% 22%; /* #30363d */ + --border-subtle: 215 14% 17%; + --text: 213 27% 92%; /* #e6edf3 */ + --text-muted: 213 12% 58%; /* #8b949e */ + --text-subtle: 215 10% 46%; /* #6e7681 */ + --accent-cyan: 176 60% 53%; /* #39d3cc */ + --accent-orange: 27 86% 59%; /* #f0883e */ + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } +} + +/* Custom scrollbar - Rerun style */ ::-webkit-scrollbar { - width: 8px; - height: 8px; + width: 6px; + height: 6px; } ::-webkit-scrollbar-track { - background: var(--surface); + background: transparent; } ::-webkit-scrollbar-thumb { - background: var(--border); - border-radius: 4px; + background: hsl(var(--surface-elevated)); + border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { - background: #4d4d4d; + background: hsl(var(--text-subtle)); } /* Hide scrollbar for some elements */ diff --git a/frontend/src/lib/utils.ts b/frontend/src/lib/utils.ts new file mode 100644 index 0000000..bd0c391 --- /dev/null +++ b/frontend/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/frontend/tailwind.config.ts b/frontend/tailwind.config.ts index 7aa3713..9ebc9b5 100644 --- a/frontend/tailwind.config.ts +++ b/frontend/tailwind.config.ts @@ -1,6 +1,7 @@ import type { Config } from "tailwindcss"; export default { + darkMode: ["class"], content: [ "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", "./src/components/**/*.{js,ts,jsx,tsx,mdx}", @@ -9,17 +10,58 @@ export default { theme: { extend: { colors: { - // Dark theme colors (shadcn-style with Indigo primary) - background: "#0a0a0b", - surface: "#18181b", - "surface-light": "#27272a", - border: "#3f3f46", - primary: "#4F46E5", - "primary-light": "#818CF8", - text: "#fafafa", - "text-muted": "#a1a1aa", + // shadcn semantic colors (HSL-based) + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + + // Rerun-specific aliases + surface: "hsl(var(--surface))", + "surface-light": "hsl(var(--surface-light))", + "surface-elevated": "hsl(var(--surface-elevated))", + "border-subtle": "hsl(var(--border-subtle))", + text: "hsl(var(--text))", + "text-muted": "hsl(var(--text-muted))", + "text-subtle": "hsl(var(--text-subtle))", + "accent-cyan": "hsl(var(--accent-cyan))", + "accent-orange": "hsl(var(--accent-orange))", + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", }, }, }, - plugins: [], + plugins: [require("tailwindcss-animate")], } satisfies Config; From ece5d7f02dc857a40e1ce6f518bc3059fb848119 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:20:45 +0100 Subject: [PATCH 13/75] feat(frontend): add shadcn/ui primitive components - Button component with variants - Toggle and ToggleGroup for view mode switching - Resizable panels with drag handle --- frontend/src/components/ui/button.tsx | 57 +++++++++++++++++++ frontend/src/components/ui/resizable.tsx | 45 +++++++++++++++ frontend/src/components/ui/toggle-group.tsx | 61 +++++++++++++++++++++ frontend/src/components/ui/toggle.tsx | 45 +++++++++++++++ 4 files changed, 208 insertions(+) create mode 100644 frontend/src/components/ui/button.tsx create mode 100644 frontend/src/components/ui/resizable.tsx create mode 100644 frontend/src/components/ui/toggle-group.tsx create mode 100644 frontend/src/components/ui/toggle.tsx diff --git a/frontend/src/components/ui/button.tsx b/frontend/src/components/ui/button.tsx new file mode 100644 index 0000000..65d4fcd --- /dev/null +++ b/frontend/src/components/ui/button.tsx @@ -0,0 +1,57 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: + "bg-primary text-primary-foreground shadow hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90", + outline: + "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2", + sm: "h-8 rounded-md px-3 text-xs", + lg: "h-10 rounded-md px-8", + icon: "h-9 w-9", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/frontend/src/components/ui/resizable.tsx b/frontend/src/components/ui/resizable.tsx new file mode 100644 index 0000000..1ef04c0 --- /dev/null +++ b/frontend/src/components/ui/resizable.tsx @@ -0,0 +1,45 @@ +"use client" + +import { GripVertical } from "lucide-react" +import { Group, Panel, Separator } from "react-resizable-panels" + +import { cn } from "@/lib/utils" + +const ResizablePanelGroup = ({ + className, + ...props +}: React.ComponentProps) => ( + +) + +const ResizablePanel = Panel + +const ResizableHandle = ({ + withHandle, + className, + ...props +}: React.ComponentProps & { + withHandle?: boolean +}) => ( + div]:rotate-90", + className + )} + {...props} + > + {withHandle && ( +

+ +
+ )} + +) + +export { ResizablePanelGroup, ResizablePanel, ResizableHandle } diff --git a/frontend/src/components/ui/toggle-group.tsx b/frontend/src/components/ui/toggle-group.tsx new file mode 100644 index 0000000..1c876bb --- /dev/null +++ b/frontend/src/components/ui/toggle-group.tsx @@ -0,0 +1,61 @@ +"use client" + +import * as React from "react" +import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group" +import { type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" +import { toggleVariants } from "@/components/ui/toggle" + +const ToggleGroupContext = React.createContext< + VariantProps +>({ + size: "default", + variant: "default", +}) + +const ToggleGroup = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, variant, size, children, ...props }, ref) => ( + + + {children} + + +)) + +ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName + +const ToggleGroupItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, children, variant, size, ...props }, ref) => { + const context = React.useContext(ToggleGroupContext) + + return ( + + {children} + + ) +}) + +ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName + +export { ToggleGroup, ToggleGroupItem } diff --git a/frontend/src/components/ui/toggle.tsx b/frontend/src/components/ui/toggle.tsx new file mode 100644 index 0000000..e516f21 --- /dev/null +++ b/frontend/src/components/ui/toggle.tsx @@ -0,0 +1,45 @@ +"use client" + +import * as React from "react" +import * as TogglePrimitive from "@radix-ui/react-toggle" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const toggleVariants = cva( + "inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: "bg-transparent", + outline: + "border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary", + }, + size: { + default: "h-9 px-2 min-w-9", + sm: "h-8 px-1.5 min-w-8", + lg: "h-10 px-2.5 min-w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +const Toggle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, variant, size, ...props }, ref) => ( + +)) + +Toggle.displayName = TogglePrimitive.Root.displayName + +export { Toggle, toggleVariants } From ac578b9b8ab496cea6831d8eb0890e2054727a05 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:21:00 +0100 Subject: [PATCH 14/75] feat(frontend): add Panel layout components and refactor Header - Panel and PanelFooter for consistent panel styling - PanelHeader with icon, title, subtitle slots - Custom SVG icons (Grid, Scatter, Logo, Check) - Refactor Header to use new theme and Button component --- frontend/src/components/Header.tsx | 56 +++++++++++-------------- frontend/src/components/Panel.tsx | 42 +++++++++++++++++++ frontend/src/components/PanelHeader.tsx | 37 ++++++++++++++++ frontend/src/components/icons.tsx | 39 +++++++++++++++++ frontend/src/components/index.ts | 3 ++ 5 files changed, 146 insertions(+), 31 deletions(-) create mode 100644 frontend/src/components/Panel.tsx create mode 100644 frontend/src/components/PanelHeader.tsx create mode 100644 frontend/src/components/icons.tsx diff --git a/frontend/src/components/Header.tsx b/frontend/src/components/Header.tsx index 4918db0..9aa44c7 100644 --- a/frontend/src/components/Header.tsx +++ b/frontend/src/components/Header.tsx @@ -1,59 +1,53 @@ "use client"; import { useStore } from "@/store/useStore"; +import { Button } from "@/components/ui/button"; +import { HyperViewLogo } from "./icons"; export function Header() { const { datasetInfo, selectedIds, clearSelection } = useStore(); return ( -
+
{/* Logo and title */} -
-
- - - +
+
+
-
-

HyperView

+
+

HyperView

{datasetInfo && ( -

{datasetInfo.name}

+ + {datasetInfo.name} + )}
{/* Dataset info and actions */} -
+
{datasetInfo && ( -
-
- Samples: - {datasetInfo.num_samples.toLocaleString()} +
+
+ samples + {datasetInfo.num_samples.toLocaleString()}
-
- Labels: - {datasetInfo.labels.length} +
+ labels + {datasetInfo.labels.length}
)} {selectedIds.size > 0 && ( - + Clear ({selectedIds.size}) + )}
diff --git a/frontend/src/components/Panel.tsx b/frontend/src/components/Panel.tsx new file mode 100644 index 0000000..1112dc5 --- /dev/null +++ b/frontend/src/components/Panel.tsx @@ -0,0 +1,42 @@ +"use client"; + +import { ReactNode } from "react"; +import { cn } from "@/lib/utils"; + +interface PanelProps { + children: ReactNode; + className?: string; +} + +/** + * Base panel container with consistent Rerun-style appearance. + */ +export function Panel({ children, className }: PanelProps) { + return ( +
+ {children} +
+ ); +} + +interface PanelFooterProps { + children: ReactNode; + className?: string; +} + +/** + * Panel footer for keyboard shortcuts/hints. + */ +export function PanelFooter({ children, className }: PanelFooterProps) { + return ( +
+ {children} +
+ ); +} diff --git a/frontend/src/components/PanelHeader.tsx b/frontend/src/components/PanelHeader.tsx new file mode 100644 index 0000000..dea1edd --- /dev/null +++ b/frontend/src/components/PanelHeader.tsx @@ -0,0 +1,37 @@ +"use client"; + +import { ReactNode } from "react"; +import { cn } from "@/lib/utils"; + +interface PanelHeaderProps { + icon?: ReactNode; + title: string; + subtitle?: string; + children?: ReactNode; // Toolbar actions slot + className?: string; +} + +/** + * Rerun-style panel header with icon, title, and optional toolbar. + */ +export function PanelHeader({ icon, title, subtitle, children, className }: PanelHeaderProps) { + return ( +
+
+ {icon && ( + {icon} + )} + {title} + {subtitle && ( + {subtitle} + )} +
+ {children && ( +
{children}
+ )} +
+ ); +} diff --git a/frontend/src/components/icons.tsx b/frontend/src/components/icons.tsx new file mode 100644 index 0000000..aa2758a --- /dev/null +++ b/frontend/src/components/icons.tsx @@ -0,0 +1,39 @@ +"use client"; + +/** + * Shared icons for HyperView UI. + * Using inline SVGs for simplicity (no extra icon library dependency). + */ + +export const GridIcon = () => ( + + + + + + +); + +export const ScatterIcon = () => ( + + + + + + + +); + +export const HyperViewLogo = () => ( + + + + + +); + +export const CheckIcon = () => ( + + + +); diff --git a/frontend/src/components/index.ts b/frontend/src/components/index.ts index 1955b11..a36acea 100644 --- a/frontend/src/components/index.ts +++ b/frontend/src/components/index.ts @@ -1,3 +1,6 @@ export { ImageGrid } from "./ImageGrid"; export { ScatterPanel } from "./ScatterPanel"; export { Header } from "./Header"; +export { Panel, PanelFooter } from "./Panel"; +export { PanelHeader } from "./PanelHeader"; +export * from "./icons"; From 3b9bbb7d8b009898ebec77cfb37b0a999f6d99a3 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:21:20 +0100 Subject: [PATCH 15/75] feat(frontend): replace regl-scatterplot with hyper-scatter renderer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove regl-scatterplot and d3-scale dependencies - Add hyper-scatter (local) for WebGL scatter rendering - Add shadcn/ui and resizable panel dependencies - Create useHyperScatter hook for renderer lifecycle - Rewrite ScatterPanel using hyper-scatter with: - Pointer-based pan/zoom/hover interactions - Shift+drag lasso selection with overlay canvas - Euclidean and Poincaré geometry support - Update .gitignore for hyper-scatter submodule - Update next.config.ts transpilePackages --- .gitignore | 4 +- frontend/next.config.ts | 4 + frontend/package-lock.json | 709 ++++++++++++--------- frontend/package.json | 15 +- frontend/src/components/ScatterPanel.tsx | 419 +++--------- frontend/src/components/useHyperScatter.ts | 481 ++++++++++++++ 6 files changed, 1007 insertions(+), 625 deletions(-) create mode 100644 frontend/src/components/useHyperScatter.ts diff --git a/.gitignore b/.gitignore index f943cff..c397cb1 100644 --- a/.gitignore +++ b/.gitignore @@ -43,8 +43,8 @@ build/ *.hf/ .cache/ -# external repo -viz_impl/ +# external repo (https://github.com/HackerRoomAI/hyper-scatter) +hyper-scatter/ # nohup nohup.out diff --git a/frontend/next.config.ts b/frontend/next.config.ts index a255d22..2d9cfbf 100644 --- a/frontend/next.config.ts +++ b/frontend/next.config.ts @@ -1,8 +1,12 @@ import type { NextConfig } from "next"; +import path from "path"; const nextConfig: NextConfig = { output: "export", trailingSlash: true, + // Needed for Turbopack to resolve local linked/file dependencies in a monorepo. + outputFileTracingRoot: path.join(__dirname, ".."), + transpilePackages: ["hyper-scatter"], images: { unoptimized: true, }, diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e1a17b9..02ca465 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,13 +8,20 @@ "name": "hyperview-frontend", "version": "0.1.0", "dependencies": { + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-toggle": "^1.1.10", + "@radix-ui/react-toggle-group": "^1.1.11", "@tanstack/react-virtual": "^3.10.9", - "@types/d3-scale": "^4.0.9", - "d3-scale": "^4.0.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "hyper-scatter": "file:../hyper-scatter", + "lucide-react": "^0.562.0", "next": "^16.0.7", "react": "18.3.1", "react-dom": "18.3.1", - "regl-scatterplot": "^1.9.2", + "react-resizable-panels": "^4.4.1", + "tailwind-merge": "^3.4.0", + "tailwindcss-animate": "^1.0.7", "zustand": "^5.0.1" }, "devDependencies": { @@ -29,11 +36,32 @@ "typescript": "^5.6.3" } }, + "../hyper-scatter": { + "version": "0.1.0", + "devDependencies": { + "@types/node": "^20.10.0", + "puppeteer": "^24.34.0", + "tsx": "^4.7.0", + "typescript": "^5.3.0", + "vite": "^5.0.0" + } + }, + "../viz_impl": { + "name": "hyper-scatter", + "version": "0.1.0", + "extraneous": true, + "devDependencies": { + "@types/node": "^20.10.0", + "puppeteer": "^24.34.0", + "tsx": "^4.7.0", + "typescript": "^5.3.0", + "vite": "^5.0.0" + } + }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -219,12 +247,6 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@flekschas/utils": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/@flekschas/utils/-/utils-0.32.2.tgz", - "integrity": "sha512-RPF5WBXxA3WFKdTTDQS7gl7hd1z6kOMfJKj0p+9TRLJm/vQHvRC2Zt62axSQlbve8a82NtVN96aaGhsx5+ekvQ==", - "license": "MIT" - }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -747,7 +769,6 @@ "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -758,7 +779,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -768,14 +788,12 @@ "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -943,7 +961,6 @@ "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", @@ -957,7 +974,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -967,7 +983,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", @@ -987,6 +1002,330 @@ "node": ">=12.4.0" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", + "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", + "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", + "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.10.tgz", + "integrity": "sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.11.tgz", + "integrity": "sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-toggle": "1.1.10", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -1048,21 +1387,6 @@ "tslib": "^2.4.0" } }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, "node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -1107,7 +1431,6 @@ "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -1117,7 +1440,7 @@ "version": "18.3.7", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", - "dev": true, + "devOptional": true, "license": "MIT", "peerDependencies": { "@types/react": "^18.0.0" @@ -1169,7 +1492,6 @@ "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.48.1", "@typescript-eslint/types": "8.48.1", @@ -1656,7 +1978,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1711,14 +2032,12 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -1732,7 +2051,6 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, "license": "MIT" }, "node_modules/argparse": { @@ -2024,7 +2342,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2048,7 +2365,6 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, "license": "MIT", "dependencies": { "fill-range": "^7.1.1" @@ -2077,7 +2393,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -2156,30 +2471,11 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 6" } }, - "node_modules/camera-2d-simple": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camera-2d-simple/-/camera-2d-simple-3.0.0.tgz", - "integrity": "sha512-hBeuUeerQ2Repi/61PGyFkuJ9jt6IKAny7pjQo2w8/8uZh+RKvNLZQy4xbQeDH8FrlnFxAJDjyM4/yuLdOV5vQ==", - "license": "MIT", - "dependencies": { - "gl-matrix": "~3.3.0" - }, - "peerDependencies": { - "gl-matrix": "~3.3.0" - } - }, - "node_modules/camera-2d-simple/node_modules/gl-matrix": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", - "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==", - "license": "MIT" - }, "node_modules/caniuse-lite": { "version": "1.0.30001759", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", @@ -2221,7 +2517,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, "license": "MIT", "dependencies": { "anymatch": "~3.1.2", @@ -2246,7 +2541,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -2255,12 +2549,33 @@ "node": ">= 6" } }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2285,7 +2600,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -2317,7 +2631,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -2333,88 +2646,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -2551,14 +2782,12 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true, "license": "Apache-2.0" }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, "license": "MIT" }, "node_modules/doctrine": { @@ -2574,19 +2803,6 @@ "node": ">=0.10.0" } }, - "node_modules/dom-2d-camera": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/dom-2d-camera/-/dom-2d-camera-2.2.6.tgz", - "integrity": "sha512-HWfV26qjCfpOHa6X0PI1ZyZDhowk6skEs5f7aOwgewuJSP6IgPcK694ImYIOMGnDYK4vC4/Etsi26WpbJtS2vQ==", - "license": "MIT", - "dependencies": { - "camera-2d-simple": "^3.0.0", - "gl-matrix": "^3.3.0" - }, - "peerDependencies": { - "gl-matrix": "^3.3.0" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2602,12 +2818,6 @@ "node": ">= 0.4" } }, - "node_modules/earcut": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", - "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", - "license": "ISC" - }, "node_modules/electron-to-chromium": { "version": "1.5.265", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.265.tgz", @@ -2828,7 +3038,6 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3002,7 +3211,6 @@ "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.9", @@ -3304,7 +3512,6 @@ "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -3327,7 +3534,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -3408,7 +3614,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -3423,7 +3628,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3540,17 +3744,10 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/gl-matrix": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", - "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", - "license": "MIT" - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.3" @@ -3694,7 +3891,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -3703,6 +3899,10 @@ "node": ">= 0.4" } }, + "node_modules/hyper-scatter": { + "resolved": "../hyper-scatter", + "link": true + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3755,15 +3955,6 @@ "node": ">= 0.4" } }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -3822,7 +4013,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -3875,7 +4065,6 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -3926,7 +4115,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -3972,7 +4160,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -4011,7 +4198,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.12.0" @@ -4215,9 +4401,7 @@ "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, "license": "MIT", - "peer": true, "bin": { "jiti": "bin/jiti.js" } @@ -4339,7 +4523,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, "license": "MIT", "engines": { "node": ">=14" @@ -4352,7 +4535,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, "license": "MIT" }, "node_modules/locate-path": { @@ -4390,6 +4572,15 @@ "loose-envify": "cli.js" } }, + "node_modules/lucide-react": { + "version": "0.562.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz", + "integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -4404,7 +4595,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 8" @@ -4414,7 +4604,6 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, "license": "MIT", "dependencies": { "braces": "^3.0.3", @@ -4458,7 +4647,6 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, "license": "MIT", "dependencies": { "any-promise": "^1.0.0", @@ -4598,7 +4786,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4618,7 +4805,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4628,7 +4814,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -4852,7 +5037,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, "license": "MIT" }, "node_modules/picocolors": { @@ -4865,7 +5049,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, "license": "MIT", "engines": { "node": ">=8.6" @@ -4878,7 +5061,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4888,7 +5070,6 @@ "version": "4.0.7", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", - "dev": true, "license": "MIT", "engines": { "node": ">= 6" @@ -4908,7 +5089,6 @@ "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4924,7 +5104,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -4938,7 +5117,6 @@ "version": "15.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.0.0", @@ -4956,7 +5134,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4982,7 +5159,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "dev": true, "funding": [ { "type": "opencollective", @@ -5025,7 +5201,6 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -5051,7 +5226,6 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -5065,7 +5239,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, "license": "MIT" }, "node_modules/prelude-ls": { @@ -5090,12 +5263,6 @@ "react-is": "^16.13.1" } }, - "node_modules/pub-sub-es": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pub-sub-es/-/pub-sub-es-3.0.0.tgz", - "integrity": "sha512-pf+6yCPsOfvDMru2LnsqdKSN8XQyF5HZzmEoKBvjMk4TILMUQiq1vxI6rC92T9ErY06sLXBmC1p7JGNFVB1pUQ==", - "license": "MIT" - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5110,7 +5277,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, "funding": [ { "type": "github", @@ -5132,7 +5298,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -5145,7 +5310,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -5161,11 +5325,20 @@ "dev": true, "license": "MIT" }, + "node_modules/react-resizable-panels": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-4.4.1.tgz", + "integrity": "sha512-dpM9oI6rGlAq7VYDeafSRA1JmkJv8aNuKySR+tZLQQLfaeqTnQLSM52EcoI/QdowzsjVUCk6jViKS0xHWITVRQ==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, "license": "MIT", "dependencies": { "pify": "^2.3.0" @@ -5175,7 +5348,6 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -5228,53 +5400,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/regl/-/regl-2.1.1.tgz", - "integrity": "sha512-+IOGrxl3FZ8ZM9ixCWQZzFRiRn7Rzn9bu3iFHwg/yz4tlOUQgbO4PHLgG+1ZT60zcIV8tief6Qrmyl8qcoJP0g==", - "license": "MIT" - }, - "node_modules/regl-line": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/regl-line/-/regl-line-1.1.1.tgz", - "integrity": "sha512-IKcyiZq+nQg7x3mEmxf9kImM9CzmEyZDhCCfas2xVpsoiDJFEyILsuocD1G4dSXA/nC39za9OBw4FzYEgWNiUg==", - "license": "MIT", - "dependencies": { - "gl-matrix": "^3.3.0", - "regl": "^2.1.0" - }, - "peerDependencies": { - "regl": "^2.1.0" - } - }, - "node_modules/regl-scatterplot": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/regl-scatterplot/-/regl-scatterplot-1.14.1.tgz", - "integrity": "sha512-2WMrP6+pgoeckPpWrkHEqPpSJKjR3/QgNGBqctRCbzofsxDx3nDQh7541KnTH3LheGiZEofSJAoctdySgZG+tg==", - "license": "MIT", - "dependencies": { - "@flekschas/utils": "^0.32.2", - "dom-2d-camera": "^2.2.6", - "earcut": "^3.0.1", - "gl-matrix": "~3.4.3", - "pub-sub-es": "~3.0.0", - "regl": "~2.1.1", - "regl-line": "~1.1.1" - }, - "engines": { - "node": ">=20.0.0", - "npm": ">=7.0.0" - }, - "peerDependencies": { - "pub-sub-es": "~3.0.0", - "regl": "~2.1.1" - } - }, "node_modules/resolve": { "version": "1.22.11", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.16.1", @@ -5315,7 +5444,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -5326,7 +5454,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, "funding": [ { "type": "github", @@ -5809,7 +5936,6 @@ "version": "3.35.1", "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", @@ -5845,7 +5971,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5854,11 +5979,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tailwind-merge": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", + "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, "node_modules/tailwindcss": { "version": "3.4.18", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz", "integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==", - "dev": true, "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -5892,11 +6026,19 @@ "node": ">=14.0.0" } }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, "node_modules/tailwindcss/node_modules/fast-glob": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5913,7 +6055,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, "license": "ISC", "dependencies": { "is-glob": "^4.0.1" @@ -5926,7 +6067,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, "license": "MIT", "dependencies": { "any-promise": "^1.0.0" @@ -5936,7 +6076,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, "license": "MIT", "dependencies": { "thenify": ">= 3.1.0 < 4" @@ -5949,7 +6088,6 @@ "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -5966,7 +6104,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -5984,9 +6121,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -5998,7 +6133,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, "license": "MIT", "dependencies": { "is-number": "^7.0.0" @@ -6024,7 +6158,6 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, "license": "Apache-2.0" }, "node_modules/tsconfig-paths": { @@ -6143,7 +6276,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -6258,7 +6390,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, "license": "MIT" }, "node_modules/which": { diff --git a/frontend/package.json b/frontend/package.json index 1c63b14..e0e9ef1 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,17 +6,24 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint", + "lint": "eslint .", "export": "next build && cp -r out/* ../src/hyperview/server/static/" }, "dependencies": { + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-toggle": "^1.1.10", + "@radix-ui/react-toggle-group": "^1.1.11", "@tanstack/react-virtual": "^3.10.9", - "@types/d3-scale": "^4.0.9", - "d3-scale": "^4.0.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.562.0", "next": "^16.0.7", "react": "18.3.1", "react-dom": "18.3.1", - "regl-scatterplot": "^1.9.2", + "react-resizable-panels": "^4.4.1", + "tailwind-merge": "^3.4.0", + "tailwindcss-animate": "^1.0.7", + "hyper-scatter": "file:../hyper-scatter", "zustand": "^5.0.1" }, "devDependencies": { diff --git a/frontend/src/components/ScatterPanel.tsx b/frontend/src/components/ScatterPanel.tsx index 177fea2..0eb1e1f 100644 --- a/frontend/src/components/ScatterPanel.tsx +++ b/frontend/src/components/ScatterPanel.tsx @@ -1,314 +1,100 @@ "use client"; -import { useEffect, useRef, useCallback, useState } from "react"; -import { scaleLinear } from "d3-scale"; +import { useMemo } from "react"; import { useStore } from "@/store/useStore"; -import type { ViewMode } from "@/types"; - -// Color utility -function hexToRgb(hex: string): [number, number, number] { - const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); - if (result) { - return [ - parseInt(result[1], 16) / 255, - parseInt(result[2], 16) / 255, - parseInt(result[3], 16) / 255, - ]; - } - return [0.5, 0.5, 0.5]; -} - -// Default colors for points without labels -const DEFAULT_COLORS = [ - "#e6194b", "#3cb44b", "#ffe119", "#4363d8", "#f58231", - "#911eb4", "#46f0f0", "#f032e6", "#bcf60c", "#fabebe", - "#008080", "#e6beff", "#9a6324", "#fffac8", "#800000", -]; +import { Panel, PanelFooter } from "./Panel"; +import { PanelHeader } from "./PanelHeader"; +import { ScatterIcon } from "./icons"; +import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; +import { type ScatterLabelsInfo, useHyperScatter } from "./useHyperScatter"; interface ScatterPanelProps { className?: string; } export function ScatterPanel({ className = "" }: ScatterPanelProps) { - const canvasRef = useRef(null); - const containerRef = useRef(null); - const svgGroupRef = useRef(null); - const scatterplotRef = useRef(null); - const [isInitialized, setIsInitialized] = useState(false); - const { embeddings, viewMode, setViewMode, selectedIds, setSelectedIds, + beginLassoSelection, hoveredId, setHoveredId, } = useStore(); - // Sync SVG transform - const syncSvg = useCallback((event: any) => { - const { xScale, yScale } = event; + const labelsInfo = useMemo(() => { + if (!embeddings) return null; - if (svgGroupRef.current && xScale && yScale) { - // Calculate transform based on the actual scales used by the scatterplot - // The SVG is defined in [-1, 1] coordinate space (r=1 circle at 0,0) - // We want to map [-1, 1] to screen coordinates. - - // xScale(0) is the screen x-coordinate of the origin - // xScale(1) is the screen x-coordinate of x=1 - // So the scaling factor for x is xScale(1) - xScale(0) - - const scaleX = xScale(1) - xScale(0); - const scaleY = yScale(1) - yScale(0); - const translateX = xScale(0); - const translateY = yScale(0); + // Stable label order for palette and legend. + const uniqueLabels = [...new Set(embeddings.labels.map((l) => l || "undefined"))]; - svgGroupRef.current.setAttribute( - "transform", - `matrix(${scaleX}, 0, 0, ${scaleY}, ${translateX}, ${translateY})` - ); + const labelToCategory: Record = {}; + for (let i = 0; i < uniqueLabels.length; i++) { + labelToCategory[uniqueLabels[i]] = i; } - }, []); - - // Initialize scatterplot - useEffect(() => { - if (!canvasRef.current || !containerRef.current || isInitialized) return; - - let mounted = true; - - const initScatterplot = async () => { - try { - const createScatterplot = (await import("regl-scatterplot")).default; - - if (!mounted || !canvasRef.current || !containerRef.current) return; - - const { width, height } = containerRef.current.getBoundingClientRect(); - - // Initialize D3 scales for synchronization - // Our data is normalized to [-1, 1] - const xScale = scaleLinear().domain([-1, 1]); - const yScale = scaleLinear().domain([-1, 1]); - - const scatterplot = createScatterplot({ - canvas: canvasRef.current, - width, - height, - xScale, - yScale, - pointSize: 4, - pointSizeSelected: 8, - opacity: 0.8, - opacityInactiveMax: 0.2, - lassoColor: [0.31, 0.27, 0.90, 1], // Indigo primary #4F46E5 - lassoMinDelay: 10, - lassoMinDist: 2, - showReticle: true, - reticleColor: [1, 1, 1, 0.5], - colorBy: 'category', - pointColor: DEFAULT_COLORS, - }); - - // Handle view changes to sync SVG - scatterplot.subscribe("view", syncSvg); - // Initial sync - const currentXScale = scatterplot.get("xScale"); - const currentYScale = scatterplot.get("yScale"); - if (currentXScale && currentYScale) { - syncSvg({ xScale: currentXScale, yScale: currentYScale }); - } - - // Handle lasso selection - scatterplot.subscribe("select", ({ points }: { points: number[] }) => { - if (points.length > 0) { - const currentEmbeddings = useStore.getState().embeddings; - if (currentEmbeddings) { - const selectedSampleIds = new Set( - points.map((idx) => currentEmbeddings.ids[idx]) - ); - // Mark this as a lasso selection - useStore.getState().setSelectedIds(selectedSampleIds, true); - } - } - }); - - // Handle deselection - scatterplot.subscribe("deselect", () => { - useStore.getState().setSelectedIds(new Set(), false); - }); - - // Handle point hover - scatterplot.subscribe( - "pointOver", - (pointIndex: number) => { - const currentEmbeddings = useStore.getState().embeddings; - if (currentEmbeddings && pointIndex >= 0) { - setHoveredId(currentEmbeddings.ids[pointIndex]); - } - } - ); - - scatterplot.subscribe("pointOut", () => { - setHoveredId(null); - }); - - scatterplotRef.current = scatterplot; - setIsInitialized(true); - } catch (error) { - console.error("Failed to initialize scatterplot:", error); - } - }; - - initScatterplot(); - - return () => { - if (scatterplotRef.current) { - scatterplotRef.current.destroy(); - scatterplotRef.current = null; - setIsInitialized(false); - } - }; - }, [syncSvg]); - - // Update data when embeddings or viewMode changes - useEffect(() => { - if (!scatterplotRef.current || !embeddings) return; - - const coords = viewMode === "euclidean" ? embeddings.euclidean : embeddings.hyperbolic; - - // If switching to hyperbolic, try to sync SVG immediately - if (viewMode === "hyperbolic") { - // Small timeout to ensure SVG is rendered - setTimeout(() => { - if (scatterplotRef.current) { - const xScale = scatterplotRef.current.get("xScale"); - const yScale = scatterplotRef.current.get("yScale"); - if (xScale && yScale) { - syncSvg({ xScale, yScale }); - } - } - }, 0); + const categories = new Uint16Array(embeddings.labels.length); + for (let i = 0; i < embeddings.labels.length; i++) { + const key = embeddings.labels[i] || "undefined"; + categories[i] = labelToCategory[key] ?? 0; } - // Build unique categories for color mapping - // Handle nulls by converting to "undefined" - const uniqueLabels = [...new Set(embeddings.labels.map((l) => l || "undefined"))]; - - const labelToCategory: Record = {}; - uniqueLabels.forEach((label, idx) => { - labelToCategory[label] = idx; - }); - - // Build category array (integer indices for each point) - const categories = embeddings.labels.map((label) => { - const key = label || "undefined"; - return labelToCategory[key]; - }); - - // Build color palette from label colors - const colorPalette = uniqueLabels.map((label) => { - if (label === "undefined") return "#008080"; // Dark teal for undefined + const palette = uniqueLabels.map((label) => { + if (label === "undefined") return "#008080"; return embeddings.label_colors[label] || "#808080"; }); - // Set the color palette first - if (colorPalette.length > 0) { - scatterplotRef.current.set({ pointColor: colorPalette }); - } - - scatterplotRef.current.draw({ - x: coords.map((c) => c[0]), - y: coords.map((c) => c[1]), - category: categories, - }); - - // Reset view to fit new points - scatterplotRef.current.reset(); - - // Try to sync again after draw - if (viewMode === "hyperbolic") { - setTimeout(() => { - if (scatterplotRef.current) { - const xScale = scatterplotRef.current.get("xScale"); - const yScale = scatterplotRef.current.get("yScale"); - if (xScale && yScale) { - syncSvg({ xScale, yScale }); - } - } - }, 100); - } - }, [embeddings, viewMode, isInitialized, syncSvg]); - - // Sync selection from store to scatterplot - useEffect(() => { - if (!scatterplotRef.current || !embeddings) return; - - const selectedIndices = Array.from(selectedIds) - .map((id) => embeddings.ids.indexOf(id)) - .filter((idx) => idx !== -1); - - scatterplotRef.current.select(selectedIndices, { preventEvent: true }); - }, [selectedIds, embeddings, isInitialized]); + return { uniqueLabels, categories, palette }; + }, [embeddings]); - // Handle resize - useEffect(() => { - if (!containerRef.current || !scatterplotRef.current) return; - - const resizeObserver = new ResizeObserver((entries) => { - for (const entry of entries) { - const { width, height } = entry.contentRect; - if (width > 0 && height > 0 && scatterplotRef.current) { - scatterplotRef.current.set({ width, height }); - } - } - }); - - resizeObserver.observe(containerRef.current); - return () => resizeObserver.disconnect(); - }, [isInitialized]); + const { + canvasRef, + overlayCanvasRef, + containerRef, + handlePointerDown, + handlePointerMove, + handlePointerUp, + handlePointerLeave, + handleDoubleClick, + } = useHyperScatter({ + embeddings, + viewMode, + labelsInfo, + selectedIds, + hoveredId, + setSelectedIds, + beginLassoSelection, + setHoveredId, + }); - // Get unique labels for legend - const uniqueLabels = embeddings - ? [...new Set(embeddings.labels.map((l) => l || "undefined"))] - : []; + const uniqueLabels = labelsInfo?.uniqueLabels ?? []; return ( -
- {/* Header */} -
-
- Embeddings - - {/* View mode toggle */} -
- - -
-
- - - {embeddings ? `${embeddings.ids.length} points` : "Loading..."} - -
+ + } + title="Embeddings" + subtitle={embeddings ? `${embeddings.ids.length} points` : "Loading..."} + > + {/* View mode toggle using shadcn ToggleGroup */} + val && setViewMode(val as "euclidean" | "hyperbolic")} + variant="outline" + size="sm" + className="h-6" + > + + Euclidean + + + Hyperbolic + + + {/* Main content area */}
@@ -318,85 +104,58 @@ export function ScatterPanel({ className = "" }: ScatterPanelProps) { ref={canvasRef} className="absolute inset-0" style={{ zIndex: 1 }} + onPointerDown={handlePointerDown} + onPointerMove={handlePointerMove} + onPointerUp={handlePointerUp} + onPointerCancel={handlePointerUp} + onPointerLeave={handlePointerLeave} + onDoubleClick={handleDoubleClick} /> - {/* Poincaré disk boundary for hyperbolic mode */} - {viewMode === "hyperbolic" && ( - - - {/* Main Boundary Circle - scaled to match data (max r ≈ 0.9) */} - - - {/* Grid Circles - adjusted for 0.65 hyperbolic scaling factor */} - {/* After scaling: d=1 => r≈0.316, d=2 => r≈0.569, d=3 => r≈0.748 */} - - - - - {/* Radial Lines - scaled to boundary */} - - - {/* Diagonals */} - - - - - )} + {/* Lasso overlay (screen-space) */} + {/* Loading overlay */} {!embeddings && ( -
-
Loading embeddings...
+
+
Loading embeddings...
)}
{/* Legend */} {uniqueLabels.length > 0 && ( -
-
Labels
+
+
Labels
{uniqueLabels.slice(0, 20).map((label) => (
- + {label}
))} {uniqueLabels.length > 20 && ( -
- +{uniqueLabels.length - 20} more -
+
+{uniqueLabels.length - 20} more
)}
)}
- {/* Instructions */} -
- - Shift+drag to lasso select • Scroll to zoom • Drag to pan - -
-
+ + ⇧+drag lasso • scroll zoom • drag pan + + ); } diff --git a/frontend/src/components/useHyperScatter.ts b/frontend/src/components/useHyperScatter.ts new file mode 100644 index 0000000..131b829 --- /dev/null +++ b/frontend/src/components/useHyperScatter.ts @@ -0,0 +1,481 @@ +import type React from "react"; +import { useCallback, useEffect, useMemo, useRef } from "react"; + +import type { EmbeddingsData, ViewMode } from "@/types"; +import type { Dataset, GeometryMode, Modifiers, Renderer } from "hyper-scatter"; + +type HyperScatterModule = typeof import("hyper-scatter"); + +export interface ScatterLabelsInfo { + uniqueLabels: string[]; + categories: Uint16Array; + palette: string[]; +} + +const MAX_LASSO_VERTS = 512; + +function capInterleavedXY(points: ArrayLike, maxVerts: number): number[] { + const n = Math.floor(points.length / 2); + if (n <= maxVerts) return Array.from(points as ArrayLike); + + const out = new Array(maxVerts * 2); + for (let i = 0; i < maxVerts; i++) { + const src = Math.floor((i * n) / maxVerts); + out[i * 2] = points[src * 2]; + out[i * 2 + 1] = points[src * 2 + 1]; + } + return out; +} + +interface UseHyperScatterArgs { + embeddings: EmbeddingsData | null; + viewMode: ViewMode; + labelsInfo: ScatterLabelsInfo | null; + selectedIds: Set; + hoveredId: string | null; + setSelectedIds: (ids: Set, isLasso?: boolean) => void; + beginLassoSelection: (query: { viewMode: ViewMode; polygon: number[] }) => void; + setHoveredId: (id: string | null) => void; +} + +function toModifiers(e: { shiftKey: boolean; ctrlKey: boolean; altKey: boolean; metaKey: boolean }): Modifiers { + return { + shift: e.shiftKey, + ctrl: e.ctrlKey, + alt: e.altKey, + meta: e.metaKey, + }; +} + +function clearOverlay(canvas: HTMLCanvasElement | null): void { + if (!canvas) return; + const ctx = canvas.getContext("2d"); + if (!ctx) return; + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.clearRect(0, 0, canvas.width, canvas.height); +} + +function drawLassoOverlay(canvas: HTMLCanvasElement | null, points: number[]): void { + if (!canvas) return; + const ctx = canvas.getContext("2d"); + if (!ctx) return; + + clearOverlay(canvas); + if (points.length < 6) return; + + ctx.save(); + ctx.lineWidth = 2; + ctx.strokeStyle = "rgba(79,70,229,0.9)"; // indigo-ish + ctx.fillStyle = "rgba(79,70,229,0.15)"; + + ctx.beginPath(); + ctx.moveTo(points[0], points[1]); + for (let i = 2; i < points.length; i += 2) { + ctx.lineTo(points[i], points[i + 1]); + } + ctx.closePath(); + ctx.fill(); + ctx.stroke(); + ctx.restore(); +} + +function viewModeToGeometry(mode: ViewMode): GeometryMode { + return mode === "euclidean" ? "euclidean" : "poincare"; +} + +export function useHyperScatter({ + embeddings, + viewMode, + labelsInfo, + selectedIds, + hoveredId, + setSelectedIds, + beginLassoSelection, + setHoveredId, +}: UseHyperScatterArgs) { + const canvasRef = useRef(null); + const overlayCanvasRef = useRef(null); + const containerRef = useRef(null); + + const rendererRef = useRef(null); + + const rafPendingRef = useRef(false); + + // Interaction state (refs to avoid rerender churn) + const isPanningRef = useRef(false); + const isLassoingRef = useRef(false); + const lastPointerXRef = useRef(0); + const lastPointerYRef = useRef(0); + const lassoPointsRef = useRef([]); + + const hoveredIndexRef = useRef(-1); + + const idToIndex = useMemo(() => { + if (!embeddings) return null; + const m = new Map(); + for (let i = 0; i < embeddings.ids.length; i++) { + m.set(embeddings.ids[i], i); + } + return m; + }, [embeddings]); + + const requestRender = useCallback(() => { + if (rafPendingRef.current) return; + rafPendingRef.current = true; + + requestAnimationFrame(() => { + rafPendingRef.current = false; + const renderer = rendererRef.current; + if (!renderer) return; + + renderer.render(); + + if (isLassoingRef.current) { + drawLassoOverlay(overlayCanvasRef.current, lassoPointsRef.current); + } + }); + }, []); + + const getCanvasPos = useCallback((e: { clientX: number; clientY: number }) => { + const canvas = canvasRef.current; + if (!canvas) return { x: 0, y: 0 }; + const rect = canvas.getBoundingClientRect(); + return { + x: e.clientX - rect.left, + y: e.clientY - rect.top, + }; + }, []); + + const stopInteraction = useCallback(() => { + isPanningRef.current = false; + isLassoingRef.current = false; + lassoPointsRef.current = []; + clearOverlay(overlayCanvasRef.current); + }, []); + + // Initialize renderer when embeddings/viewMode change. + useEffect(() => { + if (!embeddings || !labelsInfo) return; + if (!canvasRef.current || !containerRef.current) return; + + let cancelled = false; + + const init = async () => { + try { + const viz = (await import("hyper-scatter")) as HyperScatterModule; + if (cancelled) return; + + const container = containerRef.current; + const canvas = canvasRef.current; + if (!container || !canvas) return; + + // Destroy existing renderer (if any) + if (rendererRef.current) { + rendererRef.current.destroy(); + rendererRef.current = null; + } + + const rect = container.getBoundingClientRect(); + const width = Math.floor(rect.width); + const height = Math.floor(rect.height); + if (overlayCanvasRef.current) { + overlayCanvasRef.current.width = Math.max(1, width); + overlayCanvasRef.current.height = Math.max(1, height); + overlayCanvasRef.current.style.width = `${width}px`; + overlayCanvasRef.current.style.height = `${height}px`; + clearOverlay(overlayCanvasRef.current); + } + + const coords = viewMode === "euclidean" ? embeddings.euclidean : embeddings.hyperbolic; + const positions = new Float32Array(coords.length * 2); + for (let i = 0; i < coords.length; i++) { + positions[i * 2] = coords[i][0]; + positions[i * 2 + 1] = coords[i][1]; + } + + const geometry = viewModeToGeometry(viewMode); + const dataset: Dataset = viz.createDataset(geometry, positions, labelsInfo.categories); + + const renderer: Renderer = + viewMode === "euclidean" ? new viz.EuclideanWebGLCandidate() : new viz.HyperbolicWebGLCandidate(); + + // Match HyperView theme: --card is #161b22 + const backgroundColor = "#161b22"; + + renderer.init(canvas, { + width, + height, + devicePixelRatio: window.devicePixelRatio, + pointRadius: 4, + colors: labelsInfo.palette, + backgroundColor, + }); + + renderer.setDataset(dataset); + rendererRef.current = renderer; + + hoveredIndexRef.current = -1; + renderer.setHovered(-1); + + requestRender(); + } catch (err) { + console.error("Failed to initialize hyper-scatter renderer:", err); + } + }; + + init(); + + return () => { + cancelled = true; + stopInteraction(); + if (rendererRef.current) { + rendererRef.current.destroy(); + rendererRef.current = null; + } + }; + }, [embeddings, labelsInfo, requestRender, stopInteraction, viewMode]); + + // Store -> renderer sync + useEffect(() => { + const renderer = rendererRef.current; + if (!renderer || !embeddings || !idToIndex) return; + + const indices = new Set(); + for (const id of selectedIds) { + const idx = idToIndex.get(id); + if (typeof idx === "number") indices.add(idx); + } + + renderer.setSelection(indices); + + const hoveredIdx = hoveredId ? (idToIndex.get(hoveredId) ?? -1) : -1; + renderer.setHovered(hoveredIdx); + hoveredIndexRef.current = hoveredIdx; + + requestRender(); + }, [embeddings, hoveredId, idToIndex, requestRender, selectedIds]); + + // Resize handling + useEffect(() => { + const container = containerRef.current; + if (!container) return; + + const resize = () => { + const rect = container.getBoundingClientRect(); + const width = Math.floor(rect.width); + const height = Math.floor(rect.height); + if (!(width > 0) || !(height > 0)) return; + + if (overlayCanvasRef.current) { + overlayCanvasRef.current.width = Math.max(1, width); + overlayCanvasRef.current.height = Math.max(1, height); + overlayCanvasRef.current.style.width = `${width}px`; + overlayCanvasRef.current.style.height = `${height}px`; + } + + const renderer = rendererRef.current; + if (renderer) { + renderer.resize(width, height); + requestRender(); + } + }; + + resize(); + + const ro = new ResizeObserver(resize); + ro.observe(container); + return () => ro.disconnect(); + }, [requestRender]); + + // Wheel zoom (native listener so we can set passive:false) + useEffect(() => { + const canvas = canvasRef.current; + if (!canvas) return; + + const onWheel = (e: WheelEvent) => { + const renderer = rendererRef.current; + if (!renderer) return; + e.preventDefault(); + + const pos = getCanvasPos(e); + const delta = -e.deltaY / 100; + renderer.zoom(pos.x, pos.y, delta, toModifiers(e)); + requestRender(); + }; + + canvas.addEventListener("wheel", onWheel, { passive: false }); + return () => canvas.removeEventListener("wheel", onWheel as any); + }, [getCanvasPos, requestRender]); + + // Pointer interactions + const handlePointerDown = useCallback( + (e: React.PointerEvent) => { + const renderer = rendererRef.current; + if (!renderer) return; + + // Left button only + if (typeof e.button === "number" && e.button !== 0) return; + + const pos = getCanvasPos(e); + lastPointerXRef.current = pos.x; + lastPointerYRef.current = pos.y; + + // Shift-drag = lasso, otherwise pan. + if (e.shiftKey) { + isLassoingRef.current = true; + isPanningRef.current = false; + lassoPointsRef.current = [pos.x, pos.y]; + drawLassoOverlay(overlayCanvasRef.current, lassoPointsRef.current); + } else { + isPanningRef.current = true; + isLassoingRef.current = false; + } + + try { + e.currentTarget.setPointerCapture(e.pointerId); + } catch { + // ignore + } + + e.preventDefault(); + }, + [getCanvasPos] + ); + + const handlePointerMove = useCallback( + (e: React.PointerEvent) => { + const renderer = rendererRef.current; + if (!renderer) return; + + const pos = getCanvasPos(e); + + if (isPanningRef.current) { + const dx = pos.x - lastPointerXRef.current; + const dy = pos.y - lastPointerYRef.current; + lastPointerXRef.current = pos.x; + lastPointerYRef.current = pos.y; + + renderer.pan(dx, dy, toModifiers(e)); + requestRender(); + return; + } + + if (isLassoingRef.current) { + const pts = lassoPointsRef.current; + const lastX = pts[pts.length - 2] ?? pos.x; + const lastY = pts[pts.length - 1] ?? pos.y; + const ddx = pos.x - lastX; + const ddy = pos.y - lastY; + const distSq = ddx * ddx + ddy * ddy; + + // Sample at ~2px spacing + if (distSq >= 4) { + pts.push(pos.x, pos.y); + drawLassoOverlay(overlayCanvasRef.current, pts); + } + return; + } + + // Hover + const hit = renderer.hitTest(pos.x, pos.y); + const nextIndex = hit ? hit.index : -1; + if (nextIndex === hoveredIndexRef.current) return; + hoveredIndexRef.current = nextIndex; + renderer.setHovered(nextIndex); + + if (!embeddings) return; + if (nextIndex >= 0 && nextIndex < embeddings.ids.length) { + setHoveredId(embeddings.ids[nextIndex]); + } else { + setHoveredId(null); + } + + requestRender(); + }, + [embeddings, getCanvasPos, requestRender, setHoveredId] + ); + + const handlePointerUp = useCallback( + async (_e: React.PointerEvent) => { + const renderer = rendererRef.current; + if (!renderer || !embeddings) { + stopInteraction(); + return; + } + + if (isLassoingRef.current) { + const pts = lassoPointsRef.current; + stopInteraction(); + + if (pts.length >= 6) { + try { + const polyline = new Float32Array(pts); + const result = renderer.lassoSelect(polyline); + + // Enter server-driven lasso mode by sending a data-space polygon. + // Backend selection runs in the same coordinate system returned by /api/embeddings. + const dataCoords = result.geometry?.coords; + if (!dataCoords || dataCoords.length < 6) return; + + // Clear any existing manual selection highlights immediately. + renderer.setSelection(new Set()); + + // Cap vertex count to keep request payload + backend runtime bounded. + const polygon = capInterleavedXY(dataCoords, MAX_LASSO_VERTS); + if (polygon.length < 6) return; + + beginLassoSelection({ viewMode, polygon }); + } catch (err) { + console.error("Lasso selection failed:", err); + } + } + + requestRender(); + return; + } + + stopInteraction(); + requestRender(); + }, + [beginLassoSelection, embeddings, requestRender, stopInteraction, viewMode] + ); + + const handlePointerLeave = useCallback( + (_e: React.PointerEvent) => { + const renderer = rendererRef.current; + if (renderer) { + hoveredIndexRef.current = -1; + setHoveredId(null); + renderer.setHovered(-1); + requestRender(); + } + stopInteraction(); + }, + [requestRender, setHoveredId, stopInteraction] + ); + + const handleDoubleClick = useCallback( + (_e: React.MouseEvent) => { + const renderer = rendererRef.current; + if (!renderer) return; + stopInteraction(); + + renderer.setSelection(new Set()); + setSelectedIds(new Set()); + + requestRender(); + }, + [requestRender, setSelectedIds, stopInteraction] + ); + + return { + canvasRef, + overlayCanvasRef, + containerRef, + handlePointerDown, + handlePointerMove, + handlePointerUp, + handlePointerLeave, + handleDoubleClick, + }; +} From 2a419fc7a2726f2d261cc1af935f5193956c37e0 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 01:21:33 +0100 Subject: [PATCH 16/75] feat(frontend): add server-driven lasso selection and resizable layout - Add fetchLassoSelection API for backend polygon queries - Add lasso state to store (lassoQuery, lassoSamples, lassoTotal) - Refactor ImageGrid to display lasso-filtered samples - Replace manual resize logic with react-resizable-panels - Add lasso data fetching with pagination support in page.tsx --- frontend/src/app/page.tsx | 204 +++++++++++++++++--------- frontend/src/components/ImageGrid.tsx | 102 ++++++------- frontend/src/lib/api.ts | 38 ++++- frontend/src/store/useStore.ts | 94 +++++++++--- 4 files changed, 284 insertions(+), 154 deletions(-) diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index 43f11b9..d3d2bf6 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -1,9 +1,20 @@ "use client"; -import { useEffect, useCallback, useState, useRef } from "react"; +import { useEffect, useCallback, useState } from "react"; +import { + ResizablePanelGroup, + ResizablePanel, + ResizableHandle, +} from "@/components/ui/resizable"; import { Header, ImageGrid, ScatterPanel } from "@/components"; import { useStore } from "@/store/useStore"; -import { fetchDataset, fetchSamples, fetchEmbeddings, fetchSamplesBatch } from "@/lib/api"; +import { + fetchDataset, + fetchSamples, + fetchEmbeddings, + fetchSamplesBatch, + fetchLassoSelection, +} from "@/lib/api"; const SAMPLES_PER_PAGE = 100; @@ -21,14 +32,18 @@ export default function Home() { error, setError, selectedIds, + isLassoSelection, + lassoQuery, + lassoSamples, + lassoTotal, + lassoIsLoading, + setLassoResults, } = useStore(); const [loadingMore, setLoadingMore] = useState(false); - const [leftPanelWidth, setLeftPanelWidth] = useState(50); // percentage - const containerRef = useRef(null); - const isDraggingRef = useRef(false); - // Initial data load + // Initial data load - runs once on mount + // Store setters are stable and don't need to be in deps useEffect(() => { const loadData = async () => { setIsLoading(true); @@ -54,11 +69,13 @@ export default function Home() { }; loadData(); + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); // Fetch selected samples that aren't already loaded useEffect(() => { const fetchSelectedSamples = async () => { + if (isLassoSelection) return; if (selectedIds.size === 0) return; // Find IDs that are selected but not in our samples array @@ -76,11 +93,67 @@ export default function Home() { }; fetchSelectedSamples(); - }, [selectedIds, samples, addSamplesIfMissing]); + }, [selectedIds, samples, addSamplesIfMissing, isLassoSelection]); + + // Fetch initial lasso selection page when a new lasso query begins. + useEffect(() => { + if (!isLassoSelection) return; + if (!lassoQuery) return; + if (!lassoIsLoading) return; + + const abort = new AbortController(); + + const run = async () => { + try { + const res = await fetchLassoSelection({ + viewMode: lassoQuery.viewMode, + polygon: lassoQuery.polygon, + offset: 0, + limit: SAMPLES_PER_PAGE, + signal: abort.signal, + }); + if (abort.signal.aborted) return; + setLassoResults(res.samples, res.total, false); + } catch (err) { + // Ignore cancellation. + if ((err as any)?.name === "AbortError") return; + console.error("Failed to fetch lasso selection:", err); + setLassoResults([], 0, false); + } + }; + + run(); + + return () => abort.abort(); + }, [isLassoSelection, lassoIsLoading, lassoQuery, setLassoResults]); // Load more samples const loadMore = useCallback(async () => { - if (loadingMore || samples.length >= totalSamples) return; + if (loadingMore) return; + + if (isLassoSelection) { + if (!lassoQuery) return; + if (lassoIsLoading) return; + if (!lassoIsLoading && lassoSamples.length >= lassoTotal) return; + + setLoadingMore(true); + try { + const res = await fetchLassoSelection({ + viewMode: lassoQuery.viewMode, + polygon: lassoQuery.polygon, + offset: lassoSamples.length, + limit: SAMPLES_PER_PAGE, + }); + setLassoResults(res.samples, res.total, true); + } catch (err) { + console.error("Failed to load more lasso samples:", err); + } finally { + setLoadingMore(false); + } + return; + } + + if (samples.length >= totalSamples) return; setLoadingMore(true); try { @@ -91,42 +164,22 @@ export default function Home() { } finally { setLoadingMore(false); } - }, [samples.length, totalSamples, loadingMore, appendSamples]); - - // Handle resizing - useEffect(() => { - const handleMouseMove = (e: MouseEvent) => { - if (!isDraggingRef.current || !containerRef.current) return; - - const container = containerRef.current; - const containerRect = container.getBoundingClientRect(); - const newWidth = ((e.clientX - containerRect.left) / containerRect.width) * 100; - - // Constrain between 20% and 80% - const clampedWidth = Math.min(Math.max(newWidth, 20), 80); - setLeftPanelWidth(clampedWidth); - }; - - const handleMouseUp = () => { - isDraggingRef.current = false; - document.body.style.cursor = ""; - document.body.style.userSelect = ""; - }; - - document.addEventListener("mousemove", handleMouseMove); - document.addEventListener("mouseup", handleMouseUp); - - return () => { - document.removeEventListener("mousemove", handleMouseMove); - document.removeEventListener("mouseup", handleMouseUp); - }; - }, []); + }, [ + loadingMore, + appendSamples, + isLassoSelection, + lassoIsLoading, + lassoQuery, + lassoSamples.length, + lassoTotal, + samples.length, + totalSamples, + setLassoResults, + ]); - const handleMouseDown = () => { - isDraggingRef.current = true; - document.body.style.cursor = "col-resize"; - document.body.style.userSelect = "none"; - }; + const displayedSamples = isLassoSelection ? lassoSamples : samples; + const displayedTotal = isLassoSelection ? lassoTotal : totalSamples; + const displayedHasMore = displayedSamples.length < displayedTotal; if (error) { return ( @@ -134,9 +187,9 @@ export default function Home() {
-
Error
-
{error}
-

+

Error
+
{error}
+

Make sure the HyperView backend is running on port 5151.

@@ -152,7 +205,7 @@ export default function Home() {
-
Loading dataset...
+
Loading dataset...
@@ -163,33 +216,42 @@ export default function Home() {
- {/* Main content - two panels */} -
- {/* Left panel - Image Grid */} -
+ - -
+ {/* Left panel - Image Grid */} + + + - {/* Resizable divider */} -
+ {/* Resizable handle with grip */} + - {/* Right panel - Scatter Plot */} -
- -
+ {/* Right panel - Scatter Plot */} + + + +
); diff --git a/frontend/src/components/ImageGrid.tsx b/frontend/src/components/ImageGrid.tsx index f5bc25e..6a59523 100644 --- a/frontend/src/components/ImageGrid.tsx +++ b/frontend/src/components/ImageGrid.tsx @@ -1,8 +1,11 @@ "use client"; -import { useCallback, useEffect, useRef, useMemo, useState } from "react"; +import { useCallback, useEffect, useRef, useState } from "react"; import { useVirtualizer } from "@tanstack/react-virtual"; import { useStore } from "@/store/useStore"; +import { Panel, PanelFooter } from "./Panel"; +import { PanelHeader } from "./PanelHeader"; +import { GridIcon, CheckIcon } from "./icons"; import type { Sample } from "@/types"; interface ImageGridProps { @@ -17,7 +20,15 @@ const MIN_ITEM_WIDTH = 200; // Minimum width for each image export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { const containerRef = useRef(null); - const { selectedIds, isLassoSelection, toggleSelection, addToSelection, setHoveredId, hoveredId } = useStore(); + const { + selectedIds, + isLassoSelection, + lassoTotal, + toggleSelection, + addToSelection, + setHoveredId, + hoveredId, + } = useStore(); const [columnCount, setColumnCount] = useState(4); // Calculate column count based on container width @@ -43,28 +54,17 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { return () => resizeObserver.disconnect(); }, []); - // Filter samples based on selection - const filteredSamples = useMemo(() => { - // Only filter (hide non-selected) when it's a lasso selection - if (isLassoSelection && selectedIds.size > 0) { - return samples.filter((sample) => selectedIds.has(sample.id)); - } - - // Otherwise, show all samples - return samples; - }, [samples, selectedIds, isLassoSelection]); - - // Calculate rows from filtered samples - const rowCount = Math.ceil(filteredSamples.length / columnCount); + // In lasso mode, `samples` is already the selected-page list. + const rowCount = Math.ceil(samples.length / columnCount); // Create stable row keys based on the sample IDs in each row const getRowKey = useCallback( (index: number) => { const startIndex = index * columnCount; - const rowSamples = filteredSamples.slice(startIndex, startIndex + columnCount); + const rowSamples = samples.slice(startIndex, startIndex + columnCount); return rowSamples.map((s) => s.id).join("-") || `row-${index}`; }, - [filteredSamples, columnCount] + [samples, columnCount] ); const virtualizer = useVirtualizer({ @@ -127,24 +127,18 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { const items = virtualizer.getVirtualItems(); return ( -
- {/* Header */} -
-
- Samples - - {selectedIds.size > 0 ? `${selectedIds.size} selected` : `${filteredSamples.length} items`} - -
- {selectedIds.size > 0 && ( - - )} -
+ + } + title="Samples" + subtitle={ + isLassoSelection + ? `${lassoTotal} selected` + : selectedIds.size > 0 + ? `${selectedIds.size} selected` + : `${samples.length} items` + } + /> {/* Grid Container */}
@@ -158,7 +152,7 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { {items.map((virtualRow) => { const rowIndex = virtualRow.index; const startIndex = rowIndex * columnCount; - const rowSamples = filteredSamples.slice(startIndex, startIndex + columnCount); + const rowSamples = samples.slice(startIndex, startIndex + columnCount); return (
{rowSamples.map((sample) => { - const isSelected = selectedIds.has(sample.id); + const isSelected = isLassoSelection ? true : selectedIds.has(sample.id); const isHovered = hoveredId === sample.id; return ( @@ -184,14 +178,15 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { relative flex-1 rounded-md overflow-hidden cursor-pointer transition-all duration-150 ease-out ${isSelected ? "ring-2 ring-primary" : ""} - ${isHovered ? "ring-2 ring-primary-light" : ""} + ${isHovered ? "ring-2 ring-primary/50" : ""} `} onClick={(e) => handleClick(sample, e)} onMouseEnter={() => setHoveredId(sample.id)} onMouseLeave={() => setHoveredId(null)} > - {/* Image */} + {/* Image - using native img for base64 data (Next Image doesn't support this) */} {sample.thumbnail ? ( + // eslint-disable-next-line @next/next/no-img-element {sample.filename} ) : ( -
- No image +
+ No image
)} @@ -222,19 +217,7 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { {/* Selection indicator */} {isSelected && (
- - - +
)}
@@ -250,12 +233,9 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) {
- {/* Instructions footer */} -
- - Click to select • Cmd/Ctrl+click to multi-select • Shift+click for range - -
-
+ + Click • ⌘+click multi • ⇧+click range + + ); } diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index c923cd3..082fed0 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1,4 +1,4 @@ -import type { DatasetInfo, EmbeddingsData, Sample, SamplesResponse } from "@/types"; +import type { DatasetInfo, EmbeddingsData, Sample, SamplesResponse, ViewMode } from "@/types"; const API_BASE = process.env.NODE_ENV === "development" ? "http://127.0.0.1:5151" : ""; @@ -60,3 +60,39 @@ export async function fetchSamplesBatch(sampleIds: string[]): Promise const data = await res.json(); return data.samples; } + +export interface LassoSelectionResponse { + total: number; + offset: number; + limit: number; + sample_ids: string[]; + samples: Sample[]; +} + +export async function fetchLassoSelection(args: { + viewMode: ViewMode; + polygon: ArrayLike; + offset?: number; + limit?: number; + includeThumbnails?: boolean; + signal?: AbortSignal; +}): Promise { + const res = await fetch(`${API_BASE}/api/selection/lasso`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + space: args.viewMode === "euclidean" ? "euclidean" : "hyperbolic", + polygon: Array.from(args.polygon), + offset: args.offset ?? 0, + limit: args.limit ?? 100, + include_thumbnails: args.includeThumbnails ?? true, + }), + signal: args.signal, + }); + if (!res.ok) { + throw new Error(`Failed to fetch lasso selection: ${res.statusText}`); + } + return res.json(); +} diff --git a/frontend/src/store/useStore.ts b/frontend/src/store/useStore.ts index 59abb54..4549b9c 100644 --- a/frontend/src/store/useStore.ts +++ b/frontend/src/store/useStore.ts @@ -24,11 +24,20 @@ interface AppState { // Selection selectedIds: Set; isLassoSelection: boolean; - setSelectedIds: (ids: Set, isLasso?: boolean) => void; + setSelectedIds: (ids: Set) => void; toggleSelection: (id: string) => void; addToSelection: (ids: string[]) => void; clearSelection: () => void; + // Lasso selection (server-driven) + lassoQuery: { viewMode: ViewMode; polygon: number[] } | null; + lassoSamples: Sample[]; + lassoTotal: number; + lassoIsLoading: boolean; + beginLassoSelection: (query: { viewMode: ViewMode; polygon: number[] }) => void; + setLassoResults: (samples: Sample[], total: number, append?: boolean) => void; + clearLassoSelection: () => void; + // Hover state hoveredId: string | null; setHoveredId: (id: string | null) => void; @@ -40,14 +49,6 @@ interface AppState { // Error state error: string | null; setError: (error: string | null) => void; - - // Label filter - filterLabel: string | null; - setFilterLabel: (label: string | null) => void; - - // UI state - showLabels: boolean; - setShowLabels: (show: boolean) => void; } export const useStore = create((set, get) => ({ @@ -82,7 +83,15 @@ export const useStore = create((set, get) => ({ // Selection selectedIds: new Set(), isLassoSelection: false, - setSelectedIds: (ids, isLasso = false) => set({ selectedIds: ids, isLassoSelection: isLasso }), + setSelectedIds: (ids) => + set({ + selectedIds: ids, + isLassoSelection: false, + lassoQuery: null, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: false, + }), toggleSelection: (id) => set((state) => { const newSet = new Set(state.selectedIds); @@ -92,16 +101,67 @@ export const useStore = create((set, get) => ({ newSet.add(id); } // Manual selection from image grid, not lasso - return { selectedIds: newSet, isLassoSelection: false }; + return { + selectedIds: newSet, + isLassoSelection: false, + lassoQuery: null, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: false, + }; }), addToSelection: (ids) => set((state) => { const newSet = new Set(state.selectedIds); ids.forEach((id) => newSet.add(id)); // Manual selection from image grid, not lasso - return { selectedIds: newSet, isLassoSelection: false }; + return { + selectedIds: newSet, + isLassoSelection: false, + lassoQuery: null, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: false, + }; + }), + clearSelection: () => + set({ + selectedIds: new Set(), + isLassoSelection: false, + lassoQuery: null, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: false, + }), + + // Lasso selection (server-driven) + lassoQuery: null, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: false, + beginLassoSelection: (query) => + set({ + isLassoSelection: true, + selectedIds: new Set(), + lassoQuery: query, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: true, + }), + setLassoResults: (samples, total, append = false) => + set((state) => ({ + lassoSamples: append ? [...state.lassoSamples, ...samples] : samples, + lassoTotal: total, + lassoIsLoading: false, + })), + clearLassoSelection: () => + set({ + isLassoSelection: false, + lassoQuery: null, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: false, }), - clearSelection: () => set({ selectedIds: new Set(), isLassoSelection: false }), // Hover hoveredId: null, @@ -114,12 +174,4 @@ export const useStore = create((set, get) => ({ // Error error: null, setError: (error) => set({ error }), - - // Label filter - filterLabel: null, - setFilterLabel: (label) => set({ filterLabel: label }), - - // UI state - showLabels: true, - setShowLabels: (show) => set({ showLabels: show }), })); From 25e54e29c1bce69be5f312e8419b1cb0d41294ea Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 15 Jan 2026 18:00:40 +0100 Subject: [PATCH 17/75] Use npm hyper-scatter dependency --- frontend/package-lock.json | 3 ++- frontend/package.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 02ca465..c7de89d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -14,7 +14,7 @@ "@tanstack/react-virtual": "^3.10.9", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "hyper-scatter": "file:../hyper-scatter", + "hyper-scatter": "^0.1.0", "lucide-react": "^0.562.0", "next": "^16.0.7", "react": "18.3.1", @@ -38,6 +38,7 @@ }, "../hyper-scatter": { "version": "0.1.0", + "license": "MIT", "devDependencies": { "@types/node": "^20.10.0", "puppeteer": "^24.34.0", diff --git a/frontend/package.json b/frontend/package.json index e0e9ef1..5b0c4ee 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -23,7 +23,7 @@ "react-resizable-panels": "^4.4.1", "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", - "hyper-scatter": "file:../hyper-scatter", + "hyper-scatter": "^0.1.0", "zustand": "^5.0.1" }, "devDependencies": { From 57e2029e3c6182035f711986f61d3fe7072b2803 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 16 Jan 2026 17:24:50 +0100 Subject: [PATCH 18/75] Colab fix: update dependencies, add colab docs and notebook --- .gitignore | 4 + README.md | 4 + docs/colab.md | 62 +++ frontend/next-env.d.ts | 2 +- notebooks/HyperView | 1 + notebooks/colab_smoke_test.ipynb | 128 +++++ pyproject.toml | 2 + scripts/export_frontend.sh | 17 +- src/hyperview/api.py | 72 ++- src/hyperview/server/static/404.html | 2 +- src/hyperview/server/static/404/index.html | 2 +- .../server/static/__next.__PAGE__.txt | 8 +- src/hyperview/server/static/__next._full.txt | 20 +- src/hyperview/server/static/__next._head.txt | 6 +- src/hyperview/server/static/__next._index.txt | 8 +- src/hyperview/server/static/__next._tree.txt | 4 +- .../_buildManifest.js | 0 .../_clientMiddlewareManifest.json | 0 .../_ssgManifest.js | 0 .../_next/static/chunks/08706ac30fdde8df.js | 9 + .../_next/static/chunks/10c3a2ade180023c.js | 1 + .../_next/static/chunks/118bac1f0e1f8b45.js | 4 + .../_next/static/chunks/19d0d66700a996ca.css | 1 - .../_next/static/chunks/3686d57edf1023fb.js | 301 ++++++++++++ .../_next/static/chunks/42879de7b8087bc9.js | 1 - .../_next/static/chunks/48c5753aca325314.js | 1 + .../_next/static/chunks/5a5ec5690ca4254a.js | 2 + .../_next/static/chunks/5f8e11d2476d2135.js | 1 - .../_next/static/chunks/61d99a6d918f5559.css | 1 + .../_next/static/chunks/640b68f22e2796e6.js | 1 - .../_next/static/chunks/6dd1fc7c515721e7.js | 448 ------------------ .../_next/static/chunks/71c75872eed19356.js | 9 - .../_next/static/chunks/8061f65b291e8aa9.css | 1 - .../_next/static/chunks/89b87b2c88f720ee.js | 9 - .../_next/static/chunks/9367d18603aececf.js | 2 - .../_next/static/chunks/a7dc7061f42f51e9.js | 4 - .../_next/static/chunks/b3cfdd883c96563c.js | 1 + .../_next/static/chunks/c19ebe11de4d2730.js | 4 - ...af43c.js => turbopack-ce3658797261f2db.js} | 2 +- .../chunks/turbopack-f85f95889fd14d61.js | 3 - .../lAwT6e3uaMqLUXxndbn_f/_buildManifest.js | 15 - .../_clientMiddlewareManifest.json | 1 - .../lAwT6e3uaMqLUXxndbn_f/_ssgManifest.js | 1 - .../server/static/_not-found/__next._full.txt | 16 +- .../server/static/_not-found/__next._head.txt | 6 +- .../static/_not-found/__next._index.txt | 8 +- .../_not-found/__next._not-found.__PAGE__.txt | 4 +- .../static/_not-found/__next._not-found.txt | 6 +- .../server/static/_not-found/__next._tree.txt | 4 +- .../server/static/_not-found/index.html | 2 +- .../server/static/_not-found/index.txt | 16 +- src/hyperview/server/static/index.html | 2 +- src/hyperview/server/static/index.txt | 20 +- 53 files changed, 673 insertions(+), 576 deletions(-) create mode 100644 docs/colab.md create mode 160000 notebooks/HyperView create mode 100644 notebooks/colab_smoke_test.ipynb rename src/hyperview/server/static/_next/static/{bTv_hKoV745UqFKtrs1rd => Oel6IrA8CsSgwXZSPI61A}/_buildManifest.js (100%) rename src/hyperview/server/static/_next/static/{bTv_hKoV745UqFKtrs1rd => Oel6IrA8CsSgwXZSPI61A}/_clientMiddlewareManifest.json (100%) rename src/hyperview/server/static/_next/static/{bTv_hKoV745UqFKtrs1rd => Oel6IrA8CsSgwXZSPI61A}/_ssgManifest.js (100%) create mode 100644 src/hyperview/server/static/_next/static/chunks/08706ac30fdde8df.js create mode 100644 src/hyperview/server/static/_next/static/chunks/10c3a2ade180023c.js create mode 100644 src/hyperview/server/static/_next/static/chunks/118bac1f0e1f8b45.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/19d0d66700a996ca.css create mode 100644 src/hyperview/server/static/_next/static/chunks/3686d57edf1023fb.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/42879de7b8087bc9.js create mode 100644 src/hyperview/server/static/_next/static/chunks/48c5753aca325314.js create mode 100644 src/hyperview/server/static/_next/static/chunks/5a5ec5690ca4254a.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/5f8e11d2476d2135.js create mode 100644 src/hyperview/server/static/_next/static/chunks/61d99a6d918f5559.css delete mode 100644 src/hyperview/server/static/_next/static/chunks/640b68f22e2796e6.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/6dd1fc7c515721e7.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/71c75872eed19356.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/8061f65b291e8aa9.css delete mode 100644 src/hyperview/server/static/_next/static/chunks/89b87b2c88f720ee.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/9367d18603aececf.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/a7dc7061f42f51e9.js create mode 100644 src/hyperview/server/static/_next/static/chunks/b3cfdd883c96563c.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/c19ebe11de4d2730.js rename src/hyperview/server/static/_next/static/chunks/{turbopack-11ec5967a08af43c.js => turbopack-ce3658797261f2db.js} (98%) delete mode 100644 src/hyperview/server/static/_next/static/chunks/turbopack-f85f95889fd14d61.js delete mode 100644 src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_buildManifest.js delete mode 100644 src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_clientMiddlewareManifest.json delete mode 100644 src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_ssgManifest.js diff --git a/.gitignore b/.gitignore index c397cb1..2961cdd 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,10 @@ frontend/node_modules/ frontend/.next/ frontend/out/ +# Bundled frontend in Python package (built with scripts/export_frontend.sh) +# Not ignored - needed for pip install from git / sdist +# src/hyperview/server/static/ + # Python package build dist/ build/ diff --git a/README.md b/README.md index 8b11d54..eff96f8 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,10 @@ dataset.compute_visualization() hv.launch(dataset) # Opens http://127.0.0.1:5151 ``` +### Google Colab + +See [docs/colab.md](docs/colab.md) for a fast Colab smoke test and notebook-friendly launch behavior. + ### Save and Load Datasets ```python diff --git a/docs/colab.md b/docs/colab.md new file mode 100644 index 0000000..ed5ac25 --- /dev/null +++ b/docs/colab.md @@ -0,0 +1,62 @@ +# Running HyperView in Google Colab + +Colab notebooks run on a remote VM, so you **can’t** open `http://127.0.0.1:` directly from your local browser. + +HyperView detects Colab and shows an **“Open HyperView in a new tab”** button that opens a same-site blank tab and embeds the proxied app URL in a full-page iframe (this avoids known issues with opening the proxied URL as a top-level page due to browser cookie partitioning). + +## Quick smoke test (no model downloads) + +This smoke test creates a tiny synthetic dataset with random images + precomputed 2D coordinates, so you can validate the UI and the “open in new tab” flow without running CLIP/UMAP. + +### 1) Install HyperView + +```bash +!pip install -q uv +!git clone https://github.com/HackerRoomAI/HyperView.git +%cd HyperView +!uv pip install -e . +``` + +### 2) Create a synthetic dataset and launch + +```python +import numpy as np +import hyperview as hv +from hyperview.core.sample import SampleFromArray + +dataset = hv.Dataset("colab_smoke", persist=False) + +rng = np.random.default_rng(0) +num_samples = 200 + +for i in range(num_samples): + # Random 64x64 RGB image + img = (rng.random((64, 64, 3)) * 255).astype(np.uint8) + + sample = SampleFromArray.from_array( + id=f"s{i}", + image_array=img, + label=f"class_{i % 10}", + metadata={"i": i}, + ) + + # Precomputed 2D Euclidean projection + sample.embedding_2d = [float(rng.normal()), float(rng.normal())] + + # Precomputed 2D hyperbolic projection (inside unit disk) + r = float(rng.random() * 0.95) + theta = float(rng.random() * 2 * np.pi) + sample.embedding_2d_hyperbolic = [float(r * np.cos(theta)), float(r * np.sin(theta))] + + dataset.add_sample(sample) + +hv.launch(dataset, port=5151) +``` + +Click **“Open HyperView in a new tab”**. + +If your browser blocks popups, HyperView will fall back to an inline iframe view inside the notebook output. + +## Full demo (real embeddings) + +If you want the full pipeline (download images, compute CLIP embeddings, run UMAP, etc.), use the demo flow described in the project README. diff --git a/frontend/next-env.d.ts b/frontend/next-env.d.ts index c4b7818..9edff1c 100644 --- a/frontend/next-env.d.ts +++ b/frontend/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/dev/types/routes.d.ts"; +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/notebooks/HyperView b/notebooks/HyperView new file mode 160000 index 0000000..490b90c --- /dev/null +++ b/notebooks/HyperView @@ -0,0 +1 @@ +Subproject commit 490b90cb51e83d8cafd90de9fd437cac9aa38d05 diff --git a/notebooks/colab_smoke_test.ipynb b/notebooks/colab_smoke_test.ipynb new file mode 100644 index 0000000..85a1ce0 --- /dev/null +++ b/notebooks/colab_smoke_test.ipynb @@ -0,0 +1,128 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "47ee06e6", + "metadata": {}, + "source": [ + "# HyperView — Colab Smoke Test\n", + "\n", + "This notebook verifies that HyperView can launch inside Google Colab and open the UI in a new browser tab.\n", + "\n", + "The smoke test uses a synthetic dataset (random images + precomputed 2D coordinates), so it does not download models or run embedding computation." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "945a1017", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "zsh:1: command not found: pip\n", + "Cloning into 'HyperView'...\n", + "remote: Enumerating objects: 577, done.\u001b[K\n", + "remote: Counting objects: 100% (577/577), done.\u001b[K\n", + "remote: Compressing objects: 100% (328/328), done.\u001b[K\n", + "remote: Total 577 (delta 240), reused 518 (delta 193), pack-reused 0 (from 0)\u001b[K\n", + "Receiving objects: 100% (577/577), 4.29 MiB | 8.76 MiB/s, done.\n", + "Resolving deltas: 100% (240/240), done.\n", + "/Users/matin/hyperview_org/HyperView/notebooks/HyperView\n", + "\u001b[2mUsing Python 3.12.8 environment at: /Users/matin/hyperview_org/HyperView/.venv\u001b[0m\n", + "\u001b[2K\u001b[1m\u001b[31merror\u001b[39m\u001b[0m: /Users/matin/hyperview_org/HyperView/notebooks/HyperView does not appear to be a Python project, as neither `pyproject.toml` nor `setup.py` are present in the directory\n" + ] + } + ], + "source": [ + "!pip install -q uv\n", + "!git clone https://github.com/HackerRoomAI/HyperView.git\n", + "%cd HyperView\n", + "!uv pip install -e ." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "58b82256", + "metadata": {}, + "outputs": [ + { + "ename": "IndentationError", + "evalue": "unexpected indent (api.py, line 173)", + "output_type": "error", + "traceback": [ + "Traceback \u001b[36m(most recent call last)\u001b[39m:\n", + " File \u001b[92m~/hyperview_org/HyperView/.venv/lib/python3.12/site-packages/IPython/core/interactiveshell.py:3701\u001b[39m in \u001b[95mrun_code\u001b[39m\n exec(code_obj, self.user_global_ns, self.user_ns)\n", + " Cell \u001b[92mIn[2]\u001b[39m\u001b[92m, line 2\u001b[39m\n import hyperview as hv\n", + "\u001b[36m \u001b[39m\u001b[36mFile \u001b[39m\u001b[32m~/hyperview_org/HyperView/src/hyperview/__init__.py:3\u001b[39m\n\u001b[31m \u001b[39m\u001b[31mfrom hyperview.api import Dataset, launch\u001b[39m\n", + " \u001b[36mFile \u001b[39m\u001b[32m~/hyperview_org/HyperView/src/hyperview/api.py:173\u001b[39m\n\u001b[31m \u001b[39m\u001b[31mif _is_colab():\u001b[39m\n ^\n\u001b[31mIndentationError\u001b[39m\u001b[31m:\u001b[39m unexpected indent\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "import hyperview as hv\n", + "from hyperview.core.sample import SampleFromArray\n", + "\n", + "dataset = hv.Dataset(\"colab_smoke\", persist=False)\n", + "\n", + "rng = np.random.default_rng(0)\n", + "num_samples = 200\n", + "\n", + "for i in range(num_samples):\n", + " img = (rng.random((64, 64, 3)) * 255).astype(np.uint8)\n", + "\n", + " sample = SampleFromArray.from_array(\n", + " id=f\"s{i}\",\n", + " image_array=img,\n", + " label=f\"class_{i % 10}\",\n", + " metadata={\"i\": i},\n", + " )\n", + "\n", + " # Precomputed 2D Euclidean projection\n", + " sample.embedding_2d = [float(rng.normal()), float(rng.normal())]\n", + "\n", + " # Precomputed 2D hyperbolic projection (inside unit disk)\n", + " r = float(rng.random() * 0.95)\n", + " theta = float(rng.random() * 2 * np.pi)\n", + " sample.embedding_2d_hyperbolic = [float(r * np.cos(theta)), float(r * np.sin(theta))]\n", + "\n", + " dataset.add_sample(sample)\n", + "\n", + "hv.launch(dataset, port=5151)" + ] + }, + { + "cell_type": "markdown", + "id": "b1cb3148", + "metadata": {}, + "source": [ + "If your browser blocks popups, click the button again or use the inline fallback shown in the cell output." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/pyproject.toml b/pyproject.toml index b306a82..3ba8546 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -62,6 +62,8 @@ build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/hyperview"] +# Include frontend static assets (pre-built before packaging) +artifacts = ["src/hyperview/server/static/**"] [tool.hatch.build.targets.sdist] include = [ diff --git a/scripts/export_frontend.sh b/scripts/export_frontend.sh index cca765f..dd1cc37 100755 --- a/scripts/export_frontend.sh +++ b/scripts/export_frontend.sh @@ -6,14 +6,25 @@ set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" FRONTEND_DIR="$PROJECT_ROOT/frontend" +HYPER_SCATTER_DIR="$PROJECT_ROOT/hyper-scatter" STATIC_DIR="$PROJECT_ROOT/src/hyperview/server/static" +# Build hyper-scatter library if it's a local checkout +if [ -d "$HYPER_SCATTER_DIR" ] && [ -f "$HYPER_SCATTER_DIR/package.json" ]; then + echo "Building hyper-scatter library..." + cd "$HYPER_SCATTER_DIR" + if [ ! -d "node_modules" ]; then + npm install + fi + npm run build:lib +fi + echo "Building frontend..." cd "$FRONTEND_DIR" # Install dependencies if needed if [ ! -d "node_modules" ]; then - echo "Installing dependencies..." + echo "Installing frontend dependencies..." npm install fi @@ -26,7 +37,9 @@ rm -rf "$STATIC_DIR" mkdir -p "$STATIC_DIR" cp -r out/* "$STATIC_DIR/" -echo "Frontend exported to $STATIC_DIR" +echo "" +echo "✅ Frontend exported to $STATIC_DIR" +echo "" echo "To test, run:" echo " cd $PROJECT_ROOT" echo " uv run hyperview demo" diff --git a/src/hyperview/api.py b/src/hyperview/api.py index 7017e6a..9f570d1 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -1,6 +1,7 @@ """Public API for HyperView.""" import json +import os import socket import threading import time @@ -158,11 +159,51 @@ def stop(self): self._server.should_exit = True def show(self, height: int = 800): - """Display the visualizer in a notebook.""" + """Display the visualizer in a notebook. + + In Google Colab, notebook kernels cannot be accessed via localhost. + Colab exposes kernel ports through a proxy URL (see + `google.colab.kernel.proxyPort`). This renders a link to the proxied URL + that opens in a new tab. + + In other notebook environments, it renders a clickable link to the local + URL and a best-effort JavaScript auto-open. + """ + if _is_colab(): + try: + from google.colab.output import eval_js # type: ignore[import-not-found] + from IPython.display import HTML, display + + proxy_url = eval_js(f"google.colab.kernel.proxyPort({self.port})") + app_url = str(proxy_url).rstrip("/") + "/" + + display( + HTML( + "

HyperView is running in Colab. " + f"" + "Open HyperView in a new tab.

" + ) + ) + display(HTML(f"

{app_url}

")) + return + except Exception: + # Fall through to the generic notebook behavior. + pass + + # Default: open in a new browser tab (works well for Jupyter). try: - from IPython.display import IFrame, display + from IPython.display import HTML, Javascript, display + + display( + HTML( + "

HyperView is running. " + f"Open in a new tab." + "

" + ) + ) - display(IFrame(self.url, width="100%", height=height)) + # Best-effort auto-open. Some browsers may block popups. + display(Javascript(f'window.open("{self.url}", "_blank");')) except ImportError: print(f"IPython not installed. Please visit {self.url} in your browser.") @@ -203,11 +244,22 @@ def launch( if notebook is None: notebook = _is_notebook() + if _is_colab() and host == "127.0.0.1": + # Colab port forwarding/proxying is most reliable when the server binds + # to all interfaces. + host = "0.0.0.0" + session = Session(dataset, host, port) if notebook: session.start(background=True) - print(f"\nHyperView is running at {session.url}") + if _is_colab(): + print( + f"\nHyperView is running (Colab, port={session.port}). " + "Use the link below to open it." + ) + else: + print(f"\nHyperView is running at {session.url}. Opening a new tab...") session.show(height=height) else: session.start(background=True) @@ -247,3 +299,15 @@ def _is_notebook() -> bool: return False # Other type (?) except (ImportError, NameError): return False # Probably standard Python interpreter + + +def _is_colab() -> bool: + """Check if running inside a Google Colab notebook runtime.""" + if os.environ.get("COLAB_RELEASE_TAG"): + return True + try: + import google.colab # type: ignore[import-not-found] + + return True + except Exception: + return False diff --git a/src/hyperview/server/static/404.html b/src/hyperview/server/static/404.html index 27fc3dd..8a12bc0 100644 --- a/src/hyperview/server/static/404.html +++ b/src/hyperview/server/static/404.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/404/index.html b/src/hyperview/server/static/404/index.html index 27fc3dd..8a12bc0 100644 --- a/src/hyperview/server/static/404/index.html +++ b/src/hyperview/server/static/404/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/__next.__PAGE__.txt b/src/hyperview/server/static/__next.__PAGE__.txt index 61e8c5a..a7760ba 100644 --- a/src/hyperview/server/static/__next.__PAGE__.txt +++ b/src/hyperview/server/static/__next.__PAGE__.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" -2:I[47257,["/_next/static/chunks/42879de7b8087bc9.js"],"ClientPageRoot"] -3:I[52683,["/_next/static/chunks/640b68f22e2796e6.js","/_next/static/chunks/71c75872eed19356.js"],"default"] -6:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"OutletBoundary"] +2:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] +3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/08706ac30fdde8df.js"],"default"] +6:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 7:"$Sreact.suspense" -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/640b68f22e2796e6.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/71c75872eed19356.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/08706ac30fdde8df.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 8:null diff --git a/src/hyperview/server/static/__next._full.txt b/src/hyperview/server/static/__next._full.txt index f4d4f19..f6fc92a 100644 --- a/src/hyperview/server/static/__next._full.txt +++ b/src/hyperview/server/static/__next._full.txt @@ -1,15 +1,15 @@ 1:"$Sreact.fragment" -2:I[39756,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -3:I[37457,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -4:I[47257,["/_next/static/chunks/42879de7b8087bc9.js"],"ClientPageRoot"] -5:I[52683,["/_next/static/chunks/640b68f22e2796e6.js","/_next/static/chunks/71c75872eed19356.js"],"default"] -8:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"OutletBoundary"] +2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] +3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] +4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/08706ac30fdde8df.js"],"default"] +8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" -b:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"ViewportBoundary"] -d:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"MetadataBoundary"] -f:I[68027,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -:HL["/_next/static/chunks/19d0d66700a996ca.css","style"] -0:{"P":null,"b":"lAwT6e3uaMqLUXxndbn_f","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/19d0d66700a996ca.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/640b68f22e2796e6.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/71c75872eed19356.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] +d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] +f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] +:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] +0:{"P":null,"b":"Oel6IrA8CsSgwXZSPI61A","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/08706ac30fdde8df.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] diff --git a/src/hyperview/server/static/__next._head.txt b/src/hyperview/server/static/__next._head.txt index 6739360..445d63b 100644 --- a/src/hyperview/server/static/__next._head.txt +++ b/src/hyperview/server/static/__next._head.txt @@ -1,7 +1,7 @@ 1:"$Sreact.fragment" -2:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"ViewportBoundary"] -4:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"MetadataBoundary"] +2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] +4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/__next._index.txt b/src/hyperview/server/static/__next._index.txt index 792a2d1..343f05e 100644 --- a/src/hyperview/server/static/__next._index.txt +++ b/src/hyperview/server/static/__next._index.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" -2:I[39756,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -3:I[37457,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -:HL["/_next/static/chunks/19d0d66700a996ca.css","style"] -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/19d0d66700a996ca.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] +3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] +:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/__next._tree.txt b/src/hyperview/server/static/__next._tree.txt index b551f3c..0eedca1 100644 --- a/src/hyperview/server/static/__next._tree.txt +++ b/src/hyperview/server/static/__next._tree.txt @@ -1,2 +1,2 @@ -:HL["/_next/static/chunks/19d0d66700a996ca.css","style"] -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_next/static/bTv_hKoV745UqFKtrs1rd/_buildManifest.js b/src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_buildManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/bTv_hKoV745UqFKtrs1rd/_buildManifest.js rename to src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_buildManifest.js diff --git a/src/hyperview/server/static/_next/static/bTv_hKoV745UqFKtrs1rd/_clientMiddlewareManifest.json b/src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_clientMiddlewareManifest.json similarity index 100% rename from src/hyperview/server/static/_next/static/bTv_hKoV745UqFKtrs1rd/_clientMiddlewareManifest.json rename to src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_clientMiddlewareManifest.json diff --git a/src/hyperview/server/static/_next/static/bTv_hKoV745UqFKtrs1rd/_ssgManifest.js b/src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_ssgManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/bTv_hKoV745UqFKtrs1rd/_ssgManifest.js rename to src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_ssgManifest.js diff --git a/src/hyperview/server/static/_next/static/chunks/08706ac30fdde8df.js b/src/hyperview/server/static/_next/static/chunks/08706ac30fdde8df.js new file mode 100644 index 0000000..59f0d01 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/08706ac30fdde8df.js @@ -0,0 +1,9 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50912,e=>{"use strict";let t,r,n,o,l,i;var s,a,d=e.i(48277),u=e.i(30668);let c=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},f=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var p={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,u.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:i,...s},a)=>(0,u.createElement)("svg",{ref:a,...p,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:f("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(s)&&{"aria-hidden":"true"},...s},[...i.map(([e,t])=>(0,u.createElement)(e,t)),...Array.isArray(l)?l:[l]])),m=(s="grip-vertical",a=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],(r=(0,u.forwardRef)(({className:e,...t},r)=>(0,u.createElement)(h,{ref:r,iconNode:a,className:f(`lucide-${c(s).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${s}`,e),...t}))).displayName=c(s),r);function g(e,t="Assertion error"){if(!e)throw Error(t)}function b({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function y(e,t){return t.sort("horizontal"===e?v:x)}function v(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function x(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function w(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function k(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function S(e){let{element:t,orientation:r,panels:n,separators:o}=e,l=y(r,Array.from(t.children).filter(w).map(e=>({element:e}))).map(({element:e})=>e),i=[],s=!1,a,d=[];for(let t of l)if(t.hasAttribute("data-panel")){let o=n.find(e=>e.element===t);if(o){if(a){let n,l=a.element.getBoundingClientRect(),u=t.getBoundingClientRect();if(s){let e="horizontal"===r?new DOMRect(l.right,l.top,0,l.height):new DOMRect(l.left,l.bottom,l.width,0),t="horizontal"===r?new DOMRect(u.left,u.top,0,u.height):new DOMRect(u.left,u.top,u.width,0);switch(d.length){case 0:n=[e,t];break;case 1:{let o=d[0],i=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},o,l=Number.MAX_VALUE;for(let r of t){let{x:t,y:i}=k(n,r),s="horizontal"===e?t:i;se.element===t);e?d.push(e):(a=void 0,d=[])}else s=!0;return i}function z({groupSize:e,panelElement:t,styleProp:r}){let n,[o,l]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(l){case"%":n=o/100*e;break;case"px":n=o;break;case"rem":n=o*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=o*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=o/100*window.innerHeight;break;case"vw":n=o/100*window.innerWidth}return n}function j(e){return parseFloat(e.toFixed(3))}function C(e){let{panels:t}=e,r=b({group:e});return 0===r?t.map(e=>({collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:o}=e,l=0;void 0!==o.collapsedSize&&(l=j(z({groupSize:r,panelElement:n,styleProp:o.collapsedSize})/r*100)),void 0!==o.defaultSize&&(t=j(z({groupSize:r,panelElement:n,styleProp:o.defaultSize})/r*100));let i=0;void 0!==o.minSize&&(i=j(z({groupSize:r,panelElement:n,styleProp:o.minSize})/r*100));let s=100;return void 0!==o.maxSize&&(s=j(z({groupSize:r,panelElement:n,styleProp:o.maxSize})/r*100)),{collapsedSize:l,collapsible:!0===o.collapsible,defaultSize:t,minSize:i,maxSize:s,panelId:e.id}})}function E(e,t,r=0){return Math.abs(j(e)-j(t))<=r}let M={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map},R=new class{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,o=Array.from(r);for(let r=0;r=0&&r.splice(e,1)}}};function N(e){let t="function"==typeof e?e(M):e;if(M===t)return M;let r=M;return M={...M,...t},void 0!==t.cursorFlags&&R.emit("cursorFlagsChange",M.cursorFlags),void 0!==t.interactionState&&R.emit("interactionStateChange",M.interactionState),void 0!==t.mountedGroups&&(M.mountedGroups.forEach((e,t)=>{e.derivedPanelConstraints.forEach(n=>{if(n.collapsible){let{layout:o}=r.mountedGroups.get(t)??{};if(o){let r=E(n.collapsedSize,e.layout[n.panelId]),l=E(n.collapsedSize,o[n.panelId]);r&&!l&&(t.inMemoryLastExpandedPanelSizes[n.panelId]=o[n.panelId])}}})}),R.emit("mountedGroupsChange",M.mountedGroups)),M}function I(e,t){return E(e,t)?0:e>t?1:-1}function L({panelConstraints:e,size:t}){let{collapsedSize:r=0,collapsible:n,maxSize:o=100,minSize:l=0}=e;return 0>I(t,l)&&(t=n&&0>I(t,(r+l)/2)?r:l),j(t=Math.min(o,t))}function P({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:o,trigger:l}){if(E(e,0))return t;let i=Object.values(t),s=Object.values(o),a=[...i],[d,u]=n;g(null!=d,"Invalid first pivot index"),g(null!=u,"Invalid second pivot index");let c=0;if("keyboard"===l){{let t=e<0?u:d,n=r[t];g(n,`Panel constraints not found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:s=0}=n;if(l){let r=i[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,o)){let t=s-r;I(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?d:u,n=r[t];g(n,`No panel constraints found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:s=0}=n;if(l){let r=i[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,s)){let t=r-o;I(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let t=e<0?1:-1,n=e<0?u:d,o=0;for(;;){let e=i[n];if(g(null!=e,`Previous layout not found for panel index ${n}`),o+=L({panelConstraints:r[n],size:100})-e,(n+=t)<0||n>=r.length)break}let l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let t=e<0?d:u;for(;t>=0&&t=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r=0&&n0?n--:n++}}}if(!E(Object.values(a).reduce((e,t)=>t+e,0),100,.1))return o;let f=Object.keys(o);return a.reduce((e,t,r)=>(e[f[r]]=t,e),{})}function O(e){let{mountedGroups:t}=M;for(let[r]of t)if(r.separators.some(t=>t.element===e))return r;throw Error("Could not find parent Group for separator element")}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==I(e[r],t[r]))return!1;return!0}function A({layout:e,panelConstraints:t}){let r=[...Object.values(e)],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!E(n,100)&&r.length>0)for(let e=0;e(e[l[r]]=t,e),{})}function D({groupId:e}){let t=()=>{let{mountedGroups:t}=M;for(let[r,n]of t)if(r.id===e)return{group:r,...n};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:o,layout:l,separatorToPanels:i}=t(),s=A({layout:e,panelConstraints:n});return r?l:(T(l,s)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(o,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:s,separatorToPanels:i})})),s)}}}function $(e){let{mountedGroups:t}=M,r=t.get(e);return g(r,`Mounted Group ${e.id} not found`),r}function F(e,t){let r=O(e),n=$(r),o=r.separators.find(t=>t.element===e);g(o,"Matching separator not found");let l=n.separatorToPanels.get(o);g(l,"Matching panels not found");let i=l.map(e=>r.panels.indexOf(e)),s=D({groupId:r.id}).getLayout(),a=A({layout:P({delta:t,initialLayout:s,panelConstraints:n.derivedPanelConstraints,pivotIndices:i,prevLayout:s,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(s,a)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,layout:a,separatorToPanels:n.separatorToPanels})}))}function G(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=O(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&F(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&F(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&F(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&F(t,-5);break;case"End":e.preventDefault(),F(t,100);break;case"Enter":{e.preventDefault();let r=O(t),{derivedPanelConstraints:n,layout:o,separatorToPanels:l}=$(r),i=r.separators.find(e=>e.element===t);g(i,"Matching separator not found");let s=l.get(i);g(s,"Matching panels not found");let a=s[0],d=n.find(e=>e.panelId===a.id);if(g(d,"Panel metadata not found"),d.collapsible){let e=o[a.id];F(t,(d.collapsedSize===e?r.inMemoryLastExpandedPanelSizes[a.id]??d.minSize:d.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=O(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);g(null!==n,"Index not found");let o=e.shiftKey?n>0?n-1:r.length-1:n+1e,W=()=>{},V=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function B(e){let t=e.length;for(;t--;){let r=e[t];if(g(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(U(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||V.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function H(e){return e&&Number(getComputedStyle(e).zIndex)||0}function K(e){let t=[];for(;e;)t.push(e),e=U(e);return t}function U(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function q(e,r){let n=[];return r.forEach((r,o)=>{if(o.disabled)return;let l=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?10:5,i=S(o),s=function(e,t,r){let n,o={x:1/0,y:1/0};for(let l of t){let t=k(r,l.rect);switch(e){case"horizontal":t.x<=o.x&&(n=l,o=t);break;case"vertical":t.y<=o.y&&(n=l,o=t)}}return n?{distance:o,hitRegion:n}:void 0}(o.orientation,i,{x:e.clientX,y:e.clientY});s&&s.distance.x<=l&&s.distance.y<=l&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!w(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:K(e),b:K(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;g(r,"Stacking order can only be calculated for elements with a common ancestor");let o={a:H(B(n.a)),b:H(B(n.b))};if(o.a===o.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},o=e.length;for(;o--;){let r=e[o];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(o.a-o.b)}(r,e)>0){let o=r;for(;o;){var n;if(o.contains(e))break;if(n=o.getBoundingClientRect(),n.xt.x&&n.yt.y)return!1;o=o.parentElement}}return!0}({groupElement:o.element,hitRegion:s.hitRegion.rect,pointerEventTarget:e.target})&&n.push(s.hitRegion)}),n}function Y(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{mountedGroups:t}=M,r=q(e,t),n=new Set,o=new Set,l=new Set,i=new Map,s=!1;r.forEach(e=>{n.add(e.group),e.panels.forEach(e=>{o.add(e)}),e.separator&&(l.add(e.separator),s||(s=!0,e.separator.element.focus()));let r=t.get(e.group);r&&i.set(e.group,r.layout)}),N({interactionState:{hitRegions:r,initialLayoutMap:i,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),r.length&&e.preventDefault()}let Q=new WeakMap;function X(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=Q.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[r]);let{cursorFlags:n,interactionState:o}=M;switch(o.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,o=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":o++}})}if(0===n&&0===o)return null;if("active"===r){let t=(4&e)!=0,r=(8&e)!=0;if(e){if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}}return n>0&&o>0?"move":n>0?"ew-resize":"ns-resize"}({cursorFlags:n,groups:o.hitRegions.map(e=>e.group),state:o.state}),l=`*{cursor: ${e} !important; ${"active"===o.state?"touch-action: none;":""} }`;if(t===l)return;t=l,e?0===r.cssRules.length?r.insertRule(l):r.replaceSync(l):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}Q.set(e,{prevStyle:t,styleSheet:r})}function Z({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:l}){let i=0,s=new Map(o);r.forEach(e=>{let{group:r,groupSize:a}=e,{disableCursor:d,orientation:u,panels:c}=r,f=0;f=l?"horizontal"===u?(t.clientX-l.x)/a*100:(t.clientY-l.y)/a*100:"horizontal"===u?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:g,separatorToPanels:b}=o.get(r)??{defaultLayoutDeferred:!1};if(m&&p&&g&&b){let t=P({delta:f,initialLayout:p,panelConstraints:m,pivotIndices:e.panels.map(e=>c.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==f&&!d)switch(u){case"horizontal":i|=f<0?1:2;break;case"vertical":i|=f<0?4:8}}else{s.set(e.group,{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:t,separatorToPanels:b});let r=e.group.panels.map(({id:e})=>e).join(",");e.group.inMemoryLayouts[r]=t}}}),N({cursorFlags:i,mountedGroups:s}),X(e)}function J(e){let{interactionState:t,mountedGroups:r}=M;"active"===t.state&&Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r})}function ee(e){if(e.defaultPrevented)return;let{interactionState:t,mountedGroups:r}=M;if("active"===t.state){if(0===e.buttons){N(e=>"inactive"===e.interactionState.state?e:{cursorFlags:0,interactionState:{state:"inactive"}}),N(e=>({mountedGroups:new Map(e.mountedGroups)}));return}Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint})}else{let n=q(e,r);0===n.length?"inactive"!==t.state&&N({interactionState:{state:"inactive"}}):N({interactionState:{hitRegions:n,state:"hover"}}),X(e.currentTarget)}}function et(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{interactionState:t}=M;"active"===t.state&&(N({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(X(e.currentTarget),N(e=>({mountedGroups:new Map(e.mountedGroups)})),e.preventDefault()))}function er(e){let t=0,r=0,n={};for(let o of e)if(void 0!==o.defaultSize){t++;let e=j(o.defaultSize);r+=e,n[o.panelId]=e}else n[o.panelId]=void 0;let o=e.length-t;if(0!==o){let t=j((100-r)/o);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let en=new Map;function eo(){let[e,t]=(0,u.useState)({});return[e,(0,u.useCallback)(()=>t({}),[])]}function el(e){let t=(0,u.useId)();return`${e??t}`}let ei="u">typeof window?u.useLayoutEffect:u.useEffect;function es(e){let t=(0,u.useRef)(e);return ei(()=>{t.current=e},[e]),(0,u.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return es(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}let ed=(0,u.createContext)(null);function eu({children:e,className:t,defaultLayout:r,disableCursor:n,disabled:o,elementRef:l,groupRef:i,id:s,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",style:p,...h}){var m;let v,x,w=(0,u.useRef)({onLayoutChange:{},onLayoutChanged:{}}),k=es(e=>{T(w.current.onLayoutChange,e)||(w.current.onLayoutChange=e,a?.(e))}),z=es(e=>{T(w.current.onLayoutChanged,e)||(w.current.onLayoutChanged=e,c?.(e))}),E=el(s),I=(0,u.useRef)(null),[L,P]=eo(),O=(0,u.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),$=ea(I,l);v=(0,u.useRef)({getLayout:()=>({}),setLayout:_}),(0,u.useImperativeHandle)(i,()=>v.current,[]),ei(()=>{Object.assign(v.current,D({groupId:E}))});let F=es((e,t)=>{let{interactionState:n,mountedGroups:o}=M;for(let r of o.keys())if(r.id===e){let e=o.get(r);if(e){let o=!1;return"active"===n.state&&(o=n.hitRegions.some(e=>e.group===r)),{flexGrow:e.layout[t]??1,pointerEvents:o?"none":void 0}}}return{flexGrow:r?.[t]??1}}),W=(0,u.useMemo)(()=>({getPanelStyles:F,id:E,orientation:f,registerPanel:e=>{let t=O.current;return t.panels=y(f,[...t.panels,e]),P(),()=>{t.panels=t.panels.filter(t=>t!==e),P()}},registerSeparator:e=>{let t=O.current;return t.separators=y(f,[...t.separators,e]),P(),()=>{t.separators=t.separators.filter(t=>t!==e),P()}}}),[F,E,P,f]),V=(m={defaultLayout:r,disableCursor:n},x=(0,u.useRef)({...m}),ei(()=>{for(let e in m)x.current[e]=m[e]},[m]),x.current),B=(0,u.useRef)(null);return ei(()=>{let e,t,r,n,l,i,s,a,d,u,c,p,h=I.current;if(null===h)return;let m=O.current,y={defaultLayout:V.defaultLayout,disableCursor:!!V.disableCursor,disabled:!!o,element:h,id:E,inMemoryLastExpandedPanelSizes:O.current.lastExpandedPanelSizes,inMemoryLayouts:O.current.layouts,orientation:f,panels:m.panels,separators:m.separators};B.current=y;let v=(e=!0,g(y.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),t=y.element.ownerDocument.defaultView.ResizeObserver,r=new Set,n=new Set,(l=new t(t=>{for(let r of t){let{borderBoxSize:t,target:n}=r;if(n===y.element){if(e){if(0===b({group:y}))return;N(e=>{let t=e.mountedGroups.get(y);if(t){let r=C(y),n=t.defaultLayoutDeferred?er(r):t.layout,o=A({layout:n,panelConstraints:r});return!t.defaultLayoutDeferred&&T(n,o)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)?e:{mountedGroups:new Map(e.mountedGroups).set(y,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,layout:o,separatorToPanels:t.separatorToPanels})}}return e})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let o=b({group:e}),l="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,i=n.mutableValues.prevSize,s={asPercentage:j(l/o*100),inPixels:l};n.mutableValues.prevSize=s,n.onResize(s,n.id,i)}(y,n,t)}})).observe(y.element),y.panels.forEach(e=>{g(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&l.observe(e.element)}),i=b({group:y}),s=C(y),a=y.panels.map(({id:e})=>e).join(","),(d=y.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(y.panels,d)||(d=void 0)),u=A({layout:y.inMemoryLayouts[a]??d??er(s),panelConstraints:s}),c=S(y),p=y.element.ownerDocument,N(e=>{let t=new Map;return en.set(p,(en.get(p)??0)+1),c.forEach(e=>{e.separator&&t.set(e.separator,e.panels)}),{mountedGroups:new Map(e.mountedGroups).set(y,{defaultLayoutDeferred:0===i,derivedPanelConstraints:s,layout:u,separatorToPanels:t})}}),y.separators.forEach(e=>{g(!n.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.element.addEventListener("keydown",G)}),1===en.get(p)&&(p.addEventListener("pointerdown",Y,!0),p.addEventListener("pointerleave",J),p.addEventListener("pointermove",ee),p.addEventListener("pointerup",et,!0)),function(){e=!1,en.set(p,Math.max(0,(en.get(p)??0)-1)),N(e=>{let t=new Map(e.mountedGroups);return t.delete(y),{mountedGroups:t}}),y.separators.forEach(e=>{e.element.removeEventListener("keydown",G)}),en.get(p)||(p.removeEventListener("pointerdown",Y,!0),p.removeEventListener("pointerleave",J),p.removeEventListener("pointermove",ee),p.removeEventListener("pointerup",et,!0)),l.disconnect()}),x=M.mountedGroups.get(y);if(x){let{defaultLayoutDeferred:e,derivedPanelConstraints:t,layout:r}=x;!e&&t.length>0&&(k(r),z(r),m.panels.forEach(e=>{e.scheduleUpdate()}))}let w=R.addListener("interactionStateChange",()=>{m.panels.forEach(e=>{e.scheduleUpdate()})}),L=R.addListener("mountedGroupsChange",e=>{let t=e.get(y);if(t){let{defaultLayoutDeferred:e,derivedPanelConstraints:r,layout:n}=t;if(e||0===r.length)return;let{interactionState:o}=M,l="active"!==o.state;k(n),l&&z(n),m.panels.forEach(e=>{e.scheduleUpdate()})}});return()=>{B.current=null,v(),w(),L()}},[o,E,z,k,f,L,V]),(0,u.useEffect)(()=>{let e=B.current;e&&(e.defaultLayout=r,e.disableCursor=!!n)}),(0,d.jsx)(ed.Provider,{value:W,children:(0,d.jsx)("div",{...h,"aria-orientation":f,className:t,"data-group":!0,"data-testid":E,id:E,ref:$,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:"horizontal"===f?"row":"column",flexWrap:"nowrap"},children:e})})}function ec(){let e=(0,u.useContext)(ed);return g(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ef({children:e,className:t,collapsedSize:r="0%",collapsible:n=!1,defaultSize:o,elementRef:l,id:i,maxSize:s="100%",minSize:a="0%",onResize:c,panelRef:f,style:p,...h}){let m=!!i,g=el(i),y=(0,u.useRef)(null),v=ea(y,l),[,x]=eo(),{getPanelStyles:w,id:k,registerPanel:S}=ec(),z=null!==c,C=es((e,t,r)=>{c?.(e,i,r)});ei(()=>{let e=y.current;if(null!==e)return S({element:e,id:g,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?C:void 0,panelConstraints:{collapsedSize:r,collapsible:n,defaultSize:o,maxSize:s,minSize:a},scheduleUpdate:x})},[r,n,o,x,z,g,m,s,a,C,S]),function(e,t){let{id:r}=ec(),n=(0,u.useRef)({collapse:W,expand:W,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:W});(0,u.useImperativeHandle)(t,()=>n.current,[]),ei(()=>{Object.assign(n.current,function({groupId:e,panelId:t}){let r=()=>{let{mountedGroups:t}=M;for(let[r,{defaultLayoutDeferred:n,derivedPanelConstraints:o,layout:l,separatorToPanels:i}]of t)if(r.id===e)return{defaultLayoutDeferred:n,derivedPanelConstraints:o,group:r,layout:l,separatorToPanels:i};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},l=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},i=e=>{let n=l();if(e===n)return;let{defaultLayoutDeferred:o,derivedPanelConstraints:i,group:s,layout:a,separatorToPanels:d}=r(),u=s.panels.findIndex(e=>e.id===t),c=u===s.panels.length-1,f=A({layout:P({delta:c?n-e:e-n,initialLayout:a,panelConstraints:i,pivotIndices:c?[u-1,u]:[u,u+1],prevLayout:a,trigger:"imperative-api"}),panelConstraints:i});T(a,f)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(s,{defaultLayoutDeferred:o,derivedPanelConstraints:i,layout:f,separatorToPanels:d})}))};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=o(),s=l();e&&s!==t&&(r.expandToSize=s,i(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:s}=o(),a=l();if(e&&a===t){let e=s.expandToSize??r;0===e&&(e=1),i(e)}},getSize:()=>{let{group:e}=r(),t=l(),{element:n}=o();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=l();return e&&E(t,r)},resize:e=>{if(l()!==e){let t;switch(typeof e){case"number":{let{group:n}=r();t=j(e/b({group:n})*100);break}case"string":t=parseFloat(e)}i(t)}}}}({groupId:r,panelId:e}))})}(g,f);let R=w(k,g);return(0,d.jsx)("div",{...h,"data-panel":!0,"data-testid":g,id:g,ref:v,style:{...ep,flexBasis:0,flexShrink:1,overflow:"hidden",...R},children:(0,d.jsx)("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}eu.displayName="Group",ef.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function eh({children:e,className:t,elementRef:r,id:n,style:o,...l}){let i=el(n),[s,a]=(0,u.useState)({}),[c,f]=(0,u.useState)("inactive"),p=(0,u.useRef)(null),h=ea(p,r),{id:m,orientation:g,registerSeparator:b}=ec();return ei(()=>{let e=p.current;if(null!==e){let t={element:e,id:i},r=b(t),n=R.addListener("interactionStateChange",e=>{f("inactive"!==e.state&&e.hitRegions.some(e=>e.separator===t)?e.state:"inactive")}),o=R.addListener("mountedGroupsChange",e=>{e.forEach(({derivedPanelConstraints:e,layout:r,separatorToPanels:n},o)=>{if(o.id===m){let l=n.get(t);if(l){let t=l[0],n=o.panels.indexOf(t);a(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let o,l,i=e[r],s=t.find(e=>e.panelId===r);if(s){let a=s.maxSize,d=l=s.collapsible?s.collapsedSize:s.minSize,u=[n,n+1];l=A({layout:P({delta:d-i,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r],o=A({layout:P({delta:a-i,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r]}return{valueControls:r,valueMax:o,valueMin:l,valueNow:i}}({layout:r,panelConstraints:e,panelId:t.id,panelIndex:n}))}}})});return()=>{n(),o(),r()}}},[m,i,b]),(0,d.jsx)("div",{...l,"aria-controls":s.valueControls,"aria-orientation":"horizontal"===g?"vertical":"horizontal","aria-valuemax":s.valueMax,"aria-valuemin":s.valueMin,"aria-valuenow":s.valueNow,children:e,className:t,"data-separator":c,"data-testid":i,id:i,ref:h,role:"separator",style:{flexBasis:"auto",...o,flexGrow:0,flexShrink:0},tabIndex:0})}function em(){for(var e,t,r=0,n="",o=arguments.length;r({nextPart:e,validators:t,classGroupId:r}),eb=[],ey=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],o=r.nextPart.get(n);if(o){let r=ey(e,t+1,o);if(r)return r}let l=r.validators;if(null===l)return;let i=0===t?e.join("-"):e.slice(t).join("-"),s=l.length;for(let e=0;e{let r=eg();for(let n in e)ex(e[n],r,n,t);return r},ex=(e,t,r,n)=>{let o=e.length;for(let l=0;l{"string"==typeof e?ek(e,t,r):"function"==typeof e?eS(e,t,r,n):ez(e,t,r,n)},ek=(e,t,r)=>{(""===e?t:ej(t,e)).classGroupId=r},eS=(e,t,r,n)=>{eC(e)?ex(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},ez=(e,t,r,n)=>{let o=Object.entries(e),l=o.length;for(let e=0;e{let r=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,eE=[],eM=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),eR=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n{let t=t=>t[e]||eI;return t.isThemeGetter=!0,t},eP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eO=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,eA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eD=/\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$/,e$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eF=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,eG=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,e_=e=>eT.test(e),eW=e=>!!e&&!Number.isNaN(Number(e)),eV=e=>!!e&&Number.isInteger(Number(e)),eB=e=>e.endsWith("%")&&eW(e.slice(0,-1)),eH=e=>eA.test(e),eK=()=>!0,eU=e=>eD.test(e)&&!e$.test(e),eq=()=>!1,eY=e=>eF.test(e),eQ=e=>eG.test(e),eX=e=>!eJ(e)&&!e3(e),eZ=e=>tr(e,ti,eq),eJ=e=>eP.test(e),e0=e=>tr(e,ts,eU),e1=e=>tr(e,ta,eW),e2=e=>tr(e,to,eq),e5=e=>tr(e,tl,eQ),e4=e=>tr(e,tu,eY),e3=e=>eO.test(e),e6=e=>tn(e,ts),e8=e=>tn(e,td),e9=e=>tn(e,to),e7=e=>tn(e,ti),te=e=>tn(e,tl),tt=e=>tn(e,tu,!0),tr=(e,t,r)=>{let n=eP.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},tn=(e,t,r=!1)=>{let n=eO.exec(e);return!!n&&(n[1]?t(n[1]):r)},to=e=>"position"===e||"percentage"===e,tl=e=>"image"===e||"url"===e,ti=e=>"length"===e||"size"===e||"bg-size"===e,ts=e=>"length"===e,ta=e=>"number"===e,td=e=>"family-name"===e,tu=e=>"shadow"===e,tc=((e,...t)=>{let r,n,o,l,i=e=>{let t=n(e);if(t)return t;let l=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:l}=t,i=[],s=e.trim().split(eR),a="";for(let e=s.length-1;e>=0;e-=1){let t=s[e],{isExternal:d,modifiers:u,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:p}=r(t);if(d){a=t+(a.length>0?" "+a:a);continue}let h=!!p,m=n(h?f.substring(0,p):f);if(!m){if(!h||!(m=n(f))){a=t+(a.length>0?" "+a:a);continue}h=!1}let g=0===u.length?"":1===u.length?u[0]:l(u).join(":"),b=c?g+"!":g,y=b+m;if(i.indexOf(y)>-1)continue;i.push(y);let v=o(m,h);for(let e=0;e0?" "+a:a)}return a})(e,r);return o(e,l),l};return l=s=>{var a;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,l)=>{r[o]=l,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((a=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,l=0,i=e.length;for(let s=0;sl?t-l:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):eM(eE,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(a),sortModifiers:(d=new Map,a.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n0&&(r.sort(),t.push(...r),r=[]),t.push(o)):r.push(o)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return ev(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,o;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return ey(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=r[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tl(((...e)=>{let t,r,n=0,o="";for(;n{let e=eL("color"),t=eL("font"),r=eL("text"),n=eL("font-weight"),o=eL("tracking"),l=eL("leading"),i=eL("breakpoint"),s=eL("container"),a=eL("spacing"),d=eL("radius"),u=eL("shadow"),c=eL("inset-shadow"),f=eL("text-shadow"),p=eL("drop-shadow"),h=eL("blur"),m=eL("perspective"),g=eL("aspect"),b=eL("ease"),y=eL("animate"),v=()=>["auto","avoid","all","avoid-page","page","left","right","column"],x=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...x(),e3,eJ],k=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],z=()=>[e3,eJ,a],j=()=>[e_,"full","auto",...z()],C=()=>[eV,"none","subgrid",e3,eJ],E=()=>["auto",{span:["full",eV,e3,eJ]},eV,e3,eJ],M=()=>[eV,"auto",e3,eJ],R=()=>["auto","min","max","fr",e3,eJ],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],I=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...z()],P=()=>[e_,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],O=()=>[e,e3,eJ],T=()=>[...x(),e9,e2,{position:[e3,eJ]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",e7,eZ,{size:[e3,eJ]}],$=()=>[eB,e6,e0],F=()=>["","none","full",d,e3,eJ],G=()=>["",eW,e6,e0],_=()=>["solid","dashed","dotted","double"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],V=()=>[eW,eB,e9,e2],B=()=>["","none",h,e3,eJ],H=()=>["none",eW,e3,eJ],K=()=>["none",eW,e3,eJ],U=()=>[eW,e3,eJ],q=()=>[e_,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eH],breakpoint:[eH],color:[eK],container:[eH],"drop-shadow":[eH],ease:["in","out","in-out"],font:[eX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eH],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eH],shadow:[eH],spacing:["px",eW],text:[eH],"text-shadow":[eH],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",e_,eJ,e3,g]}],container:["container"],columns:[{columns:[eW,eJ,e3,s]}],"break-after":[{"break-after":v()}],"break-before":[{"break-before":v()}],"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:w()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[eV,"auto",e3,eJ]}],basis:[{basis:[e_,"full","auto",s,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eW,e_,"auto","initial","none",eJ]}],grow:[{grow:["",eW,e3,eJ]}],shrink:[{shrink:["",eW,e3,eJ]}],order:[{order:[eV,"first","last","none",e3,eJ]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":R()}],"auto-rows":[{"auto-rows":R()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...I(),"normal"]}],"justify-self":[{"justify-self":["auto",...I()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...I(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...I(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...I(),"baseline"]}],"place-self":[{"place-self":["auto",...I()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],w:[{w:[s,"screen",...P()]}],"min-w":[{"min-w":[s,"screen","none",...P()]}],"max-w":[{"max-w":[s,"screen","none","prose",{screen:[i]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",r,e6,e0]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e3,e1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eB,eJ]}],"font-family":[{font:[e8,eJ,t]}],"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:[o,e3,eJ]}],"line-clamp":[{"line-clamp":[eW,"none",e3,e1]}],leading:[{leading:[l,...z()]}],"list-image":[{"list-image":["none",e3,eJ]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e3,eJ]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[..._(),"wavy"]}],"text-decoration-thickness":[{decoration:[eW,"from-font","auto",e3,e0]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[eW,"auto",e3,eJ]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e3,eJ]}],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",e3,eJ]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},eV,e3,eJ],radial:["",e3,eJ],conic:[eV,e3,eJ]},te,e5]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:$()}],"gradient-via-pos":[{via:$()}],"gradient-to-pos":[{to:$()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:G()}],"border-w-x":[{"border-x":G()}],"border-w-y":[{"border-y":G()}],"border-w-s":[{"border-s":G()}],"border-w-e":[{"border-e":G()}],"border-w-t":[{"border-t":G()}],"border-w-r":[{"border-r":G()}],"border-w-b":[{"border-b":G()}],"border-w-l":[{"border-l":G()}],"divide-x":[{"divide-x":G()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":G()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[..._(),"hidden","none"]}],"divide-style":[{divide:[..._(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[..._(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eW,e3,eJ]}],"outline-w":[{outline:["",eW,e6,e0]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",u,tt,e4]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",c,tt,e4]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:G()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[eW,e0]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":G()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",f,tt,e4]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[eW,e3,eJ]}],"mix-blend":[{"mix-blend":[...W(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":W()}],"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":[eW]}],"mask-image-linear-from-pos":[{"mask-linear-from":V()}],"mask-image-linear-to-pos":[{"mask-linear-to":V()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":V()}],"mask-image-t-to-pos":[{"mask-t-to":V()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":V()}],"mask-image-r-to-pos":[{"mask-r-to":V()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":V()}],"mask-image-b-to-pos":[{"mask-b-to":V()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":V()}],"mask-image-l-to-pos":[{"mask-l-to":V()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":V()}],"mask-image-x-to-pos":[{"mask-x-to":V()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":V()}],"mask-image-y-to-pos":[{"mask-y-to":V()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[e3,eJ]}],"mask-image-radial-from-pos":[{"mask-radial-from":V()}],"mask-image-radial-to-pos":[{"mask-radial-to":V()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"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":x()}],"mask-image-conic-pos":[{"mask-conic":[eW]}],"mask-image-conic-from-pos":[{"mask-conic-from":V()}],"mask-image-conic-to-pos":[{"mask-conic-to":V()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e3,eJ]}],filter:[{filter:["","none",e3,eJ]}],blur:[{blur:B()}],brightness:[{brightness:[eW,e3,eJ]}],contrast:[{contrast:[eW,e3,eJ]}],"drop-shadow":[{"drop-shadow":["","none",p,tt,e4]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",eW,e3,eJ]}],"hue-rotate":[{"hue-rotate":[eW,e3,eJ]}],invert:[{invert:["",eW,e3,eJ]}],saturate:[{saturate:[eW,e3,eJ]}],sepia:[{sepia:["",eW,e3,eJ]}],"backdrop-filter":[{"backdrop-filter":["","none",e3,eJ]}],"backdrop-blur":[{"backdrop-blur":B()}],"backdrop-brightness":[{"backdrop-brightness":[eW,e3,eJ]}],"backdrop-contrast":[{"backdrop-contrast":[eW,e3,eJ]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eW,e3,eJ]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eW,e3,eJ]}],"backdrop-invert":[{"backdrop-invert":["",eW,e3,eJ]}],"backdrop-opacity":[{"backdrop-opacity":[eW,e3,eJ]}],"backdrop-saturate":[{"backdrop-saturate":[eW,e3,eJ]}],"backdrop-sepia":[{"backdrop-sepia":["",eW,e3,eJ]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e3,eJ]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eW,"initial",e3,eJ]}],ease:[{ease:["linear","initial",b,e3,eJ]}],delay:[{delay:[eW,e3,eJ]}],animate:[{animate:["none",y,e3,eJ]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,e3,eJ]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:H()}],"rotate-x":[{"rotate-x":H()}],"rotate-y":[{"rotate-y":H()}],"rotate-z":[{"rotate-z":H()}],scale:[{scale:K()}],"scale-x":[{"scale-x":K()}],"scale-y":[{"scale-y":K()}],"scale-z":[{"scale-z":K()}],"scale-3d":["scale-3d"],skew:[{skew:U()}],"skew-x":[{"skew-x":U()}],"skew-y":[{"skew-y":U()}],transform:[{transform:[e3,eJ,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q()}],"translate-x":[{"translate-x":q()}],"translate-y":[{"translate-y":q()}],"translate-z":[{"translate-z":q()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"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",e3,eJ]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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",e3,eJ]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[eW,e6,e0,e1]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tf(...e){return tc(em(e))}let tp=({className:e,...t})=>(0,d.jsx)(eu,{className:tf("flex h-full w-full data-[orientation=vertical]:flex-col",e),...t}),th=({withHandle:e,className:t,...r})=>(0,d.jsx)(eh,{className:tf("relative flex w-[3px] items-center justify-center bg-border/50 hover:bg-primary/50 transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-2 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring data-[orientation=vertical]:h-[3px] data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-2 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t),...r,children:e&&(0,d.jsx)("div",{className:"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-secondary",children:(0,d.jsx)(m,{className:"h-3 w-3 text-muted-foreground"})})});var tm=e.i(69941);function tg(e,t,r){let n,o=r.initialDeps??[];function l(){var l,i,s,a;let d,u;r.key&&(null==(l=r.debug)?void 0:l.call(r))&&(d=Date.now());let c=e();if(!(c.length!==o.length||c.some((e,t)=>o[t]!==e)))return n;if(o=c,r.key&&(null==(i=r.debug)?void 0:i.call(r))&&(u=Date.now()),n=t(...c),r.key&&(null==(s=r.debug)?void 0:s.call(r))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-u)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{o=e},l}function tb(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(39057);let ty=e=>{let{offsetWidth:t,offsetHeight:r}=e;return{width:t,height:r}},tv=e=>e,tx=e=>{let t=Math.max(e.startIndex-e.overscan,0),r=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=r;e++)n.push(e);return n},tw=(e,t)=>{let r=e.scrollElement;if(!r)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:r,height:n}=e;t({width:Math.round(r),height:Math.round(n)})};if(o(ty(r)),!n.ResizeObserver)return()=>{};let l=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(ty(r))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return l.observe(r,{box:"border-box"}),()=>{l.unobserve(r)}},tk={passive:!0},tS="undefined"==typeof window||"onscrollend"in window,tz=(e,t)=>{var r,n;let o,l=e.scrollElement;if(!l)return;let i=e.targetWindow;if(!i)return;let s=0,a=e.options.useScrollendEvent&&tS?()=>void 0:(r=()=>{t(s,!1)},n=e.options.isScrollingResetDelay,function(...e){i.clearTimeout(o),o=i.setTimeout(()=>r.apply(this,e),n)}),d=r=>()=>{let{horizontal:n,isRtl:o}=e.options;s=n?l.scrollLeft*(o&&-1||1):l.scrollTop,a(),t(s,r)},u=d(!0),c=d(!1);c(),l.addEventListener("scroll",u,tk);let f=e.options.useScrollendEvent&&tS;return f&&l.addEventListener("scrollend",c,tk),()=>{l.removeEventListener("scroll",u),f&&l.removeEventListener("scrollend",c)}},tj=(e,t,r)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[r.options.horizontal?"inlineSize":"blockSize"])}return e[r.options.horizontal?"offsetWidth":"offsetHeight"]},tC=(e,{adjustments:t=0,behavior:r},n)=>{var o,l;null==(l=null==(o=n.scrollElement)?void 0:o.scrollTo)||l.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:r})};class tE{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var r;null==(r=t())||r.disconnect(),e=null},observe:e=>{var r;return null==(r=t())?void 0:r.observe(e,{box:"border-box"})},unobserve:e=>{var r;return null==(r=t())?void 0:r.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,r])=>{void 0===r&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tv,rangeExtractor:tx,onChange:()=>{},measureElement:tj,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,r;null==(r=(t=this.options).onChange)||r.call(t,this,e)},this.maybeNotify=tg(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let r=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(r.has(t.lane))continue;let l=n.get(t.lane);if(null==l||t.end>l.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=tg(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,r,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=tg(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o},l)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let i=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let s=this.measurementsCache.slice(0,i);for(let o=i;othis.options.debug}),this.calculateRange=tg(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,r,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:r,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let l=tM(0,o,t=>e[t].start,r),i=l;if(1===n)for(;i1){let s=Array(n).fill(0);for(;ie=0&&a.some(e=>e>=r);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%n),i=Math.min(o,i+(n-1-i%n))}return{startIndex:l,endIndex:i}}({measurements:e,outerSize:t,scrollOffset:r,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=tg(()=>{let e=null,t=null,r=this.calculateRange();return r&&(e=r.startIndex,t=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,r,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,r=e.getAttribute(t);return r?parseInt(r,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let r=this.indexFromElement(e),n=this.measurementsCache[r];if(!n)return;let o=n.key,l=this.elementsCache.get(o);l!==e&&(l&&this.observer.unobserve(l),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(r,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let r=this.measurementsCache[e];if(!r)return;let n=t-(this.itemSizeCache.get(r.key)??r.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(r,n,this):r.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=tg(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let r=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return tb(t[tM(0,t.length-1,e=>tb(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,r=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(r-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.measurementsCache[e];if(!r)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(r.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(r.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let l="end"===t?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,r.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:r})},this.scrollToIndex=(e,{align:t="auto",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,i]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),r=this.getOffsetForIndex(e,i);r?1.01>Math.abs(r[0]-t)||l(i):console.warn("Failed to get offset for index:",e)})},l=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,r=this.getMeasurements();if(0===r.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=r[r.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=r.length-1;for(;n>=0&&e.some(e=>null===e);){let t=r[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:r})=>{this.options.scrollToFn(e,{behavior:r,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let tM=(e,t,r,n)=>{for(;e<=t;){let o=(e+t)/2|0,l=r(o);if(ln))return o;t=o-1}}return e>0?e-1:0},tR="undefined"!=typeof document?u.useLayoutEffect:u.useEffect,tN=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,l={setState:n,getState:o,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(n,o,l);return l},tI=e=>{let t=e?tN(e):tN,r=e=>(function(e,t=e=>e){let r=u.default.useSyncExternalStore(e.subscribe,u.default.useCallback(()=>t(e.getState()),[e,t]),u.default.useCallback(()=>t(e.getInitialState()),[e,t]));return u.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},tL=(n=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,setSamples:(t,r)=>e({samples:t,totalSamples:r}),appendSamples:t=>e(e=>({samples:[...e.samples,...t]})),addSamplesIfMissing:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t}),viewMode:"hyperbolic",setViewMode:t=>e({viewMode:t}),selectedIds:new Set,isLassoSelection:!1,setSelectedIds:t=>e({selectedIds:t,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let r=new Set(e.selectedIds);return r.has(t)?r.delete(t):r.add(t),{selectedIds:r,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let r=new Set(e.selectedIds);return t.forEach(e=>r.add(e)),{selectedIds:r,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,r,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:r,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?tI(n):tI;function tP({children:e,className:t}){return(0,d.jsx)("div",{className:tf("flex flex-col h-full bg-card rounded-sm overflow-hidden border border-border",t),children:e})}function tO({children:e,className:t}){return(0,d.jsx)("div",{className:tf("px-2 py-1.5 text-[11px] text-muted-foreground/70 border-t border-border bg-card font-mono",t),children:e})}function tT({icon:e,title:t,subtitle:r,children:n,className:o}){return(0,d.jsxs)("div",{className:tf("h-9 min-h-[36px] flex items-center justify-between px-2 border-b border-border bg-secondary select-none",o),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[e&&(0,d.jsx)("span",{className:"flex-shrink-0 w-4 h-4 text-muted-foreground",children:e}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:t}),r&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:r})]}),n&&(0,d.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let tA=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"})]}),tD=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"16",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"6",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2"})]}),t$=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-5 h-5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),tF=()=>(0,d.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})});function tG({samples:e,onLoadMore:t,hasMore:r}){let n=(0,u.useRef)(null),{selectedIds:o,isLassoSelection:l,lassoTotal:i,toggleSelection:s,addToSelection:a,setHoveredId:c,hoveredId:f}=tL(),[p,h]=(0,u.useState)(4);(0,u.useEffect)(()=>{let e=()=>{n.current&&h(Math.max(1,Math.floor((n.current.clientWidth-16+8)/208)))};e();let t=new ResizeObserver(e);return n.current&&t.observe(n.current),()=>t.disconnect()},[]);let m=function(e){let t=u.useReducer(()=>({}),{})[1],r={...e,onChange:(r,n)=>{var o;n?(0,tm.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,r,n)}},[n]=u.useState(()=>new tE(r));return n.setOptions(r),tR(()=>n._didMount(),[]),tR(()=>n._willUpdate()),n}({observeElementRect:tw,observeElementOffset:tz,scrollToFn:tC,...{count:Math.ceil(e.length/p),getScrollElement:()=>n.current,estimateSize:()=>208,overscan:5,getItemKey:(0,u.useCallback)(t=>{let r=t*p;return e.slice(r,r+p).map(e=>e.id).join("-")||`row-${t}`},[e,p])}});(0,u.useEffect)(()=>{let e=n.current;if(!e||!t||!r)return;let o=()=>{let{scrollTop:r,scrollHeight:n,clientHeight:o}=e;n-r-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,r]),(0,u.useEffect)(()=>{m.measure()},[o,l,m]);let g=(0,u.useCallback)((t,r)=>{if(r.metaKey||r.ctrlKey)s(t.id);else if(r.shiftKey&&o.size>0){let r=Array.from(o),n=r[r.length-1],l=e.findIndex(e=>e.id===n),i=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==i){let t=Math.min(l,i),r=Math.max(l,i);a(e.slice(t,r+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),tL.getState().setSelectedIds(e)}},[e,o,s,a]),b=m.getVirtualItems();return(0,d.jsxs)(tP,{children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tA,{}),title:"Samples",subtitle:l?`${i} selected`:o.size>0?`${o.size} selected`:`${e.length} items`}),(0,d.jsx)("div",{ref:n,className:"flex-1 overflow-auto p-2",children:(0,d.jsx)("div",{style:{height:`${m.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(t=>{let r=t.index*p,n=e.slice(r,r+p);return(0,d.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"200px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=!!l||o.has(e.id),r=f===e.id;return(0,d.jsxs)("div",{className:` + relative flex-1 rounded-md overflow-hidden cursor-pointer + transition-all duration-150 ease-out + ${t?"ring-2 ring-primary":""} + ${r?"ring-2 ring-primary/50":""} + `,onClick:t=>g(e,t),onMouseEnter:()=>c(e.id),onMouseLeave:()=>c(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(tF,{})})]},e.id)}),Array.from({length:p-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function t_(e,t=[]){let r=[],n=()=>{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let i=t=>{let{scope:r,children:n,...i}=t,s=r?.[e]?.[l]||o,a=u.useMemo(()=>i,Object.values(i));return(0,d.jsx)(s.Provider,{value:a,children:n})};return i.displayName=t+"Provider",[i,function(r,i){let s=i?.[e]?.[l]||o,a=u.useContext(s);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tW(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tV(...e){return t=>{let r=!1,n=e.map(e=>{let n=tW(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,i,s=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(i=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),i=o.find(tK);if(i){let e=i.props.children,r=o.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,i),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?s:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tq(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function tY(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),i=l.find(tX);if(i){let e=i.props.children,r=l.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var tQ=Symbol("radix.slottable");function tX(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===tQ}var tZ=new WeakMap;function tJ(e,t){var r,n;let o,l,i;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let s=(r=e,n=t,o=r.length,(i=(l=t0(n))>=0?l:o+l)<0||i>=o?-1:i);return -1===s?void 0:e[s]}function t0(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],tZ.set(this,!0)}set(e,t){return tZ.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,i=t0(e),s=i>=0?i:l+i,a=s<0||s>=l?-1:s;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;i<0&&s++;let u=[...this.#t],c=!1;for(let e=s;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t1=globalThis?.document?u.useLayoutEffect:()=>{},t2=u[" useId ".trim().toString()]||(()=>void 0),t5=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t4=u[" useInsertionEffect ".trim().toString()]||t1;function t3({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,i]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t4(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),s=void 0!==e,a=s?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==s){let t=s?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=s},[s,n])}return[a,u.useCallback(t=>{if(s){let r="function"==typeof t?t(e):t;r!==e&&i.current?.(r)}else l(t)},[s,e,l,i])]}Symbol("RADIX:SYNC_STATE");var t6=u.createContext(void 0);function t8(e){let t=u.useContext(t6);return e||t||"ltr"}var t9="rovingFocusGroup.onEntryFocus",t7={bubbles:!1,cancelable:!0},re="RovingFocusGroup",[rt,rr,rn]=function(e){let t=e+"CollectionProvider",[r,n]=t_(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};i.displayName=t;let s=e+"CollectionSlot",a=tY(s),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tB(t,l(s,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=s;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=tY(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,i=u.default.useRef(null),s=tB(t,i),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(i,{ref:i,...o}),()=>void a.itemMap.delete(i))),(0,d.jsx)(h,{...{[p]:""},ref:s,children:n})});return m.displayName=f,[{Provider:i,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(re),[ro,rl]=t_(re,[rn]),[ri,rs]=ro(re),ra=u.forwardRef((e,t)=>(0,d.jsx)(rt.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rt.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rd,{...e,ref:t})})}));ra.displayName=re;var rd=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:i,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tB(t,m),b=t8(i),[y,v]=t3({prop:s,defaultProp:a??null,onChange:c,caller:re}),[x,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=rr(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(t9,k),()=>e.removeEventListener(t9,k)},[k]),(0,d.jsx)(ri,{scope:n,orientation:o,dir:b,loop:l,currentTabStopId:y,onItemFocus:u.useCallback(e=>v(e),[v]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tU.div,{tabIndex:x||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tq(e.onMouseDown,()=>{z.current=!0}),onFocus:tq(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!x){let t=new CustomEvent(t9,t7);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rp([e.find(e=>e.active),e.find(e=>e.id===y),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tq(e.onBlur,()=>w(!1))})})}),ru="RovingFocusGroupItem",rc=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:i,...s}=e,a=function(e){let[t,r]=u.useState(t2());return t1(()=>{r(e=>e??String(t5++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rs(ru,r),p=f.currentTabStopId===c,h=rr(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:b}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rt.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tU.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...s,ref:t,onMouseDown:tq(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tq(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tq(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return rf[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rp(o))}}),children:"function"==typeof i?i({isCurrentTabStop:p,hasTabStop:null!=b}):i})})});rc.displayName=ru;var rf={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rp(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rh="Toggle",rm=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[i,s]=t3({prop:r,onChange:o,defaultProp:n??!1,caller:rh});return(0,d.jsx)(tU.button,{type:"button","aria-pressed":i,"data-state":i?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tq(e.onClick,()=>{e.disabled||s(!i)})})});rm.displayName=rh;var rg="ToggleGroup",[rb,ry]=t_(rg,[rl]),rv=rl(),rx=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rS,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rz,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rg}\``)});rx.displayName=rg;var[rw,rk]=rb(rg),rS=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[i,s]=t3({prop:r,defaultProp:n??"",onChange:o,caller:rg});return(0,d.jsx)(rw,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>i?[i]:[],[i]),onItemActivate:s,onItemDeactivate:u.default.useCallback(()=>s(""),[s]),children:(0,d.jsx)(rE,{...l,ref:t})})}),rz=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[i,s]=t3({prop:r,defaultProp:n??[],onChange:o,caller:rg}),a=u.default.useCallback(e=>s((t=[])=>[...t,e]),[s]),c=u.default.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,d.jsx)(rw,{scope:e.__scopeToggleGroup,type:"multiple",value:i,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rE,{...l,ref:t})})});rx.displayName=rg;var[rj,rC]=rb(rg),rE=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:i,loop:s=!0,...a}=e,u=rv(r),c=t8(i),f={role:"group",dir:c,...a};return(0,d.jsx)(rj,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(ra,{asChild:!0,...u,orientation:l,dir:c,loop:s,children:(0,d.jsx)(tU.div,{...f,ref:t})}):(0,d.jsx)(tU.div,{...f,ref:t})})}),rM="ToggleGroupItem",rR=u.default.forwardRef((e,t)=>{let r=rk(rM,e.__scopeToggleGroup),n=rC(rM,e.__scopeToggleGroup),o=rv(e.__scopeToggleGroup),l=r.value.includes(e.value),i=n.disabled||e.disabled,s={...e,pressed:l,disabled:i},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rc,{asChild:!0,...o,focusable:!i,active:l,ref:a,children:(0,d.jsx)(rN,{...s,ref:t})}):(0,d.jsx)(rN,{...s,ref:t})});rR.displayName=rM;var rN=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rk(rM,r),i={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s="single"===l.type?i:void 0;return(0,d.jsx)(rm,{...s,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rI=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rL=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,i=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let i=rI(t)||rI(n);return o[e][i]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,i,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...s}[t]):({...l,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},rP=rL("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rm,{ref:o,className:tf(rP({variant:t,size:r,className:e})),...n})).displayName=rm.displayName;let rO=u.createContext({size:"default",variant:"default"}),rT=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rx,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(rO.Provider,{value:{variant:t,size:r},children:n})}));rT.displayName=rx.displayName;let rA=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let i=u.useContext(rO);return(0,d.jsx)(rR,{ref:l,className:tf(rP({variant:i.variant||r,size:i.size||n}),e),...o,children:t})});function rD(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function r$(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function rF(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(r$(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{if(!r)return null;let e=[...new Set(r.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":r.label_colors[e]||"#808080");return{uniqueLabels:e,categories:n,palette:o}},[r]),{canvasRef:p,overlayCanvasRef:h,containerRef:m,handlePointerDown:g,handlePointerMove:b,handlePointerUp:y,handlePointerLeave:v,handleDoubleClick:x}=function({embeddings:t,viewMode:r,labelsInfo:n,selectedIds:o,hoveredId:l,setSelectedIds:i,beginLassoSelection:s,setHoveredId:a}){let d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),p=(0,u.useRef)(null),h=(0,u.useRef)(!1),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),b=(0,u.useRef)(0),y=(0,u.useRef)(0),v=(0,u.useRef)([]),x=(0,u.useRef)(-1),w=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{h.current||(h.current=!0,requestAnimationFrame(()=>{h.current=!1;let e=p.current;e&&(e.render(),g.current&&rF(c.current,v.current))}))},[]),S=(0,u.useCallback)(e=>{let t=d.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),z=(0,u.useCallback)(()=>{m.current=!1,g.current=!1,v.current=[],r$(c.current)},[]);(0,u.useEffect)(()=>{if(!t||!n||!d.current||!f.current)return;let o=!1;return(async()=>{try{let l=await e.A(20606);if(o)return;let i=f.current,s=d.current;if(!i||!s)return;p.current&&(p.current.destroy(),p.current=null);let a=i.getBoundingClientRect(),u=Math.floor(a.width),h=Math.floor(a.height);c.current&&(c.current.width=Math.max(1,u),c.current.height=Math.max(1,h),c.current.style.width=`${u}px`,c.current.style.height=`${h}px`,r$(c.current));let m="euclidean"===r?t.euclidean:t.hyperbolic,g=new Float32Array(2*m.length);for(let e=0;e{o=!0,z(),p.current&&(p.current.destroy(),p.current=null)}},[t,n,k,z,r]),(0,u.useEffect)(()=>{let e=p.current;if(!e||!t||!w)return;let r=new Set;for(let e of o){let t=w.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let n=l?w.get(l)??-1:-1;e.setHovered(n),x.current=n,k()},[t,l,w,k,o]),(0,u.useEffect)(()=>{let e=f.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;c.current&&(c.current.width=Math.max(1,r),c.current.height=Math.max(1,n),c.current.style.width=`${r}px`,c.current.style.height=`${n}px`);let o=p.current;o&&(o.resize(r,n),k())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[k]),(0,u.useEffect)(()=>{let e=d.current;if(!e)return;let t=e=>{let t=p.current;if(!t)return;e.preventDefault();let r=S(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,rD(e)),k()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[S,k]);let j=(0,u.useCallback)(e=>{if(!p.current||"number"==typeof e.button&&0!==e.button)return;let t=S(e);b.current=t.x,y.current=t.y,e.shiftKey?(g.current=!0,m.current=!1,v.current=[t.x,t.y],rF(c.current,v.current)):(m.current=!0,g.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[S]),C=(0,u.useCallback)(e=>{let r=p.current;if(!r)return;let n=S(e);if(m.current){let t=n.x-b.current,o=n.y-y.current;b.current=n.x,y.current=n.y,r.pan(t,o,rD(e)),k();return}if(g.current){let e=v.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),rF(c.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===x.current||(x.current=l,r.setHovered(l),t&&(l>=0&&l{let n=p.current;if(!n||!t)return void z();if(g.current){let e=v.current;if(z(),e.length>=6)try{let t=new Float32Array(e),o=n.lassoSelect(t),l=o.geometry?.coords;if(!l||l.length<6)return;n.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({viewMode:r,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}k();return}z(),k()},[s,t,k,z,r]);return{canvasRef:d,overlayCanvasRef:c,containerRef:f,handlePointerDown:j,handlePointerMove:C,handlePointerUp:E,handlePointerLeave:(0,u.useCallback)(e=>{let t=p.current;t&&(x.current=-1,a(null),t.setHovered(-1),k()),z()},[k,a,z]),handleDoubleClick:(0,u.useCallback)(e=>{let t=p.current;t&&(z(),t.setSelection(new Set),i(new Set),k())},[k,i,z])}}({embeddings:r,viewMode:n,labelsInfo:f,selectedIds:l,hoveredId:a,setSelectedIds:i,beginLassoSelection:s,setHoveredId:c}),w=f?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:r?`${r.ids.length} points`:"Loading...",children:(0,d.jsxs)(rT,{type:"single",value:n,onValueChange:e=>e&&o(e),variant:"outline",size:"sm",className:"h-6",children:[(0,d.jsx)(rA,{value:"euclidean",className:"text-[11px] px-2.5 h-6",children:"Euclidean"}),(0,d.jsx)(rA,{value:"hyperbolic",className:"text-[11px] px-2.5 h-6",children:"Hyperbolic"})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:m,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:p,className:"absolute inset-0",style:{zIndex:1},onPointerDown:g,onPointerMove:b,onPointerUp:y,onPointerCancel:y,onPointerLeave:v,onDoubleClick:x}),(0,d.jsx)("canvas",{ref:h,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),!r&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),w.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[w.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":r?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),w.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",w.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rA.displayName=rR.displayName;var r_=Symbol.for("react.lazy"),rW=u[" use ".trim().toString()];function rV(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===r_&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rB=((i=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rV(r)&&"function"==typeof rW&&(r=rW(r._payload)),u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=i,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rV(r)&&"function"==typeof rW&&(r=rW(r._payload));let l=u.Children.toArray(r),i=l.find(rK);if(i){let e=i.props.children,r=l.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rH=Symbol("radix.slottable");function rK(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rH}let rU=rL("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rq=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rB:"button",{className:tf(rU({variant:t,size:r,className:e})),ref:l,...o}));function rY(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tL();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(t$,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rq,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rQ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rX(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function rZ(){let e=await fetch("/api/embeddings");if(!e.ok)throw Error(`Failed to fetch embeddings: ${e.statusText}`);return e.json()}async function rJ(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r0(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({space:"euclidean"===e.viewMode?"euclidean":"hyperbolic",polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r1(){let{samples:e,totalSamples:t,setSamples:r,appendSamples:n,addSamplesIfMissing:o,setDatasetInfo:l,setEmbeddings:i,setIsLoading:s,isLoading:a,error:c,setError:f,selectedIds:p,isLassoSelection:h,lassoQuery:m,lassoSamples:g,lassoTotal:b,lassoIsLoading:y,setLassoResults:v}=tL(),[x,w]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{s(!0),f(null);try{let[e,t,n]=await Promise.all([rQ(),rX(0,100),rZ()]);l(e),r(t.samples,t.total),i(n)}catch(e){console.error("Failed to load data:",e),f(e instanceof Error?e.message:"Failed to load data")}finally{s(!1)}})()},[]),(0,u.useEffect)(()=>{(async()=>{if(h||0===p.size)return;let t=new Set(e.map(e=>e.id)),r=Array.from(p).filter(e=>!t.has(e));if(0!==r.length)try{let e=await rJ(r);o(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[p,e,o,h]),(0,u.useEffect)(()=>{if(!h||!m||!y)return;let e=new AbortController;return(async()=>{try{let t=await r0({viewMode:m.viewMode,polygon:m.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;v(t.samples,t.total,!1)}catch(e){if(e?.name==="AbortError")return;console.error("Failed to fetch lasso selection:",e),v([],0,!1)}})(),()=>e.abort()},[h,y,m,v]);let k=(0,u.useCallback)(async()=>{if(!x){if(h){if(!m||y||!y&&g.length>=b)return;w(!0);try{let e=await r0({viewMode:m.viewMode,polygon:m.polygon,offset:g.length,limit:100});v(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{w(!1)}return}if(!(e.length>=t)){w(!0);try{let t=await rX(e.length,100);n(t.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{w(!1)}}}},[x,n,h,y,m,g.length,b,e.length,t,v]),S=h?g:e,z=h?b:t,j=S.lengthr1],50912)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/10c3a2ade180023c.js b/src/hyperview/server/static/_next/static/chunks/10c3a2ade180023c.js new file mode 100644 index 0000000..90e79ab --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/10c3a2ade180023c.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,75115,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(48277),o=e.r(86846),i={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},u={fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"},s=function({error:e}){let t=e?.digest;return(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{}),(0,n.jsxs)("body",{children:[(0,n.jsx)(o.HandleISRError,{error:e}),(0,n.jsx)("div",{style:i,children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("h2",{style:u,children:["Application error: a ",t?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",t?"server logs":"browser console"," for more information)."]}),t?(0,n.jsx)("p",{style:u,children:`Digest: ${t}`}):null]})})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90175,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function u(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(e){r=u}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var c=[],a=!1,l=-1;function f(){a&&n&&(a=!1,n.length?c=n.concat(c):l=-1,c.length&&p())}function p(){if(!a){var e=s(f);a=!0;for(var t=c.length;t;){for(n=c,c=[];++l1)for(var r=1;r{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(90175)},14871,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},48277,(e,t,r)=>{"use strict";t.exports=e.r(14871)},24171,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return a},createAsyncLocalStorage:function(){return c},createSnapshot:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class u{disable(){throw i}getStore(){}run(){throw i}exit(){throw i}enterWith(){throw i}static bind(e){return e}}let s="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function c(){return s?new s:new u}function a(e){return s?s.bind(e):u.bind(e)}function l(){return s?s.snapshot():function(e,...t){return e(...t)}}},98616,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},26628,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(98616)},86846,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HandleISRError",{enumerable:!0,get:function(){return o}});let n="undefined"==typeof window?e.r(26628).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}return null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},42124,(e,t,r)=>{"use strict";var n=e.i(39057),o=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),l=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),g=Symbol.for("react.view_transition"),v=Symbol.iterator,_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,b={};function S(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||_}function O(){}function E(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||_}S.prototype.isReactComponent={},S.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},O.prototype=S.prototype;var T=E.prototype=new O;T.constructor=E,m(T,S.prototype),T.isPureReactComponent=!0;var w=Array.isArray;function j(){}var R={H:null,A:null,T:null,S:null},x=Object.prototype.hasOwnProperty;function A(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function P(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var C=/\/+/g;function H(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function k(e,t,r){if(null==e)return e;var n=[],u=0;return!function e(t,r,n,u,s){var c,a,l,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var p=!1;if(null===t)p=!0;else switch(f){case"bigint":case"string":case"number":p=!0;break;case"object":switch(t.$$typeof){case o:case i:p=!0;break;case y:return e((p=t._init)(t._payload),r,n,u,s)}}if(p)return s=s(t),p=""===u?"."+H(t,0):u,w(s)?(n="",null!=p&&(n=p.replace(C,"$&/")+"/"),e(s,r,n,"",function(e){return e})):null!=s&&(P(s)&&(c=s,a=n+(null==s.key||t&&t.key===s.key?"":(""+s.key).replace(C,"$&/")+"/")+p,s=A(c.type,a,c.props)),r.push(s)),1;p=0;var d=""===u?".":u+":";if(w(t))for(var h=0;h{"use strict";t.exports=e.r(42124)},15501,(e,t,r)=>{"use strict";var n=e.r(30668);function o(e){var t="https://react.dev/errors/"+e;if(1{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(15501)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/118bac1f0e1f8b45.js b/src/hyperview/server/static/_next/static/chunks/118bac1f0e1f8b45.js new file mode 100644 index 0000000..48c4158 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/118bac1f0e1f8b45.js @@ -0,0 +1,4 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,84524,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},35856,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},19551,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return a},isBailoutToCSRError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="BAILOUT_TO_CLIENT_SIDE_RENDERING";class a extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}},64918,(e,t,r)=>{"use strict";var n=e.r(69941),o={stream:!0},u=Object.prototype.hasOwnProperty;function a(t){var r=e.r(t);return"function"!=typeof r.then||"fulfilled"===r.status?null:(r.then(function(e){r.status="fulfilled",r.value=e},function(e){r.status="rejected",r.reason=e}),r)}var i=new WeakSet,l=new WeakSet;function s(){}function c(t){for(var r=t[1],n=[],o=0;of||35===f||114===f||120===f?(p=f,f=3,s++):(p=0,f=3);continue;case 2:44===(b=l[s++])?f=4:h=h<<4|(96l.length&&(b=-1)}var g=l.byteOffset+s;if(-1{"use strict";t.exports=e.r(64918)},30545,(e,t,r)=>{"use strict";t.exports=e.r(14992)},88112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return i},getAccessFallbackErrorTypeByStatus:function(){return c},getAccessFallbackHTTPStatus:function(){return s},isHTTPAccessFallbackError:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},a=new Set(Object.values(u)),i="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===i&&a.has(Number(r))}function s(e){return Number(e.digest.split(";")[1])}function c(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91945,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84628,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return i},RedirectType:function(){return l},isRedirectError:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(91945),i="NEXT_REDIRECT";var l=((n={}).push="push",n.replace="replace",n);function s(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in a.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},31028,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(88112),o=e.r(84628);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69370,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return l},PathnameContext:function(){return i},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(30668),a=(0,u.createContext)(null),i=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null);function c(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},29037,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},2089,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return a},FLIGHT_HEADERS:function(){return h},NEXT_ACTION_NOT_FOUND_HEADER:function(){return E},NEXT_DID_POSTPONE_HEADER:function(){return b},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return c},NEXT_HTML_REQUEST_ID_HEADER:function(){return O},NEXT_IS_PRERENDER_HEADER:function(){return m},NEXT_REQUEST_ID_HEADER:function(){return R},NEXT_REWRITTEN_PATH_HEADER:function(){return g},NEXT_REWRITTEN_QUERY_HEADER:function(){return v},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return i},NEXT_RSC_UNION_QUERY:function(){return _},NEXT_URL:function(){return d},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",a="next-action",i="next-router-state-tree",l="next-router-prefetch",s="next-router-segment-prefetch",c="next-hmr-refresh",f="__next_hmr_refresh_hash__",d="next-url",p="text/x-component",h=[u,i,l,c,s],_="_rsc",y="x-nextjs-stale-time",b="x-nextjs-postponed",g="x-nextjs-rewritten-path",v="x-nextjs-rewritten-query",m="x-nextjs-prerender",E="x-nextjs-action-not-found",R="x-nextjs-request-id",O="x-nextjs-html-request-id";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63416,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return y},getDraftModeProviderForCacheScope:function(){return _},getHmrRefreshHash:function(){return d},getPrerenderResumeDataCache:function(){return c},getRenderResumeDataCache:function(){return f},getRuntimeStagePromise:function(){return b},getServerComponentsHmrCache:function(){return h},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return l},throwInvariantForMissingStore:function(){return s},workUnitAsyncStorage:function(){return u.workUnitAsyncStorageInstance}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(29037),a=e.r(2089),i=e.r(84524);function l(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function s(){throw Object.defineProperty(new i.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function c(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function f(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function d(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return t.hmrRefreshHash;case"request":var r;return null==(r=t.cookies.get(a.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:r.value}}function p(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.isHmrRefresh??!1}return!1}function h(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.serverComponentsHmrCache}}function _(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function y(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function b(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},83441,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(30668),o=e.r(69370);function u(){return!function(){if("undefined"==typeof window){let{workUnitAsyncStorage:t}=e.r(63416),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},80118,(e,t,r)=>{"use strict";function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61524,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return a},useNavFailureHandler:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(30668);let u=e.r(80118);function a(e){return!!e&&"undefined"!=typeof window&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function i(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},26470,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},62112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return i},getBotType:function(){return c},isBot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(26470),a=/Googlebot(?!-)|Googlebot$/i,i=u.HTML_LIMITED_BOT_UA_RE.source;function l(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return a.test(e)||l(e)}function c(e){return a.test(e)?"dom":l(e)?"html":void 0}},71202,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return h},ErrorBoundaryHandler:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(35856),a=e.r(48277),i=u._(e.r(30668)),l=e.r(83441),s=e.r(31028);e.r(61524);let c=e.r(86846),f=e.r(62112),d="undefined"!=typeof window&&(0,f.isBot)(window.navigator.userAgent);class p extends i.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,a.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function h({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,l.useUntrackedPathname)();return e?(0,a.jsx)(p,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98165,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={ACTION_HMR_REFRESH:function(){return c},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return a},ACTION_RESTORE:function(){return l},ACTION_SERVER_ACTION:function(){return f},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return d}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a="refresh",i="navigate",l="restore",s="server-patch",c="hmr-refresh",f="server-action";var d=((n={}).AUTO="auto",n.FULL="full",n.TEMPORARY="temporary",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61909,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=u?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}},65035,(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},53128,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return l},useActionQueue:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=e.r(65035),i=null;function l(e){if(null===i)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});i(e)}function s(e){let[t,r]=u.default.useState(e.state);i=t=>e.dispatch(t,r);let n=(0,u.useMemo)(()=>t,[t]);return(0,a.isThenable)(n)?(0,u.use)(n):n}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59295,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return a}});let n=e.r(30668),o=e.r(98165),u=e.r(53128);async function a(e,t){return new Promise((r,a)=>{(0,n.startTransition)(()=>{(0,u.dispatchAppRouterAction)({type:o.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:a})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},85045,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},96670,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},91395,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return c},addSearchParamsIfPageSegment:function(){return l},computeSelectedLayoutSegment:function(){return s},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let a;if(n)a=t[1][r];else{let e=t[1];a=e.children??Object.values(e)[0]}if(!a)return o;let i=u(a[0]);return!i||i.startsWith(c)?o:(o.push(i),e(a,r,!1,o))}},isGroupSegment:function(){return a},isParallelRouteSegment:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function a(e){return"("===e[0]&&e.endsWith(")")}function i(e){return e.startsWith("@")&&"@children"!==e}function l(e,t){if(e.includes(c)){let e=JSON.stringify(t);return"{}"!==e?c+"?"+e:c}return e}function s(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let c="__PAGE__",f="__DEFAULT__"},86511,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={normalizeAppPath:function(){return i},normalizeRscURL:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(96670),a=e.r(91395);function i(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function l(e){return e.replace(/\.rsc($|\?)/,"$1")}},50864,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return a},extractInterceptionRouteInformation:function(){return l},isInterceptionRouteAppPath:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(86511),a=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function l(e){let t,r,n;for(let o of e.split("/"))if(r=a.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=o.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},22039,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"matchSegment",{enumerable:!0,get:function(){return n}});let n=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69434,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return i},ROOT_SEGMENT_REQUEST_KEY:function(){return a},appendSegmentRequestKeyPart:function(){return s},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentRequestKeyPart:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a="",i="/_head";function l(e){if("string"==typeof e)return e.startsWith(u.PAGE_SEGMENT_KEY)?u.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0];return"$"+e[2]+"$"+f(t)}function s(e,t,r){return e+"/"+("children"===t?r:`@${f(t)}/${r}`)}let c=/^[a-zA-Z0-9\-_@]+$/;function f(e){return c.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return`__next${e.replace(/\//g,".")}.txt`}},88617,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return f},getCacheKeyForDynamicParam:function(){return d},getParamValueFromCacheKey:function(){return h},getRenderedPathname:function(){return s},getRenderedSearch:function(){return l},parseDynamicParamFromURLPart:function(){return c},urlSearchParamsToParsedUrlQuery:function(){return _},urlToUrlWithoutFlightMarker:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a=e.r(69434),i=e.r(2089);function l(e){let t=e.headers.get(i.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:p(new URL(e.url)).search}function s(e){return e.headers.get(i.NEXT_REWRITTEN_PATH_HEADER)??p(new URL(e.url)).pathname}function c(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}function f(e){return!(e===a.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(u.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==u.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function d(e,t){return"string"==typeof e?(0,u.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function p(e){let t=new URL(e);if(t.searchParams.delete(i.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function h(e,t){return"c"===t||"oc"===t?e.split("/"):e}function _(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94955,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return s},getFlightDataPartsFromPath:function(){return l},getNextFlightSegmentPath:function(){return c},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a=e.r(88617),i=e.r(80118);function l(e){let[t,r,n,o]=e.slice(-4),u=e.slice(0,-4);return{pathToSegment:u.slice(0,-1),segmentPath:u,segment:u[u.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:o,isRootRender:4===e.length}}function s(e,t){let r=(0,a.getRenderedPathname)(e),n=(0,a.getRenderedSearch)(e),o=(0,i.createHrefFromUrl)(new URL(location.href)),u=t.f[0],l=u[0];return{b:t.b,c:o.split("/"),q:n,i:t.i,f:[[function e(t,r,n,o){let u,i,l=t[0];if("string"==typeof l)u=l,i=(0,a.doesStaticSegmentAppearInURL)(l);else{let e=l[0],t=l[2],s=(0,a.parseDynamicParamFromURLPart)(t,n,o);u=[e,(0,a.getCacheKeyForDynamicParam)(s,r),t],i=!0}let s=i?o+1:o,c=t[1],f={};for(let t in c){let o=c[t];f[t]=e(o,r,n,s)}return[u,f,null,t[3],t[4]]}(l,n,r.split("/").filter(e=>""!==e),0),u[1],u[2],u[2]]],m:t.m,G:t.G,S:t.S}}function c(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>l(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){var r,n;let[o,a,i,l,s,c]=t,f="string"==typeof(r=o)&&r.startsWith(u.PAGE_SEGMENT_KEY+"?")?u.PAGE_SEGMENT_KEY:r,d={};for(let[t,r]of Object.entries(a))d[t]=e(r);let p=[f,d,null,(n=l)&&"refresh"!==n?l:null];return void 0!==s&&(p[4]=s),void 0!==c&&(p[5]=c),p}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70410,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getAppBuildId:function(){return i},setAppBuildId:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="";function a(e){u=e}function i(){return u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},83767,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return u},hexHash:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t=5381;for(let r=0;r>>0}function a(e){return u(e).toString(36).slice(0,5)}},62858,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return o}});let n=e.r(83767);function o(e,t,r,o){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===o?"":(0,n.hexHash)([e||"0",t||"0",r||"0",o||"0"].join(","))}},57283,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return i},setCacheBustingSearchParamWithHash:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(62858),a=e.r(2089),i=(e,t)=>{l(e,(0,u.computeCacheBustingSearchParam)(t[a.NEXT_ROUTER_PREFETCH_HEADER],t[a.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[a.NEXT_ROUTER_STATE_TREE_HEADER],t[a.NEXT_URL]))},l=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${a.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${a.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${a.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},20320,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var o={createFetch:function(){return m},createFromNextReadableStream:function(){return E},fetchServerResponse:function(){return v}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(30545),i=e.r(2089),l=e.r(59295),s=e.r(85045),c=e.r(98165),f=e.r(94955),d=e.r(70410),p=e.r(57283),h=e.r(88617),_=a.createFromReadableStream,y=a.createFromFetch;function b(e){return(0,h.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let g=!1;async function v(e,t){let{flightRouterState:r,nextUrl:n,prefetchKind:o}=t,u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,f.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};o===c.PrefetchKind.AUTO&&(u[i.NEXT_ROUTER_PREFETCH_HEADER]="1"),n&&(u[i.NEXT_URL]=n);let a=e;try{let t=o?o===c.PrefetchKind.TEMPORARY?"high":"low":"auto";(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let r=await m(e,u,t,!0),n=(0,h.urlToUrlWithoutFlightMarker)(new URL(r.url)),l=r.redirected?n:a,s=r.headers.get("content-type")||"",p=!!r.headers.get("vary")?.includes(i.NEXT_URL),_=!!r.headers.get(i.NEXT_DID_POSTPONE_HEADER),y=r.headers.get(i.NEXT_ROUTER_STALE_TIME_HEADER),g=null!==y?1e3*parseInt(y,10):-1,v=s.startsWith(i.RSC_CONTENT_TYPE_HEADER);if(v||(v=s.startsWith("text/plain")),!v||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),b(n.toString());let R=r.flightResponse;if(null===R){let e,t=_?(e=r.body.getReader(),new ReadableStream({async pull(t){for(;;){let{done:r,value:n}=await e.read();if(!r){t.enqueue(n);continue}return}}})):r.body;R=E(t,u)}let O=await R;if((0,d.getAppBuildId)()!==O.b)return b(r.url);let S=(0,f.normalizeFlightData)(O.f);if("string"==typeof S)return b(S);return{flightData:S,canonicalUrl:l,renderedSearch:(0,h.getRenderedSearch)(r),couldBeIntercepted:p,prerendered:O.S,postponed:_,staleTime:g,debugInfo:R._debugInfo??null}}catch(e){return g||console.error(`Failed to fetch RSC payload for ${a}. Falling back to browser navigation.`,e),a.toString()}}async function m(e,t,r,o,u){var a,c;let f=new URL(e);(0,p.setCacheBustingSearchParam)(f,t);let d=fetch(f,{credentials:"same-origin",headers:t,priority:r||void 0,signal:u}),h=o?(a=d,c=t,y(a,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(c)})):null,_=await d,b=_.redirected,g=new URL(_.url,f);return g.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:g.href,redirected:b,ok:_.ok,headers:_.headers,body:_.body,status:_.status,flightResponse:h}}function E(e,t){return _(e,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t)})}"undefined"!=typeof window&&(window.addEventListener("pagehide",()=>{g=!0}),window.addEventListener("pageshow",()=>{g=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},43317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=e.r(91395);function o(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59162,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},45243,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return a},GlobalLayoutRouterContext:function(){return l},LayoutRouterContext:function(){return i},MissingSlotContext:function(){return c},TemplateContext:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(35856)._(e.r(30668)),a=u.default.createContext(null),i=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(null),c=u.default.createContext(new Set)},13058,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return a},useServerInsertedHTML:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=u.default.createContext(null);function i(e){let t=(0,u.useContext)(a);t&&t(e)}},40288,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function a(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39069,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},93988,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(39069)},44216,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return l},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return c},redirect:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91945),a=e.r(84628),i="undefined"==typeof window?e.r(93988).actionAsyncStorage:void 0;function l(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(a.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${a.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw l(e,t??=i?.getStore()?.isAction?a.RedirectType.push:a.RedirectType.replace,u.RedirectStatusCode.TemporaryRedirect)}function c(e,t=a.RedirectType.replace){throw l(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,a.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48918,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(88112),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92881,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(88112).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},24673,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(88112).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33517,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(19551),o=e.r(31028);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64265,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return u},makeDevtoolsIOAwarePromise:function(){return f},makeHangingPromise:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}let a="HANGING_PROMISE_REJECTION";class i extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=a}}let l=new WeakMap;function s(e,t,r){if(e.aborted)return Promise.reject(new i(t,r));{let n=new Promise((n,o)=>{let u=o.bind(null,new i(t,r)),a=l.get(e);if(a)a.push(u);else{let t=[u];l.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{t(e)},0)})}},67867,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},61541,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return a},isDynamicServerError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="DYNAMIC_SERVER_USAGE";class a extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},16819,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return a},isStaticGenBailoutError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="NEXT_STATIC_GEN_BAILOUT";class a extends Error{constructor(...e){super(...e),this.code=u}}function i(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66251,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return u},OUTLET_BOUNDARY_NAME:function(){return i},ROOT_LAYOUT_BOUNDARY_NAME:function(){return l},VIEWPORT_BOUNDARY_NAME:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="__next_metadata_boundary__",a="__next_viewport_boundary__",i="__next_outlet_boundary__",l="__next_root_layout_boundary__"},25992,(e,t,r)=>{"use strict";var n=e.i(39057);Object.defineProperty(r,"__esModule",{value:!0});var o={atLeastOneTask:function(){return l},scheduleImmediate:function(){return i},scheduleOnNextTick:function(){return a},waitAtLeastOneReactRenderTask:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},i=e=>{setImmediate(e)};function l(){return new Promise(e=>i(e))}function s(){return new Promise(e=>setImmediate(e))}},93501,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={RenderStage:function(){return l},StagedRenderingController:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(84524),i=e.r(59162);var l=((n={})[n.Static=1]="Static",n[n.Runtime=2]="Runtime",n[n.Dynamic=3]="Dynamic",n);class s{constructor(e=null){this.abortSignal=e,this.currentStage=1,this.runtimeStagePromise=(0,i.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,i.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<2&&(this.runtimeStagePromise.promise.catch(c),this.runtimeStagePromise.reject(t)),this.currentStage<3&&(this.dynamicStagePromise.promise.catch(c),this.dynamicStagePromise.reject(t))},{once:!0})}advanceStage(e){!(this.currentStage>=e)&&(this.currentStage=e,e>=2&&this.runtimeStagePromise.resolve(),e>=3&&this.dynamicStagePromise.resolve())}getStagePromise(e){switch(e){case 2:return this.runtimeStagePromise.promise;case 3:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new a.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,o,u;let a,i=(n=this.getStagePromise(e),o=t,u=r,a=new Promise((e,t)=>{n.then(e.bind(null,u),t)}),void 0!==o&&(a.displayName=o),a);return this.abortSignal&&i.catch(c),i}}function c(){}},93869,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,u={Postpone:function(){return A},PreludeState:function(){return J},abortAndThrowOnSynchronousRequestDataAccess:function(){return T},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return B},consumeDynamicAccess:function(){return L},createDynamicTrackingState:function(){return v},createDynamicValidationState:function(){return m},createHangingInputAbortSignal:function(){return H},createRenderInBrowserAbortSignal:function(){return F},delayUntilRuntimeStage:function(){return ee},formatDynamicAPIAccesses:function(){return $},getFirstDynamicReason:function(){return E},isDynamicPostpone:function(){return N},isPrerenderInterruptedError:function(){return U},logDisallowedDynamicError:function(){return Q},markCurrentScopeAsDynamic:function(){return R},postponeWithTracking:function(){return M},throwIfDisallowedDynamic:function(){return Z},throwToInterruptStaticGeneration:function(){return O},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return S},trackSynchronousPlatformIOAccessInDev:function(){return w},useDynamicRouteParams:function(){return X},useDynamicSearchParams:function(){return W}};for(var a in u)Object.defineProperty(r,a,{enumerable:!0,get:u[a]});let i=(n=e.r(30668))&&n.__esModule?n:{default:n},l=e.r(61541),s=e.r(16819),c=e.r(63416),f=e.r(26628),d=e.r(64265),p=e.r(66251),h=e.r(25992),_=e.r(19551),y=e.r(84524),b=e.r(93501),g="function"==typeof i.default.unstable_postpone;function v(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function m(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function E(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function R(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new s.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return M(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new l.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function O(e,t,r){let n=Object.defineProperty(new l.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function S(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function P(e,t,r){let n=k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let o=n.dynamicTracking;P(e,t,n),o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}function w(e){e.stagedRendering&&e.stagedRendering.advanceStage(b.RenderStage.Dynamic)}function T(e,t,r,n){if(!1===n.controller.signal.aborted){P(e,t,n);let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}throw k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function A({reason:e,route:t}){let r=c.workUnitAsyncStorage.getStore();M(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function M(e,t,r){(function(){if(!g)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),i.default.unstable_postpone(D(e,t))}function D(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function N(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&x(e.message)}function x(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===x(D("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let C="NEXT_PRERENDER_INTERRUPTED";function k(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=C,t}function U(e){return"object"==typeof e&&null!==e&&e.digest===C&&"name"in e&&"message"in e&&e instanceof Error}function I(e){return e.length>0}function L(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function $(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: +${t}`))}function F(){let e=new AbortController;return e.abort(Object.defineProperty(new _.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function H(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,c.getRuntimeStagePromise)(e);r?r.then(()=>(0,h.scheduleOnNextTick)(()=>t.abort())):(0,h.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function B(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function X(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return M(t.route,e,r.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function W(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,c.throwForMissingRequestStore)(e),r.type){case"prerender-client":i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new _.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let G=/\n\s+at Suspense \(\)/,Y=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${p.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),q=RegExp(`\\n\\s+at ${p.METADATA_BOUNDARY_NAME}[\\n\\s]`),K=RegExp(`\\n\\s+at ${p.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),z=RegExp(`\\n\\s+at ${p.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function V(e,t,r,n){if(!z.test(t)){if(q.test(t)){r.hasDynamicMetadata=!0;return}if(K.test(t)){r.hasDynamicViewport=!0;return}if(Y.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(G.test(t)){r.hasAllowedDynamic=!0;return}else{var o,u;let a;if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let i=(o=`Route "${e.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,u=t,(a=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).stack=a.name+": "+o+u,a);return void r.dynamicErrors.push(i)}}}var J=((o={})[o.Full=0]="Full",o[o.Empty=1]="Empty",o[o.Errored=2]="Errored",o);function Q(e,t){console.error(t),e.dev||(e.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function Z(e,t,r,n){if(n.syncDynamicErrorWithStack)throw Q(e,n.syncDynamicErrorWithStack),new s.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;tt):t}},57617,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,u.isBailoutToCSRError)(t)||(0,l.isDynamicServerError)(t)||(0,i.isDynamicPostpone)(t)||(0,o.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,i.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(64265),o=e.r(67867),u=e.r(19551),a=e.r(31028),i=e.r(93869),l=e.r(61541);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},60516,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="undefined"==typeof window?e.r(57617).unstable_rethrow:e.r(33517).unstable_rethrow;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},8e3,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},forbidden:function(){return s.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return a.permanentRedirect},redirect:function(){return a.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return f.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13058),a=e.r(44216),i=e.r(84628),l=e.r(48918),s=e.r(92881),c=e.r(24673),f=e.r(60516);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},9187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return d.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return f.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return g},usePathname:function(){return y},useRouter:function(){return b},useSearchParams:function(){return _},useSelectedLayoutSegment:function(){return m},useSelectedLayoutSegments:function(){return v},useServerInsertedHTML:function(){return c.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=e.r(45243),i=e.r(69370),l=e.r(91395),s=e.r(13058),c=e.r(98680),f=e.r(40288),d=e.r(8e3),p="undefined"==typeof window?e.r(93869).useDynamicRouteParams:void 0,h="undefined"==typeof window?e.r(93869).useDynamicSearchParams:void 0;function _(){h?.("useSearchParams()");let e=(0,u.useContext)(i.SearchParamsContext);return(0,u.useMemo)(()=>e?new s.ReadonlyURLSearchParams(e):null,[e])}function y(){return p?.("usePathname()"),(0,u.useContext)(i.PathnameContext)}function b(){let e=(0,u.useContext)(a.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function g(){return p?.("useParams()"),(0,u.useContext)(i.PathParamsContext)}function v(e="children"){p?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(a.LayoutRouterContext);return t?(0,l.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function m(e="children"){p?.("useSelectedLayoutSegment()"),(0,u.useContext)(i.NavigationPromisesContext);let t=v(e);return(0,l.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},2188,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909),a=e.r(48277),i=u._(e.r(30668)),l=e.r(9187),s=e.r(44216),c=e.r(84628);function f({redirect:e,reset:t,redirectType:r}){let n=(0,l.useRouter)();return(0,i.useEffect)(()=>{i.default.startTransition(()=>{r===c.RedirectType.push?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends i.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,s.getURLFromRedirectError)(e),r=(0,s.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,a.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,l.useRouter)();return(0,a.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},83648,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64381,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return i},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(66251),a={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},i=a[u.METADATA_BOUNDARY_NAME.slice(0)],l=a[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=a[u.OUTLET_BOUNDARY_NAME.slice(0)],c=a[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},20017,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=e.r(50864);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/19d0d66700a996ca.css b/src/hyperview/server/static/_next/static/chunks/19d0d66700a996ca.css deleted file mode 100644 index 4f6fdf1..0000000 --- a/src/hyperview/server/static/_next/static/chunks/19d0d66700a996ca.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.right-1{right:.25rem}.top-1{top:.25rem}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.flex{display:flex}.h-14{height:3.5rem}.h-3{height:.75rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.w-1\/2{width:50%}.w-3{width:.75rem}.w-36{width:9rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-full{max-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:rgb(79 70 229/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:#0000}.bg-background{--tw-bg-opacity:1;background-color:rgb(10 10 11/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(79 70 229/var(--tw-bg-opacity,1))}.bg-surface{--tw-bg-opacity:1;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))}.bg-surface-light{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))}.bg-surface\/80{background-color:#18181bcc}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-text{--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity,1))}.text-text-muted{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-primary{--tw-ring-opacity:1;--tw-ring-color:rgb(79 70 229/var(--tw-ring-opacity,1))}.ring-primary-light{--tw-ring-opacity:1;--tw-ring-color:rgb(129 140 248/var(--tw-ring-opacity,1))}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--background:#0a0a0b;--surface:#18181b;--surface-light:#27272a;--border:#3f3f46;--primary:#4f46e5;--primary-light:#818cf8;--text:#fafafa;--text-muted:#a1a1aa}*{box-sizing:border-box}body{background-color:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#4d4d4d}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hover\:bg-border:hover{--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))}.hover\:bg-surface-light:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))} diff --git a/src/hyperview/server/static/_next/static/chunks/3686d57edf1023fb.js b/src/hyperview/server/static/_next/static/chunks/3686d57edf1023fb.js new file mode 100644 index 0000000..8044046 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/3686d57edf1023fb.js @@ -0,0 +1,301 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54214,e=>{"use strict";function t(e,t,i){if(t.length%2!=0)throw Error(`positions length must be even (got ${t.length})`);let r=t.length/2,o=i??new Uint16Array(r);if(o.length!==r)throw Error(`labels length must equal number of points (${r}), got ${o.length}`);return{n:r,positions:t,labels:o,geometry:e}}function i(e){let t=new Float32Array(2*e.length);for(let i=0;i65535)throw Error(`label index out of range at ${i}: ${r}`);t[i]=r}return t}e.s(["createDataset",()=>t,"packPositions",()=>i,"packPositionsXY",()=>r,"packUint16Labels",()=>o],15454),e.i(15454);let s=["#4e79a7","#f28e2c","#e15759","#76b7b2","#59a14f","#edc949","#af7aa1","#ff9da7","#9c755f","#bab0ab"],a="#ff0000",n="#ffffff";function l(e,t){return{kind:"indices",indices:e,computeTimeMs:t,has:t=>e.has(t)}}function h(e,t,i,r){return{kind:"geometry",geometry:e,computeTimeMs:i,has:i=>r(t[2*i],t[2*i+1],e.coords)}}function u(e,t,i,r,o){let s=.4*Math.min(r,o)*i.zoom;return{x:r/2+(e-i.centerX)*s,y:o/2-(t-i.centerY)*s}}function d(e,t,i,r,o){let s=.4*Math.min(r,o)*i.zoom;return{x:i.centerX+(e-r/2)/s,y:i.centerY-(t-o/2)/s}}function f(){return{type:"poincare",ax:0,ay:0,displayZoom:1}}function c(e,t,i,r){let o=e-i,s=t-r,a=1-(i*e+r*t),n=-(i*t-r*e),l=a*a+n*n;if(l<1e-12){let e=Math.sqrt(o*o+s*s);return e<1e-12?{x:0,y:0}:{x:o/e*.999,y:s/e*.999}}let h=(o*a+s*n)/l,u=(s*a-o*n)/l,d=h*h+u*u;if(d>=1){let e=Math.sqrt(d);return{x:h/e*.999,y:u/e*.999}}return{x:h,y:u}}function p(e,t,i,r){let o=e+i,s=t+r,a=1+(i*e+r*t),n=i*t-r*e,l=a*a+n*n;if(l<1e-12){let e=Math.sqrt(o*o+s*s);return e<1e-12?{x:0,y:0}:{x:o/e*.999,y:s/e*.999}}let h=(o*a+s*n)/l,u=(s*a-o*n)/l,d=h*h+u*u;if(d>=1){let e=Math.sqrt(d);return{x:h/e*.999,y:u/e*.999}}return{x:h,y:u}}function m(e,t,i,r,o){let s=.45*Math.min(r,o)*i.displayZoom,a=(e-r/2)/s,n=-(t-o/2)/s,l=a*a+n*n;if(l>=1){let e=Math.sqrt(l);return p(a/e*.999,n/e*.999,i.ax,i.ay)}return p(a,n,i.ax,i.ay)}function x(e,t,i,r,o,s,a){let n=.45*Math.min(s,a)*e.displayZoom,l=(e,t,i=.95)=>{let r=e*e+t*t;if(r>i*i){let o=Math.sqrt(r);return{x:e/o*i,y:t/o*i}}return{x:e,y:t}},h=l((t-s/2)/n,-(i-a/2)/n),u=l((r-s/2)/n,-(o-a/2)/n),d=p(h.x,h.y,e.ax,e.ay),f=function(e,t,i,r){let o=i*e-r*t,s=i*t+r*e,a=o*o+s*s-1;if(1e-10>Math.abs(a))return{x:-i,y:-r};let n=e-i,l=r-t,h=(-(1+o)*n+s*l)/a,u=((1-o)*l-s*n)/a,d=h*h+u*u;if(d>=1){let e=Math.sqrt(d);return{x:h/e*.99,y:u/e*.99}}return{x:h,y:u}}(d.x,d.y,u.x,u.y);return{...e,ax:f.x,ay:f.y}}function g(e,t,i){let r=i.length/2;if(r<3)return!1;let o=!1;for(let s=0,a=r-1;sl||tu)return!1;let d=o-i,f=s-r,c=d*d+f*f;if(c<1e-9*1e-9)return 1e-9>=Math.sqrt((e-i)*(e-i)+(t-r)*(t-r));let p=Math.max(0,Math.min(1,((e-i)*d+(t-r)*f)/c)),m=i+p*d,x=r+p*f;return 1e-9>=Math.sqrt((e-m)*(e-m)+(t-x)*(t-x))}(e,t,r,n,l,h,1e-9))return!0;n>t!=h>t&&e<(l-r)*(t-n)/(h-n)+r&&(o=!o)}return o}function b(e){let t=1/0,i=1/0,r=-1/0,o=-1/0;for(let s=0;sr&&(r=a),no&&(o=n)}return Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(r)&&Number.isFinite(o)?{xMin:t,yMin:i,xMax:r,yMax:o}:{xMin:0,yMin:0,xMax:0,yMax:0}}function E(e,t,i){return ei?i:0|e}class R{n;bounds;cellsX;cellsY;cellSizeX;cellSizeY;offsets;ids;constructor(e,t,i=64){this.n=e.length/2|0,this.bounds=t??function(e){let t=1/0,i=1/0,r=-1/0,o=-1/0;for(let s=0;sr&&(r=a),no&&(o=n)}return Number.isFinite(t)&&Number.isFinite(i)?(1e-9>Math.abs(r-t)&&(r=t+1),1e-9>Math.abs(o-i)&&(o=i+1),{minX:t,minY:i,maxX:r,maxY:o}):{minX:0,minY:0,maxX:0,maxY:0}}(e);const r=this.bounds.maxX-this.bounds.minX,o=this.bounds.maxY-this.bounds.minY,s=Math.max(64,Math.min(1e6,Math.ceil(this.n/Math.max(1,i))));let a=Math.round(Math.sqrt(r/o*s)),n=Math.round(s/(a=E(a,8,2048)));n=E(n,8,2048),this.cellsX=a,this.cellsY=n,this.cellSizeX=r/a,this.cellSizeY=o/n;const l=a*n,h=new Uint32Array(l);for(let t=0;tr.push(e))}}function T(e){let t=e.trim();if(!t.startsWith("#"))return[1,1,1,1];let i=t.slice(1);return 3===i.length?[parseInt(i[0]+i[0],16)/255,parseInt(i[1]+i[1],16)/255,parseInt(i[2]+i[2],16)/255,1]:6===i.length||8===i.length?[parseInt(i.slice(0,2),16)/255,parseInt(i.slice(2,4),16)/255,parseInt(i.slice(4,6),16)/255,8===i.length?parseInt(i.slice(6,8),16)/255:1]:[1,1,1,1]}function y(e,t,i){let r=e.createShader(t);if(!r)throw Error("Failed to create shader");if(e.shaderSource(r,i),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r)??"unknown";throw e.deleteShader(r),Error(`Shader compile failed: ${t}`)}return r}function _(e,t,i){let r=y(e,e.VERTEX_SHADER,t),o=y(e,e.FRAGMENT_SHADER,i),s=e.createProgram();if(!s)throw Error("Failed to create program");if(e.attachShader(s,r),e.attachShader(s,o),e.linkProgram(s),e.deleteShader(r),e.deleteShader(o),!e.getProgramParameter(s,e.LINK_STATUS)){let t=e.getProgramInfoLog(s)??"unknown";throw e.deleteProgram(s),Error(`Program link failed: ${t}`)}return s}function v(e,t,i,r){e.width=Math.max(1,Math.floor(t*r)),e.height=Math.max(1,Math.floor(i*r)),e.style.width=`${t}px`,e.style.height=`${i}px`}let A=`#version 300 es +precision highp float; +precision highp int; + +flat in uint v_label; + +// Present in the vertex stage too; redeclare here so we can compute AA width. +uniform float u_dpr; +uniform float u_pointRadiusCss; + +uniform sampler2D u_paletteTex; +uniform int u_paletteSize; +uniform int u_paletteWidth; + +out vec4 outColor; + +void main() { + vec2 p = gl_PointCoord * 2.0 - 1.0; + // Anti-aliased circle: avoid harsh discard edges that can look like + // "weird polygons" at small sizes or without MSAA. + float r = length(p); + // Ensure at least ~1px transition (in point-local coordinates) so small + // points remain visually circular. + float radiusPx = max(u_pointRadiusCss * u_dpr, 1.0); + // Slightly wider than 1px helps circles stay round-looking when zoomed out + // (where points are perceptually tiny and aliasing is more obvious). + float aa = max(fwidth(r), 1.5 / radiusPx); + float alpha = 1.0 - smoothstep(1.0 - aa, 1.0 + aa, r); + if (alpha <= 0.0) discard; + + int size = max(u_paletteSize, 1); + int w = max(u_paletteWidth, 1); + int idx = int(v_label) % size; + int x = idx % w; + int y = idx / w; + vec4 c = texelFetch(u_paletteTex, ivec2(x, y), 0); + outColor = vec4(c.rgb, c.a * alpha); +} +`,S=`#version 300 es +precision highp float; +precision highp int; + +flat in uint v_label; + +uniform sampler2D u_paletteTex; +uniform int u_paletteSize; +uniform int u_paletteWidth; + +out vec4 outColor; + +void main() { + int size = max(u_paletteSize, 1); + int w = max(u_paletteWidth, 1); + int idx = int(v_label) % size; + int x = idx % w; + int y = idx / w; + outColor = texelFetch(u_paletteTex, ivec2(x, y), 0); +} +`,P=`#version 300 es +precision highp float; +precision highp int; + +uniform float u_dpr; +uniform float u_pointRadiusCss; + +uniform vec4 u_color; +uniform float u_pointSizePx; +uniform float u_ringThicknessPx; +uniform int u_ringMode; // 0 = solid, 1 = ring + +out vec4 outColor; + +void main() { + vec2 p = gl_PointCoord * 2.0 - 1.0; + float r = length(p); + float radiusPx = max(u_pointRadiusCss * u_dpr, 1.0); + float aa = max(fwidth(r), 1.5 / radiusPx); + float outer = 1.0 - smoothstep(1.0 - aa, 1.0 + aa, r); + if (outer <= 0.0) discard; + + float alpha = outer; + + if (u_ringMode == 1) { + float radiusPx = u_pointSizePx * 0.5; + float t = clamp(u_ringThicknessPx / max(radiusPx, 1e-6), 0.0, 1.0); + float inner = 1.0 - t; + // Keep only the outer ring with an anti-aliased inner boundary. + float innerMask = smoothstep(inner - aa, inner + aa, r); + alpha *= innerMask; + if (alpha <= 0.0) discard; + } + + outColor = vec4(u_color.rgb, u_color.a * alpha); +} +`,M=`#version 300 es +precision highp float; + +out vec2 v_uv; + +void main() { + // Fullscreen triangle + // (-1,-1), (3,-1), (-1,3) + if (gl_VertexID == 0) { + gl_Position = vec4(-1.0, -1.0, 0.0, 1.0); + v_uv = vec2(0.0, 0.0); + } else if (gl_VertexID == 1) { + gl_Position = vec4(3.0, -1.0, 0.0, 1.0); + v_uv = vec2(2.0, 0.0); + } else { + gl_Position = vec4(-1.0, 3.0, 0.0, 1.0); + v_uv = vec2(0.0, 2.0); + } +} +`,F=`#version 300 es +precision highp float; + +in vec2 v_uv; + +uniform sampler2D u_tex; + +out vec4 outColor; + +void main() { + vec2 uv = clamp(v_uv, 0.0, 1.0); + outColor = texture(u_tex, uv); +} +`,B=`#version 300 es +precision highp float; +precision highp int; + +uniform vec2 u_cssSize; +uniform float u_dpr; +uniform float u_displayZoom; + +uniform vec4 u_diskFillColor; +uniform vec4 u_diskBorderColor; +uniform vec4 u_gridColor; +uniform float u_diskBorderWidthPx; +uniform float u_gridWidthPx; + +out vec4 outColor; + +void main() { + // Convert framebuffer pixels to CSS pixels + vec2 fragCss = gl_FragCoord.xy / max(u_dpr, 1.0); + vec2 center = u_cssSize * 0.5; + + float diskRadius = min(u_cssSize.x, u_cssSize.y) * 0.45 * u_displayZoom; + vec2 p = fragCss - center; + float dist = length(p); + + // Reference-like styling + vec3 diskFill = u_diskFillColor.rgb; + vec3 diskBorder = u_diskBorderColor.rgb; + + float borderWidth = max(u_diskBorderWidthPx, 0.0); + float halfW = 0.5 * borderWidth; + + // Anti-aliasing width (CSS px). Keep at least 1px for crisp edges. + float aa = max(1.0, fwidth(dist)); + + // Discard outside disk+border region so the clear color remains intact. + if (dist > diskRadius + halfW + aa) discard; + + // Outer fade for anti-aliased boundary + float outerAlpha = 1.0 - smoothstep(diskRadius + halfW - aa, diskRadius + halfW + aa, dist); + + // Border mask + float borderInner = smoothstep(diskRadius - halfW - aa, diskRadius - halfW + aa, dist); + float borderOuter = 1.0 - smoothstep(diskRadius + halfW - aa, diskRadius + halfW + aa, dist); + float borderMask = clamp(borderInner * borderOuter, 0.0, 1.0); + + vec3 col = mix(diskFill, diskBorder, borderMask); + + // ------------------------------------------------------------------------ + // Reference-like hyperbolic grid overlay + // ------------------------------------------------------------------------ + // Matches HyperbolicReference.drawHyperbolicGrid(): + // - 8 radial lines (geodesics through origin) + // - 5 concentric circles + vec3 gridCol = u_gridColor.rgb; + float gridWidth = max(u_gridWidthPx, 0.0); + float halfGrid = 0.5 * gridWidth; + + // AA width for thin lines in CSS pixel space. + float aaLine = max(1.0, fwidth(dist)); + + float gridMask = 0.0; + + // Concentric circles (5) + for (int i = 1; i <= 5; i++) { + float r = (float(i) / 6.0) * diskRadius; + float d = abs(dist - r); + float m = 1.0 - smoothstep(halfGrid - aaLine, halfGrid + aaLine, d); + gridMask = max(gridMask, m); + } + + // Radial lines (8), angle = (i/8)*pi + // Distance to line through origin with direction (cos a, sin a): |cross(p, dir)| + for (int i = 0; i < 8; i++) { + float a = (float(i) / 8.0) * 3.141592653589793; + vec2 dir = vec2(cos(a), sin(a)); + float d = abs(p.x * dir.y - p.y * dir.x); + float m = 1.0 - smoothstep(halfGrid - aaLine, halfGrid + aaLine, d); + gridMask = max(gridMask, m); + } + + // Apply grid on top of disk fill/border. Use u_gridColor alpha as intensity. + col = mix(col, gridCol, clamp(gridMask, 0.0, 1.0) * clamp(u_gridColor.a, 0.0, 1.0)); + outColor = vec4(col, outerAlpha); +} +`,D=`#version 300 es +precision highp float; +precision highp int; + +layout(location = 0) in vec2 a_pos; +layout(location = 1) in uint a_label; + +uniform vec2 u_center; +uniform vec2 u_cssSize; +uniform float u_zoom; +uniform float u_dpr; +uniform float u_pointRadiusCss; + +flat out uint v_label; + +void main() { + float baseScale = min(u_cssSize.x, u_cssSize.y) * 0.4 * u_zoom; + float sx = u_cssSize.x * 0.5 + (a_pos.x - u_center.x) * baseScale; + float sy = u_cssSize.y * 0.5 - (a_pos.y - u_center.y) * baseScale; + + vec2 dbufSize = u_cssSize * u_dpr; + vec2 dbuf = vec2(sx, sy) * u_dpr; + + float cx = (dbuf.x / dbufSize.x) * 2.0 - 1.0; + float cy = 1.0 - (dbuf.y / dbufSize.y) * 2.0; + + gl_Position = vec4(cx, cy, 0.0, 1.0); + gl_PointSize = (u_pointRadiusCss * 2.0) * u_dpr; + v_label = a_label; +} +`,C=`#version 300 es +precision highp float; +precision highp int; + +layout(location = 0) in vec2 a_pos; +layout(location = 1) in uint a_label; + +uniform vec2 u_cssSize; +uniform float u_dpr; +uniform float u_pointRadiusCss; + +uniform vec2 u_a; // camera translation (ax, ay) +uniform float u_displayZoom; // visual zoom + +flat out uint v_label; + +vec2 mobiusTransform(vec2 z, vec2 a) { + // (z - a) / (1 - conj(a) * z) + vec2 num = z - a; + + // denom = 1 - (ax*zx + ay*zy) + i * (-(ax*zy - ay*zx)) + float denomX = 1.0 - (a.x * z.x + a.y * z.y); + float denomY = -(a.x * z.y - a.y * z.x); + float denomNormSq = denomX * denomX + denomY * denomY; + if (denomNormSq < 1e-12) { + // Push outside clip + return vec2(2.0, 2.0); + } + + // complex division + float rx = (num.x * denomX + num.y * denomY) / denomNormSq; + float ry = (num.y * denomX - num.x * denomY) / denomNormSq; + return vec2(rx, ry); +} + +void main() { + vec2 w = mobiusTransform(a_pos, u_a); + float r2 = dot(w, w); + if (r2 >= 1.0) { + gl_Position = vec4(2.0, 2.0, 0.0, 1.0); + gl_PointSize = 0.0; + v_label = a_label; + return; + } + + float diskRadius = min(u_cssSize.x, u_cssSize.y) * 0.45 * u_displayZoom; + float sx = u_cssSize.x * 0.5 + w.x * diskRadius; + float sy = u_cssSize.y * 0.5 - w.y * diskRadius; + + vec2 dbufSize = u_cssSize * u_dpr; + vec2 dbuf = vec2(sx, sy) * u_dpr; + + float cx = (dbuf.x / dbufSize.x) * 2.0 - 1.0; + float cy = 1.0 - (dbuf.y / dbufSize.y) * 2.0; + + gl_Position = vec4(cx, cy, 0.0, 1.0); + gl_PointSize = (u_pointRadiusCss * 2.0) * u_dpr; + v_label = a_label; +} +`;class U{canvas=null;width=0;height=0;deviceDpr=1;canvasDpr=1;dpr=1;dataset=null;selection=new Set;hoveredIndex=-1;pointRadiusCss=3;colors=s;backgroundColor="#0a0a0a";poincareDiskFillColor="#141414";poincareDiskBorderColor="#666666";poincareGridColor="#66666633";poincareDiskBorderWidthPx=2;poincareGridWidthPx=.5;paletteSize=0;paletteDirty=!0;paletteTex=null;paletteTexW=0;paletteTexH=0;paletteBytes=new Uint8Array(0);paletteTexUnit=1;scratchIds=[];hoverPosScratch=new Float32Array(2);hoverLabScratch=new Uint16Array(1);hoverIndexScratch=new Uint32Array(1);lastViewChangeTs=0;markViewChanged(){this.lastViewChangeTs=performance.now()}endInteraction(){this.lastViewChangeTs=0}markBackdropDirty(){this.backdropDirty=!0}uploadPoincareDiskStyleUniforms(){let e=this.gl,t=this.poincareDisk;if(!e||!t)return;let i=T(this.poincareDiskFillColor),r=T(this.poincareDiskBorderColor),o=T(this.poincareGridColor);t.uDiskFillColor&&e.uniform4f(t.uDiskFillColor,i[0],i[1],i[2],i[3]),t.uDiskBorderColor&&e.uniform4f(t.uDiskBorderColor,r[0],r[1],r[2],r[3]),t.uGridColor&&e.uniform4f(t.uGridColor,o[0],o[1],o[2],o[3]),t.uDiskBorderWidthPx&&e.uniform1f(t.uDiskBorderWidthPx,this.poincareDiskBorderWidthPx),t.uGridWidthPx&&e.uniform1f(t.uGridWidthPx,this.poincareGridWidthPx)}getBackdropZoom(){return 1}dataIndex=null;gl=null;vao=null;posBuffer=null;labelBuffer=null;hoverVao=null;hoverPosBuffer=null;hoverLabelBuffer=null;selectionVao=null;selectionPosBuffer=null;selectionLabelBuffer=null;selectionOverlayCount=0;selectionEbo=null;hoverEbo=null;interactionEbo=null;interactionCount=0;maxBaseDrawPoints=4e6;maxGpuUploadPoints=1e7;gpuUsesFullDataset=!0;gpuPointCount=0;policy={fragmentBudget:1e8,circleBudget:6e7,squareOnRatio:1,squareOffRatio:.75,minPointsDpr:.35};renderAsSquares=!1;__debugPolicy=null;backdropTex=null;backdropFbo=null;backdropW=0;backdropH=0;backdropDpr=1;backdropZoom=NaN;backdropDirty=!0;pointsTex=null;pointsFbo=null;pointsW=0;pointsH=0;programComposite=null;uCompositeTex=null;poincareDisk=null;pointsCircle=null;pointsSquare=null;programSolid=null;uSolidColor=null;uSolidPointSizePx=null;uSolidRingThicknessPx=null;uSolidRingMode=null;uCssSizeSolid=null;uDprSolid=null;uPointRadiusSolid=null;selectionDirty=!0;hoverDirty=!0;init(e,t){this.canvas=e,this.width=t.width,this.height=t.height,this.deviceDpr=t.devicePixelRatio??window.devicePixelRatio??1,this.canvasDpr=this.deviceDpr,this.dpr=this.deviceDpr;let i="string"==typeof t.poincareDiskFillColor;t.backgroundColor&&(this.backgroundColor=t.backgroundColor),t.pointRadius&&(this.pointRadiusCss=t.pointRadius),t.colors&&(this.colors=t.colors),this.poincareDiskFillColor=i?t.poincareDiskFillColor:this.poincareDiskFillColor,t.poincareDiskBorderColor&&(this.poincareDiskBorderColor=t.poincareDiskBorderColor),t.poincareGridColor&&(this.poincareGridColor=t.poincareGridColor),"number"==typeof t.poincareDiskBorderWidthPx&&Number.isFinite(t.poincareDiskBorderWidthPx)&&(this.poincareDiskBorderWidthPx=Math.max(0,t.poincareDiskBorderWidthPx)),"number"==typeof t.poincareGridWidthPx&&Number.isFinite(t.poincareGridWidthPx)&&(this.poincareGridWidthPx=Math.max(0,t.poincareGridWidthPx)),this.paletteDirty=!0}chooseRenderDpr(e){let t=this.deviceDpr,i=Math.max(1,this.width)*Math.max(1,this.height),r=e>this.maxBaseDrawPoints?this.estimateSubsampleCount(e):e,o=Math.sqrt((e>=1e6?i>1e6?2e5:5e5:e>=5e5?14e5:e>=25e4?21e5:8e6)/i),s=Math.max(.5,this.pointRadiusCss),a=Math.max(1,r)*Math.PI*s*s,n=Math.sqrt(this.policy.fragmentBudget/a),l=e>=1e6?1:e>=5e5?1.25:1.5;return Math.max(e>=1e6?this.policy.minPointsDpr:e>=5e5?.75:1,Math.min(t,l,o,n))}estimateSubsampleCount(e){if(e<5e5)return e;let t=Math.min(e,Math.max(25e4,Math.min(this.maxBaseDrawPoints,Math.floor(.25*e)))),i=Math.max(1,Math.floor(e/t));return Math.min(t,Math.ceil(e/i))}estimatePointFragments(e,t){let i=Math.max(.5,this.pointRadiusCss),r=Math.max(0,t);return Math.max(0,e)*Math.PI*i*i*r*r}updateSquarePointPolicy(e){let t=this.policy.circleBudget*this.policy.squareOnRatio,i=this.policy.circleBudget*this.policy.squareOffRatio;if(this.dpr<=.75){this.renderAsSquares=!0;return}this.renderAsSquares?e<=i&&(this.renderAsSquares=!1):e>=t&&(this.renderAsSquares=!0)}setDataset(e){this.dataset=e,this.selection=new Set,this.hoveredIndex=-1,this.selectionDirty=!0,this.hoverDirty=!0;let t=this.chooseRenderDpr(e.n);t!==this.dpr&&(this.dpr=t),this.dataIndex=new R(e.positions,void 0,64),this.gl&&this.uploadDatasetToGPU(),this.markBackdropDirty()}resize(e,t){this.width=e,this.height=t,this.gl&&this.canvas&&(v(this.canvas,e,t,this.canvasDpr),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.markBackdropDirty())}setSelection(e){let t=e.size;this.selection=t<=2e5?new Set(e):e,this.selectionDirty=!0,this.gl&&this.uploadSelectionToGPU()}getSelection(){return this.selection.size<=2e5?new Set(this.selection):this.selection}setHovered(e){this.hoveredIndex=e,this.hoverDirty=!0,this.gl&&this.uploadHoverToGPU()}destroy(){let e=this.gl;e&&(this.pointsCircle&&e.deleteProgram(this.pointsCircle.program),this.pointsSquare&&e.deleteProgram(this.pointsSquare.program),this.programSolid&&e.deleteProgram(this.programSolid),this.poincareDisk&&e.deleteProgram(this.poincareDisk.program),this.vao&&e.deleteVertexArray(this.vao),this.hoverVao&&e.deleteVertexArray(this.hoverVao),this.selectionVao&&e.deleteVertexArray(this.selectionVao),this.posBuffer&&e.deleteBuffer(this.posBuffer),this.labelBuffer&&e.deleteBuffer(this.labelBuffer),this.hoverPosBuffer&&e.deleteBuffer(this.hoverPosBuffer),this.hoverLabelBuffer&&e.deleteBuffer(this.hoverLabelBuffer),this.selectionPosBuffer&&e.deleteBuffer(this.selectionPosBuffer),this.selectionLabelBuffer&&e.deleteBuffer(this.selectionLabelBuffer),this.selectionEbo&&e.deleteBuffer(this.selectionEbo),this.hoverEbo&&e.deleteBuffer(this.hoverEbo),this.interactionEbo&&e.deleteBuffer(this.interactionEbo),this.backdropFbo&&e.deleteFramebuffer(this.backdropFbo),this.backdropTex&&e.deleteTexture(this.backdropTex),this.pointsFbo&&e.deleteFramebuffer(this.pointsFbo),this.pointsTex&&e.deleteTexture(this.pointsTex),this.paletteTex&&e.deleteTexture(this.paletteTex),this.programComposite&&e.deleteProgram(this.programComposite)),this.gl=null,this.vao=null,this.hoverVao=null,this.selectionVao=null,this.posBuffer=null,this.labelBuffer=null,this.hoverPosBuffer=null,this.hoverLabelBuffer=null,this.selectionPosBuffer=null,this.selectionLabelBuffer=null,this.selectionOverlayCount=0,this.selectionEbo=null,this.hoverEbo=null,this.interactionEbo=null,this.interactionCount=0,this.gpuUsesFullDataset=!0,this.gpuPointCount=0,this.backdropFbo=null,this.backdropTex=null,this.backdropW=0,this.backdropH=0,this.backdropDpr=1,this.backdropZoom=NaN,this.backdropDirty=!0,this.pointsFbo=null,this.pointsTex=null,this.pointsW=0,this.pointsH=0,this.programComposite=null,this.uCompositeTex=null,this.pointsCircle=null,this.pointsSquare=null,this.programSolid=null,this.poincareDisk=null,this.paletteTex=null,this.paletteTexW=0,this.paletteTexH=0,this.paletteSize=0,this.paletteDirty=!0}uploadPaletteUniforms(){let e=this.gl;if(!e)return;let t=this.colors.length,i=Math.max(1,Math.min(t,65536)),r=e.getParameter(e.MAX_TEXTURE_SIZE),o=Math.min(r,i),s=Math.ceil(i/o);if(s>r)throw Error(`Palette too large for WebGL texture: size=${i}, maxTex=${r}`);let a=o*s;if(this.paletteBytes.length!==4*a?this.paletteBytes=new Uint8Array(4*a):this.paletteBytes.fill(0),0===t)this.paletteBytes[0]=255,this.paletteBytes[1]=255,this.paletteBytes[2]=255,this.paletteBytes[3]=255;else for(let e=0;e{t&&(e.useProgram(t.program),t.uPaletteTex&&e.uniform1i(t.uPaletteTex,this.paletteTexUnit),t.uPaletteSize&&e.uniform1i(t.uPaletteSize,this.paletteSize),t.uPaletteWidth&&e.uniform1i(t.uPaletteWidth,this.paletteTexW))};n(this.pointsCircle),n(this.pointsSquare),this.paletteDirty=!1}bindPaletteTexture(){let e=this.gl;e&&this.paletteTex&&(e.activeTexture(e.TEXTURE0+this.paletteTexUnit),e.bindTexture(e.TEXTURE_2D,this.paletteTex),e.activeTexture(e.TEXTURE0))}async countSelection(e,t={}){let i=this.dataset,r=this.dataIndex;if(!i||!r)return 0;if(e.indices)return e.indices.size;if("geometry"!==e.kind||!e.geometry)return 0;let o=e.geometry.coords;if(o.length/2<3)return 0;let s=e.geometry.bounds;if(!s){let e=1/0,t=1/0,i=-1/0,r=-1/0;for(let s=0;si&&(i=a),nr&&(r=n)}s={xMin:e,yMin:t,xMax:i,yMax:r}}let a=t.shouldCancel,n=t.onProgress,l="number"==typeof t.yieldEveryMs&&Number.isFinite(t.yieldEveryMs)?Math.max(0,t.yieldEveryMs):8,h=s.xMin-1e-12,u=s.yMin-1e-12,d=s.xMax+1e-12,f=s.yMax+1e-12,c=(e,t,i)=>ei?i:0|e,p=c(Math.floor((h-r.bounds.minX)/r.cellSizeX),0,r.cellsX-1),m=c(Math.floor((u-r.bounds.minY)/r.cellSizeY),0,r.cellsY-1),x=c(Math.floor((d-r.bounds.minX)/r.cellSizeX),0,r.cellsX-1),b=c(Math.floor((f-r.bounds.minY)/r.cellSizeY),0,r.cellsY-1),E=i.positions,R=r.ids,T=r.offsets,y=0,_=0,v=16384,A=l>0?performance.now():0;for(let e=m;e<=b;e++){let t=e*r.cellsX;for(let e=p;e<=x;e++){let i=t+e,r=T[i],h=T[i+1];for(let e=r;es.xMax)&&!(rs.yMax)&&(g(i,r,o)&&y++,_++,l>0&&_>=v)){if(v=_+16384,a?.())return y;performance.now()-A>=l&&(n?.(y,_),await new Promise(e=>requestAnimationFrame(()=>e())),A=performance.now())}}}}return n?.(y,_),y}ensureGL(){if(this.gl)return;if(!this.canvas)throw Error("Renderer not initialized");v(this.canvas,this.width,this.height,this.canvasDpr);let e=this.canvas.getContext("webgl2",{antialias:!1,alpha:!1,depth:!1,stencil:!1,preserveDrawingBuffer:!1,premultipliedAlpha:!1,desynchronized:!0});if(!e)throw Error("Failed to get WebGL2 context (is the canvas already using 2D context?)");this.gl=e,e.disable(e.DEPTH_TEST),e.disable(e.CULL_FACE),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);let[t,i,r,o]=T(this.backgroundColor);e.clearColor(t,i,r,o),e.viewport(0,0,this.canvas.width,this.canvas.height),this.createProgramsAndBuffers(),this.uploadPaletteUniforms(),this.dataset&&this.uploadDatasetToGPU(),this.uploadSelectionToGPU(),this.uploadHoverToGPU(),this.markBackdropDirty()}ensurePointsResources(){if(!this.gl||!this.canvas)return;let e=this.gl,t=Math.max(1,Math.floor(this.width*this.dpr)),i=Math.max(1,Math.floor(this.height*this.dpr)),r=e.getParameter(e.MAX_TEXTURE_SIZE);if(t>r||i>r){let e=Math.min(1,r/t,r/i);t=Math.max(1,Math.floor(t*e)),i=Math.max(1,Math.floor(i*e))}if(!this.pointsTex){if(this.pointsTex=e.createTexture(),!this.pointsTex)throw Error("Failed to create points texture");e.bindTexture(e.TEXTURE_2D,this.pointsTex),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null)}if(!this.pointsFbo&&(this.pointsFbo=e.createFramebuffer(),!this.pointsFbo))throw Error("Failed to create points framebuffer");if(t!==this.pointsW||i!==this.pointsH){this.pointsW=t,this.pointsH=i,e.bindTexture(e.TEXTURE_2D,this.pointsTex),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,i,0,e.RGBA,e.UNSIGNED_BYTE,null),e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,this.pointsFbo),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.pointsTex,0);let r=e.checkFramebufferStatus(e.FRAMEBUFFER);if(e.bindFramebuffer(e.FRAMEBUFFER,null),r!==e.FRAMEBUFFER_COMPLETE)throw Error(`Points framebuffer incomplete: ${r}`)}}ensureBackdropResources(){if(!this.gl||!this.canvas||"poincare"!==this.geometryKind()||!this.poincareDisk||!this.vao)return;let e=this.gl,t=Math.max(1,this.canvasDpr),i=Math.max(1,Math.floor(this.width*t)),r=Math.max(1,Math.floor(this.height*t)),o=e.getParameter(e.MAX_TEXTURE_SIZE);if(i>o||r>o){let e=Math.min(1,o/i,o/r);i=Math.max(1,Math.floor(i*e)),r=Math.max(1,Math.floor(r*e)),this.backdropDpr=t*e}else this.backdropDpr=t;if(!this.backdropTex){if(this.backdropTex=e.createTexture(),!this.backdropTex)throw Error("Failed to create backdrop texture");e.bindTexture(e.TEXTURE_2D,this.backdropTex),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null)}if(!this.backdropFbo&&(this.backdropFbo=e.createFramebuffer(),!this.backdropFbo))throw Error("Failed to create backdrop framebuffer");if(i!==this.backdropW||r!==this.backdropH){this.backdropW=i,this.backdropH=r,e.bindTexture(e.TEXTURE_2D,this.backdropTex),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,i,r,0,e.RGBA,e.UNSIGNED_BYTE,null),e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,this.backdropFbo),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.backdropTex,0);let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(e.bindFramebuffer(e.FRAMEBUFFER,null),t!==e.FRAMEBUFFER_COMPLETE)throw Error(`Backdrop framebuffer incomplete: ${t}`);this.markBackdropDirty()}}renderBackdropIfNeeded(){if(!this.gl||!this.canvas||"poincare"!==this.geometryKind()||!this.poincareDisk||!this.vao||(this.ensureBackdropResources(),!this.backdropFbo))return;let e=this.getBackdropZoom(),t=Number.isFinite(this.backdropZoom)&&1e-12>=Math.abs(this.backdropZoom-e);if(!this.backdropDirty&&t)return;let i=this.gl;i.bindFramebuffer(i.FRAMEBUFFER,this.backdropFbo),i.viewport(0,0,this.backdropW,this.backdropH);let[r,o,s,a]=T(this.backgroundColor);i.clearColor(r,o,s,a),i.clear(i.COLOR_BUFFER_BIT),i.useProgram(this.poincareDisk.program),this.bindViewUniformsForProgram(this.poincareDisk.program),this.uploadPoincareDiskStyleUniforms(),this.poincareDisk.uCssSize&&i.uniform2f(this.poincareDisk.uCssSize,this.width,this.height),this.poincareDisk.uDpr&&i.uniform1f(this.poincareDisk.uDpr,this.backdropDpr),i.bindVertexArray(this.vao),i.drawArrays(i.TRIANGLES,0,3),i.bindFramebuffer(i.FRAMEBUFFER,null),i.viewport(0,0,this.canvas.width,this.canvas.height),this.backdropZoom=e,this.backdropDirty=!1}createProgramsAndBuffers(){let e=this.gl,t="euclidean"===this.geometryKind()?D:C,i=_(e,t,A),r=_(e,t,S);if(this.programSolid=_(e,t,P),this.programComposite=_(e,M,F),e.useProgram(this.programComposite),this.uCompositeTex=e.getUniformLocation(this.programComposite,"u_tex"),"poincare"===this.geometryKind()){let t=_(e,M,B);this.poincareDisk={program:t,uCssSize:e.getUniformLocation(t,"u_cssSize"),uDpr:e.getUniformLocation(t,"u_dpr"),uDiskFillColor:e.getUniformLocation(t,"u_diskFillColor"),uDiskBorderColor:e.getUniformLocation(t,"u_diskBorderColor"),uGridColor:e.getUniformLocation(t,"u_gridColor"),uDiskBorderWidthPx:e.getUniformLocation(t,"u_diskBorderWidthPx"),uGridWidthPx:e.getUniformLocation(t,"u_gridWidthPx")},e.useProgram(t),this.uploadPoincareDiskStyleUniforms()}if(e.useProgram(i),this.pointsCircle={program:i,uPaletteTex:e.getUniformLocation(i,"u_paletteTex"),uPaletteSize:e.getUniformLocation(i,"u_paletteSize"),uPaletteWidth:e.getUniformLocation(i,"u_paletteWidth"),uCssSize:e.getUniformLocation(i,"u_cssSize"),uDpr:e.getUniformLocation(i,"u_dpr"),uPointRadius:e.getUniformLocation(i,"u_pointRadiusCss")},e.useProgram(r),this.pointsSquare={program:r,uPaletteTex:e.getUniformLocation(r,"u_paletteTex"),uPaletteSize:e.getUniformLocation(r,"u_paletteSize"),uPaletteWidth:e.getUniformLocation(r,"u_paletteWidth"),uCssSize:e.getUniformLocation(r,"u_cssSize"),uDpr:e.getUniformLocation(r,"u_dpr"),uPointRadius:e.getUniformLocation(r,"u_pointRadiusCss")},e.useProgram(this.programSolid),this.uSolidColor=e.getUniformLocation(this.programSolid,"u_color"),this.uSolidPointSizePx=e.getUniformLocation(this.programSolid,"u_pointSizePx"),this.uSolidRingThicknessPx=e.getUniformLocation(this.programSolid,"u_ringThicknessPx"),this.uSolidRingMode=e.getUniformLocation(this.programSolid,"u_ringMode"),this.uCssSizeSolid=e.getUniformLocation(this.programSolid,"u_cssSize"),this.uDprSolid=e.getUniformLocation(this.programSolid,"u_dpr"),this.uPointRadiusSolid=e.getUniformLocation(this.programSolid,"u_pointRadiusCss"),this.vao=e.createVertexArray(),this.posBuffer=e.createBuffer(),this.labelBuffer=e.createBuffer(),this.hoverVao=e.createVertexArray(),this.hoverPosBuffer=e.createBuffer(),this.hoverLabelBuffer=e.createBuffer(),this.selectionVao=e.createVertexArray(),this.selectionPosBuffer=e.createBuffer(),this.selectionLabelBuffer=e.createBuffer(),this.selectionEbo=e.createBuffer(),this.hoverEbo=e.createBuffer(),this.interactionEbo=e.createBuffer(),!this.vao||!this.posBuffer||!this.labelBuffer||!this.hoverVao||!this.hoverPosBuffer||!this.hoverLabelBuffer||!this.selectionVao||!this.selectionPosBuffer||!this.selectionLabelBuffer||!this.selectionEbo||!this.hoverEbo||!this.interactionEbo)throw Error("Failed to allocate WebGL resources");e.bindVertexArray(this.vao),e.bindBuffer(e.ARRAY_BUFFER,this.posBuffer),e.enableVertexAttribArray(0),e.vertexAttribPointer(0,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,this.labelBuffer),e.enableVertexAttribArray(1),e.vertexAttribIPointer(1,1,e.UNSIGNED_SHORT,0,0),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),e.bindVertexArray(this.hoverVao),e.bindBuffer(e.ARRAY_BUFFER,this.hoverPosBuffer),e.enableVertexAttribArray(0),e.vertexAttribPointer(0,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,this.hoverLabelBuffer),e.enableVertexAttribArray(1),e.vertexAttribIPointer(1,1,e.UNSIGNED_SHORT,0,0),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),e.bindVertexArray(this.selectionVao),e.bindBuffer(e.ARRAY_BUFFER,this.selectionPosBuffer),e.enableVertexAttribArray(0),e.vertexAttribPointer(0,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,this.selectionLabelBuffer),e.enableVertexAttribArray(1),e.vertexAttribIPointer(1,1,e.UNSIGNED_SHORT,0,0),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null)}uploadDatasetToGPU(){let e=this.gl,t=this.dataset;if(!t)return;e.bindVertexArray(this.vao);let i=t.n<=this.maxGpuUploadPoints;if(this.gpuUsesFullDataset=i,i)e.bindBuffer(e.ARRAY_BUFFER,this.posBuffer),e.bufferData(e.ARRAY_BUFFER,t.positions,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,this.labelBuffer),e.bufferData(e.ARRAY_BUFFER,t.labels,e.STATIC_DRAW),this.gpuPointCount=t.n;else{let i=t.n,r=Math.min(i,Math.max(25e4,Math.min(this.maxBaseDrawPoints,Math.floor(.25*i)))),o=Math.max(1,Math.floor(i/r)),s=Math.min(r,Math.ceil(i/o)),a=new Float32Array(2*s),n=new Uint16Array(s),l=0;for(let e=0;e=5e5){let t=Math.min(i,Math.max(25e4,Math.min(this.maxBaseDrawPoints,Math.floor(.25*i)))),r=Math.max(1,Math.floor(i/t)),o=Math.min(t,Math.ceil(i/r)),s=new Uint32Array(o),a=0;for(let e=0;e=r)break;this.selectionOverlayCount=a,e.bindVertexArray(this.selectionVao),e.bindBuffer(e.ARRAY_BUFFER,this.selectionPosBuffer),e.bufferData(e.ARRAY_BUFFER,o,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,this.selectionLabelBuffer),e.bufferData(e.ARRAY_BUFFER,s,e.DYNAMIC_DRAW),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),this.selectionDirty=!1;return}let t=Math.min(this.selection.size,25e4);if(this.selectionOverlayCount=t,0===t){this.selectionDirty=!1;return}let i=new Uint32Array(t),r=0;for(let e of this.selection)if(i[r++]=e,r>=t)break;this.selectionOverlayCount=r,e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.selectionEbo),e.bufferData(e.ELEMENT_ARRAY_BUFFER,i,e.DYNAMIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),this.selectionDirty=!1}uploadHoverToGPU(){if(!this.gl||!this.hoverEbo)return;let e=this.gl;if(!this.gpuUsesFullDataset){let t=this.dataset;if(!t||!this.hoverVao||!this.hoverPosBuffer||!this.hoverLabelBuffer)return;let i=this.hoveredIndex>=0&&this.hoveredIndex=0?(r[0]=t.positions[2*i],r[1]=t.positions[2*i+1],o[0]=t.labels[i]):(r[0]=2,r[1]=2,o[0]=0),e.bindVertexArray(this.hoverVao),e.bindBuffer(e.ARRAY_BUFFER,this.hoverPosBuffer),e.bufferData(e.ARRAY_BUFFER,r,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,this.hoverLabelBuffer),e.bufferData(e.ARRAY_BUFFER,o,e.DYNAMIC_DRAW),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),this.hoverDirty=!1;return}let t=this.hoveredIndex>=0?this.hoveredIndex:0,i=this.hoverIndexScratch;i[0]=t,e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.hoverEbo),e.bufferData(e.ELEMENT_ARRAY_BUFFER,i,e.DYNAMIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),this.hoverDirty=!1}render(){this.ensureGL();let e=this.gl,t=this.dataset;if(!t)return;let i=performance.now()-this.lastViewChangeTs<80,r=!!this.interactionEbo&&this.interactionCount>0,o=i&&"poincare"===this.geometryKind()&&t.n>=2e6&&r,s=t.n>this.maxBaseDrawPoints&&r,l=this.gpuUsesFullDataset&&(o||s),h=this.gpuUsesFullDataset?l?this.interactionCount:t.n:this.gpuPointCount,u=this.estimatePointFragments(h,this.dpr);if(this.updateSquarePointPolicy(u),this.selectionDirty&&this.uploadSelectionToGPU(),this.hoverDirty&&this.uploadHoverToGPU(),e.bindFramebuffer(e.FRAMEBUFFER,null),e.viewport(0,0,this.canvas.width,this.canvas.height),e.disable(e.BLEND),"poincare"===this.geometryKind())if(this.renderBackdropIfNeeded(),this.backdropTex&&this.programComposite)e.useProgram(this.programComposite),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.backdropTex),this.uCompositeTex&&e.uniform1i(this.uCompositeTex,0),e.bindVertexArray(this.vao),e.drawArrays(e.TRIANGLES,0,3),e.bindTexture(e.TEXTURE_2D,null);else{let[t,i,r,o]=T(this.backgroundColor);e.clearColor(t,i,r,o),e.clear(e.COLOR_BUFFER_BIT)}else{let[t,i,r,o]=T(this.backgroundColor);e.clearColor(t,i,r,o),e.clear(e.COLOR_BUFFER_BIT)}if(this.ensurePointsResources(),!this.pointsFbo||!this.pointsTex||!this.programComposite)return;e.bindFramebuffer(e.FRAMEBUFFER,this.pointsFbo),e.viewport(0,0,this.pointsW,this.pointsH),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT);let d=this.renderAsSquares?this.pointsSquare:this.pointsCircle;if(d){if(e.useProgram(d.program),this.bindViewUniformsForProgram(d.program),this.paletteDirty&&this.uploadPaletteUniforms(),this.bindPaletteTexture(),d.uCssSize&&e.uniform2f(d.uCssSize,this.width,this.height),d.uDpr&&e.uniform1f(d.uDpr,this.dpr),d.uPointRadius&&e.uniform1f(d.uPointRadius,this.pointRadiusCss),this.renderAsSquares?e.disable(e.BLEND):(e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA)),e.bindVertexArray(this.vao),l)e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.interactionEbo),e.drawElements(e.POINTS,this.interactionCount,e.UNSIGNED_INT,0),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null);else{let i=this.gpuUsesFullDataset?t.n:this.gpuPointCount;e.drawArrays(e.POINTS,0,i)}if(this.__debugPolicy={pointsDpr:this.dpr,deviceDpr:this.deviceDpr,canvasDpr:this.canvasDpr,renderAsSquares:this.renderAsSquares,useLod:l,baseDrawCount:h,interactionCount:this.interactionCount,gpuUsesFullDataset:this.gpuUsesFullDataset,gpuPointCount:this.gpuPointCount,estimatedPointFragments:u,fragmentBudget:this.policy.fragmentBudget,isInteracting:i},!i&&this.selection.size>0){if(e.useProgram(this.programSolid),this.bindViewUniformsForProgram(this.programSolid),this.uCssSizeSolid&&e.uniform2f(this.uCssSizeSolid,this.width,this.height),this.uDprSolid&&e.uniform1f(this.uDprSolid,this.dpr),this.uPointRadiusSolid&&e.uniform1f(this.uPointRadiusSolid,this.pointRadiusCss+1),this.uSolidColor){let[t,i,r,o]=T(a);e.uniform4f(this.uSolidColor,t,i,r,o)}this.uSolidRingMode&&e.uniform1i(this.uSolidRingMode,0),this.uSolidRingThicknessPx&&e.uniform1f(this.uSolidRingThicknessPx,0),this.uSolidPointSizePx&&e.uniform1f(this.uSolidPointSizePx,(this.pointRadiusCss+1)*2*this.dpr),this.gpuUsesFullDataset?(e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.selectionEbo),e.drawElements(e.POINTS,this.selectionOverlayCount,e.UNSIGNED_INT,0),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)):this.selectionVao&&this.selectionOverlayCount>0&&(e.bindVertexArray(this.selectionVao),e.drawArrays(e.POINTS,0,this.selectionOverlayCount),e.bindVertexArray(this.vao))}if(!i&&this.hoveredIndex>=0&&this.hoveredIndex0))return null;let n=o/a*(1+1e-12),l=n*n,h=d(e,t,this.view,this.width,this.height),f=.5*this.width,c=.5*this.height,p=this.view.centerX,m=this.view.centerY,x=-1,g=1/0;if(r.forEachInAABB(h.x-n,h.y-n,h.x+n,h.y+n,r=>{let o=i.positions[2*r],n=i.positions[2*r+1],u=o-h.x,d=n-h.y;if(u*u+d*d>l)return;let b=f+(o-p)*a-e,E=c-(n-m)*a-t,R=b*b+E*E;R<=s&&(Rn&&(n=t),iu&&(u=i)}let f={xMin:s,yMin:a,xMax:n,yMax:u},c=performance.now()-r;return h({type:"polygon",coords:o,bounds:f},t.positions,c,(e,t,i)=>!(ef.xMax)&&!(tf.yMax)&&g(e,t,i))}projectToScreen(e,t){return u(e,t,this.view,this.width,this.height)}unprojectFromScreen(e,t){return d(e,t,this.view,this.width,this.height)}}class k extends U{view=f();uniformCache=new Map;lastPanScreenX=0;lastPanScreenY=0;hasPanAnchor=!1;geometryKind(){return"poincare"}getBackdropZoom(){return this.view.displayZoom}setDataset(e){if("poincare"!==e.geometry)throw Error("HyperbolicWebGLCandidate only supports poincare geometry");super.setDataset(e),this.view=f(),this.hasPanAnchor=!1}setView(e){if("poincare"!==e.type)throw Error("HyperbolicWebGLCandidate only supports poincare view state");this.view=e,this.markBackdropDirty()}getView(){return{...this.view}}bindViewUniformsForProgram(e){if(!this.gl)return;let t=this.gl,i=this.uniformCache.get(e);i||(i={uA:t.getUniformLocation(e,"u_a"),uDisplayZoom:t.getUniformLocation(e,"u_displayZoom")},this.uniformCache.set(e,i)),i.uA&&t.uniform2f(i.uA,this.view.ax,this.view.ay),i.uDisplayZoom&&t.uniform1f(i.uDisplayZoom,this.view.displayZoom)}startPan(e,t){this.lastPanScreenX=e,this.lastPanScreenY=t,this.hasPanAnchor=!0}pan(e,t,i){this.hasPanAnchor||(this.lastPanScreenX=this.width/2,this.lastPanScreenY=this.height/2,this.hasPanAnchor=!0);let r=this.lastPanScreenX,o=this.lastPanScreenY,s=r+e,a=o+t;this.view=x(this.view,r,o,s,a,this.width,this.height),this.markViewChanged(),this.lastPanScreenX=s,this.lastPanScreenY=a}zoom(e,t,i,r){var o,s,a;let n,l,h,u,d,f,p,g;this.view=(o=this.view,s=this.width,a=this.height,n=Math.pow(1.1,i),l=Math.max(.5,Math.min(10,o.displayZoom*n)),h=m(e,t,o,s,a),u=.45*Math.min(s,a)*l,f=s/2+(d=c(h.x,h.y,o.ax,o.ay)).x*u,g=(p=a/2-d.y*u)-t,Math.abs(f-e)>.5||Math.abs(g)>.5?x({...o,displayZoom:l},f,p,e,t,s,a):{...o,displayZoom:l}),this.markViewChanged(),this.markBackdropDirty()}mobiusDerivativeScaleAt(e,t){let i=this.view.ax,r=this.view.ay,o=1-(i*e+r*t),s=-(i*t-r*e),a=o*o+s*s;return a<1e-12?0:Math.max(0,1-(i*i+r*r))/a}conservativeDataRadiusForScreenRadius(e,t,i,r){let o=this.view.ax,s=this.view.ay,a=o*o+s*s,n=Math.sqrt(a),l=Math.max(1e-12,1-a);if(!(r>1e-9)||!(i>0))return 0;let h=1-(o*e+s*t),u=-(o*t-s*e),d=Math.sqrt(h*h+u*u);if(!Number.isFinite(d)||d<1e-12)return 2;let f=i/(r*l),c=f*d*d;for(let e=0;e<5;e++){let e=d+n*c;c=f*e*e}return Number.isFinite(c)?Math.min(1.999,Math.max(0,c*=1.001)):2}hitTest(e,t){let i=this.dataset,r=this.dataIndex;if(!i||!r)return null;let{width:o,height:s,view:a}=this,n=o/2,l=s/2,h=.45*Math.min(o,s)*a.displayZoom,u=h*h,d=this.pointRadiusCss+5,f=d*d,c=e-n,p=t-l,x=h+d;if(c*c+p*p>x*x)return null;let g=m(e,t,a,o,s),b=this.conservativeDataRadiusForScreenRadius(g.x,g.y,d,h),E=-1,R=1/0,T=a.ax,y=a.ay;if(r.forEachInAABB(g.x-b,g.y-b,g.x+b,g.y+b,r=>{let o=i.positions[2*r],s=i.positions[2*r+1],a=o-T,d=s-y,c=1-(T*o+y*s),p=-(T*s-y*o),m=c*c+p*p,x=0,g=0;if(m<1e-12){let e=Math.sqrt(a*a+d*d);e<1e-12?(x=0,g=0):(x=a/e*.999,g=d/e*.999)}else{let e=(x=(a*c+d*p)/m)*x+(g=(d*c-a*p)/m)*g;if(e>=1){let t=Math.sqrt(e);x=x/t*.999,g=g/t*.999}}let b=n+x*h,_=l-g*h,v=b-n,A=_-l;if(v*v+A*A>u)return;let S=b-e,P=_-t,M=S*S+P*P;M<=f&&(M=1){let t=Math.sqrt(e);B=B/t*.999,D=D/t*.999}}return{index:E,screenX:n+B*h,screenY:l-D*h,distance:Math.sqrt(R)}}lassoSelect(e){let t=this.dataset,i=this.dataIndex;if(!t||!i)return l(new Set,0);let r=performance.now(),o=new Float32Array(e.length);for(let t=0;tn&&(n=t),iu&&(u=i)}let d={xMin:s,yMin:a,xMax:n,yMax:u},f=performance.now()-r;return h({type:"polygon",coords:o,bounds:d},t.positions,f,(e,t,i)=>!(ed.xMax)&&!(td.yMax)&&g(e,t,i))}projectToScreen(e,t){var i,r,o;let s,a;return i=this.view,r=this.width,o=this.height,s=c(e,t,i.ax,i.ay),a=.45*Math.min(r,o)*i.displayZoom,{x:r/2+s.x*a,y:o/2-s.y*a}}unprojectFromScreen(e,t){return m(e,t,this.view,this.width,this.height)}}function L(e,t){let i=Math.floor(e.length/2);if(i<=t)return new Float32Array(e);let r=e;if(i>2048){let t=new Float32Array(4096);for(let r=0;r<2048;r++){let o=Math.floor(r*i/2048);t[2*r]=e[2*o],t[2*r+1]=e[2*o+1]}r=t}let o=function(e,t){let i=Array.from(e),r=Math.floor(i.length/2);if(r<3)return i;for(let e=0;e<5&&!((r=Math.floor(i.length/2))<3);e++){let e=Array(4*r),t=0;for(let o=0;or&&(r=a),no&&(o=n)}return Number.isFinite(t)&&Number.isFinite(i)?{xMin:t,yMin:i,xMax:r,yMax:o}:{xMin:0,yMin:0,xMax:0,yMax:0}}(o),a=Math.max(s.xMax-s.xMin,s.yMax-s.yMin),n=(e,t,i,r,o,s)=>{let a=o-i,n=s-r,l=a*a+n*n,h=0;l>1e-12&&((h=((e-i)*a+(t-r)*n)/l)<0?h=0:h>1&&(h=1));let u=e-(i+h*a),d=t-(r+h*n);return u*u+d*d},l=e=>{let t=Math.floor(o.length/2);if(t<=2)return o.slice();let i=e*e,r=new Uint8Array(t);r[0]=1,r[t-1]=1;let s=[0,t-1];for(;s.length>0;){let e=s.pop(),t=s.pop(),a=o[2*t],l=o[2*t+1],h=o[2*e],u=o[2*e+1],d=-1,f=-1;for(let i=t+1;id&&(d=e,f=i)}d>i&&f>=0&&(r[f]=1,s.push(t,f),s.push(f,e))}let a=[];for(let e=0;et&&d<20;)h*=1.1,u=l(h),d++;let f=Math.floor(u.length/2);if(f>t){let e=new Float32Array(2*t);for(let i=0;ie.shiftKey&&(e.metaKey||e.ctrlKey)),s=Number.isFinite(i.lassoMinSampleDistPx)?i.lassoMinSampleDistPx:2,a=Number.isFinite(i.lassoMaxVertsInteraction)?i.lassoMaxVertsInteraction:24,n=Number.isFinite(i.lassoMaxVertsFinal)?i.lassoMaxVertsFinal:48,l=i.observeResize??!0,h=0,u=0,d=0,f=!0,c="idle",p=null,m=0,x=0,g=0,b=0,E={shift:!1,ctrl:!1,alt:!1,meta:!1},R=0,T=0,y=0,_={shift:!1,ctrl:!1,alt:!1,meta:!1},v=!1,A=!1,S=0,P=0,M=-2,F=[],B=null,D=0,C=0,U=!1,w=(t,i)=>{let r=e.getBoundingClientRect();return{x:t-r.left,y:i-r.top}},k=e=>{let i=new Float32Array(e.length);for(let r=0;r{h||(h=requestAnimationFrame(()=>{h=0;let r=!1;if(f){let i,o,s;f=!1,o=I((i=e.getBoundingClientRect()).width),s=I(i.height),r=(o!==u||s!==d)&&(u=o,d=s,t.resize(o,s),!0)||r}if((0!==g||0!==b)&&(t.pan(g,b,E),g=0,b=0,r=!0),v&&0!==R&&(t.zoom(T,y,R,_),R=0,v=!1,r=!0),"idle"===c&&A){A=!1;let e=t.hitTest(S,P),o=e?e.index:-1;o!==M&&(M=o,t.setHovered(o),r=!0),i.onHover?.(e)}if("lasso"===c&&U&&i.onLassoUpdate&&F.length>=6){U=!1;let e=L(F,a);B=e;let t=k(e);i.onLassoUpdate(e,t)}r&&t.render()}))},Y=i=>{if(0!==i.button)return;let{x:r,y:s}=w(i.clientX,i.clientY);if(p=i.pointerId,m=r,x=s,-1!==M&&(M=-1,t.setHovered(-1)),o(i)){c="lasso",F=[],B=null,D=r,C=s;let e=t.unprojectFromScreen(r,s);F.push(e.x,e.y),U=!0,X()}else c="pan",g=0,b=0,E=z(i),"startPan"in t&&t.startPan(r,s),X();e.setPointerCapture(i.pointerId)},V=e=>{if(p!==e.pointerId){if("idle"===c){let{x:t,y:i}=w(e.clientX,e.clientY);S=t,P=i,A=!0,X()}return}let{x:i,y:r}=w(e.clientX,e.clientY);if("pan"===c){g+=i-m,b+=r-x,E=z(e),m=i,x=r,X();return}if("lasso"===c){let e=i-D,o=r-C;if(e*e+o*o>=s*s){let e=t.unprojectFromScreen(i,r);F.push(e.x,e.y),U=!0,D=i,C=r,X()}return}S=i,P=r,A=!0,X()},W=r=>{if(p===r.pointerId){if("pan"===c&&(0!==g||0!==b)&&(t.pan(g,b,E),g=0,b=0,t.render()),"lasso"===c&&F.length>=6){let e=B??L(F,n),r=k(e),o=t.lassoSelect(r);i.onLassoComplete?.(o,e,r)}"endInteraction"in t&&t.endInteraction(),c="idle",p=null,F=[],B=null,U=!1,A=!1;try{e.releasePointerCapture(r.pointerId)}catch{}}},G=e=>{e.preventDefault();let{x:t,y:i}=w(e.clientX,e.clientY),o=-e.deltaY*r;R+=o,T=t,y=i,_=z(e),v=!0,X()};e.addEventListener("pointerdown",Y),e.addEventListener("pointermove",V),e.addEventListener("pointerup",W),e.addEventListener("pointercancel",W),e.addEventListener("wheel",G,{passive:!1});let O=null;return l&&"undefined"!=typeof ResizeObserver&&(O=new ResizeObserver(()=>{f=!0,X()})).observe(e),f=!0,X(),{destroy(){h&&(cancelAnimationFrame(h),h=0),e.removeEventListener("pointerdown",Y),e.removeEventListener("pointermove",V),e.removeEventListener("pointerup",W),e.removeEventListener("pointercancel",W),e.removeEventListener("wheel",G),O?.disconnect(),O=null},requestResize(){f=!0,X()}}}e.s(["DEFAULT_COLORS",0,s,"EuclideanWebGLCandidate",()=>w,"HOVER_COLOR",0,n,"HyperbolicWebGLCandidate",()=>k,"SELECTION_COLOR",0,a,"boundsOfPolygon",()=>b,"createDataset",()=>t,"createInteractionController",()=>N,"packPositions",()=>i,"packPositionsXY",()=>r,"packUint16Labels",()=>o,"pointInPolygon",()=>g],54214)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/42879de7b8087bc9.js b/src/hyperview/server/static/_next/static/chunks/42879de7b8087bc9.js deleted file mode 100644 index bda8a81..0000000 --- a/src/hyperview/server/static/_next/static/chunks/42879de7b8087bc9.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33525,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},91915,(e,r,t)=>{"use strict";function n(e,r={}){if(r.onlyHashChange)return void e();let t=document.documentElement;if("smooth"!==t.dataset.scrollBehavior)return void e();let a=t.style.scrollBehavior;t.style.scrollBehavior="auto",r.dontForceLayout||t.getClientRects(),e(),t.style.scrollBehavior=a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(33525)},68017,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return i}});let n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),c=e.r(90373),u=e.r(54394);e.r(33525);let l=e.r(8372);class s extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,u.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,u.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,r){return e.pathname!==r.previousPathname&&r.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:r.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:r,unauthorized:t,children:n}=this.props,{triggeredStatus:o}=this.state,c={[u.HTTPAccessErrorStatus.NOT_FOUND]:e,[u.HTTPAccessErrorStatus.FORBIDDEN]:r,[u.HTTPAccessErrorStatus.UNAUTHORIZED]:t};if(o){let l=o===u.HTTPAccessErrorStatus.NOT_FOUND&&e,s=o===u.HTTPAccessErrorStatus.FORBIDDEN&&r,i=o===u.HTTPAccessErrorStatus.UNAUTHORIZED&&t;return l||s||i?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,c[o]]}):n}return n}}function i({notFound:e,forbidden:r,unauthorized:t,children:n}){let u=(0,c.useUntrackedPathname)(),i=(0,o.useContext)(l.MissingSlotContext);return e||r||t?(0,a.jsx)(s,{pathname:u,notFound:e,forbidden:r,unauthorized:t,missingSlots:i,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},91798,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(71645);function a(e,r){let[t,a]=(0,n.useState)(()=>({tree:e,stateKey:r,next:null}));if(t.tree===e)return t;let o={tree:e,stateKey:r,next:null},c=1,u=t,l=o;for(;null!==u&&c<1;){if(u.stateKey===r){l.next=u.next;break}{c++;let e={tree:u.tree,stateKey:u.stateKey,next:null};l.next=e,l=e}u=u.next}return a(o),o}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},39756,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return T}});let n=e.r(55682),a=e.r(90809),o=e.r(43476),c=e.r(88540),u=a._(e.r(71645)),l=n._(e.r(74080)),s=e.r(8372),i=e.r(87288),d=e.r(1244),f=e.r(72383),p=e.r(56019),h=e.r(91915),m=e.r(58442),g=e.r(68017),y=e.r(70725),b=e.r(84356),P=e.r(41538),_=e.r(91798);e.r(74180);let v=e.r(61994),O=e.r(33906),S=l.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function R(e,r){let t=e.getBoundingClientRect();return t.top>=0&&t.top<=r}class j extends u.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:r}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>r.every((r,t)=>(0,p.matchSegment)(r,e[t]))))return;let t=null,n=e.hashFragment;if(n&&(t="top"===n?document.body:document.getElementById(n)??document.getElementsByName(n)[0]),t||(t="undefined"==typeof window?null:(0,S.findDOMNode)(this)),!(t instanceof Element))return;for(;!(t instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let r=e.getBoundingClientRect();return E.every(e=>0===r[e])}(t);){if(null===t.nextElementSibling)return;t=t.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,h.disableSmoothScrollDuringRouteTransition)(()=>{if(n)return void t.scrollIntoView();let e=document.documentElement,r=e.clientHeight;!R(t,r)&&(e.scrollTop=0,R(t,r)||t.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,t.focus()}}}}function w({segmentPath:e,children:r}){let t=(0,u.useContext)(s.GlobalLayoutRouterContext);if(!t)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,o.jsx)(j,{segmentPath:e,focusAndScrollRef:t.focusAndScrollRef,children:r})}function C({tree:e,segmentPath:r,debugNameContext:t,cacheNode:n,params:a,url:l,isActive:f}){let h=(0,u.useContext)(s.GlobalLayoutRouterContext);if((0,u.useContext)(v.NavigationPromisesContext),!h)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let{tree:m}=h,g=null!==n.prefetchRsc?n.prefetchRsc:n.rsc,y=(0,u.useDeferredValue)(n.rsc,g),_="object"==typeof y&&null!==y&&"function"==typeof y.then?(0,u.use)(y):y;if(!_){if(f){let e=n.lazyData;if(null===e){let t=function e(r,t){if(r){let[n,a]=r,o=2===r.length;if((0,p.matchSegment)(t[0],n)&&t[1].hasOwnProperty(a)){if(o){let r=e(void 0,t[1][a]);return[t[0],{...t[1],[a]:[r[0],r[1],r[2],"refetch"]}]}return[t[0],{...t[1],[a]:e(r.slice(2),t[1][a])}]}}return t}(["",...r],m),a=(0,b.hasInterceptionRouteInCurrentTree)(m),o=Date.now();n.lazyData=e=(0,i.fetchServerResponse)(new URL(l,location.origin),{flightRouterState:t,nextUrl:a?h.previousNextUrl||h.nextUrl:null}).then(e=>((0,u.startTransition)(()=>{(0,P.dispatchAppRouterAction)({type:c.ACTION_SERVER_PATCH,previousTree:m,serverResponse:e,navigatedAt:o})}),e)),(0,u.use)(e)}}(0,u.use)(d.unresolvedThenable)}return(0,o.jsx)(s.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:n,parentSegmentPath:r,parentParams:a,debugNameContext:t,url:l,isActive:f},children:_})}function x({name:e,loading:r,children:t}){let n;if(n="object"==typeof r&&null!==r&&"function"==typeof r.then?(0,u.use)(r):r){let r=n[0],a=n[1],c=n[2];return(0,o.jsx)(u.Suspense,{name:e,fallback:(0,o.jsxs)(o.Fragment,{children:[a,c,r]}),children:t})}return(0,o.jsx)(o.Fragment,{children:t})}function T({parallelRouterKey:e,error:r,errorStyles:t,errorScripts:n,templateStyles:a,templateScripts:c,template:l,notFound:i,forbidden:d,unauthorized:p,segmentViewBoundaries:h}){let b=(0,u.useContext)(s.LayoutRouterContext);if(!b)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:P,parentCacheNode:v,parentSegmentPath:S,parentParams:E,url:R,isActive:j,debugNameContext:T}=b,A=v.parallelRoutes,M=A.get(e);M||(M=new Map,A.set(e,M));let F=P[0],D=null===S?[e]:S.concat([F,e]),k=P[1][e],N=k[0],I=(0,y.createRouterCacheKey)(N,!0),U=(0,_.useRouterBFCache)(k,I),H=[];do{let e=U.tree,u=U.stateKey,h=e[0],b=(0,y.createRouterCacheKey)(h),P=M.get(b);if(void 0===P){let e={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};P=e,M.set(b,e)}let _=E;if(Array.isArray(h)){let e=h[0],r=h[1],t=h[2],n=(0,O.getParamValueFromCacheKey)(r,t);null!==n&&(_={...E,[e]:n})}let S=function(e){if("/"===e)return"/";if("string"==typeof e)if("(slot)"===e)return;else return e+"/";return e[1]+"/"}(h),A=S??T,F=void 0===S?void 0:T,k=v.loading,N=(0,o.jsxs)(s.TemplateContext.Provider,{value:(0,o.jsxs)(w,{segmentPath:D,children:[(0,o.jsx)(f.ErrorBoundary,{errorComponent:r,errorStyles:t,errorScripts:n,children:(0,o.jsx)(x,{name:F,loading:k,children:(0,o.jsx)(g.HTTPAccessFallbackBoundary,{notFound:i,forbidden:d,unauthorized:p,children:(0,o.jsxs)(m.RedirectBoundary,{children:[(0,o.jsx)(C,{url:R,tree:e,params:_,cacheNode:P,segmentPath:D,debugNameContext:A,isActive:j&&u===I}),null]})})})}),null]}),children:[a,c,l]},u);H.push(N),U=U.next}while(null!==U)return H}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},37457,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=e.r(90809),a=e.r(43476),o=n._(e.r(71645)),c=e.r(8372);function u(){let e=(0,o.useContext)(c.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},93504,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},66996,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(93504).createRenderSearchParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},6831,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},97689,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(6831).createRenderParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},42715,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}},76361,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return l}});let n=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var u=o?Object.getOwnPropertyDescriptor(e,c):null;u&&(u.get||u.set)?Object.defineProperty(n,c,u):n[c]=e[c]}return n.default=e,t&&t.set(e,n),n}(e.r(71645));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}let o={current:null},c="function"==typeof n.cache?n.cache:e=>e,u=console.warn;function l(e){return function(...r){u(e(...r))}}c(e=>{try{u(o.current)}finally{o.current=null}})},65932,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return u},describeStringPropertyAccess:function(){return c},wellKnownProperties:function(){return l}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function c(e,r){return o.test(r)?`\`${e}.${r}\``:`\`${e}[${JSON.stringify(r)}]\``}function u(e,r){let t=JSON.stringify(r);return`\`Reflect.has(${e}, ${t})\`, \`${t} in ${e}\`, or similar`}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule"])},83066,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},41643,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(83066)},50999,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return s},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return u}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(43248),c=e.r(41643);function u(e,r){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,r){let t=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,r),e.invalidDynamicUsageError??=t,t}function s(){let e=c.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},69882,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return g},createSearchParamsFromClient:function(){return p},createServerSearchParamsForMetadata:function(){return h},createServerSearchParamsForServerPage:function(){return m},makeErroringSearchParamsForUseCache:function(){return v}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(42715),c=e.r(67673),u=e.r(62141),l=e.r(12718),s=e.r(63138),i=e.r(76361),d=e.r(65932),f=e.r(50999);function p(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}e.r(42852);let h=m;function m(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"prerender-runtime":var n,a;return n=e,a=t,(0,c.delayUntilRuntimeStage)(a,O(n));case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}function g(e){if(e.forceStatic)return Promise.resolve({});let r=u.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":return(0,s.makeHangingPromise)(r.renderSignal,e.route,"`searchParams`");case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,u.throwInvariantForMissingStore)()}function y(e,r){if(e.forceStatic)return Promise.resolve({});switch(r.type){case"prerender":case"prerender-client":var t=e,n=r;let a=P.get(n);if(a)return a;let u=(0,s.makeHangingPromise)(n.renderSignal,t.route,"`searchParams`"),l=new Proxy(u,{get(e,r,t){if(Object.hasOwn(u,r))return o.ReflectAdapter.get(e,r,t);switch(r){case"then":return(0,c.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),o.ReflectAdapter.get(e,r,t);case"status":return(0,c.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),o.ReflectAdapter.get(e,r,t);default:return o.ReflectAdapter.get(e,r,t)}}});return P.set(n,l),l;case"prerender-ppr":case"prerender-legacy":var i=e,d=r;let p=P.get(i);if(p)return p;let h=Promise.resolve({}),m=new Proxy(h,{get(e,r,t){if(Object.hasOwn(h,r))return o.ReflectAdapter.get(e,r,t);if("string"==typeof r&&"then"===r){let e="`await searchParams`, `searchParams.then`, or similar";i.dynamicShouldError?(0,f.throwWithStaticGenerationBailoutErrorWithDynamicError)(i.route,e):"prerender-ppr"===d.type?(0,c.postponeWithTracking)(i.route,e,d.dynamicTracking):(0,c.throwToInterruptStaticGeneration)(e,i,d)}return o.ReflectAdapter.get(e,r,t)}});return P.set(i,m),m;default:return r}}function b(e,r,t){return r.forceStatic?Promise.resolve({}):O(e)}let P=new WeakMap,_=new WeakMap;function v(e){let r=_.get(e);if(r)return r;let t=Promise.resolve({}),n=new Proxy(t,{get:function r(n,a,c){return Object.hasOwn(t,a)||"string"!=typeof a||"then"!==a&&d.wellKnownProperties.has(a)||(0,f.throwForSearchParamsAccessInUseCache)(e,r),o.ReflectAdapter.get(n,a,c)}});return _.set(e,n),n}function O(e){let r=P.get(e);if(r)return r;let t=Promise.resolve(e);return P.set(e,t),t}(0,i.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},74804,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},88276,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(74804)},41489,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createParamsFromClient:function(){return h},createPrerenderParamsForClientSegment:function(){return b},createServerParamsForMetadata:function(){return m},createServerParamsForRoute:function(){return g},createServerParamsForServerSegment:function(){return y}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(63599),c=e.r(42715),u=e.r(67673),l=e.r(62141),s=e.r(12718),i=e.r(65932),d=e.r(63138),f=e.r(76361),p=e.r(88276);function h(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}e.r(42852);let m=y;function g(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function y(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function b(e){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new s.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`")}break;case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function P(e,r,t){switch(t.type){case"prerender":case"prerender-client":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t){let n=v.get(e);if(n)return n;let a=new Proxy((0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`"),O);return v.set(e,a),a}(e,r,t)}break}case"prerender-ppr":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t,n){let a=v.get(e);if(a)return a;let o={...e},c=Promise.resolve(o);return v.set(e,c),Object.keys(e).forEach(e=>{i.wellKnownProperties.has(e)||r.has(e)&&Object.defineProperty(o,e,{get(){let r=(0,i.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,u.postponeWithTracking)(t.route,r,n.dynamicTracking):(0,u.throwToInterruptStaticGeneration)(r,t,n)},enumerable:!0})}),c}(e,n,r,t)}}}return S(e)}function _(e,r){return(0,u.delayUntilRuntimeStage)(r,S(e))}let v=new WeakMap,O={get:function(e,r,t){if("then"===r||"catch"===r||"finally"===r){let n=c.ReflectAdapter.get(e,r,t);return({[r]:(...r)=>{let t=p.dynamicAccessAsyncStorage.getStore();return t&&t.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,r),O)}})[r]}return c.ReflectAdapter.get(e,r,t)}};function S(e){let r=v.get(e);if(r)return r;let t=Promise.resolve(e);return v.set(e,t),t}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},47257,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return s}});let n=e.r(43476),a=e.r(12718),o=e.r(8372),c=e.r(71645),u=e.r(33906),l=e.r(61994);function s({Component:r,serverProvidedParams:t}){let s,i;if(null!==t)s=t.searchParams,i=t.params;else{let e=(0,c.use)(o.LayoutRouterContext);i=null!==e?e.parentParams:{},s=(0,u.urlSearchParamsToParsedUrlQuery)((0,c.use)(l.SearchParamsContext))}if("undefined"==typeof window){let t,o,{workAsyncStorage:c}=e.r(63599),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling searchParams in a client Page."),"__NEXT_ERROR_CODE",{value:"E564",enumerable:!1,configurable:!0});let{createSearchParamsFromClient:l}=e.r(69882);t=l(s,u);let{createParamsFromClient:d}=e.r(41489);return o=d(i,u),(0,n.jsx)(r,{params:o,searchParams:t})}{let{createRenderSearchParamsFromClient:t}=e.r(66996),a=t(s),{createRenderParamsFromClient:o}=e.r(97689),c=o(i);return(0,n.jsx)(r,{params:c,searchParams:a})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},92825,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return u}});let n=e.r(43476),a=e.r(12718),o=e.r(8372),c=e.r(71645);function u({Component:r,slots:t,serverProvidedParams:u}){let l;if(null!==u)l=u.params;else{let e=(0,c.use)(o.LayoutRouterContext);l=null!==e?e.parentParams:{}}if("undefined"==typeof window){let o,{workAsyncStorage:c}=e.r(63599),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling params in a client segment such as a Layout or Template."),"__NEXT_ERROR_CODE",{value:"E600",enumerable:!1,configurable:!0});let{createParamsFromClient:s}=e.r(41489);return o=s(l,u),(0,n.jsx)(r,{...t,params:o})}{let{createRenderParamsFromClient:a}=e.r(97689),o=a(l);return(0,n.jsx)(r,{...t,params:o})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},27201,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(43476),a=()=>"undefined"!=typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/48c5753aca325314.js b/src/hyperview/server/static/_next/static/chunks/48c5753aca325314.js new file mode 100644 index 0000000..b10dff8 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/48c5753aca325314.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,86051,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},39400,(e,r,t)=>{"use strict";function n(e,r={}){if(r.onlyHashChange)return void e();let t=document.documentElement;if("smooth"!==t.dataset.scrollBehavior)return void e();let a=t.style.scrollBehavior;t.style.scrollBehavior="auto",r.dontForceLayout||t.getClientRects(),e(),t.style.scrollBehavior=a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(86051)},15128,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return i}});let n=e.r(61909),a=e.r(48277),o=n._(e.r(30668)),c=e.r(83441),u=e.r(88112);e.r(86051);let l=e.r(45243);class s extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,u.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,u.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,r){return e.pathname!==r.previousPathname&&r.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:r.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:r,unauthorized:t,children:n}=this.props,{triggeredStatus:o}=this.state,c={[u.HTTPAccessErrorStatus.NOT_FOUND]:e,[u.HTTPAccessErrorStatus.FORBIDDEN]:r,[u.HTTPAccessErrorStatus.UNAUTHORIZED]:t};if(o){let l=o===u.HTTPAccessErrorStatus.NOT_FOUND&&e,s=o===u.HTTPAccessErrorStatus.FORBIDDEN&&r,i=o===u.HTTPAccessErrorStatus.UNAUTHORIZED&&t;return l||s||i?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,c[o]]}):n}return n}}function i({notFound:e,forbidden:r,unauthorized:t,children:n}){let u=(0,c.useUntrackedPathname)(),i=(0,o.useContext)(l.MissingSlotContext);return e||r||t?(0,a.jsx)(s,{pathname:u,notFound:e,forbidden:r,unauthorized:t,missingSlots:i,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},79227,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(30668);function a(e,r){let[t,a]=(0,n.useState)(()=>({tree:e,stateKey:r,next:null}));if(t.tree===e)return t;let o={tree:e,stateKey:r,next:null},c=1,u=t,l=o;for(;null!==u&&c<1;){if(u.stateKey===r){l.next=u.next;break}{c++;let e={tree:u.tree,stateKey:u.stateKey,next:null};l.next=e,l=e}u=u.next}return a(o),o}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},32035,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return T}});let n=e.r(35856),a=e.r(61909),o=e.r(48277),c=e.r(98165),u=a._(e.r(30668)),l=n._(e.r(69941)),s=e.r(45243),i=e.r(20320),d=e.r(83648),f=e.r(71202),p=e.r(22039),h=e.r(39400),m=e.r(2188),g=e.r(15128),y=e.r(43317),b=e.r(20017),P=e.r(53128),_=e.r(79227);e.r(86511);let v=e.r(69370),O=e.r(88617),S=l.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function R(e,r){let t=e.getBoundingClientRect();return t.top>=0&&t.top<=r}class j extends u.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:r}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>r.every((r,t)=>(0,p.matchSegment)(r,e[t]))))return;let t=null,n=e.hashFragment;if(n&&(t="top"===n?document.body:document.getElementById(n)??document.getElementsByName(n)[0]),t||(t="undefined"==typeof window?null:(0,S.findDOMNode)(this)),!(t instanceof Element))return;for(;!(t instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let r=e.getBoundingClientRect();return E.every(e=>0===r[e])}(t);){if(null===t.nextElementSibling)return;t=t.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,h.disableSmoothScrollDuringRouteTransition)(()=>{if(n)return void t.scrollIntoView();let e=document.documentElement,r=e.clientHeight;!R(t,r)&&(e.scrollTop=0,R(t,r)||t.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,t.focus()}}}}function w({segmentPath:e,children:r}){let t=(0,u.useContext)(s.GlobalLayoutRouterContext);if(!t)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,o.jsx)(j,{segmentPath:e,focusAndScrollRef:t.focusAndScrollRef,children:r})}function C({tree:e,segmentPath:r,debugNameContext:t,cacheNode:n,params:a,url:l,isActive:f}){let h=(0,u.useContext)(s.GlobalLayoutRouterContext);if((0,u.useContext)(v.NavigationPromisesContext),!h)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let{tree:m}=h,g=null!==n.prefetchRsc?n.prefetchRsc:n.rsc,y=(0,u.useDeferredValue)(n.rsc,g),_="object"==typeof y&&null!==y&&"function"==typeof y.then?(0,u.use)(y):y;if(!_){if(f){let e=n.lazyData;if(null===e){let t=function e(r,t){if(r){let[n,a]=r,o=2===r.length;if((0,p.matchSegment)(t[0],n)&&t[1].hasOwnProperty(a)){if(o){let r=e(void 0,t[1][a]);return[t[0],{...t[1],[a]:[r[0],r[1],r[2],"refetch"]}]}return[t[0],{...t[1],[a]:e(r.slice(2),t[1][a])}]}}return t}(["",...r],m),a=(0,b.hasInterceptionRouteInCurrentTree)(m),o=Date.now();n.lazyData=e=(0,i.fetchServerResponse)(new URL(l,location.origin),{flightRouterState:t,nextUrl:a?h.previousNextUrl||h.nextUrl:null}).then(e=>((0,u.startTransition)(()=>{(0,P.dispatchAppRouterAction)({type:c.ACTION_SERVER_PATCH,previousTree:m,serverResponse:e,navigatedAt:o})}),e)),(0,u.use)(e)}}(0,u.use)(d.unresolvedThenable)}return(0,o.jsx)(s.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:n,parentSegmentPath:r,parentParams:a,debugNameContext:t,url:l,isActive:f},children:_})}function x({name:e,loading:r,children:t}){let n;if(n="object"==typeof r&&null!==r&&"function"==typeof r.then?(0,u.use)(r):r){let r=n[0],a=n[1],c=n[2];return(0,o.jsx)(u.Suspense,{name:e,fallback:(0,o.jsxs)(o.Fragment,{children:[a,c,r]}),children:t})}return(0,o.jsx)(o.Fragment,{children:t})}function T({parallelRouterKey:e,error:r,errorStyles:t,errorScripts:n,templateStyles:a,templateScripts:c,template:l,notFound:i,forbidden:d,unauthorized:p,segmentViewBoundaries:h}){let b=(0,u.useContext)(s.LayoutRouterContext);if(!b)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:P,parentCacheNode:v,parentSegmentPath:S,parentParams:E,url:R,isActive:j,debugNameContext:T}=b,A=v.parallelRoutes,M=A.get(e);M||(M=new Map,A.set(e,M));let F=P[0],D=null===S?[e]:S.concat([F,e]),k=P[1][e],N=k[0],I=(0,y.createRouterCacheKey)(N,!0),U=(0,_.useRouterBFCache)(k,I),H=[];do{let e=U.tree,u=U.stateKey,h=e[0],b=(0,y.createRouterCacheKey)(h),P=M.get(b);if(void 0===P){let e={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};P=e,M.set(b,e)}let _=E;if(Array.isArray(h)){let e=h[0],r=h[1],t=h[2],n=(0,O.getParamValueFromCacheKey)(r,t);null!==n&&(_={...E,[e]:n})}let S=function(e){if("/"===e)return"/";if("string"==typeof e)if("(slot)"===e)return;else return e+"/";return e[1]+"/"}(h),A=S??T,F=void 0===S?void 0:T,k=v.loading,N=(0,o.jsxs)(s.TemplateContext.Provider,{value:(0,o.jsxs)(w,{segmentPath:D,children:[(0,o.jsx)(f.ErrorBoundary,{errorComponent:r,errorStyles:t,errorScripts:n,children:(0,o.jsx)(x,{name:F,loading:k,children:(0,o.jsx)(g.HTTPAccessFallbackBoundary,{notFound:i,forbidden:d,unauthorized:p,children:(0,o.jsxs)(m.RedirectBoundary,{children:[(0,o.jsx)(C,{url:R,tree:e,params:_,cacheNode:P,segmentPath:D,debugNameContext:A,isActive:j&&u===I}),null]})})})}),null]}),children:[a,c,l]},u);H.push(N),U=U.next}while(null!==U)return H}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},91168,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=e.r(61909),a=e.r(48277),o=n._(e.r(30668)),c=e.r(45243);function u(){let e=(0,o.useContext)(c.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},66387,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},12318,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(66387).createRenderSearchParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},13972,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},4986,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(13972).createRenderParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},27731,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}},36380,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return l}});let n=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var u=o?Object.getOwnPropertyDescriptor(e,c):null;u&&(u.get||u.set)?Object.defineProperty(n,c,u):n[c]=e[c]}return n.default=e,t&&t.set(e,n),n}(e.r(30668));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}let o={current:null},c="function"==typeof n.cache?n.cache:e=>e,u=console.warn;function l(e){return function(...r){u(e(...r))}}c(e=>{try{u(o.current)}finally{o.current=null}})},20697,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return u},describeStringPropertyAccess:function(){return c},wellKnownProperties:function(){return l}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function c(e,r){return o.test(r)?`\`${e}.${r}\``:`\`${e}[${JSON.stringify(r)}]\``}function u(e,r){let t=JSON.stringify(r);return`\`Reflect.has(${e}, ${t})\`, \`${t} in ${e}\`, or similar`}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule"])},84642,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},55436,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(84642)},83602,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return s},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return u}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(16819),c=e.r(55436);function u(e,r){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,r){let t=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,r),e.invalidDynamicUsageError??=t,t}function s(){let e=c.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},9115,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return g},createSearchParamsFromClient:function(){return p},createServerSearchParamsForMetadata:function(){return h},createServerSearchParamsForServerPage:function(){return m},makeErroringSearchParamsForUseCache:function(){return v}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(27731),c=e.r(93869),u=e.r(63416),l=e.r(84524),s=e.r(64265),i=e.r(36380),d=e.r(20697),f=e.r(83602);function p(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}e.r(93501);let h=m;function m(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"prerender-runtime":var n,a;return n=e,a=t,(0,c.delayUntilRuntimeStage)(a,O(n));case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}function g(e){if(e.forceStatic)return Promise.resolve({});let r=u.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":return(0,s.makeHangingPromise)(r.renderSignal,e.route,"`searchParams`");case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,u.throwInvariantForMissingStore)()}function y(e,r){if(e.forceStatic)return Promise.resolve({});switch(r.type){case"prerender":case"prerender-client":var t=e,n=r;let a=P.get(n);if(a)return a;let u=(0,s.makeHangingPromise)(n.renderSignal,t.route,"`searchParams`"),l=new Proxy(u,{get(e,r,t){if(Object.hasOwn(u,r))return o.ReflectAdapter.get(e,r,t);switch(r){case"then":return(0,c.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),o.ReflectAdapter.get(e,r,t);case"status":return(0,c.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),o.ReflectAdapter.get(e,r,t);default:return o.ReflectAdapter.get(e,r,t)}}});return P.set(n,l),l;case"prerender-ppr":case"prerender-legacy":var i=e,d=r;let p=P.get(i);if(p)return p;let h=Promise.resolve({}),m=new Proxy(h,{get(e,r,t){if(Object.hasOwn(h,r))return o.ReflectAdapter.get(e,r,t);if("string"==typeof r&&"then"===r){let e="`await searchParams`, `searchParams.then`, or similar";i.dynamicShouldError?(0,f.throwWithStaticGenerationBailoutErrorWithDynamicError)(i.route,e):"prerender-ppr"===d.type?(0,c.postponeWithTracking)(i.route,e,d.dynamicTracking):(0,c.throwToInterruptStaticGeneration)(e,i,d)}return o.ReflectAdapter.get(e,r,t)}});return P.set(i,m),m;default:return r}}function b(e,r,t){return r.forceStatic?Promise.resolve({}):O(e)}let P=new WeakMap,_=new WeakMap;function v(e){let r=_.get(e);if(r)return r;let t=Promise.resolve({}),n=new Proxy(t,{get:function r(n,a,c){return Object.hasOwn(t,a)||"string"!=typeof a||"then"!==a&&d.wellKnownProperties.has(a)||(0,f.throwForSearchParamsAccessInUseCache)(e,r),o.ReflectAdapter.get(n,a,c)}});return _.set(e,n),n}function O(e){let r=P.get(e);if(r)return r;let t=Promise.resolve(e);return P.set(e,t),t}(0,i.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},6782,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},14190,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(6782)},69318,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createParamsFromClient:function(){return h},createPrerenderParamsForClientSegment:function(){return b},createServerParamsForMetadata:function(){return m},createServerParamsForRoute:function(){return g},createServerParamsForServerSegment:function(){return y}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(26628),c=e.r(27731),u=e.r(93869),l=e.r(63416),s=e.r(84524),i=e.r(20697),d=e.r(64265),f=e.r(36380),p=e.r(14190);function h(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}e.r(93501);let m=y;function g(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function y(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function b(e){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new s.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`")}break;case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function P(e,r,t){switch(t.type){case"prerender":case"prerender-client":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t){let n=v.get(e);if(n)return n;let a=new Proxy((0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`"),O);return v.set(e,a),a}(e,r,t)}break}case"prerender-ppr":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t,n){let a=v.get(e);if(a)return a;let o={...e},c=Promise.resolve(o);return v.set(e,c),Object.keys(e).forEach(e=>{i.wellKnownProperties.has(e)||r.has(e)&&Object.defineProperty(o,e,{get(){let r=(0,i.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,u.postponeWithTracking)(t.route,r,n.dynamicTracking):(0,u.throwToInterruptStaticGeneration)(r,t,n)},enumerable:!0})}),c}(e,n,r,t)}}}return S(e)}function _(e,r){return(0,u.delayUntilRuntimeStage)(r,S(e))}let v=new WeakMap,O={get:function(e,r,t){if("then"===r||"catch"===r||"finally"===r){let n=c.ReflectAdapter.get(e,r,t);return({[r]:(...r)=>{let t=p.dynamicAccessAsyncStorage.getStore();return t&&t.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,r),O)}})[r]}return c.ReflectAdapter.get(e,r,t)}};function S(e){let r=v.get(e);if(r)return r;let t=Promise.resolve(e);return v.set(e,t),t}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},73440,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return s}});let n=e.r(48277),a=e.r(84524),o=e.r(45243),c=e.r(30668),u=e.r(88617),l=e.r(69370);function s({Component:r,serverProvidedParams:t}){let s,i;if(null!==t)s=t.searchParams,i=t.params;else{let e=(0,c.use)(o.LayoutRouterContext);i=null!==e?e.parentParams:{},s=(0,u.urlSearchParamsToParsedUrlQuery)((0,c.use)(l.SearchParamsContext))}if("undefined"==typeof window){let t,o,{workAsyncStorage:c}=e.r(26628),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling searchParams in a client Page."),"__NEXT_ERROR_CODE",{value:"E564",enumerable:!1,configurable:!0});let{createSearchParamsFromClient:l}=e.r(9115);t=l(s,u);let{createParamsFromClient:d}=e.r(69318);return o=d(i,u),(0,n.jsx)(r,{params:o,searchParams:t})}{let{createRenderSearchParamsFromClient:t}=e.r(12318),a=t(s),{createRenderParamsFromClient:o}=e.r(4986),c=o(i);return(0,n.jsx)(r,{params:c,searchParams:a})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},34636,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return u}});let n=e.r(48277),a=e.r(84524),o=e.r(45243),c=e.r(30668);function u({Component:r,slots:t,serverProvidedParams:u}){let l;if(null!==u)l=u.params;else{let e=(0,c.use)(o.LayoutRouterContext);l=null!==e?e.parentParams:{}}if("undefined"==typeof window){let o,{workAsyncStorage:c}=e.r(26628),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling params in a client segment such as a Layout or Template."),"__NEXT_ERROR_CODE",{value:"E600",enumerable:!1,configurable:!0});let{createParamsFromClient:s}=e.r(69318);return o=s(l,u),(0,n.jsx)(r,{...t,params:o})}{let{createRenderParamsFromClient:a}=e.r(4986),o=a(l);return(0,n.jsx)(r,{...t,params:o})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},12843,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(48277),a=()=>"undefined"!=typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/5a5ec5690ca4254a.js b/src/hyperview/server/static/_next/static/chunks/5a5ec5690ca4254a.js new file mode 100644 index 0000000..4111781 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/5a5ec5690ca4254a.js @@ -0,0 +1,2 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50407,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getAssetPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(84524);function l(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new r.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?u.createElement("select",{is:r.is}):u.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?u.createElement(l,{is:r.is}):u.createElement(l)}}a[eW]=t,a[eK]=r;e:for(u=t.child;null!==u;){if(5===u.tag||6===u.tag)a.appendChild(u.stateNode);else if(4!==u.tag&&27!==u.tag&&null!==u.child){u.child.return=u,u=u.child;continue}if(u===t)break;for(;null===u.sibling;){if(null===u.return||u.return===t)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}switch(t.stateNode=a,cl(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&ou(t)}}return of(t),t.subtreeFlags&=-0x2000001,oo(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ou(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));if(e=en.current,rY(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=rB))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eW]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||ct(e.nodeValue,n)))||rQ(t,!0)}else(e=ci(e).createTextNode(r))[eW]=t,t.stateNode=e}return of(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rY(t),null!==n){if(null===e){if(!r)throw Error(i(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(i(557));e[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),e=!1}else n=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return l7(t),t;return l7(t),null}if(0!=(128&t.flags))throw Error(i(558))}return of(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rY(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(i(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(i(317));l[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),l=!1}else l=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&t.flags)return l7(t),t;return l7(t),null}}if(l7(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),os(t,t.updateQueue),of(t),null;case 4:return ea(),null===e&&s1(t.stateNode.containerInfo),t.flags|=0x4000000,of(t),null;case 10:return r8(t.type),of(t),null;case 19:if(an(t),null===(r=t.memoizedState))return of(t),null;if(l=0!=(128&t.flags),null===(a=r.rendering))if(l)oc(r,!1);else{if(0!==iM||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=ar(e))){for(t.flags|=128,oc(r,!1),t.updateQueue=e=a.updateQueue,os(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rS(n,e),n=n.sibling;return at(t,1&ae.current|2),rq&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ey()>iV&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304)}else{if(!l)if(null!==(e=ar(a))){if(t.flags|=128,l=!0,t.updateQueue=e=e.updateQueue,os(t,e),oc(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rq)return of(t),null}else 2*ey()-r.renderingStartTime>iV&&0x20000000!==n&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ey(),e.sibling=null,a=ae.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rq?at(t,a):(n=a,Z(l3,t),Z(ae,n),null===l4&&(l4=t)),rq&&rA(t,r.treeForkCount),e}return of(t),null;case 22:case 23:return l7(t),l2(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(of(t),6&t.subtreeFlags&&(t.flags|=8192)):of(t),null!==(n=t.updateQueue)&&os(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(lv),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),r8(lo),of(t),null;case 25:return null;case 30:return t.flags|=0x2000000,of(t),null}throw Error(i(156,t.tag))}(t.alternate,t,iN);if(null!==n){iP=n;return}if(null!==(t=t.sibling)){iP=t;return}iP=t=e}while(null!==t)0===iM&&(iM=5)}function sh(e,t){do{var n=function(e,t){switch(rU(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return r8(lo),ea(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return eo(t),null;case 31:if(null!==t.memoizedState){if(l7(t),null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(l7(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return an(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ea(),null;case 10:return r8(t.type),null;case 22:case 23:return l7(t),l2(),null!==e&&J(lv),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return r8(lo),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,iP=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){iP=e;return}iP=e=n}while(null!==e)iM=6,iP=null}function sm(e,t,n,r,l,a,u,o,s,c,f){e.cancelPendingCommit=null;do sE();while(0!==iW)if(0!=(6&iE))throw Error(i(327));if(null!==t){var d;if(t===e.current)throw Error(i(177));if(!function(e,t,n,r,l,a){var u=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,i=e.expirationTimes,s=e.hiddenUpdates;for(n=u&~n;0fc){o.length=u;break}d=new Promise(cR.bind(d)),o.push(d)}}}return 0g&&(u=g,g=m,m=u);var y=nH(o,m),v=nH(o,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=f.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),m>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(f=[],p=o;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof o.focus&&o.focus(),o=0;on?32:n,W.T=null,n=iY,iY=null;var a=iK,u=iG;if(iW=0,iQ=iK=null,iG=0,0!=(6&iE))throw Error(i(331));var o=iE;if(iE|=4,iv(a.current),ic(a,a.current,u,n),iE=o,sI(0,!1),ek&&"function"==typeof ek.onPostCommitFiberRoot)try{ek.onPostCommitFiberRoot(eP,a)}catch(e){}return!0}finally{K.p=l,W.T=r,sw(e,t)}}function sP(e,t,n){t=rT(n,t),t=uF(e.stateNode,t,2),null!==(e=lq(e,t,2))&&(eA(e,2),sA(e))}function sk(e,t,n){if(3===e.tag)sP(e,e,n);else for(;null!==t;){if(3===t.tag){sP(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===i$||!i$.has(r))){e=rT(n,e),null!==(r=lq(t,n=uA(2),2))&&(uI(n,r,t,e),eA(r,2),sA(r));break}}t=t.return}}function sR(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new iw;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(iC=!0,l.add(n),e=sT.bind(null,e,t,n),t.then(e,e))}function sT(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,i_===e&&(ik&n)===n&&(4===iM||3===iM&&(0x3c00000&ik)===ik&&300>ey()-iH?0==(2&iE)&&sr(e,0):ij|=n,iA===ik&&(iA=0)),sA(e)}function sx(e,t){0===t&&(t=ej()),null!==(e=rd(e,t))&&(eA(e,t),sA(e))}function sO(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sx(e,n)}function sC(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),sx(e,n)}var sN=null,sM=null,sL=!1,sz=!1,sj=!1,sF=0;function sA(e){e!==sM&&null===e.next&&(null===sM?sN=sM=e:sM=sM.next=e),sz=!0,sL||(sL=!0,cg(function(){0!=(6&iE)?ep(eb,sD):sU()}))}function sI(e,t){if(!sj&&sz){sj=!0;do for(var n=!1,r=sN;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var u=r.suspendedLanes,o=r.pingedLanes;a=0xc000095&(a=(1<<31-eR(42|e)+1)-1&(l&~(u&~o)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sV(r,a))}else a=ik,0==(3&(a=eL(r,r===i_?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ez(r,a)||(n=!0,sV(r,a));r=r.next}while(n)sj=!1}}function sD(){sU()}function sU(){sz=sL=!1;var e,t=0;0===sF||((e=window.event)&&"popstate"===e.type?e===cd||(cd=e,0):(cd=null,1))||(t=sF);for(var n=ey(),r=null,l=sN;null!==l;){var a=l.next,u=sH(l,n);0===u?(l.next=null,null===r?sN=a:r.next=a,null===a&&(sM=r)):(r=l,(0!==t||0!=(3&u))&&(sz=!0)),l=a}0!==iW&&5!==iW||sI(t,!1),0!==sF&&(sF=0)}function sH(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function fu(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function fo(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function fi(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fs(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=fi(t),e.suspenseyImages.push(t)),e=fp.bind(e),t.decode().then(e,e))}var fc=0;function ff(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fm(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function fd(){this.count--,ff(this)}function fp(){this.imgCount--,ff(this)}var fh=null;function fm(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fh=new Map,t.forEach(fg,e),fh=null,fd.call(e))}function fg(e,t){if(!(4&t.state.loading)){var n=fh.get(e);if(n)var r=n.get(null);else{n=new Map,fh.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(94454)},98084,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HeadManagerContext",{enumerable:!0,get:function(){return r}});let r=e.r(35856)._(e.r(30668)).default.createContext({})},26717,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={onCaughtError:function(){return d},onUncaughtError:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(35856),u=e.r(31028),o=e.r(19551),i=e.r(96887),s=e.r(71202),c=a._(e.r(75115)),f={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function d(e,t){let n,r=t.errorBoundary?.constructor;if(n=n||r===s.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===c.default)return p(e);(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||f.originConsoleError(e)}function p(e){(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||(0,i.reportGlobalError)(e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},5725,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={computeChangedPath:function(){return f},extractPathFromFlightRouterState:function(){return c},getSelectedParams:function(){return function e(t,n={}){for(let r of Object.values(t[1])){let t=r[0],l=Array.isArray(t),a=l?t[1]:t;!a||a.startsWith(u.PAGE_SEGMENT_KEY)||(l&&("c"===t[2]||"oc"===t[2])?n[t[0]]=t[1].split("/"):l&&(n[t[0]]=t[1]),n=e(r,n))}return n}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(50864),u=e.r(91395),o=e.r(22039),i=e=>"string"==typeof e?"children"===e?"":e:e[1];function s(e){return e.reduce((e,t)=>{let n;return""===(t="/"===(n=t)[0]?n.slice(1):n)||(0,u.isGroupSegment)(t)?e:`${e}/${t}`},"")||"/"}function c(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===u.DEFAULT_SEGMENT_KEY||a.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t.startsWith(u.PAGE_SEGMENT_KEY))return"";let n=[i(t)],r=e[1]??{},l=r.children?c(r.children):void 0;if(void 0!==l)n.push(l);else for(let[e,t]of Object.entries(r)){if("children"===e)continue;let r=c(t);void 0!==r&&n.push(r)}return s(n)}function f(e,t){let n=function e(t,n){let[r,l]=t,[u,s]=n,f=i(r),d=i(u);if(a.INTERCEPTION_ROUTE_MARKERS.some(e=>f.startsWith(e)||d.startsWith(e)))return"";if(!(0,o.matchSegment)(r,u))return c(n)??"";for(let t in l)if(s[t]){let n=e(l[t],s[t]);if(null!==n)return`${i(u)}/${n}`}return null}(e,t);return null==n||"/"===n?n:s(n.split("/"))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},40494,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleMutable",{enumerable:!0,get:function(){return a}});let r=e.r(5725);function l(e){return void 0!==e}function a(e,t){let n=t.shouldScroll??!0,a=e.previousNextUrl,u=e.nextUrl;if(l(t.patchedTree)){let n=(0,r.computeChangedPath)(e.tree,t.patchedTree);n?(a=u,u=n):u||(u=e.canonicalUrl)}return{canonicalUrl:t.canonicalUrl??e.canonicalUrl,renderedSearch:t.renderedSearch??e.renderedSearch,pushRef:{pendingPush:l(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:l(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:l(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!n&&(!!l(t?.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:t.onlyHashChange||!1,hashFragment:n?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:n?t?.scrollableSegments??e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,tree:l(t.patchedTree)?t.patchedTree:e.tree,nextUrl:u,previousNextUrl:a,debugInfo:t.collectedDebugInfo??null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},84697,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,n){let r=t[0],l=n[0];if(Array.isArray(r)&&Array.isArray(l)){if(r[0]!==l[0]||r[2]!==l[2])return!0}else if(r!==l)return!0;if(t[4])return!n[4];if(n[4])return!0;let a=Object.values(t[1])[0],u=Object.values(n[1])[0];return!a||!u||e(a,u)}}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1989,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={abortTask:function(){return y},listenForDynamicRequest:function(){return g},startPPRNavigation:function(){return d},updateCacheNodeOnPopstateRestoration:function(){return function e(t,n){let r=n[1],l=t.parallelRoutes,a=new Map(l);for(let t in r){let n=r[t],u=n[0],o=(0,i.createRouterCacheKey)(u),s=l.get(t);if(void 0!==s){let r=s.get(o);if(void 0!==r){let l=e(r,n),u=new Map(s);u.set(o,l),a.set(t,u)}}}let u=t.rsc,o=S(u)&&"pending"===u.status;return{lazyData:null,rsc:u,head:t.head,prefetchHead:o?t.prefetchHead:[null,null],prefetchRsc:o?t.prefetchRsc:null,loading:t.loading,parallelRoutes:a,navigatedAt:t.navigatedAt}}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(91395),u=e.r(22039),o=e.r(80118),i=e.r(43317),s=e.r(84697),c=e.r(28806),f={route:null,node:null,dynamicRequestTree:null,children:null};function d(e,t,n,r,l,s,c,d,m,g){return function e(t,n,r,l,s,c,d,m,g,y,v,b){let S=l[1],w=s[1],E=null!==d?d[1]:null;c||!0===s[4]&&(c=!0);let _=r.parallelRoutes,P=new Map(_),k={},R=null,T=!1,x={};for(let r in w){let l,s=w[r],d=S[r],O=_.get(r),C=null!==E?E[r]:null,N=s[0],M=v.concat([r,N]),L=(0,i.createRouterCacheKey)(N),z=void 0!==d?d[0]:void 0,j=void 0!==O?O.get(L):void 0;if(null!==(l=N===a.DEFAULT_SEGMENT_KEY?void 0!==d?function(e,t){let n;return"refresh"===t[3]?n=t:((n=h(t,t[1]))[2]=(0,o.createHrefFromUrl)(e),n[3]="refresh"),{route:n,node:null,dynamicRequestTree:null,children:null}}(n,d):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):y&&0===Object.keys(s[1]).length?p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):void 0!==d&&void 0!==z&&(0,u.matchSegment)(N,z)&&void 0!==j&&void 0!==d?e(t,n,j,d,s,c,C,m,g,y,M,b):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b))){if(null===l.route)return f;null===R&&(R=new Map),R.set(r,l);let e=l.node;if(null!==e){let t=new Map(O);t.set(L,e),P.set(r,t)}let t=l.route;k[r]=t;let n=l.dynamicRequestTree;null!==n?(T=!0,x[r]=n):x[r]=t}else k[r]=s,x[r]=s}if(null===R)return null;let O={lazyData:null,rsc:r.rsc,prefetchRsc:r.prefetchRsc,head:r.head,prefetchHead:r.prefetchHead,loading:r.loading,parallelRoutes:P,navigatedAt:t};return{route:h(s,k),node:O,dynamicRequestTree:T?h(s,x):null,children:R}}(e,t,n,r,l,!1,s,c,d,m,[],g)}function p(e,t,n,r,l,a,u,o,d,p){return!l&&(void 0===t||(0,s.isNavigatingToNewRootLayout)(t,n))?f:function e(t,n,r,l,a,u,o,s){let f,d,p,g,y=n[1],v=0===Object.keys(y).length;if(void 0!==r&&r.navigatedAt+c.DYNAMIC_STALETIME_MS>t)f=r.rsc,d=r.loading,p=r.head,g=r.navigatedAt;else if(null===l)return m(t,n,null,a,u,o,s);else if(f=l[0],d=l[2],p=v?a:null,g=t,l[3]||u&&v)return m(t,n,l,a,u,o,s);let b=null!==l?l[1]:null,S=new Map,w=void 0!==r?r.parallelRoutes:null,E=new Map(w),_={},P=!1;if(v)s.push(o);else for(let n in y){let r=y[n],l=null!==b?b[n]:null,c=null!==w?w.get(n):void 0,f=r[0],d=o.concat([n,f]),p=(0,i.createRouterCacheKey)(f),h=e(t,r,void 0!==c?c.get(p):void 0,l,a,u,d,s);S.set(n,h);let m=h.dynamicRequestTree;null!==m?(P=!0,_[n]=m):_[n]=r;let g=h.node;if(null!==g){let e=new Map;e.set(p,g),E.set(n,e)}}return{route:n,node:{lazyData:null,rsc:f,prefetchRsc:null,head:p,prefetchHead:null,loading:d,parallelRoutes:E,navigatedAt:g},dynamicRequestTree:P?h(n,_):null,children:S}}(e,n,r,a,u,o,d,p)}function h(e,t){let n=[e[0],t];return 2 in e&&(n[2]=e[2]),3 in e&&(n[3]=e[3]),4 in e&&(n[4]=e[4]),n}function m(e,t,n,r,l,a,u){let o=h(t,t[1]);return o[3]="refetch",{route:t,node:function e(t,n,r,l,a,u,o){let s=n[1],c=null!==r?r[1]:null,f=new Map;for(let n in s){let r=s[n],d=null!==c?c[n]:null,p=r[0],h=u.concat([n,p]),m=(0,i.createRouterCacheKey)(p),g=e(t,r,void 0===d?null:d,l,a,h,o),y=new Map;y.set(m,g),f.set(n,y)}let d=0===f.size;d&&o.push(u);let p=null!==r?r[0]:null;return{lazyData:null,parallelRoutes:f,prefetchRsc:void 0!==p?p:null,prefetchHead:d?l:[null,null],rsc:w(),head:d?w():null,loading:null!==r?r[2]??null:w(),navigatedAt:t}}(e,t,n,r,l,a,u),dynamicRequestTree:o,children:null}}function g(e,t){t.then(t=>{if("string"==typeof t)return;let{flightData:n,debugInfo:r}=t;for(let t of n){let{segmentPath:n,tree:l,seedData:a,head:o}=t;a&&function(e,t,n,r,l,a){let o=e;for(let e=0;e{y(e,t,null)})}function y(e,t,n){let r=e.node;if(null===r)return;let l=e.children;if(null===l)v(e.route,r,t,n);else for(let e of l.values())y(e,t,n);e.dynamicRequestTree=null}function v(e,t,n,r){let l=e[1],a=t.parallelRoutes;for(let e in l){let t=l[e],u=a.get(e);if(void 0===u)continue;let o=t[0],s=(0,i.createRouterCacheKey)(o),c=u.get(s);void 0!==c&&v(t,c,n,r)}let u=t.rsc;S(u)&&(null===n?u.resolve(null,r):u.reject(n,r));let o=t.loading;S(o)&&o.resolve(null,r);let s=t.head;S(s)&&s.resolve(null,r)}let b=Symbol();function S(e){return e&&"object"==typeof e&&e.tag===b}function w(){let e,t,n=[],r=new Promise((n,r)=>{e=n,t=r});return r.status="pending",r.resolve=(t,l)=>{"pending"===r.status&&(r.status="fulfilled",r.value=t,null!==l&&n.push.apply(n,l),e(t))},r.reject=(e,l)=>{"pending"===r.status&&(r.status="rejected",r.reason=e,null!==l&&n.push.apply(n,l),t(e))},r.tag=b,r._debugInfo=n,r}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18563,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HasLoadingBoundary",{enumerable:!0,get:function(){return l}});var r,l=((r={})[r.SegmentHasLoadingBoundary=1]="SegmentHasLoadingBoundary",r[r.SubtreeHasLoadingBoundary=2]="SubtreeHasLoadingBoundary",r[r.SubtreeHasNoLoadingBoundary=3]="SubtreeHasNoLoadingBoundary",r)},24994,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l,a,u={FetchStrategy:function(){return c},NavigationResultTag:function(){return i},PrefetchPriority:function(){return s}};for(var o in u)Object.defineProperty(n,o,{enumerable:!0,get:u[o]});var i=((r={})[r.MPA=0]="MPA",r[r.Success=1]="Success",r[r.NoOp=2]="NoOp",r[r.Async=3]="Async",r),s=((l={})[l.Intent=2]="Intent",l[l.Default=1]="Default",l[l.Background=0]="Background",l),c=((a={})[a.LoadingBoundary=0]="LoadingBoundary",a[a.PPR=1]="PPR",a[a.PPRRuntime=2]="PPRRuntime",a[a.Full=3]="Full",a);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},68323,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={deleteFromLru:function(){return f},lruPut:function(){return s},updateLruSize:function(){return c}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(47661),u=null,o=!1,i=0;function s(e){if(u===e)return;let t=e.prev,n=e.next;if(null===n||null===t?(i+=e.size,d()):(t.next=n,n.prev=t),null===u)e.prev=e,e.next=e;else{let t=u.prev;e.prev=t,null!==t&&(t.next=e),e.next=u,u.prev=e}u=e}function c(e,t){let n=e.size;e.size=t,null!==e.next&&(i=i-n+t,d())}function f(e){let t=e.next,n=e.prev;null!==t&&null!==n&&(i-=e.size,e.next=null,e.prev=null,u===e?u=t===u?null:t:(n.next=t,t.prev=n))}function d(){o||i<=0x3200000||(o=!0,h(p))}function p(){o=!1;for(;i>0x2d00000&&null!==u;){let e=u.prev;null!==e&&(0,a.deleteFromCacheMap)(e.value)}}let h="function"==typeof requestIdleCallback?requestIdleCallback:e=>setTimeout(e,0);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},47661,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={Fallback:function(){return u},createCacheMap:function(){return i},deleteFromCacheMap:function(){return h},getFromCacheMap:function(){return s},isValueExpired:function(){return c},setInCacheMap:function(){return f},setSizeInCacheMap:function(){return g}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(68323),u={},o={};function i(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function s(e,t,n,r,l){let i=function e(t,n,r,l,a,i){let s,f;if(null!==l)s=l.value,f=l.parent;else if(a&&i!==o)s=o,f=null;else return null===r.value?r:c(t,n,r.value)?(m(r),null):r;let d=r.map;if(null!==d){let r=d.get(s);if(void 0!==r){let l=e(t,n,r,f,a,s);if(null!==l)return l}let l=d.get(u);if(void 0!==l)return e(t,n,l,f,a,s)}return null}(e,t,n,r,l,0);return null===i||null===i.value?null:((0,a.lruPut)(i),i.value)}function c(e,t,n){return n.staleAt<=e||n.version{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={appendLayoutVaryPath:function(){return c},clonePageVaryPathWithNewSearchParams:function(){return m},finalizeLayoutVaryPath:function(){return f},finalizeMetadataVaryPath:function(){return p},finalizePageVaryPath:function(){return d},getFulfilledRouteVaryPath:function(){return s},getRouteVaryPath:function(){return i},getSegmentVaryPathForRequest:function(){return h}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(24994),u=e.r(47661),o=e.r(69434);function i(e,t,n){return{value:e,parent:{value:t,parent:{value:n,parent:null}}}}function s(e,t,n,r){return{value:e,parent:{value:t,parent:{value:r?n:u.Fallback,parent:null}}}}function c(e,t){return{value:t,parent:e}}function f(e,t){return{value:e,parent:t}}function d(e,t,n){return{value:e,parent:{value:t,parent:n}}}function p(e,t,n){return{value:e+o.HEAD_REQUEST_KEY,parent:{value:t,parent:n}}}function h(e,t){let n=t.varyPath;if(t.isPage&&e!==a.FetchStrategy.Full&&e!==a.FetchStrategy.PPRRuntime){let e=n.parent.parent;return{value:n.value,parent:{value:u.Fallback,parent:e}}}return n}function m(e,t){let n=e.parent;return{value:e.value,parent:{value:t,parent:n.parent}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},63280,(e,t,n)=>{"use strict";function r(e,t){let n=new URL(e);return{pathname:n.pathname,search:n.search,nextUrl:t}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createCacheKey",{enumerable:!0,get:function(){return r}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},40285,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={cancelPrefetchTask:function(){return w},isPrefetchTaskDirty:function(){return _},pingPrefetchTask:function(){return O},reschedulePrefetchTask:function(){return E},schedulePrefetchTask:function(){return S},startRevalidationCooldown:function(){return b}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(18563),u=e.r(22039),o=e.r(91666),i=e.r(91900),s=e.r(63280),c=e.r(24994),f=e.r(91395),d="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),p=[],h=0,m=0,g=!1,y=null,v=null;function b(){null!==v&&clearTimeout(v),v=setTimeout(()=>{v=null,k()},300)}function S(e,t,n,r,l){let a={key:e,treeAtTimeOfPrefetch:t,cacheVersion:(0,o.getCurrentCacheVersion)(),priority:r,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:n,sortId:m++,isCanceled:!1,onInvalidate:l,_heapIndex:-1};return P(a),H(p,a),k(),a}function w(e){e.isCanceled=!0,function(e,t){let n=t._heapIndex;if(-1!==n&&(t._heapIndex=-1,0!==e.length)){let r=e.pop();r!==t&&(e[n]=r,r._heapIndex=n,W(e,r,n))}}(p,e)}function E(e,t,n,r){e.isCanceled=!1,e.phase=1,e.sortId=m++,e.priority=e===y?c.PrefetchPriority.Intent:r,e.treeAtTimeOfPrefetch=t,e.fetchStrategy=n,P(e),-1!==e._heapIndex?q(p,e):H(p,e),k()}function _(e,t,n){let r=(0,o.getCurrentCacheVersion)();return e.cacheVersion!==r||e.treeAtTimeOfPrefetch!==n||e.key.nextUrl!==t}function P(e){e.priority===c.PrefetchPriority.Intent&&e!==y&&(null!==y&&y.priority!==c.PrefetchPriority.Background&&(y.priority=c.PrefetchPriority.Default,q(p,y)),y=e)}function k(){g||(g=!0,d(C))}function R(e){return null===v&&(e.priority===c.PrefetchPriority.Intent?h<12:h<4)}function T(e){return h++,e.then(e=>null===e?(x(),null):(e.closed.then(x),e.value))}function x(){h--,k()}function O(e){e.isCanceled||-1!==e._heapIndex||(H(p,e),k())}function C(){g=!1;let e=Date.now(),t=B(p);for(;null!==t&&R(t);){t.cacheVersion=(0,o.getCurrentCacheVersion)();let n=function(e,t){let n=t.key,r=(0,o.readOrCreateRouteCacheEntry)(e,t,n),l=function(e,t,n){switch(n.status){case o.EntryStatus.Empty:T((0,o.fetchRouteOnCacheMiss)(n,t,t.key)),n.staleAt=e+6e4,n.status=o.EntryStatus.Pending;case o.EntryStatus.Pending:{let e=n.blockedTasks;return null===e?n.blockedTasks=new Set([t]):e.add(t),1}case o.EntryStatus.Rejected:break;case o.EntryStatus.Fulfilled:{if(0!==t.phase)return 2;if(!R(t))return 0;let i=n.tree,s=t.fetchStrategy===c.FetchStrategy.PPR?n.isPPREnabled?c.FetchStrategy.PPR:c.FetchStrategy.LoadingBoundary:t.fetchStrategy;switch(s){case c.FetchStrategy.PPR:{var r,l,u;if(z(r=e,l=t,u=n,(0,o.readOrCreateSegmentCacheEntry)(r,c.FetchStrategy.PPR,u,u.metadata),l.key,u.metadata),0===function e(t,n,r,l,a){let u=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,a);z(t,n,r,u,n.key,a);let i=l[1],s=a.slots;if(null!==s)for(let l in s){if(!R(n))return 0;let a=s[l],u=a.segment,c=i[l],f=c?.[0];if(0===(void 0!==f&&D(r,u,f)?e(t,n,r,c,a):function e(t,n,r,l){if(l.hasRuntimePrefetch)return null===n.spawnedRuntimePrefetches?n.spawnedRuntimePrefetches=new Set([l.requestKey]):n.spawnedRuntimePrefetches.add(l.requestKey),2;let a=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);if(z(t,n,r,a,n.key,l),null!==l.slots){if(!R(n))return 0;for(let a in l.slots)if(0===e(t,n,r,l.slots[a]))return 0}return 2}(t,n,r,a)))return 0}return 2}(e,t,n,t.treeAtTimeOfPrefetch,i))return 0;let a=t.spawnedRuntimePrefetches;if(null!==a){let r=new Map;M(e,t,n,r,c.FetchStrategy.PPRRuntime);let l=function e(t,n,r,l,a,u){if(a.has(l.requestKey))return L(t,n,r,l,!1,u,c.FetchStrategy.PPRRuntime);let o={},i=l.slots;if(null!==i)for(let l in i){let s=i[l];o[l]=e(t,n,r,s,a,u)}return[l.segment,o,null,null]}(e,t,n,i,a,r);r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,c.FetchStrategy.PPRRuntime,l,r))}return 2}case c.FetchStrategy.Full:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.LoadingBoundary:{let r=new Map;M(e,t,n,r,s);let l=function e(t,n,r,l,u,i,s){let f=l[1],d=u.slots,p={};if(null!==d)for(let l in d){let u=d[l],h=u.segment,m=f[l],g=m?.[0];if(void 0!==g&&D(r,h,g)){let a=e(t,n,r,m,u,i,s);p[l]=a}else switch(s){case c.FetchStrategy.LoadingBoundary:{let e=u.hasLoadingBoundary!==a.HasLoadingBoundary.SubtreeHasNoLoadingBoundary?function e(t,n,r,l,u,i){let s=null===u?"inside-shared-layout":null,f=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);switch(f.status){case o.EntryStatus.Empty:i.set(l.requestKey,(0,o.upgradeToPendingSegment)(f,c.FetchStrategy.LoadingBoundary)),"refetch"!==u&&(s=u="refetch");break;case o.EntryStatus.Fulfilled:if(l.hasLoadingBoundary===a.HasLoadingBoundary.SegmentHasLoadingBoundary)return(0,o.convertRouteTreeToFlightRouterState)(l);case o.EntryStatus.Pending:case o.EntryStatus.Rejected:}let d={};if(null!==l.slots)for(let a in l.slots){let o=l.slots[a];d[a]=e(t,n,r,o,u,i)}return[l.segment,d,null,s,l.isRootLayout]}(t,n,r,u,null,i):(0,o.convertRouteTreeToFlightRouterState)(u);p[l]=e;break}case c.FetchStrategy.PPRRuntime:{let e=L(t,n,r,u,!1,i,s);p[l]=e;break}case c.FetchStrategy.Full:{let e=L(t,n,r,u,!1,i,s);p[l]=e}}}return[u.segment,p,null,null,u.isRootLayout]}(e,t,n,t.treeAtTimeOfPrefetch,i,r,s);return r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,s,l,r)),2}}}}return 2}(e,t,r);if(0!==l&&""!==n.search){let r=new URL(n.pathname,location.origin),l=(0,s.createCacheKey)(r.href,n.nextUrl),a=(0,o.readOrCreateRouteCacheEntry)(e,t,l);switch(a.status){case o.EntryStatus.Empty:N(t)&&(a.status=o.EntryStatus.Pending,T((0,o.fetchRouteOnCacheMiss)(a,t,l)));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}return l}(e,t),r=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,n){case 0:return;case 1:V(p),t=B(p);continue;case 2:1===t.phase?(t.phase=0,q(p,t)):r?(t.priority=c.PrefetchPriority.Background,q(p,t)):V(p),t=B(p);continue}}}function N(e){return e.priority===c.PrefetchPriority.Background||(e.hasBackgroundWork=!0,!1)}function M(e,t,n,r,l){L(e,t,n,n.metadata,!1,r,l===c.FetchStrategy.LoadingBoundary?c.FetchStrategy.Full:l)}function L(e,t,n,r,l,a,u){let i=(0,o.readOrCreateSegmentCacheEntry)(e,u,n,r),s=null;switch(i.status){case o.EntryStatus.Empty:s=(0,o.upgradeToPendingSegment)(i,u);break;case o.EntryStatus.Fulfilled:i.isPartial&&(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u));break;case o.EntryStatus.Pending:case o.EntryStatus.Rejected:(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u))}let c={};if(null!==r.slots)for(let o in r.slots){let i=r.slots[o];c[o]=L(e,t,n,i,l||null!==s,a,u)}null!==s&&a.set(r.requestKey,s);let f=l||null===s?null:"refetch";return[r.segment,c,null,f,r.isRootLayout]}function z(e,t,n,r,l,a){switch(r.status){case o.EntryStatus.Empty:T((0,o.fetchSegmentOnCacheMiss)(n,(0,o.upgradeToPendingSegment)(r,c.FetchStrategy.PPR),l,a));break;case o.EntryStatus.Pending:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:N(t)&&j(e,n,l,a);break;default:r.fetchStrategy}break;case o.EntryStatus.Rejected:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:j(e,n,l,a);break;default:r.fetchStrategy}case o.EntryStatus.Fulfilled:}}function j(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,c.FetchStrategy.PPR,t,r);switch(l.status){case o.EntryStatus.Empty:I(T((0,o.fetchSegmentOnCacheMiss)(t,(0,o.upgradeToPendingSegment)(l,c.FetchStrategy.PPR),n,r)),(0,i.getSegmentVaryPathForRequest)(c.FetchStrategy.PPR,r));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}function F(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,r,t,n);if(l.status===o.EntryStatus.Empty){let e=(0,o.upgradeToPendingSegment)(l,r);return I((0,o.waitForSegmentCacheEntry)(e),(0,i.getSegmentVaryPathForRequest)(r,n)),e}if((0,o.canNewFetchStrategyProvideMoreContent)(l.fetchStrategy,r)){let e=(0,o.overwriteRevalidatingSegmentCacheEntry)(r,t,n),l=(0,o.upgradeToPendingSegment)(e,r);return I((0,o.waitForSegmentCacheEntry)(l),(0,i.getSegmentVaryPathForRequest)(r,n)),l}switch(l.status){case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:default:return null}}let A=()=>{};function I(e,t){e.then(e=>{null!==e&&(0,o.upsertSegmentEntry)(Date.now(),t,e)},A)}function D(e,t,n){return n===f.PAGE_SEGMENT_KEY?t===(0,f.addSearchParamsIfPageSegment)(f.PAGE_SEGMENT_KEY,Object.fromEntries(new URLSearchParams(e.renderedSearch))):(0,u.matchSegment)(n,t)}function U(e,t){let n=t.priority-e.priority;if(0!==n)return n;let r=t.phase-e.phase;return 0!==r?r:t.sortId-e.sortId}function H(e,t){let n=e.length;e.push(t),t._heapIndex=n,$(e,t,n)}function B(e){return 0===e.length?null:e[0]}function V(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let n=e.pop();return n!==t&&(e[0]=n,n._heapIndex=0,W(e,n,0)),t}function q(e,t){let n=t._heapIndex;-1!==n&&(0===n?W(e,t,0):U(e[n-1>>>1],t)>0?$(e,t,n):W(e,t,n))}function $(e,t,n){let r=n;for(;r>0;){let n=r-1>>>1,l=e[n];if(!(U(l,t)>0))return;e[n]=t,t._heapIndex=n,e[r]=l,l._heapIndex=r,r=n}}function W(e,t,n){let r=n,l=e.length,a=l>>>1;for(;rU(a,t))uU(o,a)?(e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u):(e[r]=a,a._heapIndex=r,e[n]=t,t._heapIndex=n,r=n);else{if(!(uU(o,t)))return;e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},28732,(e,t,n)=>{"use strict";function r(e){let t=e.indexOf("#"),n=e.indexOf("?"),r=n>-1&&(t<0||n-1?{pathname:e.substring(0,r?n:t),query:r?e.substring(n,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"parsePath",{enumerable:!0,get:function(){return r}})},26935,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(28732);function l(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:n,query:l,hash:a}=(0,r.parsePath)(e);return`${t}${n}${l}${a}`}},20206,(e,t,n)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},67268,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return a}});let r=e.r(20206),l=e.r(28732),a=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:n,hash:a}=(0,l.parsePath)(e);return/\.[^/]+\/?$/.test(t)?`${(0,r.removeTrailingSlash)(t)}${n}${a}`:t.endsWith("/")?`${t}${n}${a}`:`${t}/${n}${a}`};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},39940,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addBasePath",{enumerable:!0,get:function(){return a}});let r=e.r(26935),l=e.r(67268);function a(e,t){return(0,l.normalizePathTrailingSlash)((0,r.addPathPrefix)(e,""))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},93259,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createPrefetchURL:function(){return i},isExternalURL:function(){return o}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(62112),u=e.r(39940);function o(e){return e.origin!==window.location.origin}function i(e){let t;if((0,a.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,u.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return o(t)?null:t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79111,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return c},mountFormInstance:function(){return S},mountLinkInstance:function(){return b},onLinkVisibilityChanged:function(){return E},onNavigationIntent:function(){return _},pingVisibleLinks:function(){return k},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return p},unmountPrefetchableInstance:function(){return w}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(24994),u=e.r(63280),o=e.r(40285),i=e.r(30668),s=null,c={pending:!0},f={pending:!1};function d(e){(0,i.startTransition)(()=>{s?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(c),s=e})}function p(e){s===e&&(s=null)}let h="function"==typeof WeakMap?new WeakMap:new Map,m=new Set,g="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;E(t.target,e)}},{rootMargin:"200px"}):null;function y(e,t){void 0!==h.get(e)&&w(e),h.set(e,t),null!==g&&g.observe(e)}function v(t){if("undefined"==typeof window)return null;{let{createPrefetchURL:n}=e.r(93259);try{return n(t)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${t}' because it cannot be converted to a URL.`),null}}}function b(e,t,n,r,l,a){if(l){let l=v(t);if(null!==l){let t={router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:a};return y(e,t),t}}return{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:a}}function S(e,t,n,r){let l=v(t);null===l||y(e,{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:null})}function w(e){let t=h.get(e);if(void 0!==t){h.delete(e),m.delete(t);let n=t.prefetchTask;null!==n&&(0,o.cancelPrefetchTask)(n)}null!==g&&g.unobserve(e)}function E(e,t){let n=h.get(e);void 0!==n&&(n.isVisible=t,t?m.add(n):m.delete(n),P(n,a.PrefetchPriority.Default))}function _(e,t){let n=h.get(e);void 0!==n&&void 0!==n&&P(n,a.PrefetchPriority.Intent)}function P(t,n){if("undefined"!=typeof window){let r=t.prefetchTask;if(!t.isVisible){null!==r&&(0,o.cancelPrefetchTask)(r);return}let{getCurrentAppRouterState:l}=e.r(19998),a=l();if(null!==a){let e=a.tree;if(null===r){let r=a.nextUrl,l=(0,u.createCacheKey)(t.prefetchHref,r);t.prefetchTask=(0,o.schedulePrefetchTask)(l,e,t.fetchStrategy,n,null)}else(0,o.reschedulePrefetchTask)(r,e,t.fetchStrategy,n)}}}function k(e,t){for(let n of m){let r=n.prefetchTask;if(null!==r&&!(0,o.isPrefetchTaskDirty)(r,e,t))continue;null!==r&&(0,o.cancelPrefetchTask)(r);let l=(0,u.createCacheKey)(n.prefetchHref,e);n.prefetchTask=(0,o.schedulePrefetchTask)(l,t,n.fetchStrategy,a.PrefetchPriority.Default,null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},76534,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return u},doesExportedHtmlMatchBuildId:function(){return s},insertBuildIdComment:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a="",u="bytes=0-63";function o(e){return e.slice(0,24).replace(/-/g,"_")}function i(e,t){return t.includes("-->")||!e.startsWith(a)?e:e.replace(a,a+"")}function s(e,t){return e.startsWith(a+"")}},91666,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l={EntryStatus:function(){return k},canNewFetchStrategyProvideMoreContent:function(){return el},convertRouteTreeToFlightRouterState:function(){return function e(t){let n={};if(null!==t.slots)for(let r in t.slots)n[r]=e(t.slots[r]);return[t.segment,n,null,null,t.isRootLayout]}},createDetachedSegmentCacheEntry:function(){return q},fetchRouteOnCacheMiss:function(){return X},fetchSegmentOnCacheMiss:function(){return Y},fetchSegmentPrefetchesUsingDynamicRequest:function(){return J},getCurrentCacheVersion:function(){return N},getStaleTimeMs:function(){return P},overwriteRevalidatingSegmentCacheEntry:function(){return B},pingInvalidationListeners:function(){return L},readOrCreateRevalidatingSegmentEntry:function(){return H},readOrCreateRouteCacheEntry:function(){return A},readOrCreateSegmentCacheEntry:function(){return U},readRouteCacheEntry:function(){return z},readSegmentCacheEntry:function(){return j},requestOptimisticRouteCacheEntry:function(){return I},revalidateEntireCache:function(){return M},upgradeToPendingSegment:function(){return $},upsertSegmentEntry:function(){return V},waitForSegmentCacheEntry:function(){return F}};for(var a in l)Object.defineProperty(n,a,{enumerable:!0,get:l[a]});let u=e.r(18563),o=e.r(2089),i=e.r(20320),s=e.r(40285),c=e.r(91900),f=e.r(70410),d=e.r(80118),p=e.r(63280),h=e.r(88617),m=e.r(47661),g=e.r(69434),y=e.r(94955),v=e.r(28806),b=e.r(79111),S=e.r(91395),w=e.r(76534),E=e.r(24994),_=e.r(59162);function P(e){return 1e3*Math.max(e,30)}var k=((r={})[r.Empty=0]="Empty",r[r.Pending=1]="Pending",r[r.Fulfilled=2]="Fulfilled",r[r.Rejected=3]="Rejected",r);let R=["",{},null,"metadata-only"],T=(0,m.createCacheMap)(),x=(0,m.createCacheMap)(),O=null,C=0;function N(){return C}function M(e,t){C++,(0,s.startRevalidationCooldown)(),(0,b.pingVisibleLinks)(e,t),L(e,t)}function L(e,t){if(null!==O){let n=O;for(let r of(O=null,n))(0,s.isPrefetchTaskDirty)(r,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(r)}}function z(e,t){let n=(0,c.getRouteVaryPath)(t.pathname,t.search,t.nextUrl);return(0,m.getFromCacheMap)(e,C,T,n,!1)}function j(e,t){return(0,m.getFromCacheMap)(e,C,x,t,!1)}function F(e){let t=e.promise;return null===t&&(t=e.promise=(0,_.createPromiseWithResolvers)()),t.promise}function A(e,t,n){null!==t.onInvalidate&&(null===O?O=new Set([t]):O.add(t));let r=z(e,n);if(null!==r)return r;let l={canonicalUrl:null,status:0,blockedTasks:null,tree:null,metadata:null,couldBeIntercepted:!0,isPPREnabled:!1,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:C},a=(0,c.getRouteVaryPath)(n.pathname,n.search,n.nextUrl);return(0,m.setInCacheMap)(T,a,l,!1),l}function I(e,t,n){let r=t.search;if(""===r)return null;let l=new URL(t);l.search="";let a=z(e,(0,p.createCacheKey)(l.href,n));if(null===a||2!==a.status)return null;let u=new URL(a.canonicalUrl,t.origin),o=""!==u.search?u.search:r,i=""!==a.renderedSearch?a.renderedSearch:r,s=new URL(a.canonicalUrl,location.origin);return s.search=o,{canonicalUrl:(0,d.createHrefFromUrl)(s),status:2,blockedTasks:null,tree:D(a.tree,i),metadata:D(a.metadata,i),couldBeIntercepted:a.couldBeIntercepted,isPPREnabled:a.isPPREnabled,renderedSearch:i,ref:null,size:0,staleAt:a.staleAt,version:a.version}}function D(e,t){let n=null,r=e.slots;if(null!==r)for(let e in n={},r){let l=r[e];n[e]=D(l,t)}return e.isPage?{requestKey:e.requestKey,segment:e.segment,varyPath:(0,c.clonePageVaryPathWithNewSearchParams)(e.varyPath,t),isPage:!0,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}:{requestKey:e.requestKey,segment:e.segment,varyPath:e.varyPath,isPage:!1,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}}function U(e,t,n,r){let l=j(e,r.varyPath);if(null!==l)return l;let a=(0,c.getSegmentVaryPathForRequest)(t,r),u=q(n.staleAt);return(0,m.setInCacheMap)(x,a,u,!1),u}function H(e,t,n,r){var l;let a=(l=r.varyPath,(0,m.getFromCacheMap)(e,C,x,l,!0));if(null!==a)return a;let u=(0,c.getSegmentVaryPathForRequest)(t,r),o=q(n.staleAt);return(0,m.setInCacheMap)(x,u,o,!0),o}function B(e,t,n){let r=(0,c.getSegmentVaryPathForRequest)(e,n),l=q(t.staleAt);return(0,m.setInCacheMap)(x,r,l,!0),l}function V(e,t,n){if((0,m.isValueExpired)(e,C,n))return null;let r=j(e,t);if(null!==r){var l;if(n.fetchStrategy!==r.fetchStrategy&&(l=r.fetchStrategy,!(l""!==e),r=g.ROOT_SEGMENT_REQUEST_KEY,function e(t,n,r,l,a,o,i,s){let f,d,p=null,m=t.slots;if(null!==m)for(let t in f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r),p={},m){let n,u,f,d=m[t],y=d.name,v=d.paramType,b=d.paramKey;if(null!==v){let e=(0,h.parseDynamicParamFromURLPart)(v,a,o),t=null!==b?b:(0,h.getCacheKeyForDynamicParam)(e,"");f=(0,c.appendLayoutVaryPath)(r,t),u=[y,t,v],n=!0}else f=r,u=y,n=(0,h.doesStaticSegmentAppearInURL)(y);let S=n?o+1:o,w=(0,g.createSegmentRequestKeyPart)(u),E=(0,g.appendSegmentRequestKeyPart)(l,t,w);p[t]=e(d,u,f,E,a,S,i,s)}else l.endsWith(S.PAGE_SEGMENT_KEY)?(f=!0,d=(0,c.finalizePageVaryPath)(l,i,r),null===s.metadataVaryPath&&(s.metadataVaryPath=(0,c.finalizeMetadataVaryPath)(l,i,r))):(f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r));return{requestKey:l,segment:n,varyPath:d,isPage:f,slots:p,isRootLayout:t.isRootLayout,hasLoadingBoundary:u.HasLoadingBoundary.SegmentHasLoadingBoundary,hasRuntimePrefetch:t.hasRuntimePrefetch}}(o.tree,r,null,g.ROOT_SEGMENT_REQUEST_KEY,n,0,d,v)),E=v.metadataVaryPath;if(null===E)return Q(e,Date.now()+1e4),null;let _=P(o.staleTime);y=Date.now()+_,l={requestKey:g.HEAD_REQUEST_KEY,segment:g.HEAD_REQUEST_KEY,varyPath:E,isPage:!0,slots:null,isRootLayout:!1,hasLoadingBoundary:u.HasLoadingBoundary.SubtreeHasNoLoadingBoundary,hasRuntimePrefetch:!1},e.status=2,e.tree=w,e.metadata=l,e.staleAt=y,e.couldBeIntercepted=k,e.canonicalUrl=b,e.renderedSearch=d,e.isPPREnabled=x,W(e)}if(!k){let t=(0,c.getFulfilledRouteVaryPath)(r,l,a,k);(0,m.setInCacheMap)(T,t,e,!1)}return{value:null,closed:R.promise}}catch(t){return Q(e,Date.now()+1e4),null}}async function Y(e,t,n,r){let l=new URL(e.canonicalUrl,location.origin),a=n.nextUrl,u=r.requestKey,s=u===g.ROOT_SEGMENT_REQUEST_KEY?"/_index":u,c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_PREFETCH_HEADER]:"1",[o.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:s};null!==a&&(c[o.NEXT_URL]=a);let d=er(l,s);try{let n=await et(d,c);if(!n||!n.ok||204===n.status||"2"!==n.headers.get(o.NEXT_DID_POSTPONE_HEADER)&&0||!n.body)return G(t,Date.now()+1e4),null;let r=(0,_.createPromiseWithResolvers)(),l=en(n.body,r.resolve,function(e){(0,m.setSizeInCacheMap)(t,e)}),a=await (0,i.createFromNextReadableStream)(l,c);if(a.buildId!==(0,f.getAppBuildId)())return G(t,Date.now()+1e4),null;return{value:K(t,a.rsc,a.loading,e.staleAt,a.isPartial),closed:r.promise}}catch(e){return G(t,Date.now()+1e4),null}}async function J(e,t,n,r,l){let a=e.key,u=new URL(t.canonicalUrl,location.origin),s=a.nextUrl;1===l.size&&l.has(t.metadata.requestKey)&&(r=R);let c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_STATE_TREE_HEADER]:(0,y.prepareFlightRouterStateForRequest)(r)};switch(null!==s&&(c[o.NEXT_URL]=s),n){case E.FetchStrategy.Full:break;case E.FetchStrategy.PPRRuntime:c[o.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case E.FetchStrategy.LoadingBoundary:c[o.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let r=await et(u,c);if(!r||!r.ok||!r.body||(0,h.getRenderedSearch)(r)!==t.renderedSearch)return Z(l,Date.now()+1e4),null;let a=(0,_.createPromiseWithResolvers)(),s=null,d=en(r.body,a.resolve,function(e){if(null===s)return;let t=e/s.length;for(let e of s)(0,m.setSizeInCacheMap)(e,t)}),p=await (0,i.createFromNextReadableStream)(d,c),g=n===E.FetchStrategy.PPRRuntime&&p.rp?.[0]===!0;return s=function(e,t,n,r,l,a,u,i){if(l.b!==(0,f.getAppBuildId)())return null!==i&&Z(i,e+1e4),null;let s=(0,y.normalizeFlightData)(l.f);if("string"==typeof s)return null;let c="number"==typeof l.rp?.[1]?l.rp[1]:parseInt(r.headers.get(o.NEXT_ROUTER_STALE_TIME_HEADER)??"",10),d=e+(isNaN(c)?v.STATIC_STALETIME_MS:P(c));for(let r of s){let l=r.seedData;if(null!==l){let o=r.segmentPath,s=u.tree;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"navigate",{enumerable:!0,get:function(){return c}});let r=e.r(20320),l=e.r(1989),a=e.r(80118),u=e.r(91666),o=e.r(63280),i=e.r(91395),s=e.r(24994);function c(e,t,n,r,l,a,i){let c=Date.now(),d=e.href,g=d===window.location.href,y=(0,o.createCacheKey)(d,l),v=(0,u.readRouteCacheEntry)(c,y);if(null!==v&&v.status===u.EntryStatus.Fulfilled){let u=p(c,v,v.tree),o=u.flightRouterState,i=u.seedData,s=h(c,v),d=s.rsc,m=s.isPartial,y=v.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,o,i,d,m,y,v.renderedSearch,a,e.hash)}if(null===v||v.status!==u.EntryStatus.Rejected){let o=(0,u.requestOptimisticRouteCacheEntry)(c,e,l);if(null!==o){let u=p(c,o,o.tree),i=u.flightRouterState,s=u.seedData,d=h(c,o),m=d.rsc,y=d.isPartial,v=o.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,i,s,m,y,v,o.renderedSearch,a,e.hash)}}let b=i.collectedDebugInfo??[];return void 0===i.collectedDebugInfo&&(b=i.collectedDebugInfo=[]),{tag:s.NavigationResultTag.Async,data:m(c,e,t,l,g,n,r,a,e.hash,b)}}function f(e,t,n,a,u,o,i,c,f,p,h,m,g,y,v){let b=[],S=(0,l.startPPRNavigation)(e,n,o,i,c,f,p,h,u,b);if(null!==S){let e=S.dynamicRequestTree;if(null!==e){let n=(0,r.fetchServerResponse)(new URL(m,t.origin),{flightRouterState:e,nextUrl:a});(0,l.listenForDynamicRequest)(S,n)}return d(S,o,m,g,b,y,v)}return{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:m,shouldScroll:y}}}function d(e,t,n,r,l,a,u){let o=e.route;if(null===o)return{tag:s.NavigationResultTag.MPA,data:n};let i=e.node;return{tag:s.NavigationResultTag.Success,data:{flightRouterState:o,cacheNode:null!==i?i:t,canonicalUrl:n,renderedSearch:r,scrollableSegments:l,shouldScroll:a,hash:u}}}function p(e,t,n){let r={},l={},a=n.slots;if(null!==a)for(let n in a){let u=p(e,t,a[n]);r[n]=u.flightRouterState,l[n]=u.seedData}let o=null,s=null,c=!0,f=(0,u.readSegmentCacheEntry)(e,n.varyPath);if(null!==f)switch(f.status){case u.EntryStatus.Fulfilled:o=f.rsc,s=f.loading,c=f.isPartial;break;case u.EntryStatus.Pending:{let e=(0,u.waitForSegmentCacheEntry)(f);o=e.then(e=>null!==e?e.rsc:null),s=e.then(e=>null!==e?e.loading:null),c=!0}case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{flightRouterState:[(0,i.addSearchParamsIfPageSegment)(n.segment,Object.fromEntries(new URLSearchParams(t.renderedSearch))),r,null,null,n.isRootLayout],seedData:[o,l,s,c,!1]}}function h(e,t){let n=null,r=!0,l=(0,u.readSegmentCacheEntry)(e,t.metadata.varyPath);if(null!==l)switch(l.status){case u.EntryStatus.Fulfilled:n=l.rsc,r=l.isPartial;break;case u.EntryStatus.Pending:n=(0,u.waitForSegmentCacheEntry)(l).then(e=>null!==e?e.rsc:null),r=!0;case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{rsc:n,isPartial:r}}async function m(e,t,n,u,o,i,c,f,p,h){let m=(0,r.fetchServerResponse)(t,{flightRouterState:c,nextUrl:u}),g=await m;if("string"==typeof g)return{tag:s.NavigationResultTag.MPA,data:g};let{flightData:y,canonicalUrl:v,renderedSearch:b,debugInfo:S}=g;null!==S&&h.push(...S);let w=function(e,t){let n=e;for(let{segmentPath:r,tree:l}of t){let t=n!==e;n=function e(t,n,r,l,a){if(a===r.length)return n;let u=r[a],o=t[1],i={};for(let t in o)if(t===u){let u=o[t];i[t]=e(u,n,r,l,a+2)}else i[t]=o[t];if(l)return t[1]=i,t;let s=[t[0],i];return 2 in t&&(s[2]=t[2]),3 in t&&(s[3]=t[3]),4 in t&&(s[4]=t[4]),s}(n,l,r,t,0)}return n}(c,y),E=[],_=(0,l.startPPRNavigation)(e,n,i,c,w,null,null,!0,o,E);return null!==_?(null!==_.dynamicRequestTree&&(0,l.listenForDynamicRequest)(_,m),d(_,i,(0,a.createHrefFromUrl)(v),b,E,f,p)):{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:(0,a.createHrefFromUrl)(v),shouldScroll:f}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},28806,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DYNAMIC_STALETIME_MS:function(){return c},STATIC_STALETIME_MS:function(){return f},generateSegmentsFromPatch:function(){return function e(t){let n=[],[r,l]=t;if(0===Object.keys(l).length)return[[r]];for(let[t,a]of Object.entries(l))for(let l of e(a))""===r?n.push([t,...l]):n.push([r,t,...l]);return n}},handleExternalUrl:function(){return d},navigateReducer:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(80118),u=e.r(40494),o=e.r(94345),i=e.r(24994),s=e.r(91666),c=1e3*Number("0"),f=(0,s.getStaleTimeMs)(Number("300"));function d(e,t,n,r){return t.mpaNavigation=!0,t.canonicalUrl=n,t.pendingPush=r,t.scrollableSegments=void 0,(0,u.handleMutable)(e,t)}function p(e,t){let{url:n,isExternalUrl:r,navigateType:l,shouldScroll:s}=t,c={},f=(0,a.createHrefFromUrl)(n),p="push"===l;if(c.preserveCustomHistoryState=!1,c.pendingPush=p,r)return d(e,c,n.toString(),p);if(document.getElementById("__next-page-redirect"))return d(e,c,f,p);let h=new URL(e.canonicalUrl,location.origin),m=(0,o.navigate)(n,h,e.cache,e.tree,e.nextUrl,s,c);return function e(t,n,r,l,a){switch(a.tag){case i.NavigationResultTag.MPA:return d(n,r,a.data,l);case i.NavigationResultTag.NoOp:{r.canonicalUrl=a.data.canonicalUrl;let e=new URL(n.canonicalUrl,t);return t.pathname===e.pathname&&t.search===e.search&&t.hash!==e.hash&&(r.onlyHashChange=!0,r.shouldScroll=a.data.shouldScroll,r.hashFragment=t.hash,r.scrollableSegments=[]),(0,u.handleMutable)(n,r)}case i.NavigationResultTag.Success:return r.cache=a.data.cacheNode,r.patchedTree=a.data.flightRouterState,r.renderedSearch=a.data.renderedSearch,r.canonicalUrl=a.data.canonicalUrl,r.scrollableSegments=a.data.scrollableSegments,r.shouldScroll=a.data.shouldScroll,r.hashFragment=a.data.hash,(0,u.handleMutable)(n,r);case i.NavigationResultTag.Async:return a.data.then(a=>e(t,n,r,l,a),()=>n);default:return n}}(n,e,c,p,m)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},61447,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,n,l,a,u,o){if(0===Object.keys(a[1]).length){n.head=o;return}for(let i in a[1]){let s,c=a[1][i],f=c[0],d=(0,r.createRouterCacheKey)(f),p=null!==u&&void 0!==u[1][i]?u[1][i]:null;if(l){let r=l.parallelRoutes.get(i);if(r){let l,a=new Map(r),u=a.get(d);l=null!==p?{lazyData:null,rsc:p[0],prefetchRsc:null,head:null,prefetchHead:null,loading:p[2],parallelRoutes:new Map(u?.parallelRoutes),navigatedAt:t}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(u?.parallelRoutes),loading:null,navigatedAt:t},a.set(d,l),e(t,l,u,c,p||null,o),n.parallelRoutes.set(i,a);continue}}if(null!==p){let e=p[0],n=p[2];s={lazyData:null,rsc:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:n,navigatedAt:t}}else s={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:t};let h=n.parallelRoutes.get(i);h?h.set(d,s):n.parallelRoutes.set(i,new Map([[d,s]])),e(t,s,void 0,c,p,o)}}}});let r=e.r(43317);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},59941,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return l}});let r=e.r(43317);function l(e,t,n){for(let l in n[1]){let a=n[1][l][0],u=(0,r.createRouterCacheKey)(a),o=t.parallelRoutes.get(l);if(o){let t=new Map(o);t.delete(u),e.parallelRoutes.set(l,t)}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},96397,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={fillCacheWithNewSubTreeData:function(){return c},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return f}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(59941),u=e.r(61447),o=e.r(43317),i=e.r(91395);function s(e,t,n,r,l){let{segmentPath:s,seedData:c,tree:f,head:d}=r,p=t,h=n;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyFlightData",{enumerable:!0,get:function(){return a}});let r=e.r(61447),l=e.r(96397);function a(e,t,n,a){let{tree:u,seedData:o,head:i,isRootRender:s}=a;if(null===o)return!1;if(s){let l=o[0];n.loading=o[2],n.rsc=l,n.prefetchRsc=null,(0,r.fillLazyItemsTillLeafWithHead)(e,n,t,u,o,i)}else n.rsc=t.rsc,n.prefetchRsc=t.prefetchRsc,n.parallelRoutes=new Map(t.parallelRoutes),n.loading=t.loading,(0,l.fillCacheWithNewSubTreeData)(e,n,t,a);return!0}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},51441,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={addRefreshMarkerToActiveParallelSegments:function(){return function e(t,n){let[r,l,,a]=t;for(let u in r.includes(o.PAGE_SEGMENT_KEY)&&"refresh"!==a&&(t[2]=n,t[3]="refresh"),l)e(l[u],n)}},refreshInactiveParallelSegments:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(1465),u=e.r(20320),o=e.r(91395);async function i(e){let t=new Set;await s({...e,rootTree:e.updatedTree,fetchedSegments:t})}async function s({navigatedAt:e,state:t,updatedTree:n,updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i=n,canonicalUrl:c}){let[,f,d,p]=n,h=[];if(d&&d!==c&&"refresh"===p&&!o.has(d)){o.add(d);let n=(0,u.fetchServerResponse)(new URL(d,location.origin),{flightRouterState:[i[0],i[1],i[2],"refetch"],nextUrl:l?t.nextUrl:null}).then(t=>{if("string"!=typeof t){let{flightData:n}=t;for(let t of n)(0,a.applyFlightData)(e,r,r,t)}});h.push(n)}for(let n in f){let a=s({navigatedAt:e,state:t,updatedTree:f[n],updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i,canonicalUrl:c});h.push(a)}await Promise.all(h)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},84938,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,n,r,i){let s,[c,f,d,p,h]=n;if(1===t.length){let e=o(n,r);return(0,u.addRefreshMarkerToActiveParallelSegments)(e,i),e}let[m,g]=t;if(!(0,a.matchSegment)(m,c))return null;if(2===t.length)s=o(f[g],r);else if(null===(s=e((0,l.getNextFlightSegmentPath)(t),f[g],r,i)))return null;let y=[t[0],{...f,[g]:s},d,p];return h&&(y[4]=!0),(0,u.addRefreshMarkerToActiveParallelSegments)(y,i),y}}});let r=e.r(91395),l=e.r(94955),a=e.r(22039),u=e.r(51441);function o(e,t){let[n,l]=e,[u,i]=t;if(u===r.DEFAULT_SEGMENT_KEY&&n!==r.DEFAULT_SEGMENT_KEY)return e;if((0,a.matchSegment)(n,u)){let t={};for(let e in l)void 0!==i[e]?t[e]=o(l[e],i[e]):t[e]=l[e];for(let e in i)t[e]||(t[e]=i[e]);let r=[n,t];return e[2]&&(r[2]=e[2]),e[3]&&(r[3]=e[3]),e[4]&&(r[4]=e[4]),r}return t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},42887,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"AppRouterAnnouncer",{enumerable:!0,get:function(){return u}});let r=e.r(30668),l=e.r(69941),a="next-route-announcer";function u({tree:e}){let[t,n]=(0,r.useState)(null);(0,r.useEffect)(()=>(n(function(){let e=document.getElementsByName(a)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(a);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(a)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[u,o]=(0,r.useState)(""),i=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&o(e),i.current=e},[e]),t?(0,l.createPortal)(u,t):null}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},43941,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findHeadInCache",{enumerable:!0,get:function(){return a}});let r=e.r(91395),l=e.r(43317);function a(e,t){return function e(t,n,a,u){if(0===Object.keys(n).length)return[t,a,u];let o=Object.keys(n).filter(e=>"children"!==e);for(let u of("children"in n&&o.unshift("children"),o)){let[o,i]=n[u];if(o===r.DEFAULT_SEGMENT_KEY)continue;let s=t.parallelRoutes.get(u);if(!s)continue;let c=(0,l.createRouterCacheKey)(o),f=(0,l.createRouterCacheKey)(o,!0),d=s.get(c);if(!d)continue;let p=e(d,i,a+"/"+c,a+"/"+f);if(p)return p}return null}(e,t,"","")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},36254,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"pathHasPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(28732);function l(e,t){if("string"!=typeof e)return!1;let{pathname:n}=(0,r.parsePath)(e);return n===t||n.startsWith(t+"/")}},37023,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hasBasePath",{enumerable:!0,get:function(){return l}});let r=e.r(36254);function l(e){return(0,r.pathHasPrefix)(e,"")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},44351,(e,t,n)=>{"use strict";function r(e){return e}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeBasePath",{enumerable:!0,get:function(){return r}}),e.r(37023),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},9984,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={GracefulDegradeBoundary:function(){return o},default:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(48277),u=e.r(30668);class o extends u.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,u.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,n])=>{e.setAttribute(t,n)})}render(){let{hasError:e}=this.state;return("undefined"==typeof window||this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(35856),l=e.r(48277);e.r(30668);let a=r._(e.r(9984)),u=e.r(71202),o=e.r(62112),i="undefined"!=typeof window&&(0,o.isBot)(window.navigator.userAgent);function s({children:e,errorComponent:t,errorStyles:n,errorScripts:r}){return i?(0,l.jsx)(a.default,{children:e}):(0,l.jsx)(u.ErrorBoundary,{errorComponent:t,errorStyles:n,errorScripts:r,children:e})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},87670,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createEmptyCacheNode:function(){return N},default:function(){return j}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(35856),u=e.r(61909),o=e.r(48277),i=u._(e.r(30668)),s=e.r(45243),c=e.r(98165),f=e.r(80118),d=e.r(69370),p=e.r(53128),h=e.r(42887),m=e.r(2188),g=e.r(43941),y=e.r(83648),v=e.r(44351),b=e.r(37023),S=e.r(5725),w=e.r(61524),E=e.r(19998),_=e.r(44216),P=e.r(84628),k=e.r(79111),R=a._(e.r(81133)),T=a._(e.r(75115)),x=e.r(64381),O={};function C({appRouterState:e}){return(0,i.useInsertionEffect)(()=>{let{tree:t,pushRef:n,canonicalUrl:r,renderedSearch:l}=e,a={...n.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:l}};n.pendingPush&&(0,f.createHrefFromUrl)(new URL(window.location.href))!==r?(n.pendingPush=!1,window.history.pushState(a,"",r)):window.history.replaceState(a,"",r)},[e]),(0,i.useEffect)(()=>{(0,k.pingVisibleLinks)(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function N(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1}}function M(e){null==e&&(e={});let t=window.history.state,n=t?.__NA;n&&(e.__NA=n);let r=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return r&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=r),e}function L({headCacheNode:e}){let t=null!==e?e.head:null,n=null!==e?e.prefetchHead:null,r=null!==n?n:t;return(0,i.useDeferredValue)(t,r)}function z({actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r}){let l,a=(0,p.useActionQueue)(e),{canonicalUrl:u}=a,{searchParams:f,pathname:w}=(0,i.useMemo)(()=>{let e=new URL(u,"undefined"==typeof window?"http://n":window.location.href);return{searchParams:e.searchParams,pathname:(0,b.hasBasePath)(e.pathname)?(0,v.removeBasePath)(e.pathname):e.pathname}},[u]);(0,i.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(O.pendingMpaPath=void 0,(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,i.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,P.isRedirectError)(t)){e.preventDefault();let n=(0,_.getURLFromRedirectError)(t);(0,_.getRedirectTypeFromError)(t)===P.RedirectType.push?E.publicAppRouterInstance.push(n,{}):E.publicAppRouterInstance.replace(n,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:k}=a;if(k.mpaNavigation){if(O.pendingMpaPath!==u){let e=window.location;k.pendingPush?e.assign(u):e.replace(u),O.pendingMpaPath=u}throw y.unresolvedThenable}(0,i.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),n=e=>{let t=window.location.href,n=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,i.startTransition)(()=>{(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(e??t,t),historyState:n})})};window.history.pushState=function(t,r,l){return t?.__NA||t?._N||(t=M(t),l&&n(l)),e(t,r,l)},window.history.replaceState=function(e,r,l){return e?.__NA||e?._N||(e=M(e),l&&n(l)),t(e,r,l)};let r=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,i.startTransition)(()=>{(0,E.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",r),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",r)}},[]);let{cache:T,tree:N,nextUrl:z,focusAndScrollRef:j,previousNextUrl:F}=a,A=(0,i.useMemo)(()=>(0,g.findHeadInCache)(T,N[1]),[T,N]),D=(0,i.useMemo)(()=>(0,S.getSelectedParams)(N),[N]),U=(0,i.useMemo)(()=>({parentTree:N,parentCacheNode:T,parentSegmentPath:null,parentParams:{},debugNameContext:"/",url:u,isActive:!0}),[N,T,u]),H=(0,i.useMemo)(()=>({tree:N,focusAndScrollRef:j,nextUrl:z,previousNextUrl:F}),[N,j,z,F]);if(null!==A){let[e,t,n]=A;l=(0,o.jsx)(L,{headCacheNode:e},"undefined"==typeof window?n:t)}else l=null;let B=(0,o.jsxs)(m.RedirectBoundary,{children:[l,(0,o.jsx)(x.RootLayoutBoundary,{children:T.rsc}),(0,o.jsx)(h.AppRouterAnnouncer,{tree:N})]});return B=(0,o.jsx)(R.default,{errorComponent:t[0],errorStyles:t[1],children:B}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C,{appRouterState:a}),(0,o.jsx)(I,{}),(0,o.jsx)(d.NavigationPromisesContext.Provider,{value:null,children:(0,o.jsx)(d.PathParamsContext.Provider,{value:D,children:(0,o.jsx)(d.PathnameContext.Provider,{value:w,children:(0,o.jsx)(d.SearchParamsContext.Provider,{value:f,children:(0,o.jsx)(s.GlobalLayoutRouterContext.Provider,{value:H,children:(0,o.jsx)(s.AppRouterContext.Provider,{value:E.publicAppRouterInstance,children:(0,o.jsx)(s.LayoutRouterContext.Provider,{value:U,children:B})})})})})})})]})}function j({actionQueue:e,globalErrorState:t,webSocket:n,staticIndicatorState:r}){(0,w.useNavFailureHandler)();let l=(0,o.jsx)(z,{actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r});return(0,o.jsx)(R.default,{errorComponent:T.default,children:l})}let F=new Set,A=new Set;function I(){let[,e]=i.default.useState(0),t=F.size;return(0,i.useEffect)(()=>{let n=()=>e(e=>e+1);return A.add(n),t!==F.size&&n(),()=>{A.delete(n)}},[t,e]),[...F].map((e,t)=>(0,o.jsx)("link",{rel:"stylesheet",href:`${e}`,precedence:"next"},t))}globalThis._N_E_STYLE_LOAD=function(e){let t=F.size;return F.add(e),F.size!==t&&A.forEach(e=>e()),Promise.resolve()},("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},76702,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverPatchReducer",{enumerable:!0,get:function(){return c}});let r=e.r(80118),l=e.r(84938),a=e.r(84697),u=e.r(28806),o=e.r(1465),i=e.r(40494),s=e.r(87670);function c(e,t){let{serverResponse:n,navigatedAt:c}=t,f={};if(f.preserveCustomHistoryState=!1,"string"==typeof n)return(0,u.handleExternalUrl)(e,f,n,e.pushRef.pendingPush);let{flightData:d,canonicalUrl:p,renderedSearch:h}=n,m=e.tree,g=e.cache;for(let t of d){let{segmentPath:n,tree:i}=t,d=(0,l.applyRouterStatePatchToTree)(["",...n],m,i,e.canonicalUrl);if(null===d)return e;if((0,a.isNavigatingToNewRootLayout)(m,d))return(0,u.handleExternalUrl)(e,f,e.canonicalUrl,e.pushRef.pendingPush);f.canonicalUrl=(0,r.createHrefFromUrl)(p);let y=(0,s.createEmptyCacheNode)();(0,o.applyFlightData)(c,g,y,t),f.patchedTree=d,f.renderedSearch=h,f.cache=y,g=y,m=d}return(0,i.handleMutable)(e,f)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},43746,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"restoreReducer",{enumerable:!0,get:function(){return a}});let r=e.r(80118),l=e.r(5725);function a(e,t){let n,a,{url:u,historyState:o}=t,i=(0,r.createHrefFromUrl)(u);o?(n=o.tree,a=o.renderedSearch):(n=e.tree,a=e.renderedSearch);let s=e.cache;return{canonicalUrl:i,renderedSearch:a,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:s,tree:n,nextUrl:(0,l.extractPathFromFlightRouterState)(n)??u.pathname,previousNextUrl:null,debugInfo:null}}e.r(1989),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},45733,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleSegmentMismatch",{enumerable:!0,get:function(){return l}});let r=e.r(28806);function l(e,t,n){return(0,r.handleExternalUrl)(e,{},e.canonicalUrl,!0)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},64324,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"refreshReducer",{enumerable:!0,get:function(){return m}});let r=e.r(20320),l=e.r(80118),a=e.r(84938),u=e.r(84697),o=e.r(28806),i=e.r(40494),s=e.r(61447),c=e.r(87670),f=e.r(45733),d=e.r(20017),p=e.r(51441),h=e.r(91666);function m(e,t){let{origin:n}=t,m={},g=e.canonicalUrl,y=e.tree;m.preserveCustomHistoryState=!1;let v=(0,c.createEmptyCacheNode)(),b=(0,d.hasInterceptionRouteInCurrentTree)(e.tree);v.lazyData=(0,r.fetchServerResponse)(new URL(g,n),{flightRouterState:[y[0],y[1],y[2],"refetch"],nextUrl:b?e.nextUrl:null});let S=Date.now();return v.lazyData.then(async n=>{if("string"==typeof n)return(0,o.handleExternalUrl)(e,m,n,e.pushRef.pendingPush);let{flightData:r,canonicalUrl:c,renderedSearch:d}=n;for(let n of(v.lazyData=null,r)){let{tree:r,seedData:i,head:w,isRootRender:E}=n;if(!E)return console.log("REFRESH FAILED"),e;let _=(0,a.applyRouterStatePatchToTree)([""],y,r,e.canonicalUrl);if(null===_)return(0,f.handleSegmentMismatch)(e,t,r);if((0,u.isNavigatingToNewRootLayout)(y,_))return(0,o.handleExternalUrl)(e,m,g,e.pushRef.pendingPush);if(m.canonicalUrl=(0,l.createHrefFromUrl)(c),null!==i){let t=i[0],n=i[2];v.rsc=t,v.prefetchRsc=null,v.loading=n,(0,s.fillLazyItemsTillLeafWithHead)(S,v,void 0,r,i,w),(0,h.revalidateEntireCache)(e.nextUrl,_)}await (0,p.refreshInactiveParallelSegments)({navigatedAt:S,state:e,updatedTree:_,updatedCache:v,includeNextUrl:b,canonicalUrl:m.canonicalUrl||e.canonicalUrl}),m.cache=v,m.patchedTree=_,m.renderedSearch=d,y=_}return(0,i.handleMutable)(e,m)},()=>e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1470,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hmrRefreshReducer",{enumerable:!0,get:function(){return r}}),e.r(20320),e.r(80118),e.r(84938),e.r(84697),e.r(28806),e.r(40494),e.r(1465),e.r(87670),e.r(45733),e.r(20017);let r=function(e,t){return e};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},98454,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"assignLocation",{enumerable:!0,get:function(){return l}});let r=e.r(39940);function l(e,t){if(e.startsWith(".")){let n=t.origin+t.pathname;return new URL((n.endsWith("/")?n:n+"/")+e)}return new URL((0,r.addBasePath)(e),t.href)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},17213,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={extractInfoFromServerReferenceId:function(){return a},omitUnusedArgs:function(){return u}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});function a(e){let t=parseInt(e.slice(0,2),16),n=t>>1&63,r=Array(6);for(let e=0;e<6;e++){let t=n>>5-e&1;r[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:r,hasRestArgs:1==(1&t)}}function u(e,t){let n=Array(e.length);for(let r=0;r=6&&t.hasRestArgs)&&(n[r]=e[r]);return n}},92114,(e,t,n)=>{"use strict";let r;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverActionReducer",{enumerable:!0,get:function(){return C}});let l=e.r(59295),a=e.r(85045),u=e.r(2089),o=e.r(40288),i=e.r(30545),s=e.r(98454),c=e.r(80118),f=e.r(28806),d=e.r(84938),p=e.r(84697),h=e.r(40494),m=e.r(61447),g=e.r(87670),y=e.r(20017),v=e.r(45733),b=e.r(51441),S=e.r(94955),w=e.r(44216),E=e.r(84628),_=e.r(44351),P=e.r(37023),k=e.r(17213),R=e.r(91666),T=i.createFromFetch;async function x(e,t,{actionId:n,actionArgs:c}){let f,d,p,h,m=(0,i.createTemporaryReferenceSet)(),g=(0,k.extractInfoFromServerReferenceId)(n),y="use-cache"===g.type?(0,k.omitUnusedArgs)(c,g):c,v=await (0,i.encodeReply)(y,{temporaryReferences:m}),b={Accept:u.RSC_CONTENT_TYPE_HEADER,[u.ACTION_HEADER]:n,[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,S.prepareFlightRouterStateForRequest)(e.tree)};t&&(b[u.NEXT_URL]=t);let w=await fetch(e.canonicalUrl,{method:"POST",headers:b,body:v});if("1"===w.headers.get(u.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new o.UnrecognizedActionError(`Server Action "${n}" was not found on the server. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let _=w.headers.get("x-action-redirect"),[P,R]=_?.split(";")||[];switch(R){case"push":f=E.RedirectType.push;break;case"replace":f=E.RedirectType.replace;break;default:f=void 0}let x=!!w.headers.get(u.NEXT_IS_PRERENDER_HEADER);try{let e=JSON.parse(w.headers.get("x-action-revalidated")||"[[],0,0]");d={paths:e[0]||[],tag:!!e[1],cookie:e[2]}}catch(e){d=O}let C=P?(0,s.assignLocation)(P,new URL(e.canonicalUrl,window.location.href)):void 0,N=w.headers.get("content-type"),M=!!(N&&N.startsWith(u.RSC_CONTENT_TYPE_HEADER));if(!M&&!C)throw Object.defineProperty(Error(w.status>=400&&"text/plain"===N?await w.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(M){let e=await T(Promise.resolve(w),{callServer:l.callServer,findSourceMapURL:a.findSourceMapURL,temporaryReferences:m,debugChannel:r&&r(b)});p=C?void 0:e.a,h=(0,S.normalizeFlightData)(e.f)}else p=void 0,h=void 0;return{actionResult:p,actionFlightData:h,redirectLocation:C,redirectType:f,revalidatedParts:d,isPrerender:x}}let O={paths:[],tag:!1,cookie:!1};function C(e,t){let{resolve:n,reject:r}=t,l={},a=e.tree;l.preserveCustomHistoryState=!1;let u=(e.previousNextUrl||e.nextUrl)&&(0,y.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null,o=Date.now();return x(e,u,t).then(async({actionResult:i,actionFlightData:s,redirectLocation:y,redirectType:S,revalidatedParts:k})=>{let T;if(y&&(S===E.RedirectType.replace?(e.pushRef.pendingPush=!1,l.pendingPush=!1):(e.pushRef.pendingPush=!0,l.pendingPush=!0),l.canonicalUrl=T=(0,c.createHrefFromUrl)(y,!1)),!s)return(n(i),y)?(0,f.handleExternalUrl)(e,l,y.href,e.pushRef.pendingPush):e;if("string"==typeof s)return n(i),(0,f.handleExternalUrl)(e,l,s,e.pushRef.pendingPush);let x=k.paths.length>0||k.tag||k.cookie;for(let r of(x&&(t.didRevalidate=!0),s)){let{tree:s,seedData:c,head:h,isRootRender:y}=r;if(!y)return console.log("SERVER ACTION APPLY FAILED"),n(i),e;let S=(0,d.applyRouterStatePatchToTree)([""],a,s,T||e.canonicalUrl);if(null===S)return n(i),(0,v.handleSegmentMismatch)(e,t,s);if((0,p.isNavigatingToNewRootLayout)(a,S))return n(i),(0,f.handleExternalUrl)(e,l,T||e.canonicalUrl,e.pushRef.pendingPush);if(null!==c){let t=c[0],n=(0,g.createEmptyCacheNode)();n.rsc=t,n.prefetchRsc=null,n.loading=c[2],(0,m.fillLazyItemsTillLeafWithHead)(o,n,void 0,s,c,h),l.cache=n,(0,R.revalidateEntireCache)(e.nextUrl,S),x&&await (0,b.refreshInactiveParallelSegments)({navigatedAt:o,state:e,updatedTree:S,updatedCache:n,includeNextUrl:!!u,canonicalUrl:l.canonicalUrl||e.canonicalUrl})}l.patchedTree=S,a=S}if(y&&T){let e=(0,w.getRedirectError)((0,P.hasBasePath)(T)?(0,_.removeBasePath)(T):T,S||E.RedirectType.push);e.handled=!0,r(e)}else n(i);return(0,h.handleMutable)(e,l)},t=>(r(t),e))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},42939,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"reducer",{enumerable:!0,get:function(){return c}});let r=e.r(98165),l=e.r(28806),a=e.r(76702),u=e.r(43746),o=e.r(64324),i=e.r(1470),s=e.r(92114),c="undefined"==typeof window?function(e,t){return e}:function(e,t){switch(t.type){case r.ACTION_NAVIGATE:return(0,l.navigateReducer)(e,t);case r.ACTION_SERVER_PATCH:return(0,a.serverPatchReducer)(e,t);case r.ACTION_RESTORE:return(0,u.restoreReducer)(e,t);case r.ACTION_REFRESH:return(0,o.refreshReducer)(e,t);case r.ACTION_HMR_REFRESH:return(0,i.hmrRefreshReducer)(e,t);case r.ACTION_SERVER_ACTION:return(0,s.serverActionReducer)(e,t);default:throw Object.defineProperty(Error("Unknown action"),"__NEXT_ERROR_CODE",{value:"E295",enumerable:!1,configurable:!0})}};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},19939,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"prefetch",{enumerable:!0,get:function(){return o}});let r=e.r(93259),l=e.r(63280),a=e.r(40285),u=e.r(24994);function o(e,t,n,o,i){let s=(0,r.createPrefetchURL)(e);if(null===s)return;let c=(0,l.createCacheKey)(s.href,t);(0,a.schedulePrefetchTask)(c,n,o,u.PrefetchPriority.Default,i)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},19998,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createMutableActionQueue:function(){return v},dispatchNavigateAction:function(){return w},dispatchTraverseAction:function(){return E},getCurrentAppRouterState:function(){return b},publicAppRouterInstance:function(){return _}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(98165),u=e.r(42939),o=e.r(30668),i=e.r(65035),s=e.r(24994),c=e.r(19939),f=e.r(53128),d=e.r(39940),p=e.r(93259),h=e.r(79111);function m(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&g({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:a.ACTION_REFRESH,origin:window.location.origin},t))}async function g({actionQueue:e,action:t,setState:n}){let r=e.state;e.pending=t;let l=t.payload,u=e.action(r,l);function o(r){if(t.discarded){t.payload.type===a.ACTION_SERVER_ACTION&&t.payload.didRevalidate&&(e.needsRefresh=!0),m(e,n);return}e.state=r,m(e,n),t.resolve(r)}(0,i.isThenable)(u)?u.then(o,r=>{m(e,n),t.reject(r)}):o(u)}let y=null;function v(e,t){let n={state:e,dispatch:(e,t)=>(function(e,t,n){let r={resolve:n,reject:()=>{}};if(t.type!==a.ACTION_RESTORE){let e=new Promise((e,t)=>{r={resolve:e,reject:t}});(0,o.startTransition)(()=>{n(e)})}let l={payload:t,next:null,resolve:r.resolve,reject:r.reject};null===e.pending?(e.last=l,g({actionQueue:e,action:l,setState:n})):t.type===a.ACTION_NAVIGATE||t.type===a.ACTION_RESTORE?(e.pending.discarded=!0,l.next=e.pending.next,g({actionQueue:e,action:l,setState:n})):(null!==e.last&&(e.last.next=l),e.last=l)})(n,e,t),action:async(e,t)=>(0,u.reducer)(e,t),pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};if("undefined"!=typeof window){if(null!==y)throw Object.defineProperty(Error("Internal Next.js Error: createMutableActionQueue was called more than once"),"__NEXT_ERROR_CODE",{value:"E624",enumerable:!1,configurable:!0});y=n}return n}function b(){return null!==y?y.state:null}function S(){return null!==y?y.onRouterTransitionStart:null}function w(e,t,n,r){let l=new URL((0,d.addBasePath)(e),location.href);(0,h.setLinkForCurrentNavigation)(r);let u=S();null!==u&&u(e,t),(0,f.dispatchAppRouterAction)({type:a.ACTION_NAVIGATE,url:l,isExternalUrl:(0,p.isExternalURL)(l),locationSearch:location.search,shouldScroll:n,navigateType:t})}function E(e,t){let n=S();null!==n&&n(e,"traverse"),(0,f.dispatchAppRouterAction)({type:a.ACTION_RESTORE,url:new URL(e),historyState:t})}let _={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let n,r=function(){if(null===y)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});return y}();switch(t?.kind??a.PrefetchKind.AUTO){case a.PrefetchKind.AUTO:n=s.FetchStrategy.PPR;break;case a.PrefetchKind.FULL:n=s.FetchStrategy.Full;break;case a.PrefetchKind.TEMPORARY:return;default:n=s.FetchStrategy.PPR}(0,c.prefetch)(e,r.state.nextUrl,r.state.tree,n,t?.onInvalidate??null)},replace:(e,t)=>{(0,o.startTransition)(()=>{w(e,"replace",t?.scroll??!0,null)})},push:(e,t)=>{(0,o.startTransition)(()=>{w(e,"push",t?.scroll??!0,null)})},refresh:()=>{(0,o.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:a.ACTION_REFRESH,origin:window.location.origin})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};"undefined"!=typeof window&&window.next&&(window.next.router=_),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79216,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createInitialRouterState",{enumerable:!0,get:function(){return i}});let r=e.r(80118),l=e.r(61447),a=e.r(5725),u=e.r(51441),o=e.r(94955);function i({navigatedAt:e,initialFlightData:t,initialCanonicalUrlParts:n,initialRenderedSearch:i,initialParallelRoutes:s,location:c}){let f=n.join("/"),{tree:d,seedData:p,head:h}=(0,o.getFlightDataPartsFromPath)(t[0]),m={lazyData:null,rsc:p?.[0],prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:s,loading:p?.[2]??null,navigatedAt:e},g=c?(0,r.createHrefFromUrl)(c):f;return(0,u.addRefreshMarkerToActiveParallelSegments)(d,g),(null===s||0===s.size)&&(0,l.fillLazyItemsTillLeafWithHead)(e,m,void 0,d,p,h),{tree:d,cache:m,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{apply:!1,onlyHashChange:!1,hashFragment:null,segmentPaths:[]},canonicalUrl:g,renderedSearch:i,nextUrl:((0,a.extractPathFromFlightRouterState)(d)||c?.pathname)??null,previousNextUrl:null,debugInfo:null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},51971,(e,t,n)=>{"use strict";let r,l,a,u;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hydrate",{enumerable:!0,get:function(){return I}});let o=e.r(35856),i=e.r(48277);e.r(86096);let s=o._(e.r(69460)),c=o._(e.r(30668)),f=e.r(30545),d=e.r(98084),p=e.r(29554),h=e.r(26717),m=e.r(59295),g=e.r(85045),y=e.r(19998),v=o._(e.r(87670)),b=e.r(79216);e.r(45243);let S=e.r(70410),w=e.r(94955),E=f.createFromReadableStream,_=f.createFromFetch,P=document,k=new TextEncoder,R=!1,T=!1,x=null;function O(e){if(0===e[0])a=[];else if(1===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});u?u.enqueue(k.encode(e[1])):a.push(e[1])}else if(2===e[0])x=e[1];else if(3===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let n=atob(e[1]),r=new Uint8Array(n.length);for(var t=0;t{e.enqueue("string"==typeof t?k.encode(t):t)}),R&&!T)&&(null===e.desiredSize||e.desiredSize<0?e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),T=!0,a=void 0),u=e}}),L=window.__NEXT_CLIENT_RESUME;function z({initialRSCPayload:e,actionQueue:t,webSocket:n,staticIndicatorState:r}){return(0,i.jsx)(v.default,{actionQueue:t,globalErrorState:e.G,webSocket:n,staticIndicatorState:r})}l=L?Promise.resolve(_(L,{callServer:m.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r})).then(async e=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await L,e)):E(M,{callServer:m.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,startTime:0});let j=c.default.StrictMode;function F({children:e}){return e}let A={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:p.onRecoverableError,onCaughtError:h.onCaughtError,onUncaughtError:h.onUncaughtError};async function I(e,t){let n,r,a=await l;(0,S.setAppBuildId)(a.b);let u=Date.now(),o=(0,y.createMutableActionQueue)((0,b.createInitialRouterState)({navigatedAt:u,initialFlightData:a.f,initialCanonicalUrlParts:a.c,initialRenderedSearch:a.q,initialParallelRoutes:new Map,location:window.location}),e),f=(0,i.jsx)(j,{children:(0,i.jsx)(d.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,i.jsx)(F,{children:(0,i.jsx)(z,{initialRSCPayload:a,actionQueue:o,webSocket:r,staticIndicatorState:n})})})});"__next_error__"===document.documentElement.id?s.default.createRoot(P,A).render(f):c.default.startTransition(()=>{s.default.hydrateRoot(P,f,{...A,formState:x})})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},24153,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});let r=e.r(68402);e.r(29554),window.next.turbopack=!0,self.__webpack_hash__="";let l=e.r(22487);(0,r.appBootstrap)(t=>{let{hydrate:n}=e.r(51971);n(l,t)}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/5f8e11d2476d2135.js b/src/hyperview/server/static/_next/static/chunks/5f8e11d2476d2135.js deleted file mode 100644 index b255ea0..0000000 --- a/src/hyperview/server/static/_next/static/chunks/5f8e11d2476d2135.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,68027,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(43476),o=e.r(12354),i={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},u={fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"},s=function({error:e}){let t=e?.digest;return(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{}),(0,n.jsxs)("body",{children:[(0,n.jsx)(o.HandleISRError,{error:e}),(0,n.jsx)("div",{style:i,children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("h2",{style:u,children:["Application error: a ",t?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",t?"server logs":"browser console"," for more information)."]}),t?(0,n.jsx)("p",{style:u,children:`Digest: ${t}`}):null]})})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},35451,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function u(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(e){r=u}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var c=[],a=!1,l=-1;function f(){a&&n&&(a=!1,n.length?c=n.concat(c):l=-1,c.length&&p())}function p(){if(!a){var e=s(f);a=!0;for(var t=c.length;t;){for(n=c,c=[];++l1)for(var r=1;r{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(35451)},45689,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},43476,(e,t,r)=>{"use strict";t.exports=e.r(45689)},90317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return a},createAsyncLocalStorage:function(){return c},createSnapshot:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class u{disable(){throw i}getStore(){}run(){throw i}exit(){throw i}enterWith(){throw i}static bind(e){return e}}let s="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function c(){return s?new s:new u}function a(e){return s?s.bind(e):u.bind(e)}function l(){return s?s.snapshot():function(e,...t){return e(...t)}}},42344,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},63599,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(42344)},12354,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HandleISRError",{enumerable:!0,get:function(){return o}});let n="undefined"==typeof window?e.r(63599).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}return null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},50740,(e,t,r)=>{"use strict";var n=e.i(47167),o=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),l=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),g=Symbol.for("react.view_transition"),v=Symbol.iterator,_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,b={};function S(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||_}function O(){}function E(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||_}S.prototype.isReactComponent={},S.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},O.prototype=S.prototype;var T=E.prototype=new O;T.constructor=E,m(T,S.prototype),T.isPureReactComponent=!0;var w=Array.isArray;function j(){}var R={H:null,A:null,T:null,S:null},x=Object.prototype.hasOwnProperty;function A(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function P(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var C=/\/+/g;function H(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function k(e,t,r){if(null==e)return e;var n=[],u=0;return!function e(t,r,n,u,s){var c,a,l,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var p=!1;if(null===t)p=!0;else switch(f){case"bigint":case"string":case"number":p=!0;break;case"object":switch(t.$$typeof){case o:case i:p=!0;break;case y:return e((p=t._init)(t._payload),r,n,u,s)}}if(p)return s=s(t),p=""===u?"."+H(t,0):u,w(s)?(n="",null!=p&&(n=p.replace(C,"$&/")+"/"),e(s,r,n,"",function(e){return e})):null!=s&&(P(s)&&(c=s,a=n+(null==s.key||t&&t.key===s.key?"":(""+s.key).replace(C,"$&/")+"/")+p,s=A(c.type,a,c.props)),r.push(s)),1;p=0;var d=""===u?".":u+":";if(w(t))for(var h=0;h{"use strict";t.exports=e.r(50740)},18800,(e,t,r)=>{"use strict";var n=e.r(71645);function o(e){var t="https://react.dev/errors/"+e;if(1{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(18800)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/61d99a6d918f5559.css b/src/hyperview/server/static/_next/static/chunks/61d99a6d918f5559.css new file mode 100644 index 0000000..03b23b6 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/61d99a6d918f5559.css @@ -0,0 +1 @@ +*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:215 28% 7%;--foreground:213 27% 92%;--card:215 21% 11%;--card-foreground:213 27% 92%;--popover:215 21% 11%;--popover-foreground:213 27% 92%;--primary:212 100% 67%;--primary-foreground:215 28% 7%;--secondary:215 14% 17%;--secondary-foreground:213 27% 92%;--muted:215 14% 17%;--muted-foreground:213 12% 58%;--accent:215 14% 17%;--accent-foreground:213 27% 92%;--destructive:0 62% 50%;--destructive-foreground:0 0% 98%;--border:215 14% 22%;--input:215 14% 22%;--ring:212 100% 67%;--radius:.375rem;--surface:215 21% 11%;--surface-light:215 14% 17%;--surface-elevated:215 14% 22%;--border-subtle:215 14% 17%;--text:213 27% 92%;--text-muted:213 12% 58%;--text-subtle:215 10% 46%;--accent-cyan:176 60% 53%;--accent-orange:27 86% 59%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.right-1{right:.25rem}.top-1{top:.25rem}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.h-10{height:2.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[36px\]{min-height:36px}.min-h-\[40px\]{min-height:40px}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[3px\]{width:3px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.max-w-full{max-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-t-transparent{border-top-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-border\/50{background-color:hsl(var(--border)/.5)}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card)/.8)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:#0000}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.025em}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-primary{--tw-ring-color:hsl(var(--primary))}.ring-primary\/50{--tw-ring-color:hsl(var(--primary)/.5)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}.duration-150{animation-duration:.15s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--surface-elevated));border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--text-subtle))}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary\/50:hover{background-color:hsl(var(--primary)/.5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.data-\[orientation\=vertical\]\:h-\[3px\][data-orientation=vertical]{height:3px}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[state\=on\]\:border-primary[data-state=on]{border-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-primary[data-state=on]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:text-primary-foreground[data-state=on]{color:hsl(var(--primary-foreground))}.data-\[orientation\=vertical\]\:after\:left-0[data-orientation=vertical]:after{content:var(--tw-content);left:0}.data-\[orientation\=vertical\]\:after\:h-2[data-orientation=vertical]:after{content:var(--tw-content);height:.5rem}.data-\[orientation\=vertical\]\:after\:w-full[data-orientation=vertical]:after{content:var(--tw-content);width:100%}.data-\[orientation\=vertical\]\:after\:-translate-y-1\/2[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:after\:translate-x-0[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\[\&\[data-orientation\=vertical\]\>div\]\:rotate-90[data-orientation=vertical]>div{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} diff --git a/src/hyperview/server/static/_next/static/chunks/640b68f22e2796e6.js b/src/hyperview/server/static/_next/static/chunks/640b68f22e2796e6.js deleted file mode 100644 index 9792225..0000000 --- a/src/hyperview/server/static/_next/static/chunks/640b68f22e2796e6.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93347,c=>{c.v(t=>Promise.all(["static/chunks/6dd1fc7c515721e7.js"].map(t=>c.l(t))).then(()=>t(42030)))}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/6dd1fc7c515721e7.js b/src/hyperview/server/static/_next/static/chunks/6dd1fc7c515721e7.js deleted file mode 100644 index a7a8e12..0000000 --- a/src/hyperview/server/static/_next/static/chunks/6dd1fc7c515721e7.js +++ /dev/null @@ -1,448 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25443,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e=function(e){return e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Uint32Array||e instanceof Int8Array||e instanceof Int16Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof Float64Array||e instanceof Uint8ClampedArray},t=function(e,t){for(var r=Object.keys(t),n=0;nt.indexOf(e)&&r("invalid value"+i(n)+". must be one of: "+t)}var s=["gl","canvas","container","attributes","pixelRatio","extensions","optionalExtensions","profile","onDone"];function l(e,t){for(e+="";e.lengths.indexOf(e)&&r('invalid regl constructor argument "'+e+'". must be one of '+s)})},type:function(e,t,n){a(e,t)||r("invalid parameter type"+i(n)+". expected "+t+", got "+typeof e)},commandType:v,isTypedArray:function(t,n){e(t)||r("invalid parameter type"+i(n)+". must be a typed array")},nni:function(e,t){e>=0&&(0|e)===e||r("invalid parameter type, ("+e+")"+i(t)+". must be a nonnegative integer")},oneOf:o,shaderError:function(e,t,r,i,a){if(!e.getShaderParameter(t,e.COMPILE_STATUS)){var o,s=e.getShaderInfoLog(t),f=i===e.FRAGMENT_SHADER?"fragment":"vertex";v(r,"string",f+" shader source must be a string",a);var u=m(r,a);(o=[],s.split("\n").forEach(function(e){if(!(e.length<5)){var t=/^ERROR:\s+(\d+):(\d+):\s*(.*)$/.exec(e);t?o.push(new c(0|t[1],0|t[2],t[3].trim())):e.length>0&&o.push(new c("unknown",0,e))}}),o).forEach(function(e){var t=u[e.file];if(t){var r=t.index[e.line];if(r){r.errors.push(e),t.hasErrors=!0;return}}u.unknown.hasErrors=!0,u.unknown.lines[0].errors.push(e)}),Object.keys(u).forEach(function(e){var t=u[e];if(t.hasErrors){var r=[""],n=[""];i("file number "+e+": "+t.name+"\n","color:red;text-decoration:underline;font-weight:bold"),t.lines.forEach(function(e){if(e.errors.length>0){i(l(e.number,4)+"| ","background-color:yellow; font-weight:bold"),i(e.line+"\n","color:red; background-color:yellow; font-weight:bold");var t=0;e.errors.forEach(function(r){var n=r.message,a=/^\s*'(.*)'\s*:\s*(.*)$/.exec(n);if(a){var o=a[1];n=a[2],"assign"===o&&(o="="),t=Math.max(e.line.indexOf(o,t),0)}else t=0;i(l("| ",6)),i(l("^^^",t+3)+"\n","font-weight:bold"),i(l("| ",6)),i(n+"\n","font-weight:bold")}),i(l("| ",6)+"\n")}else i(l(e.number,4)+"| "),i(e.line+"\n","color:red")}),"undefined"==typeof document||window.chrome?console.log(r.join("")):(n[0]=r.join("%c"),console.log.apply(console,n))}function i(e,t){r.push(e),n.push(t||"")}}),n.raise("Error compiling "+f+" shader, "+u[0].name)}},linkError:function(e,t,r,i,a){if(!e.getProgramParameter(t,e.LINK_STATUS)){var o=e.getProgramInfoLog(t),s=m(r,a),l='Error linking program with vertex shader, "'+m(i,a)[0].name+'", and fragment shader "'+s[0].name+'"';"undefined"!=typeof document?console.log("%c"+l+"\n%c"+o,"color:red;text-decoration:underline;font-weight:bold","color:red"):console.log(l+"\n"+o),n.raise(l)}},callSite:p,saveCommandRef:h,saveDrawInfo:function(e,t,r,n){function i(e,t){Object.keys(t).forEach(function(t){e[n.id(t)]=!0})}h(e),e._fragId=(a=e.static.frag)?n.id(a):0,e._vertId=(o=e.static.vert)?n.id(o):0;var a,o,s=e._uniformSet={};i(s,t.static),i(s,t.dynamic);var l=e._attributeSet={};i(l,r.static),i(l,r.dynamic),e._hasCount="count"in e.static||"count"in e.dynamic||"elements"in e.static||"elements"in e.dynamic},framebufferFormat:function(e,t,r){e.texture?o(e.texture._texture.internalformat,t,"unsupported texture format for attachment"):o(e.renderbuffer._renderbuffer.format,r,"unsupported renderbuffer format for attachment")},guessCommand:d,texture2D:function(e,t,r){var i,a=t.width,o=t.height,s=t.channels;n(a>0&&a<=r.maxTextureSize&&o>0&&o<=r.maxTextureSize,"invalid texture shape"),(33071!==e.wrapS||33071!==e.wrapT)&&n(x(a)&&x(o),"incompatible wrap mode for texture, both width and height must be power of 2"),1===t.mipmask?1!==a&&1!==o&&n(9984!==e.minFilter&&9986!==e.minFilter&&9985!==e.minFilter&&9987!==e.minFilter,"min filter requires mipmap"):(n(x(a)&&x(o),"texture must be a square power of 2 to support mipmapping"),n(t.mipmask===(a<<1)-1,"missing or incomplete mipmap data")),5126===t.type&&(0>r.extensions.indexOf("oes_texture_float_linear")&&n(9728===e.minFilter&&9728===e.magFilter,"filter not supported, must enable oes_texture_float_linear"),n(!e.genMipmaps,"mipmap generation not supported with float textures"));var l=t.images;for(i=0;i<16;++i)if(l[i]){var f=a>>i,u=o>>i;n(t.mipmask&1<0&&a<=i.maxTextureSize&&o>0&&o<=i.maxTextureSize,"invalid texture shape"),n(a===o,"cube map must be square"),n(33071===t.wrapS&&33071===t.wrapT,"wrap mode not supported by cube map");for(var l=0;l>c,m=o>>c;n(f.mipmask&1<1&&r===n&&('"'===r||"'"===r))return['"'+E(t.substr(1,t.length-2))+'"'];var i=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(t);if(i)return e(t.substr(0,i.index)).concat(e(i[1])).concat(e(t.substr(i.index+i[0].length)));var a=t.split(".");if(1===a.length)return['"'+E(t)+'"'];for(var o=[],s=0;s65535)<<4,e>>>=t,r=(e>255)<<3,e>>>=r,t|=r,r=(e>15)<<2,e>>>=r,t|=r,r=(e>3)<<1,e>>>=r,(t|=r)|e>>1}function j(){var e=M(8,function(){return[]});function t(t){var r=function(e){for(var t=16;t<=0x10000000;t*=16)if(e<=t)return t;return 0}(t),n=e[I(r)>>2];return n.length>0?n.pop():new ArrayBuffer(r)}function r(t){e[I(t.byteLength)>>2].push(t)}return{alloc:t,free:r,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(e){r(e.buffer)}}}var z=j();z.zero=j();var B=function(e,t){var r=1;t.ext_texture_filter_anisotropic&&(r=e.getParameter(34047));var n=1,i=1;t.webgl_draw_buffers&&(n=e.getParameter(34852),i=e.getParameter(36063));var a=!!t.oes_texture_float;if(a){var o=e.createTexture();e.bindTexture(3553,o),e.texImage2D(3553,0,6408,1,1,0,6408,5126,null);var s=e.createFramebuffer();if(e.bindFramebuffer(36160,s),e.framebufferTexture2D(36160,36064,3553,o,0),e.bindTexture(3553,null),36053!==e.checkFramebufferStatus(36160))a=!1;else{e.viewport(0,0,1,1),e.clearColor(1,0,0,1),e.clear(16384);var l=z.allocType(5126,4);e.readPixels(0,0,1,1,6408,5126,l),e.getError()?a=!1:(e.deleteFramebuffer(s),e.deleteTexture(o),a=1===l[0]),z.freeType(l)}}var f="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||/Edge/.test(navigator.userAgent)),u=!0;if(!f){var c=e.createTexture(),d=z.allocType(5121,36);e.activeTexture(33984),e.bindTexture(34067,c),e.texImage2D(34069,0,6408,3,3,0,6408,5121,d),z.freeType(d),e.bindTexture(34067,null),e.deleteTexture(c),u=!e.getError()}return{colorBits:[e.getParameter(3410),e.getParameter(3411),e.getParameter(3412),e.getParameter(3413)],depthBits:e.getParameter(3414),stencilBits:e.getParameter(3415),subpixelBits:e.getParameter(3408),extensions:Object.keys(t).filter(function(e){return!!t[e]}),maxAnisotropic:r,maxDrawbuffers:n,maxColorAttachments:i,pointSizeDims:e.getParameter(33901),lineWidthDims:e.getParameter(33902),maxViewportDims:e.getParameter(3386),maxCombinedTextureUnits:e.getParameter(35661),maxCubeMapSize:e.getParameter(34076),maxRenderbufferSize:e.getParameter(34024),maxTextureUnits:e.getParameter(34930),maxTextureSize:e.getParameter(3379),maxAttributes:e.getParameter(34921),maxVertexUniforms:e.getParameter(36347),maxVertexTextureUnits:e.getParameter(35660),maxVaryingVectors:e.getParameter(36348),maxFragmentUniforms:e.getParameter(36349),glsl:e.getParameter(35724),renderer:e.getParameter(7937),vendor:e.getParameter(7936),version:e.getParameter(7938),readFloat:a,npotTextureCube:u}};function R(t){return!!t&&"object"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&"number"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||e(t.data))}var L=function(e){return Object.keys(e).map(function(t){return e[t]})},F=function(e){for(var t=[],r=e;r.length;r=r[0])t.push(r.length);return t},V=function(e,t,r,n){var i=1;if(t.length)for(var a=0;a>>31<<15,a=(n<<1>>>24)-127,o=n>>13&1023;if(a<-24)t[r]=i;else if(a<-14){var s=-14-a;t[r]=i+(o+1024>>s)}else a>15?t[r]=i+31744:t[r]=i+(a+15<<10)+o}return t}function J(t){return Array.isArray(t)||e(t)}var ee=function(e){return!(e&e-1)&&!!e},et=[9984,9986,9985,9987],er=[0,6409,6410,6407,6408],en={};function ei(e){return"[object "+e+"]"}en[6409]=en[6406]=en[6402]=1,en[34041]=en[6410]=2,en[6407]=en[35904]=3,en[6408]=en[35906]=4;var ea=ei("HTMLCanvasElement"),eo=ei("OffscreenCanvas"),es=ei("CanvasRenderingContext2D"),el=ei("ImageBitmap"),ef=ei("HTMLImageElement"),eu=ei("HTMLVideoElement"),ec=Object.keys(N).concat([ea,eo,es,el,ef,eu]),ed=[];ed[5121]=1,ed[5126]=4,ed[36193]=2,ed[5123]=2,ed[5125]=4;var ep=[];function em(e){return Array.isArray(e)&&(0===e.length||"number"==typeof e[0])}function eh(e){return!!Array.isArray(e)&&0!==e.length&&!!J(e[0])}function ey(e){return Object.prototype.toString.call(e)}function ev(e){if(!e)return!1;var t=ey(e);return ec.indexOf(t)>=0||em(e)||eh(e)||R(e)}function eg(e){return 0|N[Object.prototype.toString.call(e)]}function eb(e,t){return z.allocType(36193===e.type?5126:e.type,t)}function ex(e,t){36193===e.type?(e.data=X(t),z.freeType(t)):e.data=t}function ew(e,t,r,n,i,a){var o;if(o=void 0!==ep[e]?ep[e]:en[e]*ed[t],a&&(o*=6),!i)return o*r*n;for(var s=0,l=r;l>=1;)s+=o*l*l,l/=2;return s}ep[32854]=2,ep[32855]=2,ep[36194]=2,ep[34041]=4,ep[33776]=.5,ep[33777]=.5,ep[33778]=1,ep[33779]=1,ep[35986]=.5,ep[35987]=1,ep[34798]=1,ep[35840]=.5,ep[35841]=.25,ep[35842]=.5,ep[35843]=.25,ep[36196]=.5;var eA=[];eA[32854]=2,eA[32855]=2,eA[36194]=2,eA[33189]=2,eA[36168]=1,eA[34041]=4,eA[35907]=4,eA[34836]=16,eA[34842]=8,eA[34843]=6;var eS=function(e,t,r,n,i){var a={rgba4:32854,rgb565:36194,"rgb5 a1":32855,depth:33189,stencil:36168,"depth stencil":34041};t.ext_srgb&&(a.srgba=35907),t.ext_color_buffer_half_float&&(a.rgba16f=34842,a.rgb16f=34843),t.webgl_color_buffer_float&&(a.rgba32f=34836);var o=[];Object.keys(a).forEach(function(e){o[a[e]]=e});var s=0,l={};function f(e){this.id=s++,this.refCount=1,this.renderbuffer=e,this.format=32854,this.width=0,this.height=0,i.profile&&(this.stats={size:0})}function u(t){var r=t.renderbuffer;w(r,"must not double destroy renderbuffer"),e.bindRenderbuffer(36161,null),e.deleteRenderbuffer(r),t.renderbuffer=null,t.refCount=0,delete l[t.id],n.renderbufferCount--}return f.prototype.decRef=function(){--this.refCount<=0&&u(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var e=0;return Object.keys(l).forEach(function(t){e+=l[t].stats.size}),e}),{create:function(t,s){var u=new f(e.createRenderbuffer());function c(t,n){var s,l,f,d=0,p=0,m=32854;if("object"==typeof t&&t){if("shape"in t){var h=t.shape;w(Array.isArray(h)&&h.length>=2,"invalid renderbuffer shape"),d=0|h[0],p=0|h[1]}else"radius"in t&&(d=p=0|t.radius),"width"in t&&(d=0|t.width),"height"in t&&(p=0|t.height);"format"in t&&(w.parameter(t.format,a,"invalid renderbuffer format"),m=a[t.format])}else"number"==typeof t?(d=0|t,p="number"==typeof n?0|n:d):t?w.raise("invalid arguments to renderbuffer constructor"):d=p=1;if(w(d>0&&p>0&&d<=r.maxRenderbufferSize&&p<=r.maxRenderbufferSize,"invalid renderbuffer size"),d!==u.width||p!==u.height||m!==u.format)return c.width=u.width=d,c.height=u.height=p,u.format=m,e.bindRenderbuffer(36161,u.renderbuffer),e.renderbufferStorage(36161,m,d,p),w(0===e.getError(),"invalid render buffer format"),i.profile&&(u.stats.size=(s=u.format,l=u.width,f=u.height,eA[s]*l*f)),c.format=o[u.format],c}return l[u.id]=u,n.renderbufferCount++,c(t,s),c.resize=function(t,n){var a,o,s,l=0|t,f=0|n||l;return l===u.width&&f===u.height?c:(w(l>0&&f>0&&l<=r.maxRenderbufferSize&&f<=r.maxRenderbufferSize,"invalid renderbuffer size"),c.width=u.width=l,c.height=u.height=f,e.bindRenderbuffer(36161,u.renderbuffer),e.renderbufferStorage(36161,u.format,l,f),w(0===e.getError(),"invalid render buffer format"),i.profile&&(u.stats.size=(a=u.format,o=u.width,s=u.height,eA[a]*o*s)),c)},c._reglType="renderbuffer",c._renderbuffer=u,i.profile&&(c.stats=u.stats),c.destroy=function(){u.decRef()},c},clear:function(){L(l).forEach(u)},restore:function(){L(l).forEach(function(t){t.renderbuffer=e.createRenderbuffer(),e.bindRenderbuffer(36161,t.renderbuffer),e.renderbufferStorage(36161,t.format,t.width,t.height)}),e.bindRenderbuffer(36161,null)}}},eE=[6407,6408],eT=[];eT[6408]=4,eT[6407]=3;var ek=[];ek[5121]=1,ek[5126]=4,ek[36193]=2;var e_=[32854,32855,36194,35907,34842,34843,34836],eO={};eO[36053]="complete",eO[36054]="incomplete attachment",eO[36057]="incomplete dimensions",eO[36055]="incomplete, missing attachment",eO[36061]="unsupported";var eC=["attributes","elements","offset","count","primitive","instances"];function eD(){this.state=0,this.x=0,this.y=0,this.z=0,this.w=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.offset=0,this.stride=0,this.divisor=0}function eP(e){return Array.prototype.slice.call(e)}function eM(e){return eP(e).join("")}var eI="xyzw".split(""),ej="dither",ez="blend.enable",eB="blend.color",eR="blend.equation",eL="blend.func",eF="depth.enable",eV="depth.func",e$="depth.range",eN="depth.mask",eW="colorMask",eU="cull.enable",eZ="cull.face",eG="frontFace",eq="lineWidth",eH="polygonOffset.enable",eK="polygonOffset.offset",eY="sample.alpha",eQ="sample.enable",eX="sample.coverage",eJ="stencil.enable",e0="stencil.mask",e1="stencil.func",e2="stencil.opFront",e3="stencil.opBack",e5="scissor.enable",e6="scissor.box",e4="viewport",e8="profile",e7="framebuffer",e9="vert",te="frag",tt="elements",tr="primitive",tn="count",ti="offset",ta="instances",to="Width",ts="Height",tl=e7+to,tf=e7+ts,tu=e4+to,tc=e4+ts,td="drawingBuffer",tp=td+to,tm=td+ts,th=[eL,eR,e1,e2,e3,eX,e4,e6,eK],ty={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},tv=["constant color, constant alpha","one minus constant color, constant alpha","constant color, one minus constant alpha","one minus constant color, one minus constant alpha","constant alpha, constant color","constant alpha, one minus constant color","one minus constant alpha, constant color","one minus constant alpha, one minus constant color"],tg={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},tb={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},tx={frag:35632,vert:35633},tw={cw:2304,ccw:2305};function tA(t){return Array.isArray(t)||e(t)||R(t)}function tS(e){return e.sort(function(e,t){return e===e4?-1:t===e4?1:e=1,n>=2,t)}if(4===r){var i=e.data;return new tE(i.thisDep,i.contextDep,i.propDep,t)}if(5===r)return new tE(!1,!1,!1,t);if(6!==r)return new tE(3===r,2===r,1===r,t);for(var a=!1,o=!1,s=!1,l=0;l=1&&(o=!0),u>=2&&(s=!0)}else 4===f.type&&(a=a||f.data.thisDep,o=o||f.data.contextDep,s=s||f.data.propDep)}return new tE(a,o,s,t)}var tO=new tE(!1,!1,!1,function(){}),tC=function(e,t){if(!t.ext_disjoint_timer_query)return null;var r=[],n=[];function i(){this.startQueryIndex=-1,this.endQueryIndex=-1,this.sum=0,this.stats=null}var a=[],o=[];function s(e,t,r){var n=a.pop()||new i;n.startQueryIndex=e,n.endQueryIndex=t,n.sum=0,n.stats=r,o.push(n)}var l=[],f=[];return{beginQuery:function(e){var i=r.pop()||t.ext_disjoint_timer_query.createQueryEXT();t.ext_disjoint_timer_query.beginQueryEXT(35007,i),n.push(i),s(n.length-1,n.length,e)},endQuery:function(){t.ext_disjoint_timer_query.endQueryEXT(35007)},pushScopeStats:s,update:function(){var e,i,s=n.length;if(0!==s){f.length=Math.max(f.length,s+1),l.length=Math.max(l.length,s+1),l[0]=0,f[0]=0;var u=0;for(i=0,e=0;i0,"invalid pixel ratio")):w.raise("invalid arguments to regl"),r&&("canvas"===r.nodeName.toLowerCase()?i=r:n=r),!a){if(!i){w("undefined"!=typeof document,"must manually specify webgl context outside of DOM environments");var m=function(e,r,n){var i,a=document.createElement("canvas");function o(){var t=window.innerWidth,r=window.innerHeight;if(e!==document.body){var i=a.getBoundingClientRect();t=i.right-i.left,r=i.bottom-i.top}a.width=n*t,a.height=n*r}return t(a.style,{border:0,margin:0,padding:0,top:0,left:0,width:"100%",height:"100%"}),e.appendChild(a),e===document.body&&(a.style.position="absolute",t(e.style,{margin:0,padding:0})),e!==document.body&&"function"==typeof ResizeObserver?(i=new ResizeObserver(function(){setTimeout(o)})).observe(e):window.addEventListener("resize",o,!1),o(),{canvas:a,onDestroy:function(){i?i.disconnect():window.removeEventListener("resize",o),e.removeChild(a)}}}(n||document.body,0,u);if(!m)return null;i=m.canvas,p=m.onDestroy}void 0===s.premultipliedAlpha&&(s.premultipliedAlpha=!0),a=function(e,t){function r(r){try{return e.getContext(r,t)}catch(e){return null}}return r("webgl")||r("experimental-webgl")||r("webgl-experimental")}(i,s)}return a?{gl:a,canvas:i,container:n,extensions:l,optionalExtensions:f,pixelRatio:u,profile:c,onDone:d,onDestroy:p}:(p(),d("webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org"),null)}(r);if(!a)return null;var o=a.gl,s=o.getContextAttributes(),l=o.isContextLost(),f=function(e,t){var r={};function n(t){w.type(t,"string","extension name must be string");var n,i=t.toLowerCase();try{n=r[i]=e.getExtension(i)}catch(e){}return!!n}for(var i=0;i0)if(Array.isArray(r[0])){for(var s,l=F(r),u=1,c=1;c0)if("number"==typeof t[0]){var a=z.allocType(d.dtype,t.length);q(a,t),m(a,i),z.freeType(a)}else if(Array.isArray(t[0])||e(t[0])){n=F(t);var o=V(t,n,d.dtype);m(o,i),z.freeType(o)}else w.raise("invalid buffer data")}else if(R(t)){n=t.shape;var s=t.stride,l=0,f=0,u=0,c=0;1===n.length?(l=n[0],f=1,u=s[0],c=0):2===n.length?(l=n[0],f=n[1],u=s[0],c=s[1]):w.raise("invalid shape");var h=Array.isArray(t.data)?d.dtype:G(t.data),y=z.allocType(h,l*f);H(y,t.data,l,f,u,c,t.offset),m(y,i),z.freeType(y)}else w.raise("invalid data for buffer subdata");return p},n.profile&&(p.stats=d.stats),p.destroy=function(){c(d)},p},createStream:function(e,t){var r=l.pop();return r||(r=new s(e)),r.bind(),u(r,t,35040,0,1,!1),r},destroyStream:function(e){l.push(e)},clear:function(){L(o).forEach(c),l.forEach(c)},getBuffer:function(e){return e&&e._buffer instanceof s?e._buffer:null},restore:function(){L(o).forEach(function(e){e.buffer=t.createBuffer(),t.bindBuffer(e.type,e.buffer),t.bufferData(e.type,e.persistentData||e.byteLength,e.usage)})},_initBuffer:u}}(o,c,a,function(e){return E.destroyBuffer(e)}),A=function(t,r,n,i){var a={},o=0,s={uint8:5121,uint16:5123};function l(e){this.id=o++,a[this.id]=this,this.buffer=e,this.primType=4,this.vertCount=0,this.type=0}r.oes_element_index_uint&&(s.uint32=5125),l.prototype.bind=function(){this.buffer.bind()};var f=[];function u(i,a,o,s,l,f,u){if(i.buffer.bind(),a){var c,d=u;!u&&(!e(a)||R(a)&&!e(a.data))&&(d=r.oes_element_index_uint?5125:5123),n._initBuffer(i.buffer,a,o,d,3)}else t.bufferData(34963,f,o),i.buffer.dtype=c||5121,i.buffer.usage=o,i.buffer.dimension=3,i.buffer.byteLength=f;if(c=u,!u){switch(i.buffer.dtype){case 5121:case 5120:c=5121;break;case 5123:case 5122:c=5123;break;case 5125:case 5124:c=5125;break;default:w.raise("unsupported type for element array")}i.buffer.dtype=c}i.type=c,w(5125!==c||!!r.oes_element_index_uint,"32 bit element buffers not supported, enable oes_element_index_uint first");var p=l;p<0&&(p=i.buffer.byteLength,5123===c?p>>=1:5125===c&&(p>>=2)),i.vertCount=p;var m=s;if(s<0){m=4;var h=i.buffer.dimension;1===h&&(m=0),2===h&&(m=1),3===h&&(m=4)}i.primType=m}function c(e){i.elementsCount--,w(null!==e.buffer,"must not double destroy elements"),delete a[e.id],e.buffer.destroy(),e.buffer=null}return{create:function(t,r){var a=n.create(null,34963,!0),o=new l(a._buffer);function f(t){if(t)if("number"==typeof t)a(t),o.primType=4,o.vertCount=0|t,o.type=5121;else{var r=null,n=35044,i=-1,l=-1,c=0,d=0;Array.isArray(t)||e(t)||R(t)?r=t:(w.type(t,"object","invalid arguments for elements"),"data"in t&&w(Array.isArray(r=t.data)||e(r)||R(r),"invalid data for element buffer"),"usage"in t&&(w.parameter(t.usage,U,"invalid element buffer usage"),n=U[t.usage]),"primitive"in t&&(w.parameter(t.primitive,K,"invalid element buffer primitive"),i=K[t.primitive]),"count"in t&&(w("number"==typeof t.count&&t.count>=0,"invalid vertex count for elements"),l=0|t.count),"type"in t&&(w.parameter(t.type,s,"invalid buffer type"),d=s[t.type]),"length"in t?c=0|t.length:(c=l,5123===d||5122===d?c*=2:(5125===d||5124===d)&&(c*=4))),u(o,r,n,i,l,c,d)}else a(),o.primType=4,o.vertCount=0,o.type=5121;return f}return i.elementsCount++,f(t),f._reglType="elements",f._elements=o,f.subdata=function(e,t){return a.subdata(e,t),f},f.destroy=function(){c(o)},f},createStream:function(e){var t=f.pop();return t||(t=new l(n.create(null,34963,!0,!1)._buffer)),u(t,e,35040,-1,-1,0,0),t},destroyStream:function(e){f.push(e)},getElements:function(e){return"function"==typeof e&&e._elements instanceof l?e._elements:null},clear:function(){L(a).forEach(c)}}}(o,d,x,c),E=function(t,r,n,i,a,o,s){for(var l=n.maxAttributes,f=Array(l),u=0;u{for(var e=Object.keys(t),r=0;r=0,'invalid option for vao: "'+e[r]+'" valid options are '+eC)}),w(Array.isArray(d),"attributes must be an array")}w(d.length0,"must specify at least one attribute");var f={},u=n.attributes;u.length=d.length;for(var c=0;c=y.byteLength?p.subdata(y):(p.destroy(),n.buffers[c]=null)),n.buffers[c]||(p=n.buffers[c]=a.create(m,34962,!1,!0)),h.buffer=a.getBuffer(p),h.size=0|h.buffer.dimension,h.normalized=!1,h.type=h.buffer.dtype,h.offset=0,h.stride=0,h.divisor=0,h.state=1,f[c]=1):a.getBuffer(m)?(h.buffer=a.getBuffer(m),h.size=0|h.buffer.dimension,h.normalized=!1,h.type=h.buffer.dtype,h.offset=0,h.stride=0,h.divisor=0,h.state=1):a.getBuffer(m.buffer)?(h.buffer=a.getBuffer(m.buffer),h.size=0|(+m.size||h.buffer.dimension),h.normalized=!!m.normalized,"type"in m?(w.parameter(m.type,W,"invalid buffer type"),h.type=W[m.type]):h.type=h.buffer.dtype,h.offset=0|(m.offset||0),h.stride=0|(m.stride||0),h.divisor=0|(m.divisor||0),h.state=1,w(h.size>=1&&h.size<=4,"size must be between 1 and 4"),w(h.offset>=0,"invalid offset"),w(h.stride>=0&&h.stride<=255,"stride must be between 0 and 255"),w(h.divisor>=0,"divisor must be positive"),w(!h.divisor||!!r.angle_instanced_arrays,"ANGLE_instanced_arrays must be enabled to use divisor")):"x"in m?(w(c>0,"first attribute must not be a constant"),h.x=+m.x||0,h.y=+m.y||0,h.z=+m.z||0,h.w=+m.w||0,h.state=2):w(!1,"invalid attribute spec for location "+c)}for(var v=0;v1)for(var v=0;ve&&(e=t.stats.uniformsCount)}),e},n.getMaxAttributesCount=function(){var e=0;return c.forEach(function(t){t.stats.attributesCount>e&&(e=t.stats.attributesCount)}),e}),{clear:function(){var t=e.deleteShader.bind(e);L(a).forEach(t),a={},L(o).forEach(t),o={},c.forEach(function(t){e.deleteProgram(t.program)}),c.length=0,u={},n.shaderCount=0},program:function(r,i,s,l){w.command(r>=0,"missing vertex shader",s),w.command(i>=0,"missing fragment shader",s);var f=u[i];f||(f=u[i]={});var d=f[r];if(d&&(d.refCount++,!l))return d;var h=new p(i,r);return n.shaderCount++,m(h,s,l),d||(f[r]=h),c.push(h),t(h,{destroy:function(){if(h.refCount--,h.refCount<=0){e.deleteProgram(h.program);var t=c.indexOf(h);c.splice(t,1),n.shaderCount--}f[h.vertId].refCount<=0&&(e.deleteShader(o[h.vertId]),delete o[h.vertId],delete u[h.fragId][h.vertId]),Object.keys(u[h.fragId]).length||(e.deleteShader(a[h.fragId]),delete a[h.fragId],delete u[h.fragId])}})},restore:function(){a={},o={};for(var e=0;e=0&&(h[e]=t)});var g=Object.keys(h);i.textureFormats=g;var b=[];Object.keys(h).forEach(function(e){b[h[e]]=e});var x=[];Object.keys(m).forEach(function(e){x[m[e]]=e});var A=[];Object.keys(c).forEach(function(e){A[c[e]]=e});var S=[];Object.keys(d).forEach(function(e){S[d[e]]=e});var E=[];Object.keys(u).forEach(function(e){E[u[e]]=e});var T=g.reduce(function(e,t){var r=h[t];return 6409===r||6406===r||6409===r||6410===r||6402===r||34041===r||n.ext_srgb&&(35904===r||35906===r)?e[r]=r:32855===r||t.indexOf("rgba")>=0?e[r]=6408:e[r]=6407,e},{});function k(){this.internalformat=6408,this.format=6408,this.type=5121,this.compressed=!1,this.premultiplyAlpha=!1,this.flipY=!1,this.unpackAlignment=1,this.colorSpace=37444,this.width=0,this.height=0,this.channels=0}function _(e,t){e.internalformat=t.internalformat,e.format=t.format,e.type=t.type,e.compressed=t.compressed,e.premultiplyAlpha=t.premultiplyAlpha,e.flipY=t.flipY,e.unpackAlignment=t.unpackAlignment,e.colorSpace=t.colorSpace,e.width=t.width,e.height=t.height,e.channels=t.channels}function O(e,t){if("object"==typeof t&&t){if("premultiplyAlpha"in t&&(w.type(t.premultiplyAlpha,"boolean","invalid premultiplyAlpha"),e.premultiplyAlpha=t.premultiplyAlpha),"flipY"in t&&(w.type(t.flipY,"boolean","invalid texture flip"),e.flipY=t.flipY),"alignment"in t&&(w.oneOf(t.alignment,[1,2,4,8],"invalid texture unpack alignment"),e.unpackAlignment=t.alignment),"colorSpace"in t&&(w.parameter(t.colorSpace,p,"invalid colorSpace"),e.colorSpace=p[t.colorSpace]),"type"in t){var r=t.type;w(n.oes_texture_float||"float"!==r&&"float32"!==r,"you must enable the OES_texture_float extension in order to use floating point textures."),w(n.oes_texture_half_float||"half float"!==r&&"float16"!==r,"you must enable the OES_texture_half_float extension in order to use 16-bit floating point textures."),w(n.webgl_depth_texture||"uint16"!==r&&"uint32"!==r&&"depth stencil"!==r,"you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures."),w.parameter(r,m,"invalid texture type"),e.type=m[r]}var a=e.width,o=e.height,s=e.channels,l=!1;"shape"in t?(w(Array.isArray(t.shape)&&t.shape.length>=2,"shape must be an array"),a=t.shape[0],o=t.shape[1],3===t.shape.length&&(w((s=t.shape[2])>0&&s<=4,"invalid number of channels"),l=!0),w(a>=0&&a<=i.maxTextureSize,"invalid width"),w(o>=0&&o<=i.maxTextureSize,"invalid height")):("radius"in t&&w((a=o=t.radius)>=0&&a<=i.maxTextureSize,"invalid radius"),"width"in t&&w((a=t.width)>=0&&a<=i.maxTextureSize,"invalid width"),"height"in t&&w((o=t.height)>=0&&o<=i.maxTextureSize,"invalid height"),"channels"in t&&(w((s=t.channels)>0&&s<=4,"invalid number of channels"),l=!0)),e.width=0|a,e.height=0|o,e.channels=0|s;var f=!1;if("format"in t){var u=t.format;w(n.webgl_depth_texture||"depth"!==u&&"depth stencil"!==u,"you must enable the WEBGL_depth_texture extension in order to use depth/stencil textures."),w.parameter(u,h,"invalid texture format");var c=e.internalformat=h[u];e.format=T[c],u in m&&!("type"in t)&&(e.type=m[u]),u in y&&(e.compressed=!0),f=!0}!l&&f?e.channels=en[e.format]:l&&!f?e.channels!==er[e.format]&&(e.format=e.internalformat=er[e.channels]):f&&l&&w(e.channels===en[e.format],"number of channels inconsistent with specified format")}}function C(e){r.pixelStorei(37440,e.flipY),r.pixelStorei(37441,e.premultiplyAlpha),r.pixelStorei(37443,e.colorSpace),r.pixelStorei(3317,e.unpackAlignment)}function D(){k.call(this),this.xOffset=0,this.yOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function P(t,r){var n=null;if(ev(r)?n=r:r&&(w.type(r,"object","invalid pixel data type"),O(t,r),"x"in r&&(t.xOffset=0|r.x),"y"in r&&(t.yOffset=0|r.y),ev(r.data)&&(n=r.data)),w(!t.compressed||n instanceof Uint8Array,"compressed texture data must be stored in a uint8array"),r.copy){w(!n,"can not specify copy and data field for the same texture");var a=o.viewportWidth,s=o.viewportHeight;t.width=t.width||a-t.xOffset,t.height=t.height||s-t.yOffset,t.needsCopy=!0,w(t.xOffset>=0&&t.xOffset=0&&t.yOffset0&&t.width<=a&&t.height>0&&t.height<=s,"copy texture read out of bounds")}else if(n){if(e(n))t.channels=t.channels||4,t.data=n,"type"in r||5121!==t.type||(t.type=eg(n));else if(em(n)){t.channels=t.channels||4;var l=n,f=l.length;switch(t.type){case 5121:case 5123:case 5125:case 5126:var u=z.allocType(t.type,f);u.set(l),t.data=u;break;case 36193:t.data=X(l);break;default:w.raise("unsupported texture type, must specify a typed array")}t.alignment=1,t.needsFree=!0}else if(R(n)){var c,d,p,m,h,y,v=n.data;Array.isArray(v)||5121!==t.type||(t.type=eg(v));var g=n.shape,b=n.stride;3===g.length?(p=g[2],y=b[2]):(w(2===g.length,"invalid ndarray pixel data, must be 2 or 3D"),p=1,y=1),c=g[0],d=g[1],m=b[0],h=b[1],t.alignment=1,t.width=c,t.height=d,t.channels=p,t.format=t.internalformat=er[p],t.needsFree=!0,function(e,t,r,n,i,a){for(var o=e.width,s=e.height,l=e.channels,f=eb(e,o*s*l),u=0,c=0;c=0,"oes_texture_float extension not enabled"):36193===t.type&&w(i.extensions.indexOf("oes_texture_half_float")>=0,"oes_texture_half_float extension not enabled")}function M(e,t,n,i,o){var s=e.element,l=e.data,f=e.internalformat,u=e.format,c=e.type,d=e.width,p=e.height;C(e),s?r.texSubImage2D(t,o,n,i,u,c,s):e.compressed?r.compressedTexSubImage2D(t,o,n,i,f,d,p,l):e.needsCopy?(a(),r.copyTexSubImage2D(t,o,n,i,e.xOffset,e.yOffset,d,p)):r.texSubImage2D(t,o,n,i,d,p,u,c,l)}var I=[];function j(){return I.pop()||new D}function B(e){e.needsFree&&z.freeType(e.data),D.call(e),I.push(e)}function $(){k.call(this),this.genMipmaps=!1,this.mipmapHint=4352,this.mipmask=0,this.images=Array(16)}function N(e,t,r){var n=e.images[0]=j();e.mipmask=1,n.width=e.width=t,n.height=e.height=r,n.channels=e.channels=4}function W(e,t){var r=null;if(ev(t))_(r=e.images[0]=j(),e),P(r,t),e.mipmask=1;else if(O(e,t),Array.isArray(t.mipmap))for(var n=t.mipmap,i=0;i>=i,r.height>>=i,P(r,n[i]),e.mipmask|=1<=0)||"faces"in t||(e.genMipmaps=!0)}if("mag"in t){var n=t.mag;w.parameter(n,c),e.magFilter=c[n]}var a=e.wrapS,o=e.wrapT;if("wrap"in t){var s=t.wrap;"string"==typeof s?(w.parameter(s,u),a=o=u[s]):Array.isArray(s)&&(w.parameter(s[0],u),w.parameter(s[1],u),a=u[s[0]],o=u[s[1]])}else{if("wrapS"in t){var l=t.wrapS;w.parameter(l,u),a=u[l]}if("wrapT"in t){var p=t.wrapT;w.parameter(p,u),o=u[p]}}if(e.wrapS=a,e.wrapT=o,"anisotropic"in t){var m=t.anisotropic;w("number"==typeof m&&m>=1&&m<=i.maxAnisotropic,"aniso samples must be between 1 and "),e.anisotropic=t.anisotropic}if("mipmap"in t){var h=!1;switch(typeof t.mipmap){case"string":w.parameter(t.mipmap,f,"invalid mipmap hint"),e.mipmapHint=f[t.mipmap],e.genMipmaps=!0,h=!0;break;case"boolean":h=e.genMipmaps=t.mipmap;break;case"object":w(Array.isArray(t.mipmap),"invalid mipmap type"),e.genMipmaps=!1,h=!0;break;default:w.raise("invalid mipmap type")}!h||"min"in t||(e.minFilter=9984)}}function Y(e,t){r.texParameteri(t,10241,e.minFilter),r.texParameteri(t,10240,e.magFilter),r.texParameteri(t,10242,e.wrapS),r.texParameteri(t,10243,e.wrapT),n.ext_texture_filter_anisotropic&&r.texParameteri(t,34046,e.anisotropic),e.genMipmaps&&(r.hint(33170,e.mipmapHint),r.generateMipmap(t))}var Q=0,ei={},ec=i.maxTextureUnits,ed=Array(ec).map(function(){return null});function ep(e){k.call(this),this.mipmask=0,this.internalformat=6408,this.id=Q++,this.refCount=1,this.target=e,this.texture=r.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new H,l.profile&&(this.stats={size:0})}function eA(e){r.activeTexture(33984),r.bindTexture(e.target,e.texture)}function eS(){var e=ed[0];e?r.bindTexture(e.target,e.texture):r.bindTexture(3553,null)}function eE(e){var t=e.texture;w(t,"must not double destroy texture");var n=e.unit,i=e.target;n>=0&&(r.activeTexture(33984+n),r.bindTexture(i,null),ed[n]=null),r.deleteTexture(t),e.texture=null,e.params=null,e.pixels=null,e.refCount=0,delete ei[e.id],s.textureCount--}return t(ep.prototype,{bind:function(){this.bindCount+=1;var e=this.unit;if(e<0){for(var t=0;t0)continue;n.unit=-1}ed[t]=this,e=t;break}e>=ec&&w.raise("insufficient number of texture units"),l.profile&&s.maxTextureUnits>l)-o,f.height=f.height||(n.height>>l)-s,w(n.type===f.type&&n.format===f.format&&n.internalformat===f.internalformat,"incompatible format for texture.subimage"),w(o>=0&&s>=0&&o+f.width<=n.width&&s+f.height<=n.height,"texture.subimage write out of bounds"),w(n.mipmask&1<>s;++s){var f=i>>s,u=o>>s;if(!f||!u)break;r.texImage2D(3553,s,n.format,f,u,0,n.format,n.type,null)}return eS(),l.profile&&(n.stats.size=ew(n.internalformat,n.type,i,o,!1,!1)),a},a._reglType="texture2d",a._texture=n,l.profile&&(a.stats=n.stats),a.destroy=function(){n.decRef()},a},createCube:function(e,t,n,a,o,f){var u=new ep(34067);ei[u.id]=u,s.cubeCount++;var c=Array(6);function d(e,t,r,n,a,o){var s,f=u.texInfo;for(H.call(f),s=0;s<6;++s)c[s]=G();if("number"!=typeof e&&e)if("object"==typeof e)if(t)W(c[0],e),W(c[1],t),W(c[2],r),W(c[3],n),W(c[4],a),W(c[5],o);else if(K(f,e),O(u,e),"faces"in e){var p=e.faces;for(w(Array.isArray(p)&&6===p.length,"cube faces must be a length 6 array"),s=0;s<6;++s)w("object"==typeof p[s]&&!!p[s],"invalid input for cube map face"),_(c[s],u),W(c[s],p[s])}else for(s=0;s<6;++s)W(c[s],e);else w.raise("invalid arguments to cube map");else{var m=0|e||1;for(s=0;s<6;++s)N(c[s],m,m)}for(_(u,c[0]),w.optional(function(){i.npotTextureCube||w(ee(u.width)&&ee(u.height),"your browser does not support non power or two texture dimensions")}),f.genMipmaps?u.mipmask=(c[0].width<<1)-1:u.mipmask=c[0].mipmask,w.textureCube(u,f,c,i),u.internalformat=c[0].internalformat,d.width=c[0].width,d.height=c[0].height,eA(u),s=0;s<6;++s)U(c[s],34069+s);for(Y(f,34067),eS(),l.profile&&(u.stats.size=ew(u.internalformat,u.type,d.width,d.height,f.genMipmaps,!0)),d.format=b[u.internalformat],d.type=x[u.type],d.mag=A[f.magFilter],d.min=S[f.minFilter],d.wrapS=E[f.wrapS],d.wrapT=E[f.wrapT],s=0;s<6;++s)q(c[s]);return d}return d(e,t,n,a,o,f),d.subimage=function(e,t,r,n,i){w(!!t,"must specify image data"),w("number"==typeof e&&e===(0|e)&&e>=0&&e<6,"invalid face");var a=0|r,o=0|n,s=0|i,l=j();return _(l,u),l.width=0,l.height=0,P(l,t),l.width=l.width||(u.width>>s)-a,l.height=l.height||(u.height>>s)-o,w(u.type===l.type&&u.format===l.format&&u.internalformat===l.internalformat,"incompatible format for texture.subimage"),w(a>=0&&o>=0&&a+l.width<=u.width&&o+l.height<=u.height,"texture.subimage write out of bounds"),w(u.mipmask&1<>i;++i)r.texImage2D(34069+n,i,u.format,t>>i,t>>i,0,u.format,u.type,null);return eS(),l.profile&&(u.stats.size=ew(u.internalformat,u.type,d.width,d.height,!1,!0)),d}},d._reglType="textureCube",d._texture=u,l.profile&&(d.stats=u.stats),d.destroy=function(){u.decRef()},d},clear:function(){for(var e=0;e>t,e.height>>t,0,e.internalformat,e.type,null);else for(var n=0;n<6;++n)r.texImage2D(34069+n,t,e.internalformat,e.width>>t,e.height>>t,0,e.internalformat,e.type,null);Y(e.texInfo,e.target)})},refresh:function(){for(var e=0;e=34069&&t<34075,"invalid cube map target")):"renderbuffer"===a?(n=i,t=36161):w.raise("invalid regl object for attachment"),new c(t,r,n)}function y(e,t,r,n,o){if(r){var s=i.create2D({width:e,height:t,format:n,type:o});return s._texture.refCount=0,new c(3553,s,null)}var l=a.create({width:e,height:t,format:n});return l._renderbuffer.refCount=0,new c(36161,null,l)}function v(e){return e&&(e.texture||e.renderbuffer)}function g(e,t,r){e&&(e.texture?e.texture.resize(t,r):e.renderbuffer&&e.renderbuffer.resize(t,r),e.width=t,e.height=r)}r.oes_texture_half_float&&u.push("half float","float16"),r.oes_texture_float&&u.push("float","float32");var b=0,x={};function A(){this.id=b++,x[this.id]=this,this.framebuffer=e.createFramebuffer(),this.width=0,this.height=0,this.colorAttachments=[],this.depthAttachment=null,this.stencilAttachment=null,this.depthStencilAttachment=null}function S(e){e.colorAttachments.forEach(d),d(e.depthAttachment),d(e.stencilAttachment),d(e.depthStencilAttachment)}function E(t){var r=t.framebuffer;w(r,"must not double destroy framebuffer"),e.deleteFramebuffer(r),t.framebuffer=null,o.framebufferCount--,delete x[t.id]}function T(t){e.bindFramebuffer(36160,t.framebuffer);var r,i=t.colorAttachments;for(r=0;r=2,"invalid shape for framebuffer"),o=P[0],d=P[1]}else"radius"in e&&(o=d=e.radius),"width"in e&&(o=e.width),"height"in e&&(d=e.height);("color"in e||"colors"in e)&&Array.isArray(b=e.color||e.colors)&&w(1===b.length||r.webgl_draw_buffers,"multiple render targets not supported"),!b&&("colorCount"in e&&w((k=0|e.colorCount)>0,"invalid color buffer count"),"colorTexture"in e&&(x=!!e.colorTexture,A="rgba4"),"colorType"in e&&(E=e.colorType,x?(w(r.oes_texture_float||"float"!==E&&"float32"!==E,"you must enable OES_texture_float in order to use floating point framebuffer objects"),w(r.oes_texture_half_float||"half float"!==E&&"float16"!==E,"you must enable OES_texture_half_float in order to use 16-bit floating point framebuffer objects")):"half float"===E||"float16"===E?(w(r.ext_color_buffer_half_float,"you must enable EXT_color_buffer_half_float to use 16-bit render buffers"),A="rgba16f"):("float"===E||"float32"===E)&&(w(r.webgl_color_buffer_float,"you must enable WEBGL_color_buffer_float in order to use 32-bit floating point renderbuffers"),A="rgba32f"),w.oneOf(E,u,"invalid color type")),"colorFormat"in e&&(A=e.colorFormat,l.indexOf(A)>=0?x=!0:f.indexOf(A)>=0?x=!1:w.optional(function(){x?w.oneOf(e.colorFormat,l,"invalid color format for texture"):w.oneOf(e.colorFormat,f,"invalid color format for renderbuffer")}))),("depthTexture"in e||"depthStencilTexture"in e)&&w(!(D=!!(e.depthTexture||e.depthStencilTexture))||r.webgl_depth_texture,"webgl_depth_texture extension not supported"),"depth"in e&&("boolean"==typeof e.depth?m=e.depth:(_=e.depth,g=!1)),"stencil"in e&&("boolean"==typeof e.stencil?g=e.stencil:(O=e.stencil,m=!1)),"depthStencil"in e&&("boolean"==typeof e.depthStencil?m=g=e.depthStencil:(C=e.depthStencil,m=!1,g=!1))}else o=d=1;var M=null,I=null,j=null,z=null;if(Array.isArray(b))M=b.map(h);else if(b)M=[h(b)];else for(i=0,M=Array(k);i=0||M[i].renderbuffer&&e_.indexOf(M[i].renderbuffer._renderbuffer.format)>=0,"framebuffer color attachment "+i+" is invalid"),M[i]&&M[i].texture){var R=eT[M[i].texture._texture.format]*ek[M[i].texture._texture.type];null===B?B=R:w(B===R,"all color attachments much have the same number of bits per pixel.")}return p(I,o,d),w(!I||I.texture&&6402===I.texture._texture.format||I.renderbuffer&&33189===I.renderbuffer._renderbuffer.format,"invalid depth attachment for framebuffer object"),p(j,o,d),w(!j||j.renderbuffer&&36168===j.renderbuffer._renderbuffer.format,"invalid stencil attachment for framebuffer object"),p(z,o,d),w(!z||z.texture&&34041===z.texture._texture.format||z.renderbuffer&&34041===z.renderbuffer._renderbuffer.format,"invalid depth-stencil attachment for framebuffer object"),S(a),a.width=o,a.height=d,a.colorAttachments=M,a.depthAttachment=I,a.stencilAttachment=j,a.depthStencilAttachment=z,c.color=M.map(v),c.depth=v(I),c.stencil=v(j),c.depthStencil=v(z),c.width=a.width,c.height=a.height,T(a),c}return o.framebufferCount++,c(e,i),t(c,{resize:function(e,t){w(s.next!==a,"can not resize a framebuffer which is currently in use");var r=Math.max(0|e,1),n=Math.max(0|t||r,1);if(r===a.width&&n===a.height)return c;for(var i=a.colorAttachments,o=0;oa.indexOf(s.next),"can not update framebuffer which is currently in use");var n,f,c={color:null},d=0,p=null,m="rgba",h="uint8",y=1;if("number"==typeof e)d=0|e;else if(e){if(w.type(e,"object","invalid arguments for framebuffer"),"shape"in e){var v=e.shape;w(Array.isArray(v)&&v.length>=2,"invalid shape for framebuffer"),w(v[0]===v[1],"cube framebuffer must be square"),d=v[0]}else"radius"in e&&(d=0|e.radius),"width"in e?(d=0|e.width,"height"in e&&w(e.height===d,"must be square")):"height"in e&&(d=0|e.height);("color"in e||"colors"in e)&&Array.isArray(p=e.color||e.colors)&&w(1===p.length||r.webgl_draw_buffers,"multiple render targets not supported"),!p&&("colorCount"in e&&w((y=0|e.colorCount)>0,"invalid color buffer count"),"colorType"in e&&(w.oneOf(e.colorType,u,"invalid color type"),h=e.colorType),"colorFormat"in e&&(m=e.colorFormat,w.oneOf(e.colorFormat,l,"invalid color format for texture"))),"depth"in e&&(c.depth=e.depth),"stencil"in e&&(c.stencil=e.stencil),"depthStencil"in e&&(c.depthStencil=e.depthStencil)}else d=1;if(p)if(Array.isArray(p))for(n=0,f=[];n0&&(c.depth=a[0].depth,c.stencil=a[0].stencil,c.depthStencil=a[0].depthStencil),a[n]?a[n](c):a[n]=k(c)}return t(o,{width:d,height:d,color:f})}return o(e),t(o,{faces:a,resize:function(e){var t,r=0|e;if(w(r>0&&r<=n.maxCubeMapSize,"invalid radius for cube fbo"),r===o.width)return o;var i=o.color;for(t=0;t0&&(r.push(t,"="),r.push.apply(r,eP(arguments)),r.push(";")),t},toString:function(){return eM([n.length>0?"var "+n.join(",")+";":"",eM(r)])}})}function a(){var e=i(),r=i(),n=e.toString,a=r.toString;function o(t,n){r(t,n,"=",e.def(t,n),";")}return t(function(){e.apply(e,eP(arguments))},{def:e.def,entry:e,exit:r,save:o,set:function(t,r,n){o(t,r),e(t,r,"=",n,";")},toString:function(){return n()+a()}})}var o=i(),s={};return{global:o,link:function(t){for(var i=0;i1){for(var k=[],_=[],O=0;O=0","missing vertex count")})):(s=f.def(m,".",tn),w.optional(function(){e.assert(f,s+">=0","missing vertex count")})),s);if("number"==typeof S){if(0===S)return}else r("if(",S,"){"),r.exit("}");g&&(u=v(ta),c=e.instancing);var E=y+".type",T=h.elements&&tT(h.elements)&&!h.vaoActive;function k(){function e(){r(c,".drawElementsInstancedANGLE(",[b,S,E,A+"<<(("+E+"-5121)>>1)",u],");")}function t(){r(c,".drawArraysInstancedANGLE(",[b,A,S,u],");")}y&&"null"!==y?T?e():(r("if(",y,"){"),e(),r("}else{"),t(),r("}")):t()}function _(){function e(){r(p+".drawElements("+[b,S,E,A+"<<(("+E+"-5121)>>1)"]+");")}function t(){r(p+".drawArrays("+[b,A,S]+");")}y&&"null"!==y?T?e():(r("if(",y,"){"),e(),r("}else{"),t(),r("}")):t()}g&&("number"!=typeof u||u>=0)?"string"==typeof u?(r("if(",u,">0){"),k(),r("}else if(",u,"<0){"),_(),r("}")):k():_()}function H(e,t,r,n,i){var a=R(),o=a.proc("body",i);return w.optional(function(){a.commandStr=t.commandStr,a.command=a.link(t.commandStr)}),g&&(a.instancing=o.def(a.shared.extensions,".angle_instanced_arrays")),e(a,o,r,n),a.compile().body}function Y(e,t,r,n){N(e,t),r.useVAO?r.drawVAO?t(e.shared.vao,".setVAO(",r.drawVAO.append(e,t),");"):t(e.shared.vao,".setVAO(",e.shared.vao,".targetVAO);"):(t(e.shared.vao,".setVAO(null);"),Z(e,t,r,n.attributes,function(){return!0})),G(e,t,r,n.uniforms,function(){return!0},!1),q(e,t,t,r)}function Q(e,t,r,n){function i(){return!0}e.batchId="a1",N(e,t),Z(e,t,r,n.attributes,i),G(e,t,r,n.uniforms,i,!1),q(e,t,t,r)}function X(e,t,r,n){N(e,t);var i=r.contextDep,a=t.def(),o=t.def();e.shared.props=o,e.batchId=a;var s=e.scope(),l=e.scope();function f(e){return e.contextDep&&i||e.propDep}function u(e){return!f(e)}if(t(s.entry,"for(",a,"=0;",a,"<","a1",";++",a,"){",o,"=","a0","[",a,"];",l,"}",s.exit),r.needsContext&&L(e,l,r.context),r.needsFramebuffer&&F(e,l,r.framebuffer),$(e,l,r.state,f),r.profile&&f(r.profile)&&U(e,l,r,!1,!0),n)r.useVAO?r.drawVAO?f(r.drawVAO)?l(e.shared.vao,".setVAO(",r.drawVAO.append(e,l),");"):s(e.shared.vao,".setVAO(",r.drawVAO.append(e,s),");"):s(e.shared.vao,".setVAO(",e.shared.vao,".targetVAO);"):(s(e.shared.vao,".setVAO(null);"),Z(e,s,r,n.attributes,u),Z(e,l,r,n.attributes,f)),G(e,s,r,n.uniforms,u,!1),G(e,l,r,n.uniforms,f,!0),q(e,s,l,r);else{var c=e.global.def("{}"),d=r.shader.progVar.append(e,l),p=l.def(d,".id"),m=l.def(c,"[",p,"]");l(e.shared.gl,".useProgram(",d,".program);","if(!",m,"){",m,"=",c,"[",p,"]=",e.link(function(t){return H(Q,e,r,t,2)}),"(",d,");}",m,".call(this,a0[",a,"],",a,");")}}function ee(e,t,r){var n=t.static[r];if(n&&function(e){if(!("object"!=typeof e||J(e))){for(var t=Object.keys(e),r=0;r=0,'unknown parameter "'+t+'"',d.commandStr)})}t(P),t(I)});var j=function(e,t){var r=e.static;if("string"==typeof r[te]&&"string"==typeof r[e9]){if(Object.keys(t.dynamic).length>0)return null;var n=t.static,i=Object.keys(n);if(i.length>0&&"number"==typeof n[i[0]]){for(var a=[],o=0;o=0,"invalid "+e,r.commandStr)):l=!1,"height"in s?(o=0|s.height,w.command(o>=0,"invalid "+e,r.commandStr)):l=!1,new tE(!l&&t&&t.thisDep,!l&&t&&t.contextDep,!l&&t&&t.propDep,function(e,t){var r=e.shared.context,n=a;"width"in s||(n=t.def(r,".",tl,"-",f));var i=o;return"height"in s||(i=t.def(r,".",tf,"-",u)),[f,u,n,i]})}if(e in i){var c=i[e],d=t_(c,function(t,r){var n=t.invoke(r,c);w.optional(function(){t.assert(r,n+"&&typeof "+n+'==="object"',"invalid "+e)});var i=t.shared.context,a=r.def(n,".x|0"),o=r.def(n,".y|0"),s=r.def('"width" in ',n,"?",n,".width|0:","(",i,".",tl,"-",a,")"),l=r.def('"height" in ',n,"?",n,".height|0:","(",i,".",tf,"-",o,")");return w.optional(function(){t.assert(r,s+">=0&&"+l+">=0","invalid "+e)}),[a,o,s,l]});return t&&(d.thisDep=d.thisDep||t.thisDep,d.contextDep=d.contextDep||t.contextDep,d.propDep=d.propDep||t.propDep),d}return t?new tE(t.thisDep,t.contextDep,t.propDep,function(e,t){var r=e.shared.context;return[0,0,t.def(r,".",tl),t.def(r,".",tf)]}):null}var o=a(e4);if(o){var s=o;o=new tE(o.thisDep,o.contextDep,o.propDep,function(e,t){var r=s.append(e,t),n=e.shared.context;return t.set(n,"."+tu,r[2]),t.set(n,"."+tc,r[3]),r})}return{viewport:o,scissor_box:a(e6)}}(e,z,d),R=function(e,t){var r=e.static,n=e.dynamic,i={},a=!1,s=function(){if("vao"in r){var e=r.vao;return null!==e&&null===u.getVAO(e)&&(e=u.createVAO(e)),a=!0,i.vao=e,tk(function(t){var r=u.getVAO(e);return r?t.link(r):"null"})}if("vao"in n){a=!0;var t=n.vao;return t_(t,function(e,r){var n=e.invoke(r,t);return r.def(e.shared.vao+".getVAO("+n+")")})}return null}(),l=!1,f=function(){if(tt in r){var e=r[tt];if(i.elements=e,tA(e)){var f=i.elements=o.create(e,!0);e=o.getElements(f),l=!0}else e&&(e=o.getElements(e),l=!0,w.command(e,"invalid elements",t.commandStr));var u=tk(function(t,r){if(e){var n=t.link(e);return t.ELEMENTS=n,n}return t.ELEMENTS=null,null});return u.value=e,u}if(tt in n){l=!0;var c=n[tt];return t_(c,function(e,t){var r=e.shared,n=r.isBufferArgs,i=r.elements,a=e.invoke(t,c),o=t.def("null"),s=t.def(n,"(",a,")"),l=e.cond(s).then(o,"=",i,".createStream(",a,");").else(o,"=",i,".getElements(",a,");");return w.optional(function(){e.assert(l.else,"!"+a+"||"+o,"invalid elements")}),t.entry(l),t.exit(e.cond(s).then(i,".destroyStream(",o,");")),e.ELEMENTS=o,o})}return a?new tE(s.thisDep,s.contextDep,s.propDep,function(e,t){return t.def(e.shared.vao+".currentVAO?"+e.shared.elements+".getElements("+e.shared.vao+".currentVAO.elements):null")}):null}();function c(e,o){if(e in r){var f=0|r[e];return o?i.offset=f:i.instances=f,w.command(!o||f>=0,"invalid "+e,t.commandStr),tk(function(e,t){return o&&(e.OFFSET=f),f})}if(e in n){var u=n[e];return t_(u,function(t,r){var n=t.invoke(r,u);return o&&(t.OFFSET=n,w.optional(function(){t.assert(r,n+">=0","invalid "+e)})),n})}if(o){if(l)return tk(function(e,t){return e.OFFSET=0,0});else if(a)return new tE(s.thisDep,s.contextDep,s.propDep,function(e,t){return t.def(e.shared.vao+".currentVAO?"+e.shared.vao+".currentVAO.offset:0")})}else if(a)return new tE(s.thisDep,s.contextDep,s.propDep,function(e,t){return t.def(e.shared.vao+".currentVAO?"+e.shared.vao+".currentVAO.instances:-1")});return null}var d=c(ti,!0),p=function(){if(tr in r){var e=r[tr];return i.primitive=e,w.commandParameter(e,K,"invalid primitve",t.commandStr),tk(function(t,r){return K[e]})}if(tr in n){var o=n[tr];return t_(o,function(e,t){var r=e.constants.primTypes,n=e.invoke(t,o);return w.optional(function(){e.assert(t,n+" in "+r,"invalid primitive, must be one of "+Object.keys(K))}),t.def(r,"[",n,"]")})}if(l)if(!tT(f))return new tE(f.thisDep,f.contextDep,f.propDep,function(e,t){var r=e.ELEMENTS;return t.def(r,"?",r,".primType:",4)});else if(f.value)return tk(function(e,t){return t.def(e.ELEMENTS,".primType")});else return tk(function(){return 4});return a?new tE(s.thisDep,s.contextDep,s.propDep,function(e,t){return t.def(e.shared.vao+".currentVAO?"+e.shared.vao+".currentVAO.primitive:4")}):null}(),m=function(){if(tn in r){var e=0|r[tn];return i.count=e,w.command("number"==typeof e&&e>=0,"invalid vertex count",t.commandStr),tk(function(){return e})}if(tn in n){var o=n[tn];return t_(o,function(e,t){var r=e.invoke(t,o);return w.optional(function(){e.assert(t,"typeof "+r+'==="number"&&'+r+">=0&&"+r+"===("+r+"|0)","invalid vertex count")}),r})}if(l)if(tT(f))if(f)if(d)return new tE(d.thisDep,d.contextDep,d.propDep,function(e,t){var r=t.def(e.ELEMENTS,".vertCount-",e.OFFSET);return w.optional(function(){e.assert(t,r+">=0","invalid vertex offset/element buffer too small")}),r});else return tk(function(e,t){return t.def(e.ELEMENTS,".vertCount")});else{var u=tk(function(){return -1});return w.optional(function(){u.MISSING=!0}),u}else{var c=new tE(f.thisDep||d.thisDep,f.contextDep||d.contextDep,f.propDep||d.propDep,function(e,t){var r=e.ELEMENTS;return e.OFFSET?t.def(r,"?",r,".vertCount-",e.OFFSET,":-1"):t.def(r,"?",r,".vertCount:-1")});return w.optional(function(){c.DYNAMIC=!0}),c}return a?new tE(s.thisDep,s.contextDep,s.propDep,function(e,t){return t.def(e.shared.vao,".currentVAO?",e.shared.vao,".currentVAO.count:-1")}):null}();return{elements:f,primitive:p,count:m,instances:c(ta,!1),offset:d,vao:s,vaoActive:a,elementsActive:l,static:i}}(e,d),L=(p=e.static,m=e.dynamic,h={},T.forEach(function(e){var t=D(e);function r(r,n){if(e in p){var i=r(p[e]);h[t]=tk(function(){return i})}else if(e in m){var a=m[e];h[t]=t_(a,function(e,t){return n(e,t,e.invoke(t,a))})}}switch(e){case eU:case ez:case ej:case eJ:case eF:case e5:case eH:case eY:case eQ:case eN:return r(function(t){return w.commandType(t,"boolean",e,d.commandStr),t},function(t,r,n){return w.optional(function(){t.assert(r,"typeof "+n+'==="boolean"',"invalid flag "+e,t.commandStr)}),n});case eV:return r(function(t){return w.commandParameter(t,tg,"invalid "+e,d.commandStr),tg[t]},function(t,r,n){var i=t.constants.compareFuncs;return w.optional(function(){t.assert(r,n+" in "+i,"invalid "+e+", must be one of "+Object.keys(tg))}),r.def(i,"[",n,"]")});case e$:return r(function(e){return w.command(J(e)&&2===e.length&&"number"==typeof e[0]&&"number"==typeof e[1]&&e[0]<=e[1],"depth range is 2d array",d.commandStr),e},function(e,t,r){return w.optional(function(){e.assert(t,e.shared.isArrayLike+"("+r+")&&"+r+".length===2&&typeof "+r+'[0]==="number"&&typeof '+r+'[1]==="number"&&'+r+"[0]<="+r+"[1]","depth range must be a 2d array")}),[t.def("+",r,"[0]"),t.def("+",r,"[1]")]});case eL:return r(function(e){w.commandType(e,"object","blend.func",d.commandStr);var r="srcRGB"in e?e.srcRGB:e.src,n="srcAlpha"in e?e.srcAlpha:e.src,i="dstRGB"in e?e.dstRGB:e.dst,a="dstAlpha"in e?e.dstAlpha:e.dst;return w.commandParameter(r,ty,t+".srcRGB",d.commandStr),w.commandParameter(n,ty,t+".srcAlpha",d.commandStr),w.commandParameter(i,ty,t+".dstRGB",d.commandStr),w.commandParameter(a,ty,t+".dstAlpha",d.commandStr),w.command(-1===tv.indexOf(r+", "+i),"unallowed blending combination (srcRGB, dstRGB) = ("+r+", "+i+")",d.commandStr),[ty[r],ty[i],ty[n],ty[a]]},function(t,r,n){var i=t.constants.blendFuncs;function a(a,o){var s=r.def('"',a,o,'" in ',n,"?",n,".",a,o,":",n,".",a);return w.optional(function(){t.assert(r,s+" in "+i,"invalid "+e+"."+a+o+", must be one of "+Object.keys(ty))}),s}w.optional(function(){t.assert(r,n+"&&typeof "+n+'==="object"',"invalid blend func, must be an object")});var o=a("src","RGB"),s=a("dst","RGB");w.optional(function(){var e=t.constants.invalidBlendCombinations;t.assert(r,e+".indexOf("+o+'+", "+'+s+") === -1 ","unallowed blending combination for (srcRGB, dstRGB)")});var l=r.def(i,"[",o,"]"),f=r.def(i,"[",a("src","Alpha"),"]");return[l,r.def(i,"[",s,"]"),f,r.def(i,"[",a("dst","Alpha"),"]")]});case eR:return r(function(t){return"string"==typeof t?(w.commandParameter(t,v,"invalid "+e,d.commandStr),[v[t],v[t]]):"object"==typeof t?(w.commandParameter(t.rgb,v,e+".rgb",d.commandStr),w.commandParameter(t.alpha,v,e+".alpha",d.commandStr),[v[t.rgb],v[t.alpha]]):void w.commandRaise("invalid blend.equation",d.commandStr)},function(t,r,n){var i=t.constants.blendEquations,a=r.def(),o=r.def(),s=t.cond("typeof ",n,'==="string"');return w.optional(function(){function r(e,r,n){t.assert(e,n+" in "+i,"invalid "+r+", must be one of "+Object.keys(v))}r(s.then,e,n),t.assert(s.else,n+"&&typeof "+n+'==="object"',"invalid "+e),r(s.else,e+".rgb",n+".rgb"),r(s.else,e+".alpha",n+".alpha")}),s.then(a,"=",o,"=",i,"[",n,"];"),s.else(a,"=",i,"[",n,".rgb];",o,"=",i,"[",n,".alpha];"),r(s),[a,o]});case eB:return r(function(e){return w.command(J(e)&&4===e.length,"blend.color must be a 4d array",d.commandStr),M(4,function(t){return+e[t]})},function(e,t,r){return w.optional(function(){e.assert(t,e.shared.isArrayLike+"("+r+")&&"+r+".length===4","blend.color must be a 4d array")}),M(4,function(e){return t.def("+",r,"[",e,"]")})});case e0:return r(function(e){return w.commandType(e,"number",t,d.commandStr),0|e},function(e,t,r){return w.optional(function(){e.assert(t,"typeof "+r+'==="number"',"invalid stencil.mask")}),t.def(r,"|0")});case e1:return r(function(r){w.commandType(r,"object",t,d.commandStr);var n=r.cmp||"keep",i=r.ref||0,a="mask"in r?r.mask:-1;return w.commandParameter(n,tg,e+".cmp",d.commandStr),w.commandType(i,"number",e+".ref",d.commandStr),w.commandType(a,"number",e+".mask",d.commandStr),[tg[n],i,a]},function(e,t,r){var n=e.constants.compareFuncs;return w.optional(function(){function i(){e.assert(t,Array.prototype.join.call(arguments,""),"invalid stencil.func")}i(r+"&&typeof ",r,'==="object"'),i('!("cmp" in ',r,")||(",r,".cmp in ",n,")")}),[t.def('"cmp" in ',r,"?",n,"[",r,".cmp]",":",7680),t.def(r,".ref|0"),t.def('"mask" in ',r,"?",r,".mask|0:-1")]});case e2:case e3:return r(function(r){w.commandType(r,"object",t,d.commandStr);var n=r.fail||"keep",i=r.zfail||"keep",a=r.zpass||"keep";return w.commandParameter(n,tb,e+".fail",d.commandStr),w.commandParameter(i,tb,e+".zfail",d.commandStr),w.commandParameter(a,tb,e+".zpass",d.commandStr),[e===e3?1029:1028,tb[n],tb[i],tb[a]]},function(t,r,n){var i=t.constants.stencilOps;function a(a){return w.optional(function(){t.assert(r,'!("'+a+'" in '+n+")||("+n+"."+a+" in "+i+")","invalid "+e+"."+a+", must be one of "+Object.keys(tb))}),r.def('"',a,'" in ',n,"?",i,"[",n,".",a,"]:",7680)}return w.optional(function(){t.assert(r,n+"&&typeof "+n+'==="object"',"invalid "+e)}),[e===e3?1029:1028,a("fail"),a("zfail"),a("zpass")]});case eK:return r(function(e){w.commandType(e,"object",t,d.commandStr);var r=0|e.factor,n=0|e.units;return w.commandType(r,"number",t+".factor",d.commandStr),w.commandType(n,"number",t+".units",d.commandStr),[r,n]},function(t,r,n){return w.optional(function(){t.assert(r,n+"&&typeof "+n+'==="object"',"invalid "+e)}),[r.def(n,".factor|0"),r.def(n,".units|0")]});case eZ:return r(function(e){var r=0;return"front"===e?r=1028:"back"===e&&(r=1029),w.command(!!r,t,d.commandStr),r},function(e,t,r){return w.optional(function(){e.assert(t,r+'==="front"||'+r+'==="back"',"invalid cull.face")}),t.def(r,'==="front"?',1028,":",1029)});case eq:return r(function(e){return w.command("number"==typeof e&&e>=i.lineWidthDims[0]&&e<=i.lineWidthDims[1],"invalid line width, must be a positive number between "+i.lineWidthDims[0]+" and "+i.lineWidthDims[1],d.commandStr),e},function(e,t,r){return w.optional(function(){e.assert(t,"typeof "+r+'==="number"&&'+r+">="+i.lineWidthDims[0]+"&&"+r+"<="+i.lineWidthDims[1],"invalid line width")}),r});case eG:return r(function(e){return w.commandParameter(e,tw,t,d.commandStr),tw[e]},function(e,t,r){return w.optional(function(){e.assert(t,r+'==="cw"||'+r+'==="ccw"',"invalid frontFace, must be one of cw,ccw")}),t.def(r+'==="cw"?2304:2305')});case eW:return r(function(e){return w.command(J(e)&&4===e.length,"color.mask must be length 4 array",d.commandStr),e.map(function(e){return!!e})},function(e,t,r){return w.optional(function(){e.assert(t,e.shared.isArrayLike+"("+r+")&&"+r+".length===4","invalid color.mask")}),M(4,function(e){return"!!"+r+"["+e+"]"})});case eX:return r(function(e){w.command("object"==typeof e&&e,t,d.commandStr);var r="value"in e?e.value:1,n=!!e.invert;return w.command("number"==typeof r&&r>=0&&r<=1,"sample.coverage.value must be a number between 0 and 1",d.commandStr),[r,n]},function(e,t,r){return w.optional(function(){e.assert(t,r+"&&typeof "+r+'==="object"',"invalid sample.coverage")}),[t.def('"value" in ',r,"?+",r,".value:1"),t.def("!!",r,".invert")]})}}),h),F=function(e,t,n){var i,a=e.static,o=e.dynamic;function s(e){if(e in a){var t=r.id(a[e]);w.optional(function(){c.shader(tx[e],t,w.guessCommand())});var n=tk(function(){return t});return n.id=t,n}if(e in o){var i=o[e];return t_(i,function(t,r){var n=t.invoke(r,i),a=r.def(t.shared.strings,".id(",n,")");return w.optional(function(){r(t.shared.shader,".shader(",tx[e],",",a,",",t.command,");")}),a})}return null}var l=s(te),f=s(e9),u=null;return tT(l)&&tT(f)?(u=c.program(f.id,l.id,null,n),i=tk(function(e,t){return e.link(u)})):i=new tE(l&&l.thisDep||f&&f.thisDep,l&&l.contextDep||f&&f.contextDep,l&&l.propDep||f&&f.propDep,function(e,t){var r,n,i=e.shared.shader;r=l?l.append(e,t):t.def(i,".",te),n=f?f.append(e,t):t.def(i,".",e9);var a=i+".program("+n+","+r;return w.optional(function(){a+=","+e.command}),t.def(a+")")}),{frag:l,vert:f,progVar:i,program:u}}(e,0,j);function V(e){var t=B[e];t&&(L[e]=t)}V(e4),V(D(e6));var $=Object.keys(L).length>0,N={framebuffer:z,draw:R,shader:F,state:L,dirty:$,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}};if(N.profile=function(e){var t,r=e.static,n=e.dynamic;if(e8 in r){var i=!!r[e8];(t=tk(function(e,t){return i})).enable=i}else if(e8 in n){var a=n[e8];t=t_(a,function(e,t){return e.invoke(t,a)})}return t}(e,d),b=s.static,x=s.dynamic,A={},Object.keys(b).forEach(function(e){var t,r=b[e];if("number"==typeof r||"boolean"==typeof r)t=tk(function(){return r});else if("function"==typeof r){var n=r._reglType;"texture2d"===n||"textureCube"===n?t=tk(function(e){return e.link(r)}):"framebuffer"===n||"framebufferCube"===n?(w.command(r.color.length>0,'missing color attachment for framebuffer sent to uniform "'+e+'"',d.commandStr),t=tk(function(e){return e.link(r.color[0])})):w.commandRaise('invalid data for uniform "'+e+'"',d.commandStr)}else J(r)?t=tk(function(t){return t.global.def("[",M(r.length,function(n){return w.command("number"==typeof r[n]||"boolean"==typeof r[n],"invalid uniform "+e,t.commandStr),r[n]}),"]")}):w.commandRaise('invalid or missing data for uniform "'+e+'"',d.commandStr);t.value=r,A[e]=t}),Object.keys(x).forEach(function(e){var t=x[e];A[e]=t_(t,function(e,r){return e.invoke(r,t)})}),N.uniforms=A,N.drawVAO=N.scopeVAO=R.vao,!N.drawVAO&&F.program&&!j&&n.angle_instanced_arrays&&R.static.elements){var U=!0,Z=F.program.attributes.map(function(e){var r=t.static[e];return U=U&&!!r,r});if(U&&Z.length>0){var G=u.getVAO(u.createVAO({attributes:Z,elements:R.static.elements}));N.drawVAO=new tE(null,null,null,function(e,t){return e.link(G)}),N.useVAO=!0}}return j?N.useVAO=!0:(S=t.static,E=t.dynamic,k={},Object.keys(S).forEach(function(e){var t=S[e],n=r.id(e),i=new y;if(tA(t))i.state=1,i.buffer=a.getBuffer(a.create(t,34962,!1,!0)),i.type=0;else{var o=a.getBuffer(t);if(o)i.state=1,i.buffer=o,i.type=0;else if(w.command("object"==typeof t&&t,"invalid data for attribute "+e,d.commandStr),"constant"in t){var s=t.constant;i.buffer="null",i.state=2,"number"==typeof s?i.x=s:(w.command(J(s)&&s.length>0&&s.length<=4,"invalid constant for attribute "+e,d.commandStr),eI.forEach(function(e,t){t=0,'invalid offset for attribute "'+e+'"',d.commandStr);var f=0|t.stride;w.command(f>=0&&f<256,'invalid stride for attribute "'+e+'", must be integer betweeen [0, 255]',d.commandStr);var u=0|t.size;w.command(!("size"in t)||u>0&&u<=4,'invalid size for attribute "'+e+'", must be 1,2,3,4',d.commandStr);var c=!!t.normalized,p=0;"type"in t&&(w.commandParameter(t.type,W,"invalid type for attribute "+e,d.commandStr),p=W[t.type]);var m=0|t.divisor;w.optional(function(){"divisor"in t&&(w.command(0===m||g,'cannot specify divisor for attribute "'+e+'", instancing not supported',d.commandStr),w.command(m>=0,'invalid divisor for attribute "'+e+'"',d.commandStr));var r=d.commandStr,n=["buffer","offset","divisor","normalized","type","size","stride"];Object.keys(t).forEach(function(t){w.command(n.indexOf(t)>=0,'unknown parameter "'+t+'" for attribute pointer "'+e+'" (valid parameters are '+n+")",r)})}),i.buffer=o,i.state=1,i.size=u,i.normalized=c,i.type=p||o.dtype,i.offset=l,i.stride=f,i.divisor=m}}k[e]=tk(function(e,t){var r=e.attribCache;if(n in r)return r[n];var a={isStream:!1};return Object.keys(i).forEach(function(e){a[e]=i[e]}),i.buffer&&(a.buffer=e.link(i.buffer),a.type=a.type||a.buffer+".dtype"),r[n]=a,a})}),Object.keys(E).forEach(function(e){var t=E[e];k[e]=t_(t,function(r,n){var i=r.invoke(n,t),a=r.shared,o=r.constants,s=a.isBufferArgs,l=a.buffer;w.optional(function(){r.assert(n,i+"&&(typeof "+i+'==="object"||typeof '+i+'==="function")&&('+s+"("+i+")||"+l+".getBuffer("+i+")||"+l+".getBuffer("+i+".buffer)||"+s+"("+i+'.buffer)||("constant" in '+i+"&&(typeof "+i+'.constant==="number"||'+a.isArrayLike+"("+i+".constant))))",'invalid dynamic attribute "'+e+'"')});var f={isStream:n.def(!1)},u=new y;u.state=1,Object.keys(u).forEach(function(e){f[e]=n.def(""+u[e])});var c=f.buffer,d=f.type;function p(e){n(f[e],"=",i,".",e,"|0;")}return n("if(",s,"(",i,")){",f.isStream,"=true;",c,"=",l,".createStream(",34962,",",i,");",d,"=",c,".dtype;","}else{",c,"=",l,".getBuffer(",i,");","if(",c,"){",d,"=",c,".dtype;",'}else if("constant" in ',i,"){",f.state,"=",2,";","if(typeof "+i+'.constant === "number"){',f[eI[0]],"=",i,".constant;",eI.slice(1).map(function(e){return f[e]}).join("="),"=0;","}else{",eI.map(function(e,t){return f[e]+"="+i+".constant.length>"+t+"?"+i+".constant["+t+"]:0;"}).join(""),"}}else{","if(",s,"(",i,".buffer)){",c,"=",l,".createStream(",34962,",",i,".buffer);","}else{",c,"=",l,".getBuffer(",i,".buffer);","}",d,'="type" in ',i,"?",o.glTypes,"[",i,".type]:",c,".dtype;",f.normalized,"=!!",i,".normalized;"),p("size"),p("offset"),p("stride"),p("divisor"),n("}}"),n.exit("if(",f.isStream,"){",l,".destroyStream(",c,");","}"),f})}),N.attributes=k),_=f.static,O=f.dynamic,C={},Object.keys(_).forEach(function(e){var t=_[e];C[e]=tk(function(e,r){return"number"==typeof t||"boolean"==typeof t?""+t:e.link(t)})}),Object.keys(O).forEach(function(e){var t=O[e];C[e]=t_(t,function(e,r){return e.invoke(r,t)})}),N.context=C,N}(e,s,f,d,m);!function(e,t){var r=e.proc("draw",1);N(e,r),L(e,r,t.context),F(e,r,t.framebuffer),V(e,r,t),$(e,r,t.state),U(e,r,t,!1,!0);var n=t.shader.progVar.append(e,r);if(r(e.shared.gl,".useProgram(",n,".program);"),t.shader.program)Y(e,r,t,t.shader.program);else{r(e.shared.vao,".setVAO(null);");var i=e.global.def("{}"),a=r.def(n,".id"),o=r.def(i,"[",a,"]");r(e.cond(o).then(o,".call(this,a0);").else(o,"=",i,"[",a,"]=",e.link(function(r){return H(Y,e,t,r,1)}),"(",n,");",o,".call(this,a0);"))}Object.keys(t.state).length>0&&r(e.shared.current,".dirty=true;"),e.shared.vao&&r(e.shared.vao,".setVAO(null);")}(m,h);var b=m.proc("scope",3);m.batchId="a2";var x=m.shared,A=x.current;function S(e){var t=h.shader[e];t&&b.set(x.shader,"."+e,t.append(m,b))}return L(m,b,h.context),h.framebuffer&&h.framebuffer.append(m,b),tS(Object.keys(h.state)).forEach(function(e){var t=h.state[e].append(m,b);J(t)?t.forEach(function(t,r){b.set(m.next[e],"["+r+"]",t)}):b.set(x.next,"."+e,t)}),U(m,b,h,!0,!0),[tt,ti,tn,ta,tr].forEach(function(e){var t=h.draw[e];t&&b.set(x.draw,"."+e,""+t.append(m,b))}),Object.keys(h.uniforms).forEach(function(e){var t=h.uniforms[e].append(m,b);Array.isArray(t)&&(t="["+t.join()+"]"),b.set(x.uniforms,"["+r.id(e)+"]",t)}),Object.keys(h.attributes).forEach(function(e){var t=h.attributes[e].append(m,b),r=m.scopeAttrib(e);Object.keys(new y).forEach(function(e){b.set(r,"."+e,t[e])})}),h.scopeVAO&&b.set(x.vao,".targetVAO",h.scopeVAO.append(m,b)),S(e9),S(te),Object.keys(h.state).length>0&&(b(A,".dirty=true;"),b.exit(A,".dirty=true;")),b("a1(",m.shared.context,",a0,",m.batchId,");"),!function(e,t){var r=e.proc("batch",2);e.batchId="0",N(e,r);var n=!1,i=!0;Object.keys(t.context).forEach(function(e){n=n||t.context[e].propDep}),n||(L(e,r,t.context),i=!1);var a=t.framebuffer,o=!1;function s(e){return e.contextDep&&n||e.propDep}a?(a.propDep?n=o=!0:a.contextDep&&n&&(o=!0),o||F(e,r,a)):F(e,r,null),t.state.viewport&&t.state.viewport.propDep&&(n=!0),V(e,r,t),$(e,r,t.state,function(e){return!s(e)}),t.profile&&s(t.profile)||U(e,r,t,!1,"a1"),t.contextDep=n,t.needsContext=i,t.needsFramebuffer=o;var l=t.shader.progVar;if(l.contextDep&&n||l.propDep)X(e,r,t,null);else{var f=l.append(e,r);if(r(e.shared.gl,".useProgram(",f,".program);"),t.shader.program)X(e,r,t,t.shader.program);else{r(e.shared.vao,".setVAO(null);");var u=e.global.def("{}"),c=r.def(f,".id"),d=r.def(u,"[",c,"]");r(e.cond(d).then(d,".call(this,a0,a1);").else(d,"=",u,"[",c,"]=",e.link(function(r){return H(X,e,t,r,2)}),"(",f,");",d,".call(this,a0,a1);"))}}Object.keys(t.state).length>0&&r(e.shared.current,".dirty=true;"),e.shared.vao&&r(e.shared.vao,".setVAO(null);")}(m,h),t(m.compile(),{destroy:function(){h.shader.program.destroy()}})}}}(o,u,d,b,x,A,0,N,{},E,I,g,v,p,a),Q=function(t,r,n,i,a,o,s){function l(l){null===r.next?(w(a.preserveDrawingBuffer,'you must create a webgl context with "preserveDrawingBuffer":true in order to read pixels from the drawing buffer'),f=5121):(w(null!==r.next.colorAttachments[0].texture,"You cannot read from a renderbuffer"),f=r.next.colorAttachments[0].texture._texture.type,w.optional(function(){o.oes_texture_float?(w(5121===f||5126===f,"Reading from a framebuffer is only allowed for the types 'uint8' and 'float'"),5126===f&&w(s.readFloat,"Reading 'float' values is not permitted in your browser. For a fallback, please see: https://www.npmjs.com/package/glsl-read-float")):w(5121===f,"Reading from a framebuffer is only allowed for the type 'uint8'")}));var f,u=0,c=0,d=i.framebufferWidth,p=i.framebufferHeight,m=null;e(l)?m=l:l&&(w.type(l,"object","invalid arguments to regl.read()"),u=0|l.x,c=0|l.y,w(u>=0&&u=0&&c0&&d+u<=i.framebufferWidth,"invalid width for read pixels"),w(p>0&&p+c<=i.framebufferHeight,"invalid height for read pixels"),n();var h=d*p*4;return m||(5121===f?m=new Uint8Array(h):5126===f&&(m=m||new Float32Array(h))),w.isTypedArray(m,"data buffer for regl.read() must be a typedarray"),w(m.byteLength>=h,"data buffer for regl.read() too small"),t.pixelStorei(3333,4),t.readPixels(u,c,d,p,6408,f,m),m}return function(e){var t;return e&&"framebuffer"in e?(r.setFBO({framebuffer:e.framebuffer},function(){t=l(e)}),t):l(e)}}(o,N,Y.procs.poll,v,s,d,b),ei=Y.next,ec=o.canvas,ed=[],ep=[],eA=[],to=[a.onDestroy],ts=null;function td(){if(0===ed.length){p&&p.update(),ts=null;return}ts=O.next(td),tN();for(var e=ed.length-1;e>=0;--e){var t=ed[e];t&&t(v,null,0)}o.flush(),p&&p.update()}function tI(){!ts&&ed.length>0&&(ts=O.next(td))}function tj(){ts&&(O.cancel(td),ts=null)}function tz(e){e.preventDefault(),l=!0,tj(),ep.forEach(function(e){e()})}function tB(e){o.getError(),l=!1,f.restore(),I.restore(),x.restore(),j.restore(),$.restore(),N.restore(),E.restore(),p&&p.restore(),Y.procs.refresh(),tI(),eA.forEach(function(e){e()})}function tR(e){function r(e,t){var r={},n={};return Object.keys(e).forEach(function(i){var a=e[i];if(k(a)){n[i]=_(a,i);return}if(t&&Array.isArray(a)){for(var o=0;o0)return c.call(this,function(e){for(;p.length=0,"cannot cancel a frame twice"),ed[t]=function e(){var t=tM(ed,e);ed[t]=ed[ed.length-1],ed.length-=1,ed.length<=0&&tj()}}}}function t$(){var e=ei.viewport,t=ei.scissor_box;e[0]=e[1]=t[0]=t[1]=0,v.viewportWidth=v.framebufferWidth=v.drawingBufferWidth=e[2]=t[2]=o.drawingBufferWidth,v.viewportHeight=v.framebufferHeight=v.drawingBufferHeight=e[3]=t[3]=o.drawingBufferHeight}function tN(){v.tick+=1,v.time=tU(),t$(),Y.procs.poll()}function tW(){j.refresh(),t$(),Y.procs.refresh(),p&&p.update()}function tU(){return(C()-m)/1e3}tW();var tZ=t(tR,{clear:function(e){if(w("object"==typeof e&&e,"regl.clear() takes an object as input"),"framebuffer"in e)if(e.framebuffer&&"framebufferCube"===e.framebuffer_reglType)for(var r=0;r<6;++r)tL(t({framebuffer:e.framebuffer.faces[r]},e),tF);else tL(e,tF);else tF(null,e)},prop:T.bind(null,1),context:T.bind(null,2),this:T.bind(null,3),draw:tR({}),buffer:function(e){return x.create(e,34962,!1,!1)},elements:function(e){return A.create(e,!1)},texture:j.create2D,cube:j.createCube,renderbuffer:$.create,framebuffer:N.create,framebufferCube:N.createCube,vao:E.createVAO,attributes:s,frame:tV,on:function(e,t){var r;switch(w.type(t,"function","listener callback must be a function"),e){case"frame":return tV(t);case"lost":r=ep;break;case"restore":r=eA;break;case"destroy":r=to;break;default:w.raise("invalid event, must be one of frame,lost,restore,destroy")}return r.push(t),{cancel:function(){for(var e=0;e=0},read:Q,destroy:function(){ed.length=0,tj(),ec&&(ec.removeEventListener(tD,tz),ec.removeEventListener(tP,tB)),I.clear(),N.clear(),$.clear(),E.clear(),j.clear(),A.clear(),x.clear(),p&&p.clear(),to.forEach(function(e){e()})},_gl:o,_refresh:tW,poll:function(){tN(),p&&p.update()},now:tU,stats:c});return a.onDone(null,tZ),tZ}}()},42030,e=>{"use strict";let t,r=new window.BroadcastChannel("pub-sub-es"),n=(e,t)=>"string"==typeof e&&t?e.toLowerCase():e,i=(e,t)=>(r,i,a=1/0)=>{let o=n(r,t?.caseInsensitive),s=e[o]||[];return s.push({handler:i,times:+a||1/0}),e[o]=s,{event:o,handler:i}};function a(e,t){return function(r,i){let a,o;"object"==typeof r?(o=r.handler,a=r.event):(a=r,o=i);let s=e[n(a,t?.caseInsensitive)];if(!s)return;let l=s.findIndex(e=>e.handler===o);-1===l||l>=s.length||s.splice(l,1)}}let o=(e,t)=>{let i=a(e);return(...a)=>{let[o,s,l]=a,f=n(o,t?.caseInsensitive),u=e[f];if(!u)return;let c=[...u];for(let e of c)--e.times<1&&i(f,e.handler);let d=l?.async!==void 0?l.async:t?.async,p=()=>{for(let e of c)e.handler(s)};if(d?setTimeout(p,0):p(),t?.isGlobal&&!l?.isNoGlobalBroadcast)try{r.postMessage({event:f,news:s})}catch(e){if(e instanceof Error&&"DataCloneError"===e.name)console.warn(`Could not broadcast '${f.toString()}' globally. Payload is not clonable.`);else throw e}}},s=e=>()=>{for(let t of Object.keys(e))delete e[t]},l=()=>({}),f=l(),u={publish:o(f,{isGlobal:!0}),subscribe:i(f),unsubscribe:a(f),clear:s(f),stack:f};r.onmessage=({data:{event:e,news:t}})=>u.publish(e,t,{isNoGlobalBroadcast:!0});var c,d,p=e.i(25443);let m=e=>e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1,h=e=>e,y=(e,t)=>{if(e===t)return!0;if(e.length!==t.length)return!1;let r=new Set(e),n=new Set(t);return r.size===n.size&&t.every(e=>r.has(e))},v=(e,t=e=>e)=>{let r=[];for(let n=0;n(t.forEach(t=>{let r=Object.keys(t).reduce((e,r)=>(e[r]=Object.getOwnPropertyDescriptor(t,r),e),{});Object.getOwnPropertySymbols(t).forEach(e=>{let n=Object.getOwnPropertyDescriptor(t,e);n.enumerable&&(r[e]=n)}),Object.defineProperties(e,r)}),e),b=(e,t)=>r=>g(r,{get[e](){return t}}),x=(e=1)=>new Promise(t=>{let r=0,n=()=>requestAnimationFrame(()=>{++r{let n,i=0;r=null===r?t:r;let a=(...t)=>{clearTimeout(n),n=setTimeout(()=>{i>0&&(e(...t),i=0)},r)},o=!1,s=(...r)=>{o?(i++,a(...r)):(e(...r),a(...r),o=!0,i=0,setTimeout(()=>{o=!1},t))};return s.reset=()=>{o=!1},s.cancel=()=>{clearTimeout(n)},s.now=(...t)=>e(...t),s};var A="undefined"!=typeof Float32Array?Float32Array:Array;function S(){var e=new A(16);return A!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function E(e){var t=new A(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function T(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],l=t[6],f=t[7],u=t[8],c=t[9],d=t[10],p=t[11],m=t[12],h=t[13],y=t[14],v=t[15],g=r*s-n*o,b=r*l-i*o,x=r*f-a*o,w=n*l-i*s,A=n*f-a*s,S=i*f-a*l,E=u*h-c*m,T=u*y-d*m,k=u*v-p*m,_=c*y-d*h,O=c*v-p*h,C=d*v-p*y,D=g*C-b*O+x*_+w*k-A*T+S*E;return D?(D=1/D,e[0]=(s*C-l*O+f*_)*D,e[1]=(i*O-n*C-a*_)*D,e[2]=(h*S-y*A+v*w)*D,e[3]=(d*A-c*S-p*w)*D,e[4]=(l*k-o*C-f*T)*D,e[5]=(r*C-i*k+a*T)*D,e[6]=(y*x-m*S-v*b)*D,e[7]=(u*S-d*x+p*b)*D,e[8]=(o*O-s*k+f*E)*D,e[9]=(n*k-r*O-a*E)*D,e[10]=(m*A-h*x+v*g)*D,e[11]=(c*x-u*A-p*g)*D,e[12]=(s*T-o*_-l*E)*D,e[13]=(r*_-n*T+i*E)*D,e[14]=(h*b-m*w-y*g)*D,e[15]=(u*w-c*b+d*g)*D,e):null}function k(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],f=t[6],u=t[7],c=t[8],d=t[9],p=t[10],m=t[11],h=t[12],y=t[13],v=t[14],g=t[15],b=r[0],x=r[1],w=r[2],A=r[3];return e[0]=b*n+x*s+w*c+A*h,e[1]=b*i+x*l+w*d+A*y,e[2]=b*a+x*f+w*p+A*v,e[3]=b*o+x*u+w*m+A*g,b=r[4],x=r[5],w=r[6],A=r[7],e[4]=b*n+x*s+w*c+A*h,e[5]=b*i+x*l+w*d+A*y,e[6]=b*a+x*f+w*p+A*v,e[7]=b*o+x*u+w*m+A*g,b=r[8],x=r[9],w=r[10],A=r[11],e[8]=b*n+x*s+w*c+A*h,e[9]=b*i+x*l+w*d+A*y,e[10]=b*a+x*f+w*p+A*v,e[11]=b*o+x*u+w*m+A*g,b=r[12],x=r[13],w=r[14],A=r[15],e[12]=b*n+x*s+w*c+A*h,e[13]=b*i+x*l+w*d+A*y,e[14]=b*a+x*f+w*p+A*v,e[15]=b*o+x*u+w*m+A*g,e}function _(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function O(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function C(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3];return e[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,e[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,e[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,e[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)}),c=new A(4),A!=Float32Array&&(c[0]=0,c[1]=0,c[2]=0,c[3]=0),d=new A(2),A!=Float32Array&&(d[0]=0,d[1]=0);let D=["pan","rotate"],P={alt:"altKey",cmd:"metaKey",ctrl:"ctrlKey",meta:"metaKey",shift:"shiftKey"};function M(e,t){if(!e)return e;t||(t=e);let r=e,n;do if(n=!1,!r.steiner&&(B(r,r.next)||0===z(r.prev,r,r.next))){if(N(r),(r=t=r.prev)===r.next)break;n=!0}else r=r.next;while(n||r!==t)return t}function I(e,t,r,n,i){return(e=((e=((e=((e=((e=(e-r)*i|0)|e<<8)&0xff00ff)|e<<4)&0xf0f0f0f)|e<<2)&0x33333333)|e<<1)&0x55555555)|(t=((t=((t=((t=((t=(t-n)*i|0)|t<<8)&0xff00ff)|t<<4)&0xf0f0f0f)|t<<2)&0x33333333)|t<<1)&0x55555555)<<1}function j(e,t,r,n,i,a,o,s){return(e!==o||t!==s)&&(i-o)*(t-s)>=(e-o)*(a-s)&&(e-o)*(n-s)>=(r-o)*(t-s)&&(r-o)*(a-s)>=(i-o)*(n-s)}function z(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function B(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,r,n){let i=F(z(e,t,r)),a=F(z(e,t,n)),o=F(z(r,n,e)),s=F(z(r,n,t));return!!(i!==a&&o!==s||0===i&&L(e,r,t)||0===a&&L(e,n,t)||0===o&&L(r,e,n)||0===s&&L(r,t,n))}function L(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function F(e){return e>0?1:e<0?-1:0}function V(e,t){return 0>z(e.prev,e,e.next)?z(e,t,e.next)>=0&&z(e,e.prev,t)>=0:0>z(e,t,e.prev)||0>z(e,e.next,t)}function $(e,t,r,n){let i=W(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function N(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function W(e,t,r){return{i:e,x:t,y:r,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}let U=` -precision mediump float; -varying vec4 color; -void main() { - gl_FragColor = color; -}`,Z=` -uniform mat4 projectionViewModel; -uniform float aspectRatio; - -uniform sampler2D colorTex; -uniform float colorTexRes; -uniform float colorTexEps; -uniform float width; -uniform float useOpacity; -uniform float useColorOpacity; -uniform int miter; - -attribute vec3 prevPosition; -attribute vec3 currPosition; -attribute vec3 nextPosition; -attribute float opacity; -attribute float offsetScale; -attribute float colorIndex; - -varying vec4 color; - -void main() { - vec2 aspectVec = vec2(aspectRatio, 1.0); - vec4 prevProjected = projectionViewModel * vec4(prevPosition, 1.0); - vec4 currProjected = projectionViewModel * vec4(currPosition, 1.0); - vec4 nextProjected = projectionViewModel * vec4(nextPosition, 1.0); - - // get 2D screen space with W divide and aspect correction - vec2 prevScreen = prevProjected.xy / prevProjected.w * aspectVec; - vec2 currScreen = currProjected.xy / currProjected.w * aspectVec; - vec2 nextScreen = nextProjected.xy / nextProjected.w * aspectVec; - - float len = width; - - // starting point uses (next - current) - vec2 dir = vec2(0.0); - if (currScreen == prevScreen) { - dir = normalize(nextScreen - currScreen); - } - // ending point uses (current - previous) - else if (currScreen == nextScreen) { - dir = normalize(currScreen - prevScreen); - } - // somewhere in middle, needs a join - else { - // get directions from (C - B) and (B - A) - vec2 dirA = normalize((currScreen - prevScreen)); - if (miter == 1) { - vec2 dirB = normalize((nextScreen - currScreen)); - // now compute the miter join normal and length - vec2 tangent = normalize(dirA + dirB); - vec2 perp = vec2(-dirA.y, dirA.x); - vec2 miter = vec2(-tangent.y, tangent.x); - len = width / dot(miter, perp); - dir = tangent; - } else { - dir = dirA; - } - } - - vec2 normal = vec2(-dir.y, dir.x) * len; - normal.x /= aspectRatio; - vec4 offset = vec4(normal * offsetScale, 0.0, 0.0); - gl_Position = currProjected + offset; - - // Get color from texture - float colorRowIndex = floor((colorIndex + colorTexEps) / colorTexRes); - vec2 colorTexIndex = vec2( - (colorIndex / colorTexRes) - colorRowIndex + colorTexEps, - colorRowIndex / colorTexRes + colorTexEps - ); - - color = texture2D(colorTex, colorTexIndex); - color.a = useColorOpacity * color.a + useOpacity * opacity; -}`,G=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),q=Float32Array.BYTES_PER_ELEMENT,H=e=>e.length>0&&Array.isArray(e[0]),{push:K,splice:Y}=Array.prototype;function Q(e,t=1,r=1){let n=[],i=Array(2*t);for(let a=0,o=e.length/t;a{let m,h,y,v,g,b,x,w,A,S,E,T,_,O,C,D,P,M;if(!e)return void console.error("Regl instance is undefined.");let I=new Float32Array(16),j=d?2:3,z=()=>+(l.length===h||null!==s),B=()=>{S=e.buffer(),E=e.buffer(),T=e.buffer(),C=e.buffer(),D={prevPosition:{buffer:()=>S,offset:0,stride:3*q},currPosition:{buffer:()=>S,offset:3*q*2,stride:3*q},nextPosition:{buffer:()=>S,offset:3*q*4,stride:3*q},opacity:{buffer:()=>E,offset:2*q,stride:q},offsetScale:{buffer:()=>T,offset:2*q,stride:q},colorIndex:{buffer:()=>C,offset:2*q,stride:q}},P=e.elements(),M=e({attributes:D,depth:{enable:!d},blend:{enable:!0,func:{srcRGB:"src alpha",srcAlpha:"one",dstRGB:"one minus src alpha",dstAlpha:"one minus src alpha"}},uniforms:{projectionViewModel:(e,t)=>{let r=e.projection||t.projection,n=e.model||t.model;return k(I,r,k(I,e.view||t.view,n))},aspectRatio:({viewportWidth:e,viewportHeight:t})=>e/t,colorTex:()=>_,colorTexRes:()=>O,colorTexEps:()=>.5/O,pixelRatio:({pixelRatio:e})=>e,width:({pixelRatio:e,viewportHeight:t})=>f/t*e,useOpacity:z,useColorOpacity:()=>Number(!z()),miter:Number(!!c)},elements:()=>P,vert:Z,frag:U})},R=()=>{L(),B()},L=()=>{i=[],v=[],g=new Float32Array,w=[],A=[],S.destroy(),T.destroy(),P.destroy()},F=(e,t)=>{let r=t.flat(2);return r.length===h?r:r.length===m?y.flatMap((e,t)=>Array(e).fill(r[t])):e},V=(e=[],{colorIndices:t=a,opacities:r=l,widths:n=u,is2d:o=d}={})=>{i=e,d=o,j=d?2:3,m=H(i)?i.length:1,h=(y=H(i)?i.map(e=>Math.floor(e.length/j)):[Math.floor(i.length/j)]).reduce((e,t)=>e+t,0),a=F(a,t),l=F(l,r),u=F(u,n),i&&h>1?(()=>{1===m&&i.length%j>0&&console.warn(`The length of points (${h}) does not match the dimensions (${j}). Incomplete points are ignored.`),v=i.flat().slice(0,h*j),d&&(v=function(e,t,r,n=0){let i=[],a=[,,,].fill(n);for(let t=0,r=e.length/2;t{let r=0;for(let n of e){for(let e=0;e65536?"uint32":"uint16",data:A})})():R()},$=()=>{let t=H(o)?o:[o],r=new Uint8Array((O=Math.max(2,Math.ceil(Math.sqrt(t.length))))**2*4);t.forEach((e,t)=>{r[4*t]=Math.min(255,Math.max(0,Math.round(255*e[0]))),r[4*t+1]=Math.min(255,Math.max(0,Math.round(255*e[1]))),r[4*t+2]=Math.min(255,Math.max(0,Math.round(255*e[2]))),r[4*t+3]=Number.isNaN(+e[3])?255:Math.min(255,Math.max(0,Math.round(255*e[3])))}),_=e.texture({data:r,shape:[O,O,4]})},N=(e,t=s)=>{o=e,s=t,_&&_.destroy(),$()};return B(),$(),i&&i.length>1&&V(i),{clear:R,destroy:L,draw:({projection:e,model:a,view:o}={})=>{e&&(t=e),a&&(r=a),o&&(n=o),i&&i.length>1&&M({projection:t,model:r,view:n})},getPoints:()=>i,setPoints:V,getData:()=>({points:g,widths:w,opacities:x,colorIndices:b}),getBuffer:()=>({points:S,widths:T,opacities:E,colorIndices:C}),getStyle:()=>({color:o,miter:c,width:f}),setStyle:({color:e,opacity:t,miter:r,width:n}={})=>{e&&N(e,t||s),r&&(c=!!r),void 0!==n&&Number.isFinite(n)&&(f=n)}}};var ee=()=>{let e=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class t{static from(r){if(!(r instanceof ArrayBuffer))throw Error("Data must be an instance of ArrayBuffer.");let[n,i]=new Uint8Array(r,0,2);if(219!==n)throw Error("Data does not appear to be in a KDBush format.");let a=i>>4;if(1!==a)throw Error(`Got v${a} data when expected v1.`);let o=e[15&i];if(!o)throw Error("Unrecognized array type.");let[s]=new Uint16Array(r,2,1),[l]=new Uint32Array(r,4,1);return new t(l,s,o,r)}constructor(t,r=64,n=Float64Array,i){if(isNaN(t)||t<0)throw Error(`Unexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+r,2),65535),this.ArrayType=n,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const a=e.indexOf(this.ArrayType),o=2*t*this.ArrayType.BYTES_PER_ELEMENT,s=t*this.IndexArrayType.BYTES_PER_ELEMENT,l=(8-s%8)%8;if(a<0)throw Error(`Unexpected typed array class: ${n}.`);i&&i instanceof ArrayBuffer?(this.data=i,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+s+l,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+o+s+l),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+s+l,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+a]),new Uint16Array(this.data,2,1)[0]=r,new Uint32Array(this.data,4,1)[0]=t)}add(e,t){let r=this._pos>>1;return this.ids[r]=r,this.coords[this._pos++]=e,this.coords[this._pos++]=t,r}finish(){let e=this._pos>>1;if(e!==this.numItems)throw Error(`Added ${e} items when expected ${this.numItems}.`);return function e(t,n,i,a,o,s){if(o-a<=i)return;let l=a+o>>1;(function e(t,n,i,a,o,s){for(;o>a;){if(o-a>600){let r=o-a+1,l=i-a+1,f=Math.log(r),u=.5*Math.exp(2*f/3),c=.5*Math.sqrt(f*u*(r-u)/r)*(l-r/2<0?-1:1),d=Math.max(a,Math.floor(i-l*u/r+c)),p=Math.min(o,Math.floor(i+(r-l)*u/r+c));e(t,n,i,d,p,s)}let l=n[2*i+s],f=a,u=o;for(r(t,n,a,i),n[2*o+s]>l&&r(t,n,a,o);fl;)u--}n[2*a+s]===l?r(t,n,a,u):r(t,n,++u,o),u<=i&&(a=u+1),i<=u&&(o=u-1)}})(t,n,l,a,o,s),e(t,n,i,a,l-1,1-s),e(t,n,i,l+1,o,1-s)}(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(e,t,r,n){if(!this._finished)throw Error("Data not yet indexed - call index.finish().");let{ids:i,coords:a,nodeSize:o}=this,s=[0,i.length-1,0],l=[];for(;s.length;){let f=s.pop()||0,u=s.pop()||0,c=s.pop()||0;if(u-c<=o){for(let o=c;o<=u;o++){let s=a[2*o],f=a[2*o+1];s>=e&&s<=r&&f>=t&&f<=n&&l.push(i[o])}continue}let d=c+u>>1,p=a[2*d],m=a[2*d+1];p>=e&&p<=r&&m>=t&&m<=n&&l.push(i[d]),(0===f?e<=p:t<=m)&&(s.push(c),s.push(d-1),s.push(1-f)),(0===f?r>=p:n>=m)&&(s.push(d+1),s.push(u),s.push(1-f))}return l}within(e,t,r){if(!this._finished)throw Error("Data not yet indexed - call index.finish().");let{ids:n,coords:a,nodeSize:o}=this,s=[0,n.length-1,0],l=[],f=r*r;for(;s.length;){let u=s.pop()||0,c=s.pop()||0,d=s.pop()||0;if(c-d<=o){for(let r=d;r<=c;r++)i(a[2*r],a[2*r+1],e,t)<=f&&l.push(n[r]);continue}let p=d+c>>1,m=a[2*p],h=a[2*p+1];i(m,h,e,t)<=f&&l.push(n[p]),(0===u?e-r<=m:t-r<=h)&&(s.push(d),s.push(p-1),s.push(1-u)),(0===u?e+r>=m:t+r>=h)&&(s.push(p+1),s.push(c),s.push(1-u))}return l}}function r(e,t,r,i){n(e,r,i),n(t,2*r,2*i),n(t,2*r+1,2*i+1)}function n(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}function i(e,t,r,n){let i=e-r,a=t-n;return i*i+a*a}return t},et=()=>{addEventListener("message",e=>{let t=e.data.points;0===t.length&&self.postMessage({error:Error("Invalid point data")});let r=new KDBush(t.length,e.data.nodeSize);for(let[e,n]of t)r.add(e,n);r.finish(),postMessage(r.data,[r.data])})};let er=ee(),en=(e,t={nodeSize:16,useWorker:void 0})=>new Promise((r,n)=>{if(e instanceof ArrayBuffer)r(er.from(e));else if((e.length<1e6||!1===t.useWorker)&&!0!==t.useWorker){let n=new er(e.length,t.nodeSize);for(let t of e)n.add(t[0],t[1]);n.finish(),r(n)}else{let i,a,o,s,l,f=(i=ee.toString(),a=et.toString(),o=new Blob([`const createKDBushClass = ${i};KDBush = createKDBushClass();const createWorker = ${a};createWorker();`],{type:"text/javascript"}),l=new Worker(s=URL.createObjectURL(o),{name:"KDBush"}),URL.revokeObjectURL(s),l);f.onmessage=e=>{e.data.error?n(e.data.error):r(er.from(e.data)),f.terminate()},f.postMessage({points:e,nodeSize:t.nodeSize})}}),ei=!0,ea=8,eo=2,es="freeform",el=24,ef="auto",eu=0,ec=Float32Array.BYTES_PER_ELEMENT,ed=["OES_texture_float","OES_element_index_uint","WEBGL_color_buffer_float","EXT_float_blend"],ep={color:[0,0,0,0],depth:1},em="panZoom",eh="lasso",ey="rotate",ev=[em,eh,ey],eg={cubicIn:e=>e*e*e,cubicInOut:m,cubicOut:e=>--e*e*e+1,linear:e=>e,quadIn:e=>e*e,quadInOut:e=>e<.5?2*e*e:-1+(4-2*e)*e,quadOut:e=>e*(2-e)},eb=m,ex="continuous",ew="categorical",eA=[ex,ew],eS="deselect",eE="lassoEnd",eT=[eS,eE],ek=[0,.666666667,1,1],e_=750,eO=500,eC=100,eD=250,eP="lasso",eM="rotate",eI="merge",ej="remove",ez=[eP,eM,eI,ej],eB="ctrl",eR="meta",eL="shift",eF=["alt","cmd",eB,eR,eL],eV={[ej]:"alt",[eM]:"alt",[eP]:eL,[eI]:"cmd"},e$=[.66,.66,.66,1],eN=[0,.55,1,1],eW=[1,1,1,1],eU=[0,0,0,1],eZ=[.66,.66,.66,.2],eG=[0,.55,1,1],eq=[1,1,1,1],eH=[1,1,1,.5],eK=[0,0],eY=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),eQ=[1,1,1,.5],eX=new Set(["z","valueZ","valueA","value1","category"]),eJ=new Set(["w","valueW","valueB","value2","value"]),e0=15e3,e1,e2=Symbol("SKIP_DEPRECATION_VALUE_TRANSLATION"),e3="Points have not been drawn",e5="The instance was already destroyed",e6=(e,t=null)=>null===e?t:e,e4=()=>{if(!t){let e=document.createElement("style");document.head.appendChild(e),t=e.sheet}return t},e8=e=>{let t=e4(),r=t.rules.length;return t.insertRule(e,r),r},e7=e=>{e4().deleteRule(e)},e9=null,te=null,tt=(e,{onDraw:t=h,onStart:r=h,onEnd:n=h,enableInitiator:i=ei,initiatorParentElement:a=document.body,longPressIndicatorParentElement:o=document.body,minDelay:s=ea,minDist:l=eo,pointNorm:f=h,type:u=es,brushSize:c=el}={})=>{let d,p,m,y,v,A,S,E=i,T=a,k=o,_=t,O=r,C=n,D=s,P=l,M=f,I=u,j=c,z=document.createElement("div"),B=Math.random().toString(36).substring(2,5)+Math.random().toString(36).substring(2,5);z.id=`lasso-initiator-${B}`,z.style.position="fixed",z.style.display="flex",z.style.justifyContent="center",z.style.alignItems="center",z.style.zIndex=99,z.style.width="4rem",z.style.height="4rem",z.style.borderRadius="4rem",z.style.opacity=.5,z.style.transform="translate(-50%,-50%) scale(0) rotate(0deg)";let{longPress:R,longPressCircle:L,longPressCircleLeft:F,longPressCircleRight:V,longPressEffect:$}=(d=document.createElement("div"),p=Math.random().toString(36).substring(2,5)+Math.random().toString(36).substring(2,5),d.id=`lasso-long-press-${p}`,d.style.position="fixed",d.style.width="1.25rem",d.style.height="1.25rem",d.style.pointerEvents="none",d.style.transform="translate(-50%,-50%)",(m=document.createElement("div")).style.position="absolute",m.style.top=0,m.style.left=0,m.style.width="1.25rem",m.style.height="1.25rem",m.style.clipPath="inset(0px 0px 0px 50%)",m.style.opacity=0,d.appendChild(m),(y=document.createElement("div")).style.position="absolute",y.style.top=0,y.style.left=0,y.style.width="0.8rem",y.style.height="0.8rem",y.style.border="0.2rem solid currentcolor",y.style.borderRadius="0.8rem",y.style.clipPath="inset(0px 50% 0px 0px)",y.style.transform="rotate(0deg)",m.appendChild(y),(v=document.createElement("div")).style.position="absolute",v.style.top=0,v.style.left=0,v.style.width="0.8rem",v.style.height="0.8rem",v.style.border="0.2rem solid currentcolor",v.style.borderRadius="0.8rem",v.style.clipPath="inset(0px 50% 0px 0px)",v.style.transform="rotate(0deg)",m.appendChild(v),(A=document.createElement("div")).style.position="absolute",A.style.top=0,A.style.left=0,A.style.width="1.25rem",A.style.height="1.25rem",A.style.borderRadius="1.25rem",A.style.background="currentcolor",A.style.transform="scale(0)",A.style.opacity=0,d.appendChild(A),{longPress:d,longPressCircle:m,longPressCircleLeft:y,longPressCircleRight:v,longPressEffect:A}),N=!1,W=!1,U=[],Z=[],G=[],q=[],H=!1,K=null,Y=null,Q=null,X=null,J=null,ee=null,et=null,er=null,en=null,ef=null,eu=()=>{N=!1};window.addEventListener("mouseup",eu);let ec=()=>{z.style.opacity=.5,z.style.transform="translate(-50%,-50%) scale(0) rotate(0deg)"},ed=(e,t)=>{let r=getComputedStyle(e),n=+r.opacity,i=r.transform.match(/([0-9.-]+)+/g),a=+i[0],o=+i[1],s=Math.sqrt(a*a+o*o),l=180/Math.PI*Math.atan2(o,a);return{opacity:n,scale:s,rotate:l=t&&l<=0?360+l:l}},ep=e=>{if(!E||N)return;let t=e.clientX,r=e.clientY;z.style.top=`${r}px`,z.style.left=`${t}px`;let n=ed(z),i=n.opacity,a=n.scale,o=n.rotate;z.style.opacity=i,z.style.transform=`translate(-50%,-50%) scale(${a}) rotate(${o}deg)`,z.style.animation="none",x().then(()=>{null!==e9&&e7(e9),e9=e8(` -@keyframes scaleInFadeOut { - 0% { - opacity: ${i}; - transform: translate(-50%,-50%) scale(${a}) rotate(${o}deg); - } - 10% { - opacity: 1; - transform: translate(-50%,-50%) scale(1) rotate(${o+20}deg); - } - 100% { - opacity: 0; - transform: translate(-50%,-50%) scale(0.9) rotate(${o+60}deg); - } -} -`),z.style.animation="2500ms ease scaleInFadeOut 0s 1 normal backwards",x().then(()=>{ec()})})},em=()=>{let{opacity:e,scale:t,rotate:r}=ed(z);z.style.opacity=e,z.style.transform=`translate(-50%,-50%) scale(${t}) rotate(${r}deg)`,z.style.animation="none",x(2).then(()=>{null!==te&&e7(te),te=e8(` -@keyframes fadeScaleOut { - 0% { - opacity: ${e}; - transform: translate(-50%,-50%) scale(${t}) rotate(${r}deg); - } - 100% { - opacity: 0; - transform: translate(-50%,-50%) scale(0) rotate(${r}deg); - } -} -`),z.style.animation="250ms ease fadeScaleOut 0s 1 normal backwards",x().then(()=>{ec()})})},eh=(e,t,{time:r=e_,extraTime:n=eO,delay:i=eC}={time:e_,extraTime:eO,delay:eC})=>{H=!0;let a=getComputedStyle(R);R.style.color=a.color,R.style.top=`${t}px`,R.style.left=`${e}px`,R.style.animation="none";let o=getComputedStyle(L);L.style.clipPath=o.clipPath,L.style.opacity=o.opacity,L.style.animation="none";let s=ed($);$.style.opacity=s.opacity,$.style.transform=`scale(${s.scale})`,$.style.animation="none";let l=ed(F);F.style.transform=`rotate(${l.rotate}deg)`,F.style.animation="none";let f=ed(V);V.style.transform=`rotate(${f.rotate}deg)`,V.style.animation="none",x().then(()=>{if(!H)return;null!==J&&e7(J),null!==X&&e7(X),null!==Q&&e7(Q),null!==Y&&e7(Y),null!==K&&e7(K);let{rules:e,names:t}=(({time:e=e_,extraTime:t=eO,delay:r=eC,currentColor:n,targetColor:i,effectOpacity:a,effectScale:o,circleLeftRotation:s,circleRightRotation:l,circleClipPath:f,circleOpacity:u})=>{let c,d=s/360,p=(1-d)*e+t,m=Math.round((1-d)*e/p*100),h=Math.round(m/2);return{rules:{main:` - @keyframes mainIn { - 0% { - color: ${n}; - opacity: 0; - } - 0%, ${m}% { - color: ${n}; - opacity: 1; - } - 100% { - color: ${i}; - opacity: 0.8; - } - } -`,effect:(c=m+(100-m)/4,` - @keyframes effectIn { - 0%, ${m}% { - opacity: ${a}; - transform: scale(${o}); - } - ${c}% { - opacity: 0.66; - transform: scale(1.5); - } - 99% { - opacity: 0; - transform: scale(2); - } - 100% { - opacity: 0; - transform: scale(0); - } - } -`),circleRight:` - @keyframes rightSpinIn { - 0% { - transform: rotate(${l}deg); - } - ${h}%, 100% { - transform: rotate(180deg); - } - } -`,circleLeft:` - @keyframes leftSpinIn { - 0% { - transform: rotate(${s}deg); - } - ${m}%, 100% { - transform: rotate(360deg); - } - } -`,circle:` - @keyframes circleIn { - 0% { - clip-path: ${f}; - opacity: ${u}; - } - ${h}% { - clip-path: ${f}; - opacity: 1; - } - ${h+.01}%, 100% { - clip-path: inset(0); - opacity: 1; - } - } -`},names:{main:`${p}ms ease-out mainIn ${r}ms 1 normal forwards`,effect:`${p}ms ease-out effectIn ${r}ms 1 normal forwards`,circleLeft:`${p}ms linear leftSpinIn ${r}ms 1 normal forwards`,circleRight:`${p}ms linear rightSpinIn ${r}ms 1 normal forwards`,circle:`${p}ms linear circleIn ${r}ms 1 normal forwards`}}})({time:r,extraTime:n,delay:i,currentColor:a.color||"currentcolor",targetColor:R.dataset.activeColor,effectOpacity:s.opacity||0,effectScale:s.scale||0,circleLeftRotation:l.rotate||0,circleRightRotation:f.rotate||0,circleClipPath:o.clipPath||"inset(0 0 0 50%)",circleOpacity:o.opacity||0});K=e8(e.main),Y=e8(e.effect),Q=e8(e.circleLeft),X=e8(e.circleRight),J=e8(e.circle),R.style.animation=t.main,$.style.animation=t.effect,F.style.animation=t.circleLeft,V.style.animation=t.circleRight,L.style.animation=t.circle})},ey=({time:e=eD}={time:eD})=>{if(!H)return;H=!1;let t=getComputedStyle(R);R.style.color=t.color,R.style.animation="none";let r=getComputedStyle(L);L.style.clipPath=r.clipPath,L.style.opacity=r.opacity,L.style.animation="none";let n=ed($);$.style.opacity=n.opacity,$.style.transform=`scale(${n.scale})`,$.style.animation="none";let i=ed(F,"x"===r.clipPath.slice(-2,-1));F.style.transform=`rotate(${i.rotate}deg)`,F.style.animation="none";let a=ed(V);V.style.transform=`rotate(${a.rotate}deg)`,V.style.animation="none",x().then(()=>{null!==ef&&e7(ef),null!==en&&e7(en),null!==er&&e7(er),null!==et&&e7(et),null!==ee&&e7(ee);let{rules:o,names:s}=(({time:e=eD,currentColor:t,targetColor:r,effectOpacity:n,effectScale:i,circleLeftRotation:a,circleRightRotation:o,circleClipPath:s,circleOpacity:l})=>{let f=a/360,u=f*e,c=Math.min(100,100*f),d=c>50?Math.round((1-50/c)*100):0;return{rules:{main:` - @keyframes mainOut { - 0% { - color: ${t}; - } - 100% { - color: ${r}; - } - } -`,effect:` - @keyframes effectOut { - 0% { - opacity: ${n}; - transform: scale(${i}); - } - 99% { - opacity: 0; - transform: scale(${i+.5}); - } - 100% { - opacity: 0; - transform: scale(0); - } - } -`,circleRight:` - @keyframes rightSpinOut { - 0%, ${d}% { - transform: rotate(${o}deg); - } - 100% { - transform: rotate(0deg); - } -`,circleLeft:` - @keyframes leftSpinOut { - 0% { - transform: rotate(${a}deg); - } - 100% { - transform: rotate(0deg); - } - } -`,circle:` - @keyframes circleOut { - 0%, ${d}% { - clip-path: ${s}; - opacity: ${l}; - } - ${d+.01}% { - clip-path: inset(0 0 0 50%); - opacity: ${l}; - } - 100% { - clip-path: inset(0 0 0 50%); - opacity: 0; - } - } -`},names:{main:`${u}ms linear mainOut 0s 1 normal forwards`,effect:`${u}ms linear effectOut 0s 1 normal forwards`,circleRight:`${u}ms linear leftSpinOut 0s 1 normal forwards`,circleLeft:`${u}ms linear rightSpinOut 0s 1 normal forwards`,circle:`${u}ms linear circleOut 0s 1 normal forwards`}}})({time:e,currentColor:t.color||"currentcolor",targetColor:R.dataset.color,effectOpacity:n.opacity||0,effectScale:n.scale||0,circleLeftRotation:i.rotate||0,circleRightRotation:a.rotate||0,circleClipPath:r.clipPath||"inset(0px)",circleOpacity:r.opacity||1});ee=e8(o.main),et=e8(o.effect),er=e8(o.circleLeft),en=e8(o.circleRight),ef=e8(o.circle),R.style.animation=s.main,$.style.animation=s.effect,F.style.animation=s.circleLeft,V.style.animation=s.circleRight,L.style.animation=s.circle})},ev=()=>{_(U,Z)},eg=e=>{U.push(e),Z.push(e[0],e[1])},eb=e=>{let[t,r]=e,[n,i]=U[0];U[1]=[t,i],U[2]=[t,r],U[3]=[n,r],U[4]=[n,i],Z[2]=t,Z[3]=i,Z[4]=t,Z[5]=r,Z[6]=n,Z[7]=r,Z[8]=n,Z[9]=i},ex=e=>{G.push(e)},ew=(e,t,r)=>{let[n,i]=e,[a,o]=t,s=n-a,l=i-o,f=Math.sqrt([s,l].reduce((e,t)=>e+t**2,0));return[l/f*r,-s/f*r]},eA=e=>{let t=G.at(-1),r=Math.abs(M([0,0])[0]-M([j/2,0])[0]),[n,i]=ew(e,t,r),a=G.length;if(1===a){let e=[t[0]+n,t[1]+i],r=[t[0]-n,t[1]-i];U.push(e,r),Z.push(e[0],e[1],r[0],r[1]),q.push([n,i])}else{[n,i]=ew(e,t,r);let o=[...q,[n,i]];[n,i]=((e,t,r)=>{if(0===e.length)return 0;if(1===e.length)return e[0];let n=2**(-1/t),i=Math.max(0,e.length-r),a=e.slice(i),o=0,s=0,l=0;for(let e=a.length-1;e>=0;e--){let t=a.length-1-e,r=n**t;o+=a[e][0]*r,s+=a[e][1]*r,l+=r}return[o/l,s/l]})(o,1,10);let[s,l]=q.at(-1),f=(n+s)/2,u=(i+l)/2,c=[t[0]+f,t[1]+u],d=[t[0]-f,t[1]-u];U.splice(a-1,2,c,d),Z.splice(2*(a-1),4,c[0],c[1],d[0],d[1]),q.splice(a,1,[f,u])}let o=[e[0]+n,e[1]+i],s=[e[0]-n,e[1]-i];U.splice(a,0,o,s),Z.splice(2*a,0,o[0],o[1],s[0],s[1]),G.push(e),q.push([n,i])},eS=eg,eE=eg,eT=e=>{if(S){let t,r;t=e[0],r=e[1],Math.sqrt((t-S[0])**2+(r-S[1])**2)>P&&(S=e,eS(M(e)),U.length>1&&ev())}else{W||(W=!0,O()),S=e;let t=M(e);eE(t)}},ek=w(eT,D,D),eP=(t,r)=>{let n=(t=>{let{left:r,top:n}=e.getBoundingClientRect();return[t.clientX-r,t.clientY-n]})(t);return r?ek(n):eT(n)},eM=()=>{U=[],Z=[],G=[],q=[],S=void 0,ev()},eI=e=>{ep(e)},ej=()=>{N=!0,W=!0,eM(),O()},ez=()=>{em()},eB=({merge:e=!1,remove:t=!1}={})=>{W=!1;let r=[...U],n=[...Z];return ek.cancel(),eM(),r.length>0&&C(r,n,{merge:e,remove:t}),r},eR=e=>"onDraw"===e?_:"onStart"===e?O:"onEnd"===e?C:"enableInitiator"===e?E:"minDelay"===e?D:"minDist"===e?P:"pointNorm"===e?M:"type"===e?I:"brushSize"===e?j:void 0,eL=({onDraw:e=null,onStart:t=null,onEnd:r=null,enableInitiator:n=null,initiatorParentElement:i=null,longPressIndicatorParentElement:a=null,minDelay:o=null,minDist:s=null,pointNorm:l=null,type:f=null,brushSize:u=null}={})=>{_=e6(e,_),O=e6(t,O),C=e6(r,C),E=e6(n,E),D=e6(o,D),P=e6(s,P),M=e6(l,M),j=e6(u,j),null!==i&&i!==T&&(T.removeChild(z),i.appendChild(z),T=i),null!==a&&a!==k&&(k.removeChild(R),a.appendChild(R),k=a),E?(z.addEventListener("click",eI),z.addEventListener("mousedown",ej),z.addEventListener("mouseleave",ez)):(z.removeEventListener("mousedown",ej),z.removeEventListener("mouseleave",ez)),null!==f&&(e=>{switch(e){case"rectangle":I=e,eS=eb,eE=eg;break;case"brush":I=e,eS=eA,eE=ex;break;default:I="freeform",eS=eg,eE=eg}})(f)},eF=()=>{T.removeChild(z),k.removeChild(R),window.removeEventListener("mouseup",eu),z.removeEventListener("click",eI),z.removeEventListener("mousedown",ej),z.removeEventListener("mouseleave",ez)};return T.appendChild(z),k.appendChild(R),eL({onDraw:_,onStart:O,onEnd:C,enableInitiator:E,initiatorParentElement:T,type:I,brushSize:j}),((...e)=>t=>e.reduce((e,t)=>t(e),t))(b("initiator",z),b("longPressIndicator",R),e=>g(e,{clear:eM,destroy:eF,end:eB,extend:eP,get:eR,set:eL,showInitiator:ep,hideInitiator:em,showLongPressIndicator:eh,hideLongPressIndicator:ey}),e=>g({__proto__:{constructor:tt}},e))({})},tr=(e,t)=>!!e&&ed.reduce((r,n)=>e.hasExtension(n)?r:(t||console.warn(`WebGL: ${n} extension not supported. Scatterplot might not render properly`),!1),!0),tn=e=>{let t=e.getContext("webgl",{antialias:!0,preserveDrawingBuffer:!0}),r=[];for(let e of ed)t.getExtension(e)?r.push(e):console.warn(`WebGL: ${e} extension not supported. Scatterplot might not render properly`);return(0,p.default)({gl:t,extensions:r})},ti=(e,t,r,n)=>Math.sqrt((e-r)**2+(t-n)**2),ta=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,to=(e,t,{minLength:r=0}={})=>Array.isArray(e)&&e.length>=r&&e.every(t),ts=e=>!Number.isNaN(+e)&&+e>=0,tl=e=>!Number.isNaN(+e)&&+e>0,tf=(e,t)=>r=>e.indexOf(r)>=0?r:t,tu=(e,t,r=e0)=>new Promise((n,i)=>{((e,t=!1,r=e0)=>new Promise((n,i)=>{let a=new Image;t&&(a.crossOrigin="anonymous"),a.src=e,a.onload=()=>{n(a)};let o=()=>{i(Error("IMAGE_LOAD_ERROR"))};a.onerror=o,setTimeout(o,r)}))(t,0!==t.indexOf(window.location.origin)&&-1===t.indexOf("base64"),r).then(t=>{n(e.texture(t))}).catch(e=>{i(e)})}),tc=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i,td=e=>e>=0&&e<=1,tp=e=>Array.isArray(e)&&e.every(td),tm=(e,[t,r]=[])=>{let n=0;for(let i=0,a=e.length-2;ir&&(l-o)*(r-s)-(t-o)*(f-s)>0&&n++:f<=r&&(l-o)*(r-s)-(t-o)*(f-s)<0&&n--,a=i}return 0!==n},th=e=>"string"==typeof e||e instanceof String,ty=e=>Number.isInteger(e)&&e>=0&&e<=255,tv=e=>Array.isArray(e)&&e.every(ty),tg=e=>Array.isArray(e)&&e.length>0&&(Array.isArray(e[0])||th(e[0])),tb=(e,t)=>e>t?e:t,tx=(e,t)=>e{if(4===e.length&&(tp(e)||tv(e))){let r=tp(e);return t&&r||!(t||r)?e:t&&!r?e.map(e=>e/255):e.map(e=>255*e)}if(3===e.length&&(tp(e)||tv(e))){let r=255**!t,n=tp(e);return t&&n||!(t||n)?[...e,r]:t&&!n?[...e.map(e=>e/255),r]:[...e.map(e=>255*e),r]}return tc.test(e)?((e,t=!1)=>[...((e,t=!1)=>e.replace(ta,(e,t,r,n)=>`#${t}${t}${r}${r}${n}${n}`).substring(1).match(/.{2}/g).map(e=>Number.parseInt(e,16)/255**t))(e,t),255**!t])(e,t):(console.warn("Only HEX, RGB, and RGBA are handled by this function. Returning white instead."),t?[1,1,1,1]:[255,255,255,255])},tA=e=>.21*e[0]+.72*e[1]+.07*e[2],tS=e=>new Promise((t,r)=>{if(!e||Array.isArray(e))t(e);else{let n,i,a=Array.isArray(e.x)||ArrayBuffer.isView(e.x)?e.x.length:0,o=(Array.isArray(e.x)||ArrayBuffer.isView(e.x))&&(t=>e.x[t]),s=(Array.isArray(e.y)||ArrayBuffer.isView(e.y))&&(t=>e.y[t]),l=(Array.isArray(e.line)||ArrayBuffer.isView(e.line))&&(t=>e.line[t]),f=(Array.isArray(e.lineOrder)||ArrayBuffer.isView(e.lineOrder))&&(t=>e.lineOrder[t]),u=Object.keys(e),c=(n=u.find(e=>eX.has(e)))&&(Array.isArray(e[n])||ArrayBuffer.isView(e[n]))&&(t=>e[n][t]),d=(i=u.find(e=>eJ.has(e)))&&(Array.isArray(e[i])||ArrayBuffer.isView(e[i]))&&(t=>e[i][t]);o&&s&&c&&d&&l&&f?t(e.x.map((e,t)=>[e,s(t),c(t),d(t),l(t),f(t)])):o&&s&&c&&d&&l?t(Array.from({length:a},(e,t)=>[o(t),s(t),c(t),d(t),l(t)])):o&&s&&c&&d?t(Array.from({length:a},(e,t)=>[o(t),s(t),c(t),d(t)])):o&&s&&c?t(Array.from({length:a},(e,t)=>[o(t),s(t),c(t)])):o&&s?t(Array.from({length:a},(e,t)=>[o(t),s(t)])):r(Error("You need to specify at least x and y"))}}),tE=e=>Number.isFinite(e.y)&&!("x"in e),tT=e=>Number.isFinite(e.x)&&!("y"in e),tk=e=>Number.isFinite(e.x)&&Number.isFinite(e.y)&&Number.isFinite(e.width)&&Number.isFinite(e.height),t_=e=>Number.isFinite(e.x1)&&Number.isFinite(e.y1)&&Number.isFinite(e.x2)&&Number.isFinite(e.x2),tO=e=>"vertices"in e&&e.vertices.length>1,tC=(e={})=>{let{regl:t,canvas:r=document.createElement("canvas"),gamma:n=1}=e,i=!1;t||(t=tn(r));let a=tr(t),o=[r.width,r.height],s=t.framebuffer({width:o[0],height:o[1],colorFormat:"rgba",colorType:"float"}),l=t({vert:` - precision highp float; - attribute vec2 xy; - void main () { - gl_Position = vec4(xy, 0, 1); - }`,frag:` - precision highp float; - uniform vec2 srcRes; - uniform sampler2D src; - uniform float gamma; - - vec3 approxLinearToSRGB (vec3 rgb, float gamma) { - return pow(clamp(rgb, vec3(0), vec3(1)), vec3(1.0 / gamma)); - } - - void main () { - vec4 color = texture2D(src, gl_FragCoord.xy / srcRes); - gl_FragColor = vec4(approxLinearToSRGB(color.rgb, gamma), color.a); - }`,attributes:{xy:[-4,-4,4,-4,0,4]},uniforms:{src:()=>s,srcRes:()=>o,gamma:()=>n},count:3,depth:{enable:!1},blend:{enable:!0,func:{srcRGB:"one",srcAlpha:"one",dstRGB:"one minus src alpha",dstAlpha:"one minus src alpha"}}}),f=new Set,u=t.frame(()=>{let e=f.values(),t=e.next();for(;!t.done;)t.value(),t=e.next()}),c=(e,t)=>{let n=void 0===e?Math.min(window.innerWidth,window.screen.availWidth):e,i=void 0===t?Math.min(window.innerHeight,window.screen.availHeight):t;r.width=n*window.devicePixelRatio,r.height=i*window.devicePixelRatio,o[0]=r.width,o[1]=r.height,s.resize(...o)},d=()=>{c()};return e.canvas||(window.addEventListener("resize",d),window.addEventListener("orientationchange",d),c()),{get canvas(){return r},get regl(){return t},get gamma(){return n},set gamma(newGamma){n=+newGamma},get isSupported(){return a},get isDestroyed(){return i},render:(e,n)=>{let i;t.clear(ep),s.use(()=>{t.clear(ep),e()}),l(),(i=n.getContext("2d")).clearRect(0,0,n.width,n.height),i.drawImage(r,(r.width-n.width)/2,(r.height-n.height)/2,n.width,n.height,0,0,n.width,n.height)},resize:c,onFrame:e=>(f.add(e),()=>{f.delete(e)}),refresh:()=>{t.poll()},destroy:()=>{i=!0,window.removeEventListener("resize",d),window.removeEventListener("orientationchange",d),u.cancel(),r=void 0,t.destroy(),t=void 0}}},tD=` -precision mediump float; - -uniform sampler2D texture; - -varying vec2 uv; - -void main () { - gl_FragColor = texture2D(texture, uv); -} -`,tP=` -precision mediump float; - -uniform mat4 modelViewProjection; - -attribute vec2 position; - -varying vec2 uv; - -void main () { - uv = position; - gl_Position = modelViewProjection * vec4(-1.0 + 2.0 * uv.x, 1.0 - 2.0 * uv.y, 0, 1); -} -`,tM=`precision highp float; - -varying vec4 color; - -void main() { - gl_FragColor = color; -} -`,tI=`precision highp float; - -uniform sampler2D startStateTex; -uniform sampler2D endStateTex; -uniform float t; - -varying vec2 particleTextureIndex; - -void main() { - // Interpolate x, y, and value - vec3 start = texture2D(startStateTex, particleTextureIndex).xyw; - vec3 end = texture2D(endStateTex, particleTextureIndex).xyw; - vec3 curr = start * (1.0 - t) + end * t; - - // The category cannot be interpolated - float endCategory = texture2D(endStateTex, particleTextureIndex).z; - - gl_FragColor = vec4(curr.xy, endCategory, curr.z); -}`,tj=`precision highp float; - -attribute vec2 position; -varying vec2 particleTextureIndex; - -void main() { - // map normalized device coords to texture coords - particleTextureIndex = 0.5 * (1.0 + position); - - gl_Position = vec4(position, 0, 1); -}`,tz=` -precision highp float; - -uniform float antiAliasing; - -varying vec4 color; -varying float finalPointSize; - -float linearstep(float edge0, float edge1, float x) { - return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); -} - -void main() { - vec2 c = gl_PointCoord * 2.0 - 1.0; - float sdf = length(c) * finalPointSize; - float alpha = linearstep(finalPointSize + antiAliasing, finalPointSize - antiAliasing, sdf); - - gl_FragColor = vec4(color.rgb, alpha * color.a); -} -`,tB=function(){let e=(e,t,r,n,i)=>{let a=(n-t)*.5,o=(i-r)*.5;return(2*r-2*n+a+o)*e*e*e+(-3*r+3*n-2*a-o)*e*e+a*e+r},t=(t,r,n)=>{let i=n*t,a=Math.floor(i),o=i-a,s=r[Math.max(0,a-1)],l=r[a],f=r[Math.min(n,a+1)],u=r[Math.min(n,a+2)];return[e(o,s[0],l[0],f[0],u[0]),e(o,s[1],l[1],f[1],u[1])]},r=(e,t,r,n)=>(e-r)**2+(t-n)**2,n=(e,t,r)=>{let n=t[0],i=t[1],a=r[0]-n,o=r[1]-i;if(0!==a||0!==o){let t=((e[0]-n)*a+(e[1]-i)*o)/(a*a+o*o);t>1?(n=r[0],i=r[1]):t>0&&(n+=a*t,i+=o*t)}return(a=e[0]-n)*a+(o=e[1]-i)*o},i=(e,t,r,a,o)=>{let s,l=a;for(let i=t+1;il&&(s=i,l=a)}l>a&&(s-t>1&&i(e,t,s,a,o),o.push(e[s]),r-s>1&&i(e,s,r,a,o))},a=(e,t)=>{let r=e.length-1,n=[e[0]];return i(e,0,r,t,n),n.push(e[r]),n};self.onmessage=function(e){var n;let i,o;(e.data.points?+e.data.points.length:0)||self.postMessage({error:Error("No points provided")}),e.data.points;let s=(n=e.data.points,i={},o=!Number.isNaN(+n[0][5]),n.forEach(e=>{let t=e[4];i[t]||(i[t]=[]),o?i[t][e[5]]=e:i[t].push(e)}),Object.entries(i).forEach(e=>{i[e[0]]=e[1].filter(e=>e),i[e[0]].reference=e[1][0]}),i);self.postMessage({points:Object.entries(s).reduce((n,i)=>(n[i[0]]=((e,{maxIntPointsPerSegment:n=100,tolerance:i=.002}={})=>{let o,s=e.length,l=s-1,f=l*n+1,u=i**2,c=[];for(let i=0;iu&&(s.push(c),o=c)}s.push(e[i+1]),s=a(s,u),c=c.concat(s.slice(0,s.length-1))}return c.push(e[e.length-1].slice(0,2)),c.flat()})(i[1],e.data.options),n[i[0]].reference=i[1].reference,n),{})})}},tR={showRecticle:{replacement:"showReticle",removalVersion:"2",translation:h},recticleColor:{replacement:"reticleColor",removalVersion:"2",translation:h},keyMap:{replacement:"actionKeyMap",removalVersion:"2",translation:e=>Object.entries(e).reduce((e,[t,r])=>(e[r]?e[r]=[...e[r],t]:e[r]=t,e),{})}},tL=e=>{for(let t of Object.keys(e).filter(e=>tR[e])){let{replacement:r,removalVersion:n,translation:i}=tR[t];console.warn(`regl-scatterplot: the "${t}" property is deprecated and will be removed in v${n}. Please use "${r}" instead.`),e[tR[t].replacement]=e[t]!==e2?i(e[t]):e[t],delete e[t]}return e},tF=(e,t,{allowSegment:r=!1,allowDensity:n=!1,allowInherit:i=!1}={})=>eX.has(e)?"valueZ":eJ.has(e)?"valueW":"segment"===e?r?"segment":t:"density"===e?n?"density":t:"inherit"===e&&i?"inherit":t,tV=e=>{switch(e){case"valueZ":return 2;case"valueW":return 3;default:return null}},t$=(e={})=>{var t;let r,n,f,u,c,d,p,m,g,b,x,A,L,F,U,Z,G,q,H,K,Y,Q,X,ee,et,er,ei,ea,eo,es,el,ed,ep,eX,eJ,e6,e4,e8,e7=(t={async:!e.syncEvents,caseInsensitive:!0},eJ=!!t?.async,e6=!!t?.caseInsensitive,{publish:o(e4=t?.stack||l(),{async:eJ,caseInsensitive:e6}),subscribe:i(e4,{caseInsensitive:e6}),unsubscribe:a(e4,{caseInsensitive:e6}),clear:s(e4),stack:e4}),e9=new Float32Array(16),te=new Float32Array(16),tr=[0,0];tL(e);let{renderer:tn,antiAliasing:ta=.5,pixelAligned:tc=!1,backgroundColor:td=eU,backgroundImage:tp=null,canvas:ty=document.createElement("canvas"),colorBy:tv=null,deselectOnDblClick:tR=!0,deselectOnEscape:t$=!0,lassoColor:tN=ek,lassoLineWidth:tW=2,lassoMinDelay:tU=10,lassoMinDist:tZ=3,lassoClearEvent:tG=eE,lassoInitiator:tq=!1,lassoInitiatorParentElement:tH=document.body,lassoLongPressIndicatorParentElement:tK=document.body,lassoOnLongPress:tY=!1,lassoLongPressTime:tQ=e_,lassoLongPressAfterEffectTime:tX=eO,lassoLongPressEffectDelay:tJ=eC,lassoLongPressRevertEffectTime:t0=eD,lassoType:t1="lasso",lassoBrushSize:t2=24,actionKeyMap:t3=eV,mouseMode:t5=em,showReticle:t6=!1,reticleColor:t4=eQ,pointColor:t8=e$,pointColorActive:t7=eN,pointColorHover:t9=eW,showPointConnections:re=!1,pointConnectionColor:rt=eZ,pointConnectionColorActive:rr=eG,pointConnectionColorHover:rn=eq,pointConnectionColorBy:ri=null,pointConnectionOpacity:ra=null,pointConnectionOpacityBy:ro=null,pointConnectionOpacityActive:rs=.66,pointConnectionSize:rl=2,pointConnectionSizeActive:rf=2,pointConnectionSizeBy:ru=null,pointConnectionMaxIntPointsPerSegment:rc=100,pointConnectionTolerance:rd=.002,pointSize:rp=6,pointSizeSelected:rm=2,pointSizeMouseDetection:rh="auto",pointOutlineWidth:ry=2,opacity:rv=ef,opacityBy:rg=null,opacityByDensityFill:rb=.15,opacityInactiveMax:rx=1,opacityInactiveScale:rw=1,sizeBy:rA=null,pointScaleMode:rS="asinh",height:rE=ef,width:rT=ef,annotationLineColor:rk=eH,annotationLineWidth:r_=1,annotationHVLineLimit:rO=1e3,cameraIsFixed:rC=!1}=e,rD=rT===ef?1:rT,rP=rE===ef?1:rE,{performanceMode:rM=!1,opacityByDensityDebounceTime:rI=25,spatialIndexUseWorker:rj=e1}=e,rz=!!(e.renderPointsAsSquares||rM),rB=!!(e.disableAlphaBlending||rM);t5=tf(ev,em)(t5),tn||(tn=tC({regl:e.regl,gamma:e.gamma})),td=tw(td,!0),tN=tw(tN,!0),t4=tw(t4,!0);let rR=!1,rL=!1,rF=tA(td),rV=!1,r$=null,rN=[0,0],rW=-1,rU=[],rZ=new Set,rG=new Set,rq=!1,rH=new Set,rK=[],rY=0,rQ=0,rX=!1,rJ=[],r0=e.aspectRatio||1,r1=!1,r2=!0,r3=!1;t8=tg(t8)?[...t8]:[t8],t7=tg(t7)?[...t7]:[t7],t9=tg(t9)?[...t9]:[t9],t8=t8.map(e=>tw(e,!0)),t7=t7.map(e=>tw(e,!0)),t9=t9.map(e=>tw(e,!0)),rv=to(rv=!Array.isArray(rv)&&Number.isNaN(+rv)?t8[0][3]:rv,ts,{minLength:1})?[...rv]:[rv];let r5=1/(rp=to(rp,ts,{minLength:1})?[...rp]:[rp])[0];rt="inherit"===rt?[...t8]:(rt=tg(rt)?[...rt]:[rt]).map(e=>tw(e,!0)),rr="inherit"===rr?[...t7]:(rr=tg(rr)?[...rr]:[rr]).map(e=>tw(e,!0)),rn="inherit"===rn?[...t9]:(rn=tg(rn)?[...rn]:[rn]).map(e=>tw(e,!0)),ra="inherit"===ra?[...rv]:to(ra,ts,{minLength:1})?[...ra]:[ra],rl="inherit"===rl?[...rp]:to(rl,ts,{minLength:1})?[...rl]:[rl],tv=tF(tv,null),rg=tF(rg,null,{allowDensity:!0}),rA=tF(rA,null),ri=tF(ri,null,{allowSegment:!0,allowInherit:!0}),ro=tF(ro,null,{allowSegment:!0}),ru=tF(ru,null,{allowSegment:!0});let r6=0,r4=0,r8=!1,r7=null,r9=t6,ne=0,nt=0,nr=!1,nn=!1,ni=!1,na=!1,no=ew,ns=ew,nl=!1,nf=e.xScale||null,nu=e.yScale||null,nc=0,nd=0,np=0,nm=0;nf&&(nc=nf.domain()[0],nd=nf.domain()[1]-nf.domain()[0],nf.range([0,rD])),nu&&(np=nu.domain()[0],nm=nu.domain()[1]-nu.domain()[0],nu.range([rP,0]));let nh=e=>-1+e/rD*2,ny=e=>1+-(e/rP*2),nv=(e,t)=>{let n=[e,t,1,1];return C(n,n,T(e9,k(e9,d,k(e9,r.view,m)))),n.slice(0,2)},ng=(e=0)=>{let t=id(),r=(Z[1]-G[1])/ty.height;return(F*t+e)*r},nb=()=>rq?rK.filter((e,t)=>rH.has(t)):rK,nx=(e,t,r,n)=>{let i=u.range(e,t,r,n);return rq?i.filter(e=>rH.has(e)):i},nw=()=>{let[e,t]=[nh(tr[0]),ny(tr[1])],[r,n]=nv(e,t),i=ng(4),a=nx(r-i,n-i,r+i,n+i),o=i,s=-1;for(let e of a){let[t,i]=rK[e],a=ti(t,i,r,n);a{rJ=[],n&&n.clear()},nS=e=>e&&e.length>4,nE=(e,t)=>{if(x||!re||!nS(rK[e[0]]))return;let r=0===t,n=1===t?e=>rG.add(e):h,i=Object.keys(e.reduce((e,t)=>{let r=rK[t];return e[Array.isArray(r[4])?r[4][0]:r[4]]=!0,e},{})),a=g.getData().opacities;for(let e of i.filter(e=>!rG.has(+e))){let t=b[e][0],i=b[e][2],o=4*t+2*b[e][3],s=o+2*i+4;void 0===a.__original__&&(a.__original__=a.slice());for(let e=o;e[e%r6/r6+r4,Math.floor(e/r6)/r6+r4],nk=e=>rq&&!rH.has(e),n_=({preventEvent:e=!1}={})=>{tG===eS&&nA(),rU.length>0&&(e||e7.publish("deselect"),rG.clear(),nE(rU,0),rU=[],rZ.clear(),r2=!0)},nO=(e,{merge:t=!1,remove:r=!1,preventEvent:n=!1}={})=>{let i=Array.isArray(e)?e:[e],a=[...rU];if(t){let e;if(e=[],rU.forEach(t=>{e[t]=!0}),i.forEach(t=>{e[t]=!0}),rU=e.reduce((e,t,r)=>(t&&e.push(r),e),[]),a.length===rU.length){r2=!0;return}}else if(r){let e=new Set(i);if(rU=rU.filter(t=>!e.has(t)),a.length===rU.length){r2=!0;return}}else{if(rU?.length>0&&nE(rU,0),a.length>0&&0===i.length)return void n_({preventEvent:n});rU=i}if(y(a,rU)){r2=!0;return}let o=[];rZ.clear(),rG.clear();for(let e=rU.length-1;e>=0;e--){let t=rU[e];if(t<0||t>=rY||nk(t)){rU.splice(e,1);continue}rZ.add(t),o.push.apply(o,nT(t))}ee({usage:"dynamic",type:"float",data:o}),nE(rU,1),n||e7.publish("select",{points:rU}),r2=!0},nC=(e,{showReticleOnce:t=!1,preventEvent:r=!1}={})=>{let n=!1;if(!(rq&&!rH.has(e))&&e>=0&&e=0&&i&&!rZ.has(t)&&nE([t],0),eX=e,et.subdata(nT(e)),rZ.has(e)||nE([e],2),i&&!r&&e7.publish("pointover",eX)}else(n=+eX>=0)&&(rZ.has(eX)||nE([eX],0),r||e7.publish("pointout",eX)),eX=void 0;n&&(r2=!0,r3=t)},nD=e=>{let t=ty.getBoundingClientRect();return tr[0]=e.clientX-t.left,tr[1]=e.clientY-t.top,[...tr]},nP=tt(ty,{onStart:()=>{r.config({isFixed:!0}),rV=!0,rX=!0,nA(),rW>=0&&(clearTimeout(rW),rW=-1),e7.publish("lassoStart")},onDraw:(e,t)=>{rJ=e,n.setPoints(t),e7.publish("lassoExtend",{coordinates:e})},onEnd:(e,t,{merge:n=!1,remove:i=!1}={})=>{r.config({isFixed:rC}),rJ=[...e],nO((e=>{let t=(e=>{let t=1/0,r=-1/0,n=1/0,i=-1/0;for(let a=0;ar?e[a]:r,n=e[a+1]i?e[a+1]:i;return[t,n,r,i]})(e);if(!(([e,t,r,n])=>Number.isFinite(e)&&Number.isFinite(t)&&Number.isFinite(r)&&Number.isFinite(n)&&r-e>0&&n-t>0)(t))return[];let r=nx(...t),n=[];for(let t of r)tm(e,rK[t])&&n.push(t);return n})(t),{merge:n,remove:i}),e7.publish("lassoEnd",{coordinates:rJ}),tG===eE&&nA()},enableInitiator:tq,initiatorParentElement:tH,longPressIndicatorParentElement:tK,pointNorm:([e,t])=>nv(nh(e),ny(t)),minDelay:tU,minDist:"brush"===t1?Math.max(3,tZ):tZ,type:t1}),nM=(e,t)=>{switch(t3[t]){case"alt":return e.altKey;case"cmd":return e.metaKey;case eB:return e.ctrlKey;case eR:return e.metaKey;case eL:return e.shiftKey;default:return!1}},nI=e=>{nn&&1===e.buttons&&(rV=!0,r$=performance.now(),rN=nD(e),(rX=t5===eh||nM(e,eP))||!tY||(nP.showLongPressIndicator(e.clientX,e.clientY,{time:tQ,extraTime:tX,delay:tJ}),rW=setTimeout(()=>{rW=-1,rX=!0},tQ)))},nj=e=>{nn&&(rV=!1,rW>=0&&(clearTimeout(rW),rW=-1),rX&&(e.preventDefault(),rX=!1,nP.end({merge:nM(e,eI),remove:nM(e,ej)})),tY&&nP.hideLongPressIndicator({time:t0}))},nz=e=>{if(!nn||(e.preventDefault(),ti(...nD(e),...rN)>=tZ))return;let t=performance.now()-r$;if(!tq||t<500){let t=nw();t>=0?(rU.length>0&&tG===eS&&nA(),nO([t],{merge:nM(e,eI),remove:nM(e,ej)})):U||(U=setTimeout(()=>{U=null,nP.showInitiator(e)},200))}},nB=e=>{nP.hideInitiator(),U&&(clearTimeout(U),U=null),tR&&(e.preventDefault(),n_())},nR=e=>{!na&&(nl=document.elementsFromPoint(e.clientX,e.clientY).some(e=>e===ty),na=!0);if(!(nn&&(nl||rV)))return;let t=ti(...nD(e),...rN)>=tZ;nl&&!rX&&nC(nw()),rX?(e.preventDefault(),nP.extend(e,!0)):rV&&tY&&t&&nP.hideLongPressIndicator({time:t0}),rW>=0&&t&&(clearTimeout(rW),rW=-1),rV&&(r2=!0)},nL=()=>{eX=void 0,nl=!1,na=!1,nn&&(+eX>=0&&!rZ.has(eX)&&nE([eX],0),nj(),r2=!0)},nF=()=>{let e=Math.max(rp.length,rv.length),t=new Float32Array((nt=Math.max(2,Math.ceil(Math.sqrt(e))))**2*4);for(let r=0;r{let n=e.length,i=t.length,a=r.length,o=[];if(n===i&&i===a)for(let i=0;i{let e=nV(),t=new Float32Array((ne=Math.max(2,Math.ceil(Math.sqrt(e.length))))**2*4);return e.forEach((e,r)=>{t[4*r]=e[0],t[4*r+1]=e[1],t[4*r+2]=e[2],t[4*r+3]=e[3]}),tn.regl.texture({data:t,shape:[ne,ne,4],type:"float"})},nN=()=>{d=O([],[1/(c=rD/rP),1,1]),p=O([],[1/c,1,1]),m=O([],[r0,1,1])},nW=(e,t)=>r=>{var n;if(!r||0===r.length)return;let i=[...e()],a=tg(r)?r:[r];if(a=a.map(e=>tw(e,!0)),n=a,!(Array.isArray(i)&&Array.isArray(n)&&i.length===n.length&&(0===i.length||Array.isArray(i[0])&&Array.isArray(n[0])&&i.every(([e,t,r,i],a)=>{let[o,s,l,f]=n[a];return e===o&&t===s&&r===l&&i===f})))){ed&&ed.destroy();try{t(a),ed=n$()}catch(e){console.error("Invalid colors. Switching back to default colors."),t(i),ed=n$()}}},nU=nW(()=>t8,e=>{t8=e}),nZ=nW(()=>t7,e=>{t7=e}),nG=nW(()=>t9,e=>{t9=e}),nq=()=>{let e,t,r,n,i,a;if(!(nf||nu))return;let[o,s]=(e=nv(-1,-1),t=nv(1,1),r=(e[0]+1)/2,n=(t[0]+1)/2,i=(e[1]+1)/2,a=(t[1]+1)/2,[[nc+r*nd,nc+n*nd],[np+i*nm,np+a*nm]]);nf&&nf.domain(o),nu&&nu.domain(s)},nH=(e,t)=>{rP=Math.max(1,e),ty.height=Math.floor(rP*window.devicePixelRatio),nu&&(nu.range([rP,0]),t||nq())},nK=e=>{if(e===ef){rE=e,ty.style.height="100%",window.requestAnimationFrame(()=>{ty&&nH(ty.getBoundingClientRect().height)});return}+e&&!(0>=+e)&&(nH(rE=+e),ty.style.height=`${rE}px`)},nY=()=>{F=rh,rh===ef&&(F=Array.isArray(rp)?rp.reduce((e,t)=>t>e?t:e,-1/0):rp)},nQ=e=>{let t=Array.isArray(rp)?[...rp]:rp;to(e,ts,{minLength:1})?rp=[...e]:tl(+e)&&(rp=[+e]),t===rp||y(t,rp)||(ep&&ep.destroy(),r5=1/rp[0],ep=nF(),nY())},nX=(e,t)=>{rD=Math.max(1,e),ty.width=Math.floor(rD*window.devicePixelRatio),nf&&(nf.range([0,rD]),t||nq())},nJ=e=>{if(e===ef){rT=e,ty.style.width="100%",window.requestAnimationFrame(()=>{ty&&nX(ty.getBoundingClientRect().width)});return}+e&&!(0>=+e)&&(nX(rT=+e),ty.style.width=`${rD}px`)},n0=e=>{switch(e){case"valueZ":return no;case"valueW":return ns;default:return null}},n1=(e,t)=>e===ex?e=>Math.round(e*(t.length-1)):h,n2=()=>ta,n3=()=>[ty.width,ty.height],n5=()=>ed,n6=()=>ne,n4=()=>.5/ne,n8=()=>window.devicePixelRatio,n7=()=>ee,n9=()=>ep,ie=()=>nt,it=()=>.5/nt,ir=()=>0,ii=()=>Y||H,ia=()=>r6,io=()=>.5/r6,is=()=>k(te,p,k(te,r.view,m)),il=()=>window.devicePixelRatio,iu=()=>tb(r5,r.scaling[0])*window.devicePixelRatio,ic=()=>r.scaling[0]>1?Math.asinh(tb(1,r.scaling[0]))/Math.asinh(1)*window.devicePixelRatio:tb(r5,r.scaling[0])*window.devicePixelRatio,id=ic;"linear"===rS?id=iu:"constant"===rS&&(id=il);let ip=()=>rq?rH.size:rY,im=()=>rU.length,ih=()=>im()>0?rx:1,iy=()=>im()>0?rw:1,iv=()=>+("valueZ"===tv),ig=()=>+("valueW"===tv),ib=()=>+("valueZ"===rg),ix=()=>+("valueW"===rg),iw=()=>+("density"===rg),iA=()=>+("valueZ"===rA),iS=()=>+("valueW"===rA),iE=()=>+tc,iT=()=>"valueZ"===tv?no===ex?t8.length-1:1:ns===ex?t8.length-1:1,ik=()=>"valueZ"===rg?no===ex?rv.length-1:1:ns===ex?rv.length-1:1,i_=()=>"valueZ"===rA?no===ex?rp.length-1:1:ns===ex?rp.length-1:1,iO=e=>{if("density"!==rg)return 1;let t=id(),n=rp[0]*t,i=2/(2/r.view[0])*(2/(2/r.view[5])),a=e.viewportHeight,o=e.viewportWidth,s=rb*o*a/(rQ*n*n)*tx(1,i);s*=rz?1:1/(.25*Math.PI);let l=tb(1,n)+.5;return tx(1,tb(0,s*=(n/l)**2))},iC=tn.regl({framebuffer:()=>Q,vert:tj,frag:tI,attributes:{position:[-4,0,4,4,4,-4]},uniforms:{startStateTex:()=>K,endStateTex:()=>H,t:(e,t)=>t.t},count:3}),iD=(e,t,r,n=eu,i=ih,a=iy)=>tn.regl({frag:rz?tM:tz,vert:` -precision highp float; - -uniform sampler2D colorTex; -uniform float colorTexRes; -uniform float colorTexEps; -uniform sampler2D stateTex; -uniform float stateTexRes; -uniform float stateTexEps; -uniform float devicePixelRatio; -uniform sampler2D encodingTex; -uniform float encodingTexRes; -uniform float encodingTexEps; -uniform float pointSizeExtra; -uniform float pointOpacityMax; -uniform float pointOpacityScale; -uniform float numPoints; -uniform float globalState; -uniform float isColoredByZ; -uniform float isColoredByW; -uniform float isOpacityByZ; -uniform float isOpacityByW; -uniform float isOpacityByDensity; -uniform float isSizedByZ; -uniform float isSizedByW; -uniform float isPixelAligned; -uniform float colorMultiplicator; -uniform float opacityMultiplicator; -uniform float opacityDensity; -uniform float sizeMultiplicator; -uniform float numColorStates; -uniform float pointScale; -uniform float drawingBufferWidth; -uniform float drawingBufferHeight; -uniform mat4 modelViewProjection; - -attribute vec2 stateIndex; - -varying vec4 color; -varying float finalPointSize; - -void main() { - vec4 state = texture2D(stateTex, stateIndex); - - if (isPixelAligned < 0.5) { - gl_Position = modelViewProjection * vec4(state.x, state.y, 0.0, 1.0); - } else { - vec4 clipSpacePosition = modelViewProjection * vec4(state.x, state.y, 0.0, 1.0); - vec2 ndcPosition = clipSpacePosition.xy / clipSpacePosition.w; - vec2 pixelPos = 0.5 * (ndcPosition + 1.0) * vec2(drawingBufferWidth, drawingBufferHeight); - pixelPos = floor(pixelPos + 0.5); // Snap to nearest pixel - vec2 snappedPosition = (pixelPos / vec2(drawingBufferWidth, drawingBufferHeight)) * 2.0 - 1.0; - gl_Position = vec4(snappedPosition, 0.0, 1.0); - } - - - // Determine color index - float colorIndexZ = isColoredByZ * floor(state.z * colorMultiplicator); - float colorIndexW = isColoredByW * floor(state.w * colorMultiplicator); - - // Multiply by the number of color states per color - // I.e., normal, active, hover, background, etc. - float colorIndex = (colorIndexZ + colorIndexW) * numColorStates; - - // Half a "pixel" or "texel" in texture coordinates - float colorLinearIndex = colorIndex + globalState; - - // Need to add cEps here to avoid floating point issue that can lead to - // dramatic changes in which color is loaded as floor(3/2.9999) = 1 but - // floor(3/3.0001) = 0! - float colorRowIndex = floor((colorLinearIndex + colorTexEps) / colorTexRes); - - vec2 colorTexIndex = vec2( - (colorLinearIndex / colorTexRes) - colorRowIndex + colorTexEps, - colorRowIndex / colorTexRes + colorTexEps - ); - - color = texture2D(colorTex, colorTexIndex); - - // Retrieve point size - float pointSizeIndexZ = isSizedByZ * floor(state.z * sizeMultiplicator); - float pointSizeIndexW = isSizedByW * floor(state.w * sizeMultiplicator); - float pointSizeIndex = pointSizeIndexZ + pointSizeIndexW; - - float pointSizeRowIndex = floor((pointSizeIndex + encodingTexEps) / encodingTexRes); - vec2 pointSizeTexIndex = vec2( - (pointSizeIndex / encodingTexRes) - pointSizeRowIndex + encodingTexEps, - pointSizeRowIndex / encodingTexRes + encodingTexEps - ); - float pointSize = texture2D(encodingTex, pointSizeTexIndex).x; - - // Retrieve opacity - ${3===n?"":` - if (isOpacityByDensity < 0.5) { - float opacityIndexZ = isOpacityByZ * floor(state.z * opacityMultiplicator); - float opacityIndexW = isOpacityByW * floor(state.w * opacityMultiplicator); - float opacityIndex = opacityIndexZ + opacityIndexW; - - float opacityRowIndex = floor((opacityIndex + encodingTexEps) / encodingTexRes); - vec2 opacityTexIndex = vec2( - (opacityIndex / encodingTexRes) - opacityRowIndex + encodingTexEps, - opacityRowIndex / encodingTexRes + encodingTexEps - ); - color.a = texture2D(encodingTex, opacityTexIndex)[${1+n}]; - } else { - color.a = min(1.0, opacityDensity + globalState); - } - `} - - color.a = min(pointOpacityMax, color.a) * pointOpacityScale; - finalPointSize = (pointSize * pointScale) + pointSizeExtra; - gl_PointSize = finalPointSize; -} -`,blend:{enable:!rB,func:{srcRGB:"src alpha",srcAlpha:"one",dstRGB:"one minus src alpha",dstAlpha:"one minus src alpha"}},depth:{enable:!1},attributes:{stateIndex:{buffer:r,size:2}},uniforms:{antiAliasing:n2,resolution:n3,modelViewProjection:is,devicePixelRatio:n8,pointScale:()=>id(),encodingTex:n9,encodingTexRes:ie,encodingTexEps:it,pointOpacityMax:i,pointOpacityScale:a,pointSizeExtra:e,globalState:n,colorTex:n5,colorTexRes:n6,colorTexEps:n4,stateTex:ii,stateTexRes:ia,stateTexEps:io,isColoredByZ:iv,isColoredByW:ig,isOpacityByZ:ib,isOpacityByW:ix,isOpacityByDensity:iw,isSizedByZ:iA,isSizedByW:iS,isPixelAligned:iE,colorMultiplicator:iT,opacityMultiplicator:ik,opacityDensity:iO,sizeMultiplicator:i_,numColorStates:4,drawingBufferWidth:e=>e.drawingBufferWidth,drawingBufferHeight:e=>e.drawingBufferHeight},count:t,primitive:"points"}),iP=iD(ir,ip,()=>X),iM=iD(ir,()=>1,()=>et,2,()=>1,()=>1),iI=iD(()=>(rm+2*ry)*window.devicePixelRatio,im,n7,1,()=>1,()=>1),ij=iD(()=>(rm+ry)*window.devicePixelRatio,im,n7,3,()=>1,()=>1),iz=iD(()=>rm*window.devicePixelRatio,im,n7,1,()=>1,()=>1),iB=tn.regl({frag:tD,vert:tP,attributes:{position:[0,1,0,0,1,0,0,1,1,1,1,0]},uniforms:{modelViewProjection:is,texture:()=>tp},count:6}),iR=tn.regl({vert:` - precision mediump float; - uniform mat4 modelViewProjection; - attribute vec2 position; - void main () { - gl_Position = modelViewProjection * vec4(position, 0, 1); - }`,frag:` - precision mediump float; - uniform vec4 color; - void main () { - gl_FragColor = vec4(color.rgb, 0.2); - }`,depth:{enable:!1},blend:{enable:!0,func:{srcRGB:"src alpha",srcAlpha:"one",dstRGB:"one minus src alpha",dstAlpha:"one minus src alpha"}},attributes:{position:()=>rJ},uniforms:{modelViewProjection:is,color:()=>tN},elements:()=>(function(e,t,r=2){let n,i,a,o=e.length,s=function(e,t,r,n,i){let a;if(i===function(e,t,r,n){let i=0;for(let a=t,o=r-n;a0)for(let t=0;t=0;t-=n)a=$(t/n|0,e[t],e[t+1],a);return a&&B(a,a.next)&&(N(a),a=a.next),a}(e,0,o,r,!0),l=[];if(!s||s.next===s.prev)return l;if(e.length>80*r){n=1/0,i=1/0;let t=-1/0,s=-1/0;for(let a=r;at&&(t=r),o>s&&(s=o)}a=0!==(a=Math.max(t-n,s-i))?32767/a:0}return function e(t,r,n,i,a,o,s){if(!t)return;!s&&o&&function(e,t,r,n){let i=e;do 0===i.z&&(i.z=I(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e)i.prevZ.nextZ=null,i.prevZ=null,function(e){let t,r=1;do{let n,i=e;e=null;let a=null;for(t=0;i;){t++;let o=i,s=0;for(let e=0;e0||l>0&&o;)0!==s&&(0===l||!o||i.z<=o.z)?(n=i,i=i.nextZ,s--):(n=o,o=o.nextZ,l--),a?a.nextZ=n:e=n,n.prevZ=a,a=n;i=o}a.nextZ=null,r*=2}while(t>1)}(i)}(t,i,a,o);let l=t;for(;t.prev!==t.next;){let f=t.prev,u=t.next;if(o?function(e,t,r,n){let i=e.prev,a=e.next;if(z(i,e,a)>=0)return!1;let o=i.x,s=e.x,l=a.x,f=i.y,u=e.y,c=a.y,d=Math.min(o,s,l),p=Math.min(f,u,c),m=Math.max(o,s,l),h=Math.max(f,u,c),y=I(d,p,t,r,n),v=I(m,h,t,r,n),g=e.prevZ,b=e.nextZ;for(;g&&g.z>=y&&b&&b.z<=v;){if(g.x>=d&&g.x<=m&&g.y>=p&&g.y<=h&&g!==i&&g!==a&&j(o,f,s,u,l,c,g.x,g.y)&&z(g.prev,g,g.next)>=0||(g=g.prevZ,b.x>=d&&b.x<=m&&b.y>=p&&b.y<=h&&b!==i&&b!==a&&j(o,f,s,u,l,c,b.x,b.y)&&z(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;g&&g.z>=y;){if(g.x>=d&&g.x<=m&&g.y>=p&&g.y<=h&&g!==i&&g!==a&&j(o,f,s,u,l,c,g.x,g.y)&&z(g.prev,g,g.next)>=0)return!1;g=g.prevZ}for(;b&&b.z<=v;){if(b.x>=d&&b.x<=m&&b.y>=p&&b.y<=h&&b!==i&&b!==a&&j(o,f,s,u,l,c,b.x,b.y)&&z(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}(t,i,a,o):function(e){let t=e.prev,r=e.next;if(z(t,e,r)>=0)return!1;let n=t.x,i=e.x,a=r.x,o=t.y,s=e.y,l=r.y,f=Math.min(n,i,a),u=Math.min(o,s,l),c=Math.max(n,i,a),d=Math.max(o,s,l),p=r.next;for(;p!==t;){if(p.x>=f&&p.x<=c&&p.y>=u&&p.y<=d&&j(n,o,i,s,a,l,p.x,p.y)&&z(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}(t)){r.push(f.i,t.i,u.i),N(t),t=u.next,l=u.next;continue}if((t=u)===l){s?1===s?e(t=function(e,t){let r=e;do{let n=r.prev,i=r.next.next;!B(n,i)&&R(n,r,r.next,i)&&V(n,i)&&V(i,n)&&(t.push(n.i,r.i,i.i),N(r),N(r.next),r=e=i),r=r.next}while(r!==e)return M(r)}(M(t),r),r,n,i,a,o,2):2===s&&function(t,r,n,i,a,o){let s=t;do{let t=s.next.next;for(;t!==s.prev;){var l,f;if(s.i!==t.i&&(l=s,f=t,l.next.i!==f.i&&l.prev.i!==f.i&&!function(e,t){let r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&R(r,r.next,e,t))return!0;r=r.next}while(r!==e)return!1}(l,f)&&(V(l,f)&&V(f,l)&&function(e,t){let r=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==e)return n}(l,f)&&(z(l.prev,l,f.prev)||z(l,f.prev,f))||B(l,f)&&z(l.prev,l,l.next)>0&&z(f.prev,f,f.next)>0))){let l=function(e,t){let r=W(e.i,e.x,e.y),n=W(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}(s,t);s=M(s,s.next),l=M(l,l.next),e(s,r,n,i,a,o,0),e(l,r,n,i,a,o,0);return}t=t.next}s=s.next}while(s!==t)}(t,r,n,i,a,o):e(M(t),r,n,i,a,o,1);break}}}(s,l,r,n,i,a,0),l})(n.getPoints())}),iL=e=>{let t=new Float32Array(2*e),r=0;for(let n=0;n{let r=e.length;r4=.5/(r6=Math.max(2,Math.ceil(Math.sqrt(r))));let n=new Float32Array(r6**2*4),i=!0,a=!0,o=0,s=0,l=0;for(let t=0;tnew Promise(r=>{nn=!1;let n=t?.preventFilterReset&&e.length===rY;rQ=rY=e.length,H&&H.destroy(),H=iF(e,{z:t.zDataType,w:t.wDataType}),n||X({usage:"static",type:"float",data:iL(rY)}),en(t.spatialIndex||e,{useWorker:rj}).then(t=>{u=t,rK=e,nn=!0}).then(r)}),i$=(e,t)=>{er=r.target,ei=e,ea=r.distance[0],eo=t},iN=e=>new Promise(t=>{g.setPoints([]),e?.length>0?(x=!0,((e,t={tolerance:.002,maxIntPointsPerSegment:100})=>new Promise((r,n)=>{let i=new Worker(window.URL.createObjectURL(new Blob([`(${tB.toString()})()`],{type:"text/javascript"})));i.onmessage=e=>{e.data.error?n(e.data.error):r(e.data.points),i.terminate()},i.postMessage({points:e,options:t})}))(e,{maxIntPointsPerSegment:rc,tolerance:rd}).then(e=>{let r;b=[],r=0,Object.keys(e).forEach((t,n)=>{b[t]=[n,e[t].reference,e[t].length/2,r],r+=e[t].length/2});let n=Object.values(e);g.setPoints(1===n.length?n[0]:n,{colorIndices:(e=>{let t="inherit"===ri?tv:ri;if("segment"===t){let t=rt.length-1;return t<1?[]:e.reduce((e,r,n)=>{let i=0,a=[];for(let e=2;e(t[n]=4*r(i[e]),t),[])}return Array(b.length).fill(0)})(n),opacities:(()=>{let e="inherit"===ro?rg:ro;if("segment"===e){let e=ra.length-1;return e<1?[]:b.reduce((t,[r,n,i])=>(t[r]=v(i,t=>ra[Math.floor(t/(i-1)*e)]),t),[])}if(e){let t=tV(e),r="inherit"===ro?rv:ra,n=n1(n0(e),r);return b.reduce((e,[i,a])=>(e[i]=r[n(a[t])],e),[])}})(),widths:(()=>{let e="inherit"===ru?rA:ru;if("segment"===e){let e=rl.length-1;return e<1?[]:b.reduce((t,[r,n,i])=>(t[r]=v(i,t=>rl[Math.floor(t/(i-1)*e)]),t),[])}if(e){let t=tV(e),r="inherit"===ru?rp:rl,n=n1(n0(e),r);return b.reduce((e,[i,a])=>(e[i]=r[n(a[t])],e),[])}})()}),x=!1,t()})):t()}),iW=(e,{preventEvent:t=!1}={})=>{rq=!0,rH.clear();let r=Array.isArray(e)?e:[e],n=[],i=[],a=[];for(let e of r)Number.isFinite(e)&&!(e<0)&&!(e>=rY)&&(n.push(e),rH.add(e),rZ.has(e)&&a.push(e));for(let e of(e=>{let t=e.length;for(let r=1;r-1&&t{let r=()=>{e7.subscribe("draw",()=>{t||e7.publish("filter",{points:n}),e()},1),r2=!0};re||nS(rK[0])?iN(nb()).then(()=>{t||e7.publish("pointConnectionsDraw"),nO(a,{preventEvent:t}),r()}):r()})},iU=()=>nx(G[0],G[1],Z[0],Z[1]),iZ=w(()=>{rQ=iU().length},rI),iG=({duration:e=500,easing:t=eb})=>{r8&&e7.publish("transitionEnd"),r8=!0,r7=null,es=e,el=th(t)?eg[t]||eb:t,r9=t6,t6=!1,e7.publish("transitionStart")},iq=e=>rL?Promise.reject(new e5):new Promise((ni=!1,0===e.length)?e=>{f.clear(),e7.subscribe("draw",e,1),ni=!0,r2=!0}:t=>{let r=[],n=new Map,i=[],a=[],o=-1,s=e=>{a.push(e.lineWidth||r_);let t=tw(e.lineColor||rk,!0),r=`[${t.join(",")}]`;if(n.has(r)){let{idx:e}=n.get(r);i.push(e)}else{let e=++o;n.set(r,{idx:e,color:t}),i.push(e)}};for(let t of e){if(tE(t)){r.push([t.x1??-rO,t.y,t.x2??rO,t.y]),s(t);continue}if(tT(t)){r.push([t.x,t.y1??-rO,t.x,t.y2??rO]),s(t);continue}if(t_(t)){r.push([t.x1,t.y1,t.x2,t.y1,t.x2,t.y2,t.x1,t.y2,t.x1,t.y1]),s(t);continue}if(tk(t)){r.push([t.x,t.y,t.x+t.width,t.y,t.x+t.width,t.y+t.height,t.x,t.y+t.height,t.x,t.y]),s(t);continue}tO(t)&&(r.push(t.vertices.flatMap(h)),s(t))}f.setStyle({color:Array.from(n.values()).sort((e,t)=>e.idx>t.idx?1:-1).map(({color:e})=>e)}),f.setPoints(1===r.length?r.flat():r,{colorIndices:i,widths:a}),e7.subscribe("draw",t,1),ni=!0,r2=!0}),iH=e=>(...t)=>{let r=e(...t);return r2=!0,new Promise(e=>{e7.subscribe("draw",()=>e(r),1)})},iK=(e,t={})=>new Promise(n=>{let i=C([],[e.x+e.width/2,e.y+e.height/2,0,0],m).slice(0,2),a=2*Math.atan(1),o=c/r0,s=e.height*o>=e.width?e.height/2/Math.tan(a/2):e.width/2/Math.tan(a/2)/o;t.transition?(r.config({isFixed:!0}),i$(i,s),e7.subscribe("transitionEnd",()=>{n(),r.config({isFixed:rC})},1),iG({duration:t.transitionDuration,easing:t.transitionEasing})):(r.lookAt(i,s),e7.subscribe("draw",n,1),r2=!0)}),iY=(e,t,n={})=>new Promise(i=>{n.transition?(r.config({isFixed:!0}),i$(e,t),e7.subscribe("transitionEnd",()=>{i(),r.config({isFixed:rC})},1),iG({duration:n.transitionDuration,easing:n.transitionEasing})):(r.lookAt(e,t),e7.subscribe("draw",i,1),r2=!0)}),iQ=()=>{g.setStyle({color:nV(rt,rr,rn),opacity:null===ra?null:ra[0],width:rl[0]})},iX=()=>{let e=Math.round(rF)>.5?0:255;nP.initiator.style.border=`1px dashed rgba(${e}, ${e}, ${e}, 0.33)`,nP.initiator.style.background=`rgba(${e}, ${e}, ${e}, 0.1)`},iJ=()=>{let e=Math.round(rF)>.5?0:255;nP.longPressIndicator.style.color=`rgb(${e}, ${e}, ${e})`,nP.longPressIndicator.dataset.color=`rgb(${e}, ${e}, ${e})`;let t=tN.map(e=>Math.round(255*e));nP.longPressIndicator.dataset.activeColor=`rgb(${t[0]}, ${t[1]}, ${t[2]})`},i0=e=>{e&&r.setView(e)},i1=(e,t)=>r=>{"inherit"===r?e([...t()]):e((tg(r)?r:[r]).map(e=>tw(e,!0))),iQ()},i2=i1(e=>{rt=e},()=>t8),i3=i1(e=>{rr=e},()=>t7),i5=i1(e=>{rn=e},()=>t9),i6=e=>{ta=Number(e)||.5},i4=e=>{tc=!!e},i8=(e={})=>{var t,i,a,o,s,l,f,u,c,d,p,m,h,v,g,b,x,w,S,E,T,k,_,O;let C;return rL?Promise.reject(Error(e5)):(tL(e),(void 0!==e.backgroundColor||void 0!==e.background)&&(t=e.backgroundColor||e.background)&&(rF=tA(td=tw(t,!0)),iX(),iJ()),void 0!==e.backgroundImage&&((i=e.backgroundImage)?th(i)?tu(tn.regl,i).then(e=>{tp=e,r2=!0,e7.publish("backgroundImageReady")}).catch(()=>{console.error(`Count not create texture from ${i}`),tp=null}):tp="texture2d"===i._reglType?i:null:tp=null),void 0!==e.cameraTarget&&(a=e.cameraTarget)&&r.lookAt(a,r.distance[0],r.rotation),void 0!==e.cameraDistance&&(o=e.cameraDistance)>0&&r.lookAt(r.target,o,r.rotation),void 0!==e.cameraRotation&&null!==(s=e.cameraRotation)&&r.lookAt(r.target,r.distance[0],s),void 0!==e.cameraView&&i0(e.cameraView),void 0!==e.cameraIsFixed&&(rC=!!e.cameraIsFixed,r.config({isFixed:rC})),void 0!==e.colorBy&&(tv=tF(e.colorBy,null)),void 0!==e.pointColor&&nU(e.pointColor),void 0!==e.pointColorActive&&nZ(e.pointColorActive),void 0!==e.pointColorHover&&nG(e.pointColorHover),void 0!==e.pointSize&&nQ(e.pointSize),void 0!==e.pointSizeSelected&&+(l=e.pointSizeSelected)&&!(0>+l)&&(rm=+l),void 0!==e.pointSizeMouseDetection&&(rh=e.pointSizeMouseDetection,nY()),void 0!==e.sizeBy&&(rA=tF(e.sizeBy,null)),void 0!==e.opacity&&(f=e.opacity,C=Array.isArray(rv)?[...rv]:rv,to(f,ts,{minLength:1})?rv=[...f]:tl(+f)&&(rv=[+f]),C===rv||y(C,rv)||(ep&&ep.destroy(),ep=nF())),void 0!==e.showPointConnections&&((re=!!e.showPointConnections)?nn&&nS(rK[0])&&iN(nb()).then(()=>{e7.publish("pointConnectionsDraw"),r2=!0}):iN()),void 0!==e.pointConnectionColor&&i2(e.pointConnectionColor),void 0!==e.pointConnectionColorActive&&i3(e.pointConnectionColorActive),void 0!==e.pointConnectionColorHover&&i5(e.pointConnectionColorHover),void 0!==e.pointConnectionColorBy&&(ri=tF(e.pointConnectionColorBy,null,{allowSegment:!0,allowInherit:!0})),void 0!==e.pointConnectionOpacityBy&&(ro=tF(e.pointConnectionOpacityBy,null,{allowSegment:!0})),void 0!==e.pointConnectionOpacity&&(to(u=e.pointConnectionOpacity,ts,{minLength:1})&&(ra=[...u]),tl(+u)&&(ra=[+u]),rt=rt.map(e=>(e[3]=Number.isNaN(+ra[0])?e[3]:+ra[0],e)),iQ()),void 0!==e.pointConnectionOpacityActive&&!Number.isNaN(+(c=e.pointConnectionOpacityActive))&&+c&&(rs=+c),void 0!==e.pointConnectionSize&&(to(d=e.pointConnectionSize,ts,{minLength:1})&&(rl=[...d]),tl(+d)&&(rl=[+d]),iQ()),void 0!==e.pointConnectionSizeActive&&!Number.isNaN(+(p=e.pointConnectionSizeActive))&&+p&&(rf=Math.max(0,p)),void 0!==e.pointConnectionSizeBy&&(ru=tF(e.pointConnectionSizeBy,null,{allowSegment:!0})),void 0!==e.pointConnectionMaxIntPointsPerSegment&&(rc=Math.max(0,e.pointConnectionMaxIntPointsPerSegment)),void 0!==e.pointConnectionTolerance&&(rd=Math.max(0,e.pointConnectionTolerance)),void 0!==e.pointScaleMode&&(e=>{switch(e){case"linear":rS=e,id=iu;break;case"constant":rS=e,id=il;break;default:rS="asinh",id=ic}})(e.pointScaleMode),void 0!==e.opacityBy&&(rg=tF(e.opacityBy,null,{allowDensity:!0})),void 0!==e.lassoColor&&(e=>{if(!e)return;tN=tw(e,!0),n.setStyle({color:tN});let t=tN.map(e=>Math.round(255*e));nP.longPressIndicator.dataset.activeColor=`rgb(${t[0]}, ${t[1]}, ${t[2]})`})(e.lassoColor),void 0!==e.lassoLineWidth&&(Number.isNaN(+(m=e.lassoLineWidth))||1>+m||(tW=+m,n.setStyle({width:tW}))),void 0!==e.lassoMinDelay&&+(h=e.lassoMinDelay)&&(tU=+h,nP.set({minDelay:tU})),void 0!==e.lassoMinDist&&+(v=e.lassoMinDist)&&(tZ=+v,nP.set({minDist:tZ})),void 0!==e.lassoClearEvent&&(g=e.lassoClearEvent,tG=tf(eT,tG)(g)),void 0!==e.lassoInitiator&&(tq=!!e.lassoInitiator,nP.set({enableInitiator:tq})),void 0!==e.lassoInitiatorParentElement&&(tH=e.lassoInitiatorParentElement,nP.set({initiatorParentElement:tH})),void 0!==e.lassoLongPressIndicatorParentElement&&(tK=e.lassoLongPressIndicatorParentElement,nP.set({longPressIndicatorParentElement:tK})),void 0!==e.lassoOnLongPress&&(tY=!!e.lassoOnLongPress),void 0!==e.lassoLongPressTime&&(tQ=Number(e.lassoLongPressTime)),void 0!==e.lassoLongPressAfterEffectTime&&(tX=Number(e.lassoLongPressAfterEffectTime)),void 0!==e.lassoLongPressEffectDelay&&(tJ=Number(e.lassoLongPressEffectDelay)),void 0!==e.lassoLongPressRevertEffectTime&&(t0=Number(e.lassoLongPressRevertEffectTime)),void 0!==e.lassoType&&("brush"===(b=e.lassoType)?nP.set({type:b,minDist:Math.max(3,tZ)}):nP.set({type:b,minDist:tZ}),t1=nP.get("type")),void 0!==e.lassoBrushSize&&(t2=Number(e.lassoBrushSize)||t2,nP.set({brushSize:t2})),void 0!==e.actionKeyMap&&((t3=Object.entries(e.actionKeyMap).reduce((e,[t,r])=>(eF.includes(r)&&ez.includes(t)&&(e[t]=r),e),{}))[eM]?r.config({isRotate:!0,mouseDownMoveModKey:t3[eM]}):r.config({isRotate:!1})),void 0!==e.mouseMode&&(x=e.mouseMode,t5=tf(ev,em)(x),r.config({defaultMouseDownMoveAction:t5===ey?"rotate":"pan"})),void 0!==e.showReticle&&null!==(w=e.showReticle)&&(t6=w),void 0!==e.reticleColor&&(S=e.reticleColor)&&(t4=tw(S,!0),A.setStyle({color:t4}),L.setStyle({color:t4})),void 0!==e.pointOutlineWidth&&+(E=e.pointOutlineWidth)&&!(0>+E)&&(ry=+E),void 0!==e.height&&nK(e.height),void 0!==e.width&&nJ(e.width),void 0!==e.aspectRatio&&(0>=+(T=e.aspectRatio)||(r0=T)),void 0!==e.xScale&&(k=e.xScale)&&(nf=k,nc=k.domain()[0],nd=k?k.domain()[1]-k.domain()[0]:0,nf.range([0,rD]),nq()),void 0!==e.yScale&&(_=e.yScale)&&(np=(nu=_).domain()[0],nm=nu?nu.domain()[1]-nu.domain()[0]:0,nu.range([rP,0]),nq()),void 0!==e.deselectOnDblClick&&(tR=!!e.deselectOnDblClick),void 0!==e.deselectOnEscape&&(t$=!!e.deselectOnEscape),void 0!==e.opacityByDensityFill&&(rb=+e.opacityByDensityFill),void 0!==e.opacityInactiveMax&&(rx=+e.opacityInactiveMax),void 0!==e.opacityInactiveScale&&(rw=+e.opacityInactiveScale),void 0!==e.gamma&&(O=e.gamma,tn.gamma=O),void 0!==e.annotationLineColor&&(rk=tw(e.annotationLineColor)),void 0!==e.annotationLineWidth&&(r_=+e.annotationLineWidth),void 0!==e.annotationHVLineLimit&&(rO=+e.annotationHVLineLimit),void 0!==e.antiAliasing&&i6(e.antiAliasing),void 0!==e.pixelAligned&&i4(e.pixelAligned),new Promise(e=>{window.requestAnimationFrame(()=>{!rL&&ty&&(nN(),r.refresh(),tn.refresh(),al(),e())})}))},i7=()=>{r||(r=((e,{distance:t=1,target:r=[0,0],rotation:n=0,isNdc:i=!0,isFixed:a=!1,isPan:o=!0,isPanInverted:s=[!1,!0],panSpeed:l=1,isRotate:f=!0,rotateSpeed:u=1,defaultMouseDownMoveAction:c="pan",mouseDownMoveModKey:d="alt",isZoom:p=!0,zoomSpeed:m=1,viewCenter:h,scaleBounds:y,translationBounds:v,onKeyDown:g=()=>{},onKeyUp:b=()=>{},onMouseDown:x=()=>{},onMouseUp:w=()=>{},onMouseMove:A=()=>{},onWheel:E=()=>{}}={})=>{let M=((e=[0,0],t=1,r=0,n=[0,0],i=[[0,1/0],[0,1/0]],a=[[-1/0,1/0],[-1/0,1/0]])=>{let o=new Float32Array(16),s=new Float32Array(16),l=new Float32Array(16),f=S(),u=[...n.slice(0,2),0,1],c=Array.isArray(i[0])?[...i[0]]:[...i],d=Array.isArray(i[0])?[...i[1]]:[...i],p=Array.isArray(a[0])?[...a[0]]:[...a],m=Array.isArray(a[0])?[...a[1]]:[...a],h=()=>{var e,t,r,n,i,a,s,l,u,c;return(t=(e=f)[0],r=e[1],n=e[2],i=e[4],a=e[5],s=e[6],l=e[8],u=e[9],c=e[10],o[0]=Math.hypot(t,r,n),o[1]=Math.hypot(i,a,s),o[2]=Math.hypot(l,u,c),o).slice(0,2)},y=()=>{let e=h();return Math.min(e[0],e[1])},v=()=>{let e=h();return Math.max(e[0],e[1])},g=([e=0,t=0]=[],r=1,n=0)=>{f=S(),b([-e,-t]),w(n),x(1/r)},b=([e=0,t=0]=[])=>{o[0]=e,o[1]=t,o[2]=0;let r=_(s,o);k(f,r,f)},x=(e,t)=>{let r=Array.isArray(e),n=r?e[0]:e,i=r?e[1]:e;if(n<=0||i<=0||1===n&&1===i)return;let a=h(),p=a[0]*n,m=a[1]*i;if(n=Math.max(c[0],Math.min(p,c[1]))/a[0],i=Math.max(d[0],Math.min(m,d[1]))/a[1],1===n&&1===i)return;o[0]=n,o[1]=i,o[2]=1;let y=O(s,o),v=_(o,t?[...t,0]:u);k(f,v,k(f,y,k(f,T(l,v),f)))},w=e=>{var t,r,n,i,a,o,s,l;let u=S();a=(t=[0,0,1])[0],(l=Math.hypot(a,o=0,s=1))<1e-6||(a*=l=1/l,o*=l,s*=l,r=Math.sin(e),i=1-(n=Math.cos(e)),u[0]=a*a*i+n,u[1]=o*a*i+s*r,u[2]=s*a*i-o*r,u[3]=0,u[4]=a*o*i-s*r,u[5]=o*o*i+n,u[6]=s*o*i+a*r,u[7]=0,u[8]=a*s*i+o*r,u[9]=o*s*i-a*r,u[10]=s*s*i+n,u[11]=0,u[12]=0,u[13]=0,u[14]=0,u[15]=1),k(f,u,f)},A=e=>{e&&!(e.length<16)&&(f=e)};return g(e,t,r),{get translation(){var E;return(E=f,o[0]=E[12],o[1]=E[13],o[2]=E[14],o).slice(0,2)},get target(){return C(o,u,T(l,f)).slice(0,2)},get scaling(){return h()},get minScaling(){return y()},get maxScaling(){return v()},get scaleBounds(){return[[...c],[...d]]},get translationBounds(){return[[...p],[...m]]},get distance(){let e;return[1/(e=h())[0],1/e[1]]},get minDistance(){return 1/y()},get maxDistance(){return 1/v()},get rotation(){return Math.acos(f[0]/v())},get view(){return f},get viewCenter(){return u.slice(0,2)},lookAt:g,translate:b,pan:b,rotate:w,scale:x,zoom:x,reset:()=>{g(e,t,r)},set:(...e)=>(console.warn("`set()` is deprecated. Please use `setView()` instead."),A(...e)),setScaleBounds:e=>{let t=Array.isArray(e[0]);c[0]=t?e[0][0]:e[0],c[1]=t?e[0][1]:e[1],d[0]=t?e[1][0]:e[0],d[1]=t?e[1][1]:e[1]},setTranslationBounds:e=>{let t=Array.isArray(e[0]);p[0]=t?e[0][0]:e[0],p[1]=t?e[0][1]:e[1],m[0]=t?e[1][0]:e[0],m[1]=t?e[1][1]:e[1]},setView:A,setViewCenter:e=>{u=[...e.slice(0,2),0,1]}}})(r,t,n,h,y,v),I=0,j=0,z=0,B=0,R=0,L=0,F=!1,V=0,$=1,N=1,W=1,U=!1,Z=!1,G=!1,q="pan"===c,H=o,K=o,Y=s,Q=s,X=p,J=p,ee=()=>{H=Array.isArray(o)?!!o[0]:o,K=Array.isArray(o)?!!o[1]:o,Y=Array.isArray(s)?!!s[0]:s,Q=Array.isArray(s)?!!s[1]:s,X=Array.isArray(p)?!!p[0]:p,J=Array.isArray(p)?!!p[1]:p};ee();let et=i?e=>e/$*2*W:e=>e,er=i?e=>e/N*2:e=>-e,en=i?e=>(-1+e/$*2)*W:e=>e,ei=i?e=>1-e/N*2:e=>e,ea=()=>{let t=e.getBoundingClientRect();$=t.width,N=t.height,W=$/N},eo=e=>{G=!1,b(e)},es=e=>{G=e[P[d]],g(e)},el=e=>{F=!1,w(e)},ef=e=>{F=1===e.buttons,x(e)},eu=void 0!==document.createEvent("MouseEvent").offsetX?e=>{z=e.offsetX,B=e.offsetY}:t=>{let r=e.getBoundingClientRect();z=t.clientX-r.left,B=t.clientY-r.top},ec=e=>{I=e.clientX,j=e.clientY},ed=e=>{ec(e),A(e)},ep=e=>{if((X||J)&&!a){e.preventDefault(),ec(e),eu(e);let t=1===e.deltaMode?12:1;V+=t*(e.deltaY||e.deltaX||0)}E(e)};window.addEventListener("keydown",es,{passive:!0}),window.addEventListener("keyup",eo,{passive:!0}),e.addEventListener("mousedown",ef,{passive:!0}),window.addEventListener("mouseup",el,{passive:!0}),window.addEventListener("mousemove",ed,{passive:!0}),e.addEventListener("wheel",ep,{passive:!1}),M.config=({defaultMouseDownMoveAction:e=null,isFixed:t=null,isPan:r=null,isPanInverted:n=null,isRotate:i=null,isZoom:h=null,panSpeed:y=null,rotateSpeed:v=null,zoomSpeed:g=null,mouseDownMoveModKey:b=null}={})=>{q="pan"===(c=null!==e&&D.includes(e)?e:c),a=null!==t?t:a,o=null!==r?r:o,s=null!==n?n:s,f=null!==i?i:f,p=null!==h?h:p,l=+y>0?y:l,u=+v>0?v:u,m=+g>0?g:m,ee(),d=null!==b&&Object.keys(P).includes(b)?b:d},M.dispose=()=>{M=void 0,window.removeEventListener("keydown",es),window.removeEventListener("keyup",eo),e.removeEventListener("mousedown",ef),window.removeEventListener("mouseup",el),window.removeEventListener("mousemove",ed),e.removeEventListener("wheel",ep)},M.refresh=ea,M.tick=()=>{if(a){let e=Z;return Z=!1,e}U=!1;let e=I,t=j;if((H||K)&&F&&(q&&!G||!q&&G)){let r=Y?R-e:e-R,n=H?et(l*r):0,i=Q?L-t:t-L,a=K?er(l*i):0;(0!==n||0!==a)&&(M.pan([n,a]),U=!0)}if((X||J)&&V){let e=m*Math.exp(V/N),t=en(z),r=ei(B);M.scale([X?1/e:1,J?1/e:1],[t,r]),U=!0}if(f&&F&&(q&&G||!q&&!G)&&Math.abs(R-e)+Math.abs(L-t)>0){var r,n,i,o,s,c,d;let a=$/2,l=N/2,f=R-a,p=l-L,m=e-a,h=l-t,y=(r=[f,p],n=[m,h],i=r[0],o=r[1],Math.acos(Math.min(Math.max((d=Math.sqrt(i*i+o*o)*Math.sqrt((s=n[0])*s+(c=n[1])*c))&&(i*s+o*c)/d,-1),1)));M.rotate(u*y*Math.sign(f*h-m*p)),U=!0}V=0,R=e,L=t;let p=U||Z;return Z=!1,p};let em=e=>function(){e.apply(null,arguments),Z=!0};return M.lookAt=em(M.lookAt),M.translate=em(M.translate),M.pan=em(M.pan),M.rotate=em(M.rotate),M.scale=em(M.scale),M.zoom=em(M.zoom),M.reset=em(M.reset),M.set=em(M.set),M.setScaleBounds=em(M.setScaleBounds),M.setTranslationBounds=em(M.setTranslationBounds),M.setView=em(M.setView),M.setViewCenter=em(M.setViewCenter),ea(),M})(ty,{isFixed:rC,isPanInverted:[!1,!0],defaultMouseDownMoveAction:t5===ey?"rotate":"pan"})),e.cameraView?r.setView(E(e.cameraView)):e.cameraTarget||e.cameraDistance||e.cameraRotation?r.lookAt([...e.cameraTarget||eK],e.cameraDistance||1,e.cameraRotation||0):r.setView(E(eY)),Z=nv(1,1),G=nv(-1,-1)},i9=({key:e})=>{"Escape"===e&&t$&&n_()},ae=()=>{nl=!0,na=!0},at=()=>{nC(),nl=!1,na=!0,r2=!0},ar=()=>{r2=!0},an=()=>{iV([]),g.clear()},ai=()=>{iq([])},aa=()=>{let e=rT===ef,t=rE===ef;if(e||t){let{width:r,height:n}=ty.getBoundingClientRect();e&&nX(r,!0),t&&nH(n,!0),nN(),nq(),r2=!0}r.refresh()},ao=async e=>{ty.style.userSelect="none";let t=window.devicePixelRatio,r=rp,n=rT,i=rE,a=tn.canvas.width/t,o=tn.canvas.height/t,s=tc,l=ta,f=e?.scale||1,u=Array.isArray(rp)?rp.map(e=>e*f):rp*f,c=rD*f,d=rP*f;nQ(u),nJ(c),nK(d),i4(e?.pixelAligned||tc),i6(e?.antiAliasing||ta),tn.resize(rT,rE),tn.refresh(),await new Promise(e=>{e7.subscribe("draw",e,1),al()});let p=ty.getContext("2d").getImageData(0,0,ty.width,ty.height);return tn.resize(a,o),tn.refresh(),nQ(r),nJ(n),nK(i),i4(s),i6(l),await new Promise(e=>{e7.subscribe("draw",e,1),al()}),ty.style.userSelect=null,p},as=tn.onFrame(()=>{var e,t;let i,a;if(nr=r.tick(),!((nn||ni)&&(r2||r8)))return;r8&&(e=es,t=el,r7||(r7=performance.now()),a=Math.min(1,Math.max(0,t((i=performance.now()-r7)/e))),K&&Y&&iC({t:a}),void 0!==er&&void 0!==ei&&void 0!==ea&&void 0!==eo&&(e=>{let[t,n]=er,[i,a]=ei,o=1-e,s=ea*o+eo*e;r.lookAt([t*o+i*e,n*o+a*e],s)})(a),!(i{let e=ty.width/tn.canvas.width,t=ty.height/tn.canvas.height;p[0]=e/c,p[5]=t,tp?._reglType&&iB(),rJ.length>2&&iR(),r8||g.draw({projection:p,model:m,view:r.view});let i=ip();nn&&i>0&&iP(),!rV&&(t6||r3)&&(()=>{if(!(eX>=0))return;let[e,t]=rK[eX].slice(0,2),n=[e,t,0,1];k(e9,p,k(e9,r.view,m)),C(n,n,e9),A.setPoints([-1,n[1],1,n[1]]),L.setPoints([n[0],1,n[0],-1]),A.draw(),L.draw(),iD(()=>(rm+2*ry)*window.devicePixelRatio,()=>1,et,1)(),iD(()=>(rm+ry)*window.devicePixelRatio,()=>1,et,3)()})(),eX>=0&&iM(),rU.length>0&&(iI(),ij(),iz()),f.draw({projection:p,model:m,view:r.view}),n.draw({projection:p,model:m,view:r.view})},ty);let o={view:r.view,isViewChanged:nr,camera:r,xScale:nf,yScale:nu};nr&&(nq(),r1?r1=!1:e7.publish("view",o)),r2=!1,r3=!1,e7.publish("drawing",o,{async:!1}),e7.publish("draw",o)}),al=()=>{r2=!0};return nN(),i7(),nq(),n=J(tn.regl,{color:tN,width:tW,is2d:!0}),g=J(tn.regl,{color:nV(rt,rr,rn),opacity:null===ra?null:ra[0],width:rl[0],is2d:!0}),A=J(tn.regl,{color:t4,width:1,is2d:!0}),L=J(tn.regl,{color:t4,width:1,is2d:!0}),f=J(tn.regl,{color:rk,width:r_,is2d:!0}),nY(),ty.addEventListener("wheel",ar),X=tn.regl.buffer(),ee=tn.regl.buffer(),et=tn.regl.buffer({usage:"dynamic",type:"float",length:2*ec}),ed=n$(),ep=nF(),e8=i8({backgroundImage:tp,width:rT,height:rE,actionKeyMap:t3}),iX(),iJ(),window.addEventListener("keyup",i9,!1),window.addEventListener("blur",nL,!1),window.addEventListener("mouseup",nj,!1),window.addEventListener("mousemove",nR,!1),ty.addEventListener("mousedown",nI,!1),ty.addEventListener("mouseenter",ae,!1),ty.addEventListener("mouseleave",at,!1),ty.addEventListener("click",nz,!1),ty.addEventListener("dblclick",nB,!1),"ResizeObserver"in window?(q=new ResizeObserver(aa)).observe(ty):(window.addEventListener("resize",aa),window.addEventListener("orientationchange",aa)),e8.then(()=>{e7.publish("init")}),{get isSupported(){return tn.isSupported},clear:iH(()=>{an(),ai()}),clearPoints:iH(an),clearPointConnections:iH(()=>{g.clear()}),clearAnnotations:iH(ai),createTextureFromUrl:(e,t=e0)=>tu(tn.regl,e,t),deselect:n_,destroy:()=>{nn=!1,ni=!1,rL=!0,as(),window.removeEventListener("keyup",i9,!1),window.removeEventListener("blur",nL,!1),window.removeEventListener("mouseup",nj,!1),window.removeEventListener("mousemove",nR,!1),ty.removeEventListener("mousedown",nI,!1),ty.removeEventListener("mouseenter",ae,!1),ty.removeEventListener("mouseleave",at,!1),ty.removeEventListener("click",nz,!1),ty.removeEventListener("dblclick",nB,!1),ty.removeEventListener("wheel",ar,!1),q?q.disconnect():(window.removeEventListener("resize",aa),window.removeEventListener("orientationchange",aa)),ty=void 0,r.dispose(),r=void 0,n.destroy(),nP.destroy(),g.destroy(),A.destroy(),L.destroy(),ed&&ed.destroy(),ep&&ep.destroy(),e.renderer||tn.isDestroyed||tn.destroy(),e7.publish("destroy"),e7.clear()},draw:(e,t={})=>rL?Promise.reject(Error(e5)):rR?Promise.reject(Error("Ignoring draw call as the previous draw call has not yet finished. To avoid this warning `await` the draw call.")):(rR=!0,tS(e).then(e=>new Promise(r=>{if(rL)return void r();let n=!1;t.preventFilterReset&&e?.length===rY||(rq=!1,rH.clear());let i=e&&nS(e[0])&&(re||t.showPointConnectionsOnce),{zDataType:a,wDataType:o}=t;new Promise(s=>{e?(t.transition&&(e.length===rY?n=((e,t={})=>{if(!H)return!1;if(r8){let e=K;K=Y,e.destroy()}else K=H;return Y=iF(e,t),Q=tn.regl.framebuffer({color:Y,depth:!1,stencil:!1}),H=void 0,!0})(e,{z:a,w:o}):console.warn("Cannot transition! The number of points between the previous and current draw call must be identical.")),iV(e,{zDataType:a,wDataType:o,preventFilterReset:t.preventFilterReset,spatialIndex:t.spatialIndex}).then(()=>{void 0!==t.hover&&nC(t.hover,{preventEvent:!0}),void 0!==t.select&&nO(t.select,{preventEvent:!0}),void 0!==t.filter&&iW(t.filter,{preventEvent:!0}),i?iN(e).then(()=>{e7.publish("pointConnectionsDraw"),r2=!0,r3=t.showReticleOnce}).then(()=>r()):s()})):s()}).then(()=>{t.transition&&n?(i?Promise.all([new Promise(e=>{e7.subscribe("transitionEnd",()=>{r2=!0,r3=t.showReticleOnce,e()},1)}),new Promise(e=>{e7.subscribe("pointConnectionsDraw",e,1)})]).then(()=>r()):e7.subscribe("transitionEnd",()=>{r2=!0,r3=t.showReticleOnce,r()},1),iG({duration:t.transitionDuration,easing:t.transitionEasing})):(i?Promise.all([new Promise(e=>{e7.subscribe("draw",e,1)}),new Promise(e=>{e7.subscribe("pointConnectionsDraw",e,1)})]).then(()=>r()):e7.subscribe("draw",()=>r(),1),r2=!0,r3=t.showReticleOnce)})}).finally(()=>{rR=!1}))),drawAnnotations:iq,filter:iW,get:e=>{let[t]=Object.keys(tL({[e]:e2}));return"aspectRatio"===t?r0:"background"===t||"backgroundColor"===t?td:"backgroundImage"===t?tp:"camera"===t?r:"cameraTarget"===t?r.target:"cameraDistance"===t?r.distance[0]:"cameraRotation"===t?r.rotation:"cameraView"===t?r.view:"cameraIsFixed"===t?rC:"canvas"===t?ty:"colorBy"===t?tv:"sizeBy"===t?rA:"deselectOnDblClick"===t?tR:"deselectOnEscape"===t?t$:"height"===t?rE:"lassoColor"===t?tN:"lassoLineWidth"===t?tW:"lassoMinDelay"===t?tU:"lassoMinDist"===t?tZ:"lassoClearEvent"===t?tG:"lassoInitiator"===t?tq:"lassoInitiatorElement"===t?nP.initiator:"lassoInitiatorParentElement"===t?tH:"lassoLongPressIndicatorParentElement"===t?tK:"lassoOnLongPress"===t?tY:"lassoType"===t?t1:"lassoBrushSize"===t?t2:"mouseMode"===t?t5:"opacity"===t?1===rv.length?rv[0]:rv:"opacityBy"===t?rg:"opacityByDensityFill"===t?rb:"opacityByDensityDebounceTime"===t?rI:"opacityInactiveMax"===t?rx:"opacityInactiveScale"===t?rw:"points"===t?rK:"hoveredPoint"===t?eX:"selectedPoints"===t?[...rU]:"filteredPoints"===t?rq?Array.from(rH):Array.from({length:rK.length},(e,t)=>t):"pointsInView"===t?iU():"pointColor"===t?1===t8.length?t8[0]:t8:"pointColorActive"===t?1===t7.length?t7[0]:t7:"pointColorHover"===t?1===t9.length?t9[0]:t9:"pointOutlineWidth"===t?ry:"pointSize"===t?1===rp.length?rp[0]:rp:"pointSizeSelected"===t?rm:"pointSizeMouseDetection"===t?rh:"showPointConnections"===t?re:"pointConnectionColor"===t?1===rt.length?rt[0]:rt:"pointConnectionColorActive"===t?1===rr.length?rr[0]:rr:"pointConnectionColorHover"===t?1===rn.length?rn[0]:rn:"pointConnectionColorBy"===t?ri:"pointConnectionOpacity"===t?1===ra.length?ra[0]:ra:"pointConnectionOpacityBy"===t?ro:"pointConnectionOpacityActive"===t?rs:"pointConnectionSize"===t?1===rl.length?rl[0]:rl:"pointConnectionSizeActive"===t?rf:"pointConnectionSizeBy"===t?ru:"pointConnectionMaxIntPointsPerSegment"===t?rc:"pointConnectionTolerance"===t?rd:"pointScaleMode"===t?rS:"reticleColor"===t?t4:"regl"===t?tn.regl:"showReticle"===t?t6:"version"===t?"1.14.1":"width"===t?rT:"xScale"===t?nf:"yScale"===t?nu:"performanceMode"===t?rM:"renderPointsAsSquares"===t?rz:"disableAlphaBlending"===t?rB:"gamma"===t?tn.gamma:"renderer"===t?tn:"isDestroyed"===t?rL:"isDrawing"===t?rR:"isPointsDrawn"===t?nn:"isPointsFiltered"===t?rq:"isAnnotationsDrawn"===t?ni:"zDataType"===t?no:"wDataType"===t?ns:"spatialIndex"===t?u?.data:"annotationLineColor"===t?rk:"annotationLineWidth"===t?r_:"annotationHVLineLimit"===t?rO:"antiAliasing"===t?ta:"pixelAligned"===t?tc:"actionKeyMap"===t?{...t3}:void 0},getScreenPosition:e=>{if(!nn)throw Error(e3);let t=rK[e];if(!t)return;let n=[t[0],t[1],0,1];return k(e9,d,k(e9,r.view,m)),C(n,n,e9),[rD*(n[0]+1)/2,rP*(.5-n[1]/2)]},hover:nC,redraw:al,refresh:tn.refresh,reset:iH(({preventEvent:e=!1}={})=>{i7(),nq(),e||e7.publish("view",{view:r.view,camera:r,xScale:nf,yScale:nu})}),select:nO,set:i8,export:e=>void 0===e?ty.getContext("2d").getImageData(0,0,ty.width,ty.height):ao(e),subscribe:e7.subscribe,unfilter:({preventEvent:e=!1}={})=>(rq=!1,rH.clear(),X.subdata(iL(rY)),new Promise(t=>{let r=()=>{e7.subscribe("draw",()=>{e||e7.publish("unfilter"),t()},1),r2=!0};re||nS(rK[0])?iN(nb()).then(()=>{e||e7.publish("pointConnectionsDraw"),r()}):r()})),unsubscribe:e7.unsubscribe,view:(e,{preventEvent:t=!1}={})=>{i0(e),r2=!0,r1=t},zoomToLocation:iY,zoomToArea:iK,zoomToPoints:(e,t={})=>{if(!nn)return Promise.reject(Error(e3));let r=(e=>{let t=1/0,r=-1/0,n=1/0,i=-1/0;for(let a of e){let[e,o]=rK[a];t=Math.min(t,e),r=Math.max(r,e),n=Math.min(n,o),i=Math.max(i,o)}return{x:t,y:n,width:r-t,height:i-n}})(e),n=r.x+r.width/2,i=r.y+r.height/2,a=ng(),o=1+(t.padding||0),s=Math.max(r.width,a)*o,l=Math.max(r.height,a)*o;return iK({x:n-s/2,y:i-l/2,width:s,height:l},t)},zoomToOrigin:(e={})=>iY([0,0],1,e)}},tN=(e,t)=>tS(e).then(e=>en(e,{useWorker:t})).then(e=>e.data);e.s(["checkSupport",()=>tr,"createRegl",()=>tn,"createRenderer",()=>tC,"createSpatialIndex",()=>tN,"createTextureFromUrl",()=>tu,"default",()=>t$],42030)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/71c75872eed19356.js b/src/hyperview/server/static/_next/static/chunks/71c75872eed19356.js deleted file mode 100644 index 7374efe..0000000 --- a/src/hyperview/server/static/_next/static/chunks/71c75872eed19356.js +++ /dev/null @@ -1,9 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52683,e=>{"use strict";let t;var n,r,i,s,l=e.i(43476),a=e.i(71645),o=e.i(74080);function c(e,t,n){let r,i=n.initialDeps??[];function s(){var s,l,a,o;let c,h;n.key&&(null==(s=n.debug)?void 0:s.call(n))&&(c=Date.now());let u=e();if(!(u.length!==i.length||u.some((e,t)=>i[t]!==e)))return r;if(i=u,n.key&&(null==(l=n.debug)?void 0:l.call(n))&&(h=Date.now()),r=t(...u),n.key&&(null==(a=n.debug)?void 0:a.call(n))){let e=Math.round((Date.now()-c)*100)/100,t=Math.round((Date.now()-h)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length{i=e},s}function h(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(47167);let u=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},d=e=>e,f=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},m=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(u(n)),!r.ResizeObserver)return()=>{};let s=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void i({width:t.inlineSize,height:t.blockSize})}i(u(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return s.observe(n,{box:"border-box"}),()=>{s.unobserve(n)}},g={passive:!0},x="undefined"==typeof window||"onscrollend"in window,p=(e,t)=>{var n,r;let i,s=e.scrollElement;if(!s)return;let l=e.targetWindow;if(!l)return;let a=0,o=e.options.useScrollendEvent&&x?()=>void 0:(n=()=>{t(a,!1)},r=e.options.isScrollingResetDelay,function(...e){l.clearTimeout(i),i=l.setTimeout(()=>n.apply(this,e),r)}),c=n=>()=>{let{horizontal:r,isRtl:i}=e.options;a=r?s.scrollLeft*(i&&-1||1):s.scrollTop,o(),t(a,n)},h=c(!0),u=c(!1);u(),s.addEventListener("scroll",h,g);let d=e.options.useScrollendEvent&&x;return d&&s.addEventListener("scrollend",u,g),()=>{s.removeEventListener("scroll",h),d&&s.removeEventListener("scrollend",u)}},b=(e,t,n)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?"inlineSize":"blockSize"])}return e[n.options.horizontal?"offsetWidth":"offsetHeight"]},v=(e,{adjustments:t=0,behavior:n},r)=>{var i,s;null==(s=null==(i=r.scrollElement)?void 0:i.scrollTo)||s.call(i,{[r.options.horizontal?"left":"top"]:e+t,behavior:n})};class y{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var n;null==(n=t())||n.disconnect(),e=null},observe:e=>{var n;return null==(n=t())?void 0:n.observe(e,{box:"border-box"})},unobserve:e=>{var n;return null==(n=t())?void 0:n.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{void 0===n&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:d,rangeExtractor:f,onChange:()=>{},measureElement:b,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,n;null==(n=(t=this.options).onChange)||n.call(t,this,e)},this.maybeNotify=c(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let s=r.get(t.lane);if(null==s||t.end>s.end?r.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=c(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,n,r,i)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i}),{key:!1}),this.getMeasurements=c(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i},s)=>{if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let a=this.measurementsCache.slice(0,l);for(let i=l;ithis.options.debug}),this.calculateRange=c(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:n,lanes:r}){let i=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:i};let s=w(0,i,t=>e[t].start,n),l=s;if(1===r)for(;l1){let a=Array(r).fill(0);for(;le=0&&o.some(e=>e>=n);){let t=e[s];o[t.lane]=t.start,s--}s=Math.max(0,s-s%r),l=Math.min(i,l+(r-1-l%r))}return{startIndex:s,endIndex:l}}({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=c(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>null===r||null===i?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;let i=r.key,s=this.elementsCache.get(i);s!==e&&(s&&this.observer.unobserve(s),this.observer.observe(e),this.elementsCache.set(i,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);0!==r&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this):n.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=c(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;rthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return h(t[w(0,t.length-1,e=>h(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,n=0)=>{let r=this.getSize(),i=this.getScrollOffset();return"auto"===t&&(t=e>=i+r?"end":"start"),"center"===t?e+=(n-r)/2:"end"===t&&(e-=r),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-r,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.measurementsCache[e];if(!n)return;let r=this.getSize(),i=this.getScrollOffset();if("auto"===t)if(n.end>=i+r-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=i+this.options.scrollPaddingStart))return[i,t];t="start"}let s="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(s,t,n.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:n}={})=>{"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t="auto",behavior:n}={})=>{"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let r=0,i=t=>{if(!this.targetWindow)return;let r=this.getOffsetForIndex(e,t);if(!r)return void console.warn("Failed to get offset for index:",e);let[i,l]=r;this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),n=this.getOffsetForIndex(e,l);n?1.01>Math.abs(n[0]-t)||s(l):console.warn("Failed to get offset for index:",e)})},s=t=>{this.targetWindow&&(++r<10?this.targetWindow.requestAnimationFrame(()=>i(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};i(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,n=this.getMeasurements();if(0===n.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=n[n.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),r=n.length-1;for(;r>=0&&e.some(e=>null===e);){let t=n[r];null===e[t.lane]&&(e[t.lane]=t.end),r--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let w=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,s=n(i);if(sr))return i;t=i-1}}return e>0?e-1:0},M="undefined"!=typeof document?a.useLayoutEffect:a.useEffect,N=e=>{let t,n=new Set,r=(e,r)=>{let i="function"==typeof e?e(t):e;if(!Object.is(i,t)){let e=t;t=(null!=r?r:"object"!=typeof i||null===i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,s={setState:r,getState:i,getInitialState:()=>l,subscribe:e=>(n.add(e),()=>n.delete(e))},l=t=e(r,i,s);return s},j=e=>{let t=e?N(e):N,n=e=>(function(e,t=e=>e){let n=a.default.useSyncExternalStore(e.subscribe,a.default.useCallback(()=>t(e.getState()),[e,t]),a.default.useCallback(()=>t(e.getInitialState()),[e,t]));return a.default.useDebugValue(n),n})(t,e);return Object.assign(n,t),n},S=(t=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,setSamples:(t,n)=>e({samples:t,totalSamples:n}),appendSamples:t=>e(e=>({samples:[...e.samples,...t]})),addSamplesIfMissing:t=>e(e=>{let n=new Set(e.samples.map(e=>e.id)),r=t.filter(e=>!n.has(e.id));return 0===r.length?e:{samples:[...e.samples,...r]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t}),viewMode:"hyperbolic",setViewMode:t=>e({viewMode:t}),selectedIds:new Set,setSelectedIds:t=>e({selectedIds:t}),toggleSelection:t=>e(e=>{let n=new Set(e.selectedIds);return n.has(t)?n.delete(t):n.add(t),{selectedIds:n}}),addToSelection:t=>e(e=>{let n=new Set(e.selectedIds);return t.forEach(e=>n.add(e)),{selectedIds:n}}),clearSelection:()=>e({selectedIds:new Set}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t}),filterLabel:null,setFilterLabel:t=>e({filterLabel:t}),showLabels:!0,setShowLabels:t=>e({showLabels:t})}))?j(t):j;function k({samples:e,onLoadMore:t,hasMore:n}){let r=(0,a.useRef)(null),{selectedIds:i,toggleSelection:s,addToSelection:c,setHoveredId:h,hoveredId:u}=S(),d=(0,a.useMemo)(()=>{if(0===i.size)return e;let t=[],n=[];return e.forEach(e=>{i.has(e.id)?t.push(e):n.push(e)}),[...t,...n]},[e,i]),f=function(e){let t=a.useReducer(()=>({}),{})[1],n={...e,onChange:(n,r)=>{var i;r?(0,o.flushSync)(t):t(),null==(i=e.onChange)||i.call(e,n,r)}},[r]=a.useState(()=>new y(n));return r.setOptions(n),M(()=>r._didMount(),[]),M(()=>r._willUpdate()),r}({observeElementRect:m,observeElementOffset:p,scrollToFn:v,...{count:Math.ceil(d.length/4),getScrollElement:()=>r.current,estimateSize:()=>148,overscan:5,getItemKey:(0,a.useCallback)(e=>{let t=4*e;return d.slice(t,t+4).map(e=>e.id).join("-")||`row-${e}`},[d])}});(0,a.useEffect)(()=>{let e=r.current;if(!e||!t||!n)return;let i=()=>{let{scrollTop:n,scrollHeight:r,clientHeight:i}=e;r-n-i<500&&t()};return e.addEventListener("scroll",i),()=>e.removeEventListener("scroll",i)},[t,n]);let g=(0,a.useRef)(new Set);(0,a.useEffect)(()=>{let e=g.current;(e.size!==i.size||[...i].some(t=>!e.has(t)))&&i.size>0&&(f.measure(),f.scrollToOffset(0,{behavior:"smooth"})),g.current=new Set(i)},[i,f]);let x=(0,a.useCallback)((e,t)=>{if(t.metaKey||t.ctrlKey)s(e.id);else if(t.shiftKey&&i.size>0){let t=Array.from(i),n=t[t.length-1],r=d.findIndex(e=>e.id===n),s=d.findIndex(t=>t.id===e.id);if(-1!==r&&-1!==s){let e=Math.min(r,s),t=Math.max(r,s);c(d.slice(e,t+1).map(e=>e.id))}}else{let t=new Set;t.add(e.id),S.getState().setSelectedIds(t)}},[d,i,s,c]),b=f.getVirtualItems();return(0,l.jsxs)("div",{className:"flex flex-col h-full bg-surface rounded-lg overflow-hidden",children:[(0,l.jsx)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-surface-light",children:(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"text-sm font-medium",children:"Samples"}),(0,l.jsxs)("span",{className:"text-xs text-text-muted",children:[d.length," items",i.size>0&&` (${i.size} selected)`]})]})}),(0,l.jsx)("div",{ref:r,className:"flex-1 overflow-auto p-2",children:(0,l.jsx)("div",{style:{height:`${f.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(e=>{let t=4*e.index,n=d.slice(t,t+4);return(0,l.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"140px",transform:`translateY(${e.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=i.has(e.id),n=u===e.id;return(0,l.jsxs)("div",{className:` - relative flex-1 rounded-md overflow-hidden cursor-pointer - transition-all duration-150 ease-out - ${t?"ring-2 ring-primary":""} - ${n?"ring-2 ring-primary-light":""} - `,onClick:t=>x(e,t),onMouseEnter:()=>h(e.id),onMouseLeave:()=>h(null),children:[e.thumbnail?(0,l.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,l.jsx)("div",{className:"w-full h-full bg-surface-light flex items-center justify-center",children:(0,l.jsx)("span",{className:"text-text-muted text-xs",children:"No image"})}),e.label&&(0,l.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,l.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,l.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,l.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})})]},e.id)}),Array.from({length:4-n.length}).map((e,t)=>(0,l.jsx)("div",{className:"flex-1"},`empty-${t}`))]},e.key)})})})]})}let E=Math.sqrt(50),z=Math.sqrt(10),$=Math.sqrt(2);function C(e,t,n){let r,i,s,l=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(l)),o=l/Math.pow(10,a),c=o>=E?10:o>=z?5:o>=$?2:1;return(a<0?(r=Math.round(e*(s=Math.pow(10,-a)/c)),i=Math.round(t*s),r/st&&--i,s=-s):(r=Math.round(e/(s=Math.pow(10,a)*c)),i=Math.round(t/s),r*st&&--i),it?1:e>=t?0:NaN}function A(e,t){return null==e||null==t?NaN:te?1:t>=e?0:NaN}function R(e){let t,n,r;function i(e,r,s=0,l=e.length){if(s>>1;0>n(e[t],r)?s=t+1:l=t}while(sI(e(t),n),r=(t,n)=>e(t)-n):(t=e===I||e===A?e:F,n=e,r=e),{left:i,center:function(e,t,n=0,s=e.length){let l=i(e,t,n,s-1);return l>n&&r(e[l-1],t)>-r(e[l],t)?l-1:l},right:function(e,r,i=0,s=e.length){if(i>>1;0>=n(e[t],r)?i=t+1:s=t}while(i>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?en(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?en(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=B.exec(e))?new ei(t[1],t[2],t[3],1):(t=K.exec(e))?new ei(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=U.exec(e))?en(t[1],t[2],t[3],t[4]):(t=X.exec(e))?en(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Y.exec(e))?eh(t[1],t[2]/100,t[3]/100,1):(t=G.exec(e))?eh(t[1],t[2]/100,t[3]/100,t[4]):J.hasOwnProperty(e)?et(J[e]):"transparent"===e?new ei(NaN,NaN,NaN,0):null}function et(e){return new ei(e>>16&255,e>>8&255,255&e,1)}function en(e,t,n,r){return r<=0&&(e=t=n=NaN),new ei(e,t,n,r)}function er(e,t,n,r){var i;return 1==arguments.length?((i=e)instanceof P||(i=ee(i)),i)?new ei((i=i.rgb()).r,i.g,i.b,i.opacity):new ei:new ei(e,t,n,null==r?1:r)}function ei(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}function es(){return`#${ec(this.r)}${ec(this.g)}${ec(this.b)}`}function el(){let e=ea(this.opacity);return`${1===e?"rgb(":"rgba("}${eo(this.r)}, ${eo(this.g)}, ${eo(this.b)}${1===e?")":`, ${e})`}`}function ea(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function eo(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function ec(e){return((e=eo(e))<16?"0":"")+e.toString(16)}function eh(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ed(e,t,n,r)}function eu(e){if(e instanceof ed)return new ed(e.h,e.s,e.l,e.opacity);if(e instanceof P||(e=ee(e)),!e)return new ed;if(e instanceof ed)return e;var t=(e=e.rgb()).r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,a=s-i,o=(s+i)/2;return a?(l=t===s?(n-r)/a+(n0&&o<1?0:l,new ed(l,a,o,e.opacity)}function ed(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}function ef(e){return(e=(e||0)%360)<0?e+360:e}function em(e){return Math.max(0,Math.min(1,e||0))}function eg(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function ex(e,t,n,r,i){var s=e*e,l=s*e;return((1-3*e+3*s-l)*t+(4-6*s+3*l)*n+(1+3*e+3*s-3*l)*r+l*i)/6}W(P,ee,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Z,formatHex:Z,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return eu(this).formatHsl()},formatRgb:Q,toString:Q}),W(ei,er,D(P,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new ei(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new ei(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ei(eo(this.r),eo(this.g),eo(this.b),ea(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:es,formatHex:es,formatHex8:function(){return`#${ec(this.r)}${ec(this.g)}${ec(this.b)}${ec((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:el,toString:el})),W(ed,function(e,t,n,r){return 1==arguments.length?eu(e):new ed(e,t,n,null==r?1:r)},D(P,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new ed(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new ed(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new ei(eg(e>=240?e-240:e+120,i,r),eg(e,i,r),eg(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new ed(ef(this.h),em(this.s),em(this.l),ea(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=ea(this.opacity);return`${1===e?"hsl(":"hsla("}${ef(this.h)}, ${100*em(this.s)}%, ${100*em(this.l)}%${1===e?")":`, ${e})`}`}}));let ep=e=>()=>e;function eb(e,t){var n=t-e;return n?function(t){return e+t*n}:ep(isNaN(e)?t:e)}let ev=function e(t){var n,r=1==(n=+t)?eb:function(e,t){var r,i,s;return t-e?(r=e,i=t,r=Math.pow(r,s=n),i=Math.pow(i,s)-r,s=1/s,function(e){return Math.pow(r+e*i,s)}):ep(isNaN(e)?t:e)};function i(e,t){var n=r((e=er(e)).r,(t=er(t)).r),i=r(e.g,t.g),s=r(e.b,t.b),l=eb(e.opacity,t.opacity);return function(t){return e.r=n(t),e.g=i(t),e.b=s(t),e.opacity=l(t),e+""}}return i.gamma=e,i}(1);function ey(e){return function(t){var n,r,i=t.length,s=Array(i),l=Array(i),a=Array(i);for(n=0;n=1?(n=1,t-1):Math.floor(n*t),i=e[r],s=e[r+1],l=r>0?e[r-1]:2*i-s,a=r1?r[0]+r.slice(2):r,+e.slice(n+1)]}function eA(e){return(e=eI(Math.abs(e)))?e[1]:NaN}var eR=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function eF(e){var t;if(!(t=eR.exec(e)))throw Error("invalid format: "+e);return new eT({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function eT(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function eL(e,t){var n=eI(e,t);if(!n)return e+"";var r=n[0],i=n[1];return i<0?"0."+Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+Array(i-r.length+2).join("0")}eF.prototype=eT.prototype,eT.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};let eW={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>eL(100*e,t),r:eL,s:function(e,t){var r=eI(e,t);if(!r)return e+"";var i=r[0],s=r[1],l=s-(n=3*Math.max(-8,Math.min(8,Math.floor(s/3))))+1,a=i.length;return l===a?i:l>a?i+Array(l-a+1).join("0"):l>0?i.slice(0,l)+"."+i.slice(l):"0."+Array(1-l).join("0")+eI(e,Math.max(0,t+l-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function eD(e){return e}var eP=Array.prototype.map,e_=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function eq(){var e,t=(function(){var e,t,n,r,i,s,l=ek,a=ek,o=function e(t,n){var r,i,s=typeof n;return null==n||"boolean"===s?ep(n):("number"===s?ew:"string"===s?(i=ee(n))?(n=i,ev):function(e,t){var n,r,i,s,l,a=eM.lastIndex=eN.lastIndex=0,o=-1,c=[],h=[];for(e+="",t+="";(i=eM.exec(e))&&(s=eN.exec(t));)(l=s.index)>a&&(l=t.slice(a,l),c[o]?c[o]+=l:c[++o]=l),(i=i[0])===(s=s[0])?c[o]?c[o]+=s:c[++o]=s:(c[++o]=null,h.push({i:o,x:ew(i,s)})),a=eN.lastIndex;return at&&(n=e,e=t,t=n),c=function(n){return Math.max(e,Math.min(t,n))}),r=o>2?eC:e$,i=s=null,u}function u(t){return null==t||isNaN(t*=1)?n:(i||(i=r(l.map(e),a,o)))(e(c(t)))}return u.invert=function(n){return c(t((s||(s=r(a,l.map(e),ew)))(n)))},u.domain=function(e){return arguments.length?(l=Array.from(e,eS),h()):l.slice()},u.range=function(e){return arguments.length?(a=Array.from(e),h()):a.slice()},u.rangeRound=function(e){return a=Array.from(e),o=ej,h()},u.clamp=function(e){return arguments.length?(c=!!e||eE,h()):c!==eE},u.interpolate=function(e){return arguments.length?(o=e,h()):o},u.unknown=function(e){return arguments.length?(n=e,u):n},function(n,r){return e=n,t=r,h()}})()(eE,eE);return t.copy=function(){return eq().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())},eO.apply(t,arguments),e=t.domain,t.ticks=function(t){var n=e();return function(e,t,n){if(t*=1,e*=1,!((n*=1)>0))return[];if(e===t)return[e];let r=t=i))return[];let a=s-i+1,o=Array(a);if(r)if(l<0)for(let e=0;e0;){if((i=O(o,c,n))===r)return s[l]=o,s[a]=c,e(s);if(i>0)o=Math.floor(o/i)*i,c=Math.ceil(c/i)*i;else if(i<0)o=Math.ceil(o*i)/i,c=Math.floor(c*i)/i;else break;r=i}return t},t}i=(r=function(e){var t,r,i,s=void 0===e.grouping||void 0===e.thousands?eD:(t=eP.call(e.grouping,Number),r=e.thousands+"",function(e,n){for(var i=e.length,s=[],l=0,a=t[0],o=0;i>0&&a>0&&(o+a+1>n&&(a=Math.max(1,n-o)),s.push(e.substring(i-=a,i+a)),!((o+=a+1)>n));)a=t[l=(l+1)%t.length];return s.reverse().join(r)}),l=void 0===e.currency?"":e.currency[0]+"",a=void 0===e.currency?"":e.currency[1]+"",o=void 0===e.decimal?".":e.decimal+"",c=void 0===e.numerals?eD:(i=eP.call(e.numerals,String),function(e){return e.replace(/[0-9]/g,function(e){return i[+e]})}),h=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"−":e.minus+"",d=void 0===e.nan?"NaN":e.nan+"";function f(e){var t=(e=eF(e)).fill,r=e.align,i=e.sign,f=e.symbol,m=e.zero,g=e.width,x=e.comma,p=e.precision,b=e.trim,v=e.type;"n"===v?(x=!0,v="g"):eW[v]||(void 0===p&&(p=12),b=!0,v="g"),(m||"0"===t&&"="===r)&&(m=!0,t="0",r="=");var y="$"===f?l:"#"===f&&/[boxX]/.test(v)?"0"+v.toLowerCase():"",w="$"===f?a:/[%p]/.test(v)?h:"",M=eW[v],N=/[defgprs%]/.test(v);function j(e){var l,a,h,f=y,j=w;if("c"===v)j=M(e)+j,e="";else{var S=(e*=1)<0||1/e<0;if(e=isNaN(e)?d:M(Math.abs(e),p),b&&(e=function(e){e:for(var t,n=e.length,r=1,i=-1;r0&&(i=0)}return i>0?e.slice(0,i)+e.slice(t+1):e}(e)),S&&0==+e&&"+"!==i&&(S=!1),f=(S?"("===i?i:u:"-"===i||"("===i?"":i)+f,j=("s"===v?e_[8+n/3]:"")+j+(S&&"("===i?")":""),N){for(l=-1,a=e.length;++l(h=e.charCodeAt(l))||h>57){j=(46===h?o+e.slice(l+1):e.slice(l))+j,e=e.slice(0,l);break}}}x&&!m&&(e=s(e,1/0));var k=f.length+e.length+j.length,E=k>1)+f+e+j+E.slice(k);break;default:e=E+f+e+j}return c(e)}return p=void 0===p?6:/[gprs]/.test(v)?Math.max(1,Math.min(21,p)):Math.max(0,Math.min(20,p)),j.toString=function(){return e+""},j}return{format:f,formatPrefix:function(e,t){var n=f(((e=eF(e)).type="f",e)),r=3*Math.max(-8,Math.min(8,Math.floor(eA(t)/3))),i=Math.pow(10,-r),s=e_[8+r/3];return function(e){return n(i*e)+s}}}}({thousands:",",grouping:[3],currency:["$",""]})).format,s=r.formatPrefix;let eH=["#e6194b","#3cb44b","#ffe119","#4363d8","#f58231","#911eb4","#46f0f0","#f032e6","#bcf60c","#fabebe","#008080","#e6beff","#9a6324","#fffac8","#800000"];function eV({className:t=""}){let n=(0,a.useRef)(null),r=(0,a.useRef)(null),i=(0,a.useRef)(null),s=(0,a.useRef)(null),[o,c]=(0,a.useState)(!1),{embeddings:h,viewMode:u,setViewMode:d,selectedIds:f,setSelectedIds:m,hoveredId:g,setHoveredId:x}=S(),p=(0,a.useCallback)(e=>{let{xScale:t,yScale:n}=e;if(i.current&&t&&n){let e=t(1)-t(0),r=n(1)-n(0),s=t(0),l=n(0);i.current.setAttribute("transform",`matrix(${e}, 0, 0, ${r}, ${s}, ${l})`)}},[]);(0,a.useEffect)(()=>{if(n.current&&r.current&&!o)return(async()=>{try{let t=(await e.A(93347)).default;if(!n.current||!r.current)return;let{width:i,height:l}=r.current.getBoundingClientRect(),a=eq().domain([-1,1]),o=eq().domain([-1,1]),h=t({canvas:n.current,width:i,height:l,xScale:a,yScale:o,pointSize:4,pointSizeSelected:8,opacity:.8,opacityInactiveMax:.2,lassoColor:[.31,.27,.9,1],lassoMinDelay:10,lassoMinDist:2,showReticle:!0,reticleColor:[1,1,1,.5],colorBy:"category",pointColor:eH});h.subscribe("view",p);let u=h.get("xScale"),d=h.get("yScale");u&&d&&p({xScale:u,yScale:d}),h.subscribe("select",({points:e})=>{if(e.length>0){let t=S.getState().embeddings;if(t){let n=new Set(e.map(e=>t.ids[e]));m(n)}}}),h.subscribe("deselect",()=>{m(new Set)}),h.subscribe("pointOver",e=>{let t=S.getState().embeddings;t&&e>=0&&x(t.ids[e])}),h.subscribe("pointOut",()=>{x(null)}),s.current=h,c(!0)}catch(e){console.error("Failed to initialize scatterplot:",e)}})(),()=>{s.current&&(s.current.destroy(),s.current=null,c(!1))}},[p]),(0,a.useEffect)(()=>{if(!s.current||!h)return;let e="euclidean"===u?h.euclidean:h.hyperbolic;"hyperbolic"===u&&setTimeout(()=>{if(s.current){let e=s.current.get("xScale"),t=s.current.get("yScale");e&&t&&p({xScale:e,yScale:t})}},0);let t=[...new Set(h.labels.map(e=>e||"undefined"))],n={};t.forEach((e,t)=>{n[e]=t});let r=h.labels.map(e=>n[e||"undefined"]),i=t.map(e=>"undefined"===e?"#008080":h.label_colors[e]||"#808080");i.length>0&&s.current.set({pointColor:i}),s.current.draw({x:e.map(e=>e[0]),y:e.map(e=>e[1]),category:r}),s.current.reset(),"hyperbolic"===u&&setTimeout(()=>{let e=s.current.get("view");e&&p(e)},100)},[h,u,o,p]),(0,a.useEffect)(()=>{if(!s.current||!h)return;let e=Array.from(f).map(e=>h.ids.indexOf(e)).filter(e=>-1!==e);s.current.select(e,{preventEvent:!0})},[f,h,o]),(0,a.useEffect)(()=>{if(!r.current||!s.current)return;let e=new ResizeObserver(e=>{for(let t of e){let{width:e,height:n}=t.contentRect;e>0&&n>0&&s.current&&s.current.set({width:e,height:n})}});return e.observe(r.current),()=>e.disconnect()},[o]);let b=h?[...new Set(h.labels.map(e=>e||"undefined"))]:[];return(0,l.jsxs)("div",{className:`flex flex-col h-full bg-surface rounded-lg overflow-hidden ${t}`,children:[(0,l.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-surface-light",children:[(0,l.jsxs)("div",{className:"flex items-center gap-4",children:[(0,l.jsx)("span",{className:"text-sm font-medium",children:"Embeddings"}),(0,l.jsxs)("div",{className:"flex rounded-md overflow-hidden border border-border",children:[(0,l.jsx)("button",{onClick:()=>d("euclidean"),className:`px-3 py-1 text-xs transition-colors ${"euclidean"===u?"bg-primary text-white":"bg-surface hover:bg-surface-light text-text-muted"}`,children:"Euclidean"}),(0,l.jsx)("button",{onClick:()=>d("hyperbolic"),className:`px-3 py-1 text-xs transition-colors ${"hyperbolic"===u?"bg-primary text-white":"bg-surface hover:bg-surface-light text-text-muted"}`,children:"Hyperbolic"})]})]}),(0,l.jsx)("span",{className:"text-xs text-text-muted",children:h?`${h.ids.length} points`:"Loading..."})]}),(0,l.jsxs)("div",{className:"flex-1 flex",children:[(0,l.jsxs)("div",{ref:r,className:"flex-1 relative",children:[(0,l.jsx)("canvas",{ref:n,className:"absolute inset-0",style:{zIndex:1}}),"hyperbolic"===u&&(0,l.jsx)("svg",{className:"absolute inset-0 pointer-events-none",width:"100%",height:"100%",style:{zIndex:10},children:(0,l.jsxs)("g",{ref:i,children:[(0,l.jsx)("circle",{cx:"0",cy:"0",r:"1",fill:"none",stroke:"rgba(255,255,255,0.6)",strokeWidth:"0.01"}),(0,l.jsx)("circle",{cx:"0",cy:"0",r:"0.462",fill:"none",stroke:"rgba(255,255,255,0.2)",strokeWidth:"0.005"}),(0,l.jsx)("circle",{cx:"0",cy:"0",r:"0.761",fill:"none",stroke:"rgba(255,255,255,0.2)",strokeWidth:"0.005"}),(0,l.jsx)("circle",{cx:"0",cy:"0",r:"0.905",fill:"none",stroke:"rgba(255,255,255,0.2)",strokeWidth:"0.005"}),(0,l.jsx)("line",{x1:"-1",y1:"0",x2:"1",y2:"0",stroke:"rgba(255,255,255,0.2)",strokeWidth:"0.005"}),(0,l.jsx)("line",{x1:"0",y1:"-1",x2:"0",y2:"1",stroke:"rgba(255,255,255,0.2)",strokeWidth:"0.005"}),(0,l.jsx)("line",{x1:"-0.707",y1:"-0.707",x2:"0.707",y2:"0.707",stroke:"rgba(255,255,255,0.2)",strokeWidth:"0.005"}),(0,l.jsx)("line",{x1:"-0.707",y1:"0.707",x2:"0.707",y2:"-0.707",stroke:"rgba(255,255,255,0.2)",strokeWidth:"0.005"})]})}),!h&&(0,l.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-surface/80 z-10",children:(0,l.jsx)("div",{className:"text-text-muted",children:"Loading embeddings..."})})]}),b.length>0&&(0,l.jsxs)("div",{className:"w-36 border-l border-border bg-surface-light p-2 overflow-y-auto",children:[(0,l.jsx)("div",{className:"text-xs font-medium mb-2 text-text-muted",children:"Labels"}),(0,l.jsxs)("div",{className:"space-y-1",children:[b.slice(0,20).map(e=>(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("div",{className:"w-3 h-3 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"#008080":h?.label_colors[e]||"#888"}}),(0,l.jsx)("span",{className:"text-xs truncate",title:e,children:e})]},e)),b.length>20&&(0,l.jsxs)("div",{className:"text-xs text-text-muted",children:["+",b.length-20," more"]})]})]})]}),(0,l.jsx)("div",{className:"px-3 py-2 text-xs text-text-muted border-t border-border bg-surface-light",children:(0,l.jsx)("span",{className:"opacity-70",children:"Shift+drag to lasso select • Scroll to zoom • Drag to pan"})})]})}function eB(){let{datasetInfo:e,selectedIds:t,clearSelection:n}=S();return(0,l.jsxs)("header",{className:"h-14 bg-surface border-b border-border flex items-center justify-between px-4",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"w-8 h-8 rounded-lg bg-primary flex items-center justify-center",children:(0,l.jsx)("svg",{className:"w-5 h-5 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h1",{className:"text-lg font-semibold text-text",children:"HyperView"}),e&&(0,l.jsx)("p",{className:"text-xs text-text-muted",children:e.name})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-4",children:[e&&(0,l.jsxs)("div",{className:"flex items-center gap-4 text-sm",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"text-text-muted",children:"Samples:"}),(0,l.jsx)("span",{className:"text-text font-medium",children:e.num_samples.toLocaleString()})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("span",{className:"text-text-muted",children:"Labels:"}),(0,l.jsx)("span",{className:"text-text font-medium",children:e.labels.length})]})]}),t.size>0&&(0,l.jsxs)("button",{onClick:n,className:"px-3 py-1.5 text-sm bg-surface-light hover:bg-border rounded-md transition-colors",children:["Clear selection (",t.size,")"]})]})]})}async function eK(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function eU(e=0,t=100,n){let r=new URLSearchParams({offset:e.toString(),limit:t.toString()});n&&r.set("label",n);let i=await fetch(`/api/samples?${r}`);if(!i.ok)throw Error(`Failed to fetch samples: ${i.statusText}`);return i.json()}async function eX(){let e=await fetch("/api/embeddings");if(!e.ok)throw Error(`Failed to fetch embeddings: ${e.statusText}`);return e.json()}async function eY(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}function eG(){let{samples:e,totalSamples:t,setSamples:n,appendSamples:r,addSamplesIfMissing:i,setDatasetInfo:s,setEmbeddings:o,setIsLoading:c,isLoading:h,error:u,setError:d,selectedIds:f}=S(),[m,g]=(0,a.useState)(!1);(0,a.useEffect)(()=>{(async()=>{c(!0),d(null);try{let[e,t,r]=await Promise.all([eK(),eU(0,100),eX()]);s(e),n(t.samples,t.total),o(r)}catch(e){console.error("Failed to load data:",e),d(e instanceof Error?e.message:"Failed to load data")}finally{c(!1)}})()},[]),(0,a.useEffect)(()=>{(async()=>{if(0===f.size)return;let t=new Set(e.map(e=>e.id)),n=Array.from(f).filter(e=>!t.has(e));if(0!==n.length)try{let e=await eY(n);i(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[f,e,i]);let x=(0,a.useCallback)(async()=>{if(!m&&!(e.length>=t)){g(!0);try{let t=await eU(e.length,100);r(t.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{g(!1)}}},[e.length,t,m,r]);return u?(0,l.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,l.jsx)(eB,{}),(0,l.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,l.jsxs)("div",{className:"text-center",children:[(0,l.jsx)("div",{className:"text-red-500 text-lg mb-2",children:"Error"}),(0,l.jsx)("div",{className:"text-text-muted",children:u}),(0,l.jsx)("p",{className:"text-text-muted mt-4 text-sm",children:"Make sure the HyperView backend is running on port 5151."})]})})]}):h?(0,l.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,l.jsx)(eB,{}),(0,l.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,l.jsxs)("div",{className:"text-center",children:[(0,l.jsx)("div",{className:"w-8 h-8 border-2 border-primary border-t-transparent rounded-full animate-spin mx-auto mb-4"}),(0,l.jsx)("div",{className:"text-text-muted",children:"Loading dataset..."})]})})]}):(0,l.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,l.jsx)(eB,{}),(0,l.jsxs)("div",{className:"flex-1 flex gap-2 p-2 overflow-hidden",children:[(0,l.jsx)("div",{className:"w-1/2 min-w-0",children:(0,l.jsx)(k,{samples:e,onLoadMore:x,hasMore:e.lengtheG],52683)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/8061f65b291e8aa9.css b/src/hyperview/server/static/_next/static/chunks/8061f65b291e8aa9.css deleted file mode 100644 index c3faed2..0000000 --- a/src/hyperview/server/static/_next/static/chunks/8061f65b291e8aa9.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.right-1{right:.25rem}.top-1{top:.25rem}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.flex{display:flex}.h-14{height:3.5rem}.h-3{height:.75rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-full{height:100%}.h-screen{height:100vh}.w-1\/2{width:50%}.w-3{width:.75rem}.w-36{width:9rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-full{max-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{--tw-border-opacity:1;border-color:rgb(61 61 61/var(--tw-border-opacity,1))}.border-primary{--tw-border-opacity:1;border-color:rgb(255 107 53/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:#0000}.bg-background{--tw-bg-opacity:1;background-color:rgb(26 26 26/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(255 107 53/var(--tw-bg-opacity,1))}.bg-surface{--tw-bg-opacity:1;background-color:rgb(37 37 37/var(--tw-bg-opacity,1))}.bg-surface-light{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity,1))}.bg-surface\/80{background-color:#252525cc}.object-cover{-o-object-fit:cover;object-fit:cover}.p-2{padding:.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-text{--tw-text-opacity:1;color:rgb(224 224 224/var(--tw-text-opacity,1))}.text-text-muted{--tw-text-opacity:1;color:rgb(136 136 136/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-primary{--tw-ring-opacity:1;--tw-ring-color:rgb(255 107 53/var(--tw-ring-opacity,1))}.ring-primary-light{--tw-ring-opacity:1;--tw-ring-color:rgb(255 140 90/var(--tw-ring-opacity,1))}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--background:#1a1a1a;--surface:#252525;--surface-light:#2d2d2d;--border:#3d3d3d;--primary:#ff6b35;--primary-light:#ff8c5a;--text:#e0e0e0;--text-muted:#888}*{box-sizing:border-box}body{background-color:var(--background);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#4d4d4d}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hover\:bg-border:hover{--tw-bg-opacity:1;background-color:rgb(61 61 61/var(--tw-bg-opacity,1))}.hover\:bg-surface-light:hover{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity,1))} diff --git a/src/hyperview/server/static/_next/static/chunks/89b87b2c88f720ee.js b/src/hyperview/server/static/_next/static/chunks/89b87b2c88f720ee.js deleted file mode 100644 index c051167..0000000 --- a/src/hyperview/server/static/_next/static/chunks/89b87b2c88f720ee.js +++ /dev/null @@ -1,9 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52683,e=>{"use strict";let t;var s=e.i(43476),i=e.i(71645),l=e.i(74080);function n(e,t,s){let i,l=s.initialDeps??[];function n(){var n,r,a,o;let d,c;s.key&&(null==(n=s.debug)?void 0:n.call(s))&&(d=Date.now());let h=e();if(!(h.length!==l.length||h.some((e,t)=>l[t]!==e)))return i;if(l=h,s.key&&(null==(r=s.debug)?void 0:r.call(s))&&(c=Date.now()),i=t(...h),s.key&&(null==(a=s.debug)?void 0:a.call(s))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-c)*100)/100,i=t/16,l=(e,t)=>{for(e=String(e);e.length{l=e},n}function r(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(47167);let a=e=>{let{offsetWidth:t,offsetHeight:s}=e;return{width:t,height:s}},o=e=>e,d=e=>{let t=Math.max(e.startIndex-e.overscan,0),s=Math.min(e.endIndex+e.overscan,e.count-1),i=[];for(let e=t;e<=s;e++)i.push(e);return i},c=(e,t)=>{let s=e.scrollElement;if(!s)return;let i=e.targetWindow;if(!i)return;let l=e=>{let{width:s,height:i}=e;t({width:Math.round(s),height:Math.round(i)})};if(l(a(s)),!i.ResizeObserver)return()=>{};let n=new i.ResizeObserver(t=>{let i=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void l({width:t.inlineSize,height:t.blockSize})}l(a(s))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(i):i()});return n.observe(s,{box:"border-box"}),()=>{n.unobserve(s)}},h={passive:!0},u="undefined"==typeof window||"onscrollend"in window,m=(e,t)=>{var s,i;let l,n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let a=0,o=e.options.useScrollendEvent&&u?()=>void 0:(s=()=>{t(a,!1)},i=e.options.isScrollingResetDelay,function(...e){r.clearTimeout(l),l=r.setTimeout(()=>s.apply(this,e),i)}),d=s=>()=>{let{horizontal:i,isRtl:l}=e.options;a=i?n.scrollLeft*(l&&-1||1):n.scrollTop,o(),t(a,s)},c=d(!0),m=d(!1);m(),n.addEventListener("scroll",c,h);let f=e.options.useScrollendEvent&&u;return f&&n.addEventListener("scrollend",m,h),()=>{n.removeEventListener("scroll",c),f&&n.removeEventListener("scrollend",m)}},f=(e,t,s)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[s.options.horizontal?"inlineSize":"blockSize"])}return e[s.options.horizontal?"offsetWidth":"offsetHeight"]},g=(e,{adjustments:t=0,behavior:s},i)=>{var l,n;null==(n=null==(l=i.scrollElement)?void 0:l.scrollTo)||n.call(l,{[i.options.horizontal?"left":"top"]:e+t,behavior:s})};class x{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var s;null==(s=t())||s.disconnect(),e=null},observe:e=>{var s;return null==(s=t())?void 0:s.observe(e,{box:"border-box"})},unobserve:e=>{var s;return null==(s=t())?void 0:s.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,s])=>{void 0===s&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:o,rangeExtractor:d,onChange:()=>{},measureElement:f,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,s;null==(s=(t=this.options).onChange)||s.call(t,this,e)},this.maybeNotify=n(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let s=new Map,i=new Map;for(let l=t-1;l>=0;l--){let t=e[l];if(s.has(t.lane))continue;let n=i.get(t.lane);if(null==n||t.end>n.end?i.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=n(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,s,i,l)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:i,enabled:l}),{key:!1}),this.getMeasurements=n(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:s,getItemKey:i,enabled:l},n)=>{if(!l)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let r=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let a=this.measurementsCache.slice(0,r);for(let l=r;lthis.options.debug}),this.calculateRange=n(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,i)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:s,lanes:i}){let l=e.length-1;if(e.length<=i)return{startIndex:0,endIndex:l};let n=p(0,l,t=>e[t].start,s),r=n;if(1===i)for(;r1){let a=Array(i).fill(0);for(;re=0&&o.some(e=>e>=s);){let t=e[n];o[t.lane]=t.start,n--}n=Math.max(0,n-n%i),r=Math.min(l,r+(i-1-r%i))}return{startIndex:n,endIndex:r}}({measurements:e,outerSize:t,scrollOffset:s,lanes:i}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=n(()=>{let e=null,t=null,s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,i,l)=>null===i||null===l?[]:e({startIndex:i,endIndex:l,overscan:t,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let s=this.indexFromElement(e),i=this.measurementsCache[s];if(!i)return;let l=i.key,n=this.elementsCache.get(l);n!==e&&(n&&this.observer.unobserve(n),this.observer.observe(e),this.elementsCache.set(l,e)),e.isConnected&&this.resizeItem(s,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let s=this.measurementsCache[e];if(!s)return;let i=t-(this.itemSizeCache.get(s.key)??s.size);0!==i&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(s,i,this):s.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=n(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let s=[];for(let i=0,l=e.length;ithis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return r(t[p(0,t.length-1,e=>r(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,s=0)=>{let i=this.getSize(),l=this.getScrollOffset();return"auto"===t&&(t=e>=l+i?"end":"start"),"center"===t?e+=(s-i)/2:"end"===t&&(e-=i),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-i,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let s=this.measurementsCache[e];if(!s)return;let i=this.getSize(),l=this.getScrollOffset();if("auto"===t)if(s.end>=l+i-this.options.scrollPaddingEnd)t="end";else{if(!(s.start<=l+this.options.scrollPaddingStart))return[l,t];t="start"}let n="end"===t?s.end+this.options.scrollPaddingEnd:s.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(n,t,s.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:s}={})=>{"smooth"===s&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:s})},this.scrollToIndex=(e,{align:t="auto",behavior:s}={})=>{"smooth"===s&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let i=0,l=t=>{if(!this.targetWindow)return;let i=this.getOffsetForIndex(e,t);if(!i)return void console.warn("Failed to get offset for index:",e);let[l,r]=i;this._scrollToOffset(l,{adjustments:void 0,behavior:s}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),s=this.getOffsetForIndex(e,r);s?1.01>Math.abs(s[0]-t)||n(r):console.warn("Failed to get offset for index:",e)})},n=t=>{this.targetWindow&&(++i<10?this.targetWindow.requestAnimationFrame(()=>l(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};l(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,s=this.getMeasurements();if(0===s.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=s[s.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),i=s.length-1;for(;i>=0&&e.some(e=>null===e);){let t=s[i];null===e[t.lane]&&(e[t.lane]=t.end),i--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let p=(e,t,s,i)=>{for(;e<=t;){let l=(e+t)/2|0,n=s(l);if(ni))return l;t=l-1}}return e>0?e-1:0},b="undefined"!=typeof document?i.useLayoutEffect:i.useEffect,v=e=>{let t,s=new Set,i=(e,i)=>{let l="function"==typeof e?e(t):e;if(!Object.is(l,t)){let e=t;t=(null!=i?i:"object"!=typeof l||null===l)?l:Object.assign({},t,l),s.forEach(s=>s(t,e))}},l=()=>t,n={setState:i,getState:l,getInitialState:()=>r,subscribe:e=>(s.add(e),()=>s.delete(e))},r=t=e(i,l,n);return n},y=e=>{let t=e?v(e):v,s=e=>(function(e,t=e=>e){let s=i.default.useSyncExternalStore(e.subscribe,i.default.useCallback(()=>t(e.getState()),[e,t]),i.default.useCallback(()=>t(e.getInitialState()),[e,t]));return i.default.useDebugValue(s),s})(t,e);return Object.assign(s,t),s},w=(t=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,setSamples:(t,s)=>e({samples:t,totalSamples:s}),appendSamples:t=>e(e=>({samples:[...e.samples,...t]})),embeddings:null,setEmbeddings:t=>e({embeddings:t}),viewMode:"euclidean",setViewMode:t=>e({viewMode:t}),selectedIds:new Set,setSelectedIds:t=>e({selectedIds:t}),toggleSelection:t=>e(e=>{let s=new Set(e.selectedIds);return s.has(t)?s.delete(t):s.add(t),{selectedIds:s}}),addToSelection:t=>e(e=>{let s=new Set(e.selectedIds);return t.forEach(e=>s.add(e)),{selectedIds:s}}),clearSelection:()=>e({selectedIds:new Set}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t}),filterLabel:null,setFilterLabel:t=>e({filterLabel:t}),showLabels:!0,setShowLabels:t=>e({showLabels:t})}))?y(t):y;function j({samples:e,onLoadMore:t,hasMore:n}){let r=(0,i.useRef)(null),{selectedIds:a,toggleSelection:o,addToSelection:d,setHoveredId:h,hoveredId:u}=w(),f=function(e){let t=i.useReducer(()=>({}),{})[1],s={...e,onChange:(s,i)=>{var n;i?(0,l.flushSync)(t):t(),null==(n=e.onChange)||n.call(e,s,i)}},[n]=i.useState(()=>new x(s));return n.setOptions(s),b(()=>n._didMount(),[]),b(()=>n._willUpdate()),n}({observeElementRect:c,observeElementOffset:m,scrollToFn:g,...{count:Math.ceil(e.length/4),getScrollElement:()=>r.current,estimateSize:()=>148,overscan:5}});(0,i.useEffect)(()=>{let e=r.current;if(!e||!t||!n)return;let s=()=>{let{scrollTop:s,scrollHeight:i,clientHeight:l}=e;i-s-l<500&&t()};return e.addEventListener("scroll",s),()=>e.removeEventListener("scroll",s)},[t,n]);let p=(0,i.useCallback)((t,s)=>{if(s.metaKey||s.ctrlKey)o(t.id);else if(s.shiftKey&&a.size>0){let s=Array.from(a),i=s[s.length-1],l=e.findIndex(e=>e.id===i),n=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==n){let t=Math.min(l,n),s=Math.max(l,n);d(e.slice(t,s+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),w.getState().setSelectedIds(e)}},[e,a,o,d]),v=f.getVirtualItems();return(0,s.jsxs)("div",{className:"flex flex-col h-full bg-surface rounded-lg overflow-hidden",children:[(0,s.jsx)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-surface-light",children:(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:"Samples"}),(0,s.jsxs)("span",{className:"text-xs text-text-muted",children:[e.length," items",a.size>0&&` (${a.size} selected)`]})]})}),(0,s.jsx)("div",{ref:r,className:"flex-1 overflow-auto p-2",children:(0,s.jsx)("div",{style:{height:`${f.getTotalSize()}px`,width:"100%",position:"relative"},children:v.map(t=>{let i=4*t.index,l=e.slice(i,i+4);return(0,s.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"140px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[l.map(e=>{let t=a.has(e.id),i=u===e.id;return(0,s.jsxs)("div",{className:` - relative flex-1 rounded-md overflow-hidden cursor-pointer - transition-all duration-150 ease-out - ${t?"ring-2 ring-primary":""} - ${i?"ring-2 ring-primary-light":""} - `,onClick:t=>p(e,t),onMouseEnter:()=>h(e.id),onMouseLeave:()=>h(null),children:[e.thumbnail?(0,s.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,s.jsx)("div",{className:"w-full h-full bg-surface-light flex items-center justify-center",children:(0,s.jsx)("span",{className:"text-text-muted text-xs",children:"No image"})}),e.label&&(0,s.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,s.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,s.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,s.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})})]},e.id)}),Array.from({length:4-l.length}).map((e,t)=>(0,s.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})})]})}function S({className:t=""}){let l=(0,i.useRef)(null),n=(0,i.useRef)(null),r=(0,i.useRef)(null),[a,o]=(0,i.useState)(!1),{embeddings:d,viewMode:c,setViewMode:h,selectedIds:u,setSelectedIds:m,hoveredId:f,setHoveredId:g}=w();(0,i.useEffect)(()=>{if(l.current&&n.current&&!a)return(async()=>{try{let t=(await e.A(93347)).default,{width:s,height:i}=n.current.getBoundingClientRect(),a=t({canvas:l.current,width:s,height:i,pointSize:4,pointSizeSelected:8,opacity:.8,opacityInactiveMax:.2,lassoColor:[1,.41,.21,1],lassoMinDelay:10,lassoMinDist:2,showReticle:!0,reticleColor:[1,1,1,.5]});a.subscribe("select",({points:e})=>{if(e.length>0){let t=w.getState().embeddings;if(t){let s=new Set(e.map(e=>t.ids[e]));m(s)}}}),a.subscribe("deselect",()=>{m(new Set)}),a.subscribe("pointOver",e=>{let t=w.getState().embeddings;t&&e>=0&&g(t.ids[e])}),a.subscribe("pointOut",()=>{g(null)}),r.current=a,o(!0)}catch(e){console.error("Failed to initialize scatterplot:",e)}})(),()=>{r.current&&(r.current.destroy(),r.current=null,o(!1))}},[]),(0,i.useEffect)(()=>{if(!r.current||!d)return;let e="euclidean"===c?d.euclidean:d.hyperbolic,t=[...new Set(d.labels.filter(Boolean))],s={};t.forEach((e,t)=>{e&&(s[e]=t)});let i=d.labels.map(e=>e&&void 0!==s[e]?s[e]:0),l=t.map(e=>{if(e&&d.label_colors[e]){var t;let s;return[...(t=d.label_colors[e],(s=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t))?[parseInt(s[1],16)/255,parseInt(s[2],16)/255,parseInt(s[3],16)/255]:[.5,.5,.5]),1]}return[.5,.5,.5,1]});l.length>0&&r.current.set({pointColor:l}),r.current.draw({x:e.map(e=>e[0]),y:e.map(e=>e[1]),category:i})},[d,c,a]),(0,i.useEffect)(()=>{if(!r.current||!d)return;let e=Array.from(u).map(e=>d.ids.indexOf(e)).filter(e=>-1!==e);r.current.select(e,{preventEvent:!0})},[u,d,a]),(0,i.useEffect)(()=>{if(!n.current||!r.current)return;let e=new ResizeObserver(e=>{for(let t of e){let{width:e,height:s}=t.contentRect;e>0&&s>0&&r.current&&r.current.set({width:e,height:s})}});return e.observe(n.current),()=>e.disconnect()},[a]);let x=d?[...new Set(d.labels.filter(Boolean))]:[];return(0,s.jsxs)("div",{className:`flex flex-col h-full bg-surface rounded-lg overflow-hidden ${t}`,children:[(0,s.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-surface-light",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[(0,s.jsx)("span",{className:"text-sm font-medium",children:"Embeddings"}),(0,s.jsxs)("div",{className:"flex rounded-md overflow-hidden border border-border",children:[(0,s.jsx)("button",{onClick:()=>h("euclidean"),className:`px-3 py-1 text-xs transition-colors ${"euclidean"===c?"bg-primary text-white":"bg-surface hover:bg-surface-light text-text-muted"}`,children:"Euclidean"}),(0,s.jsx)("button",{onClick:()=>h("hyperbolic"),className:`px-3 py-1 text-xs transition-colors ${"hyperbolic"===c?"bg-primary text-white":"bg-surface hover:bg-surface-light text-text-muted"}`,children:"Hyperbolic"})]})]}),(0,s.jsx)("span",{className:"text-xs text-text-muted",children:d?`${d.ids.length} points`:"Loading..."})]}),(0,s.jsxs)("div",{className:"flex-1 flex",children:[(0,s.jsxs)("div",{ref:n,className:"flex-1 relative",children:["hyperbolic"===c&&(0,s.jsx)("svg",{className:"absolute inset-0 pointer-events-none",width:"100%",height:"100%",style:{zIndex:0},children:(0,s.jsx)("circle",{cx:"50%",cy:"50%",r:"45%",fill:"none",stroke:"rgba(255,255,255,0.2)",strokeWidth:"2",strokeDasharray:"4,4"})}),(0,s.jsx)("canvas",{ref:l,className:"absolute inset-0",style:{zIndex:1}}),!d&&(0,s.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-surface/80 z-10",children:(0,s.jsx)("div",{className:"text-text-muted",children:"Loading embeddings..."})})]}),x.length>0&&(0,s.jsxs)("div",{className:"w-36 border-l border-border bg-surface-light p-2 overflow-y-auto",children:[(0,s.jsx)("div",{className:"text-xs font-medium mb-2 text-text-muted",children:"Labels"}),(0,s.jsxs)("div",{className:"space-y-1",children:[x.slice(0,20).map(e=>(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("div",{className:"w-3 h-3 rounded-full flex-shrink-0",style:{backgroundColor:d?.label_colors[e]||"#888"}}),(0,s.jsx)("span",{className:"text-xs truncate",title:e,children:e})]},e)),x.length>20&&(0,s.jsxs)("div",{className:"text-xs text-text-muted",children:["+",x.length-20," more"]})]})]})]}),(0,s.jsx)("div",{className:"px-3 py-2 text-xs text-text-muted border-t border-border bg-surface-light",children:(0,s.jsx)("span",{className:"opacity-70",children:"Shift+drag to lasso select • Scroll to zoom • Drag to pan"})})]})}function N(){let{datasetInfo:e,selectedIds:t,clearSelection:i}=w();return(0,s.jsxs)("header",{className:"h-14 bg-surface border-b border-border flex items-center justify-between px-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("div",{className:"w-8 h-8 rounded-lg bg-primary flex items-center justify-center",children:(0,s.jsx)("svg",{className:"w-5 h-5 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,s.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})})}),(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{className:"text-lg font-semibold text-text",children:"HyperView"}),e&&(0,s.jsx)("p",{className:"text-xs text-text-muted",children:e.name})]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-4",children:[e&&(0,s.jsxs)("div",{className:"flex items-center gap-4 text-sm",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Samples:"}),(0,s.jsx)("span",{className:"text-text font-medium",children:e.num_samples.toLocaleString()})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Labels:"}),(0,s.jsx)("span",{className:"text-text font-medium",children:e.labels.length})]})]}),t.size>0&&(0,s.jsxs)("button",{onClick:i,className:"px-3 py-1.5 text-sm bg-surface-light hover:bg-border rounded-md transition-colors",children:["Clear selection (",t.size,")"]})]})]})}async function M(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function E(e=0,t=100,s){let i=new URLSearchParams({offset:e.toString(),limit:t.toString()});s&&i.set("label",s);let l=await fetch(`/api/samples?${i}`);if(!l.ok)throw Error(`Failed to fetch samples: ${l.statusText}`);return l.json()}async function z(){let e=await fetch("/api/embeddings");if(!e.ok)throw Error(`Failed to fetch embeddings: ${e.statusText}`);return e.json()}function C(){let{samples:e,totalSamples:t,setSamples:l,appendSamples:n,setDatasetInfo:r,setEmbeddings:a,setIsLoading:o,isLoading:d,error:c,setError:h}=w(),[u,m]=(0,i.useState)(!1);(0,i.useEffect)(()=>{(async()=>{o(!0),h(null);try{let[e,t,s]=await Promise.all([M(),E(0,100),z()]);r(e),l(t.samples,t.total),a(s)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{o(!1)}})()},[]);let f=(0,i.useCallback)(async()=>{if(!u&&!(e.length>=t)){m(!0);try{let t=await E(e.length,100);n(t.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{m(!1)}}},[e.length,t,u,n]);return c?(0,s.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,s.jsx)(N,{}),(0,s.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("div",{className:"text-red-500 text-lg mb-2",children:"Error"}),(0,s.jsx)("div",{className:"text-text-muted",children:c}),(0,s.jsx)("p",{className:"text-text-muted mt-4 text-sm",children:"Make sure the HyperView backend is running on port 5151."})]})})]}):d?(0,s.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,s.jsx)(N,{}),(0,s.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,s.jsxs)("div",{className:"text-center",children:[(0,s.jsx)("div",{className:"w-8 h-8 border-2 border-primary border-t-transparent rounded-full animate-spin mx-auto mb-4"}),(0,s.jsx)("div",{className:"text-text-muted",children:"Loading dataset..."})]})})]}):(0,s.jsxs)("div",{className:"h-screen flex flex-col bg-background",children:[(0,s.jsx)(N,{}),(0,s.jsxs)("div",{className:"flex-1 flex gap-2 p-2 overflow-hidden",children:[(0,s.jsx)("div",{className:"w-1/2 min-w-0",children:(0,s.jsx)(j,{samples:e,onLoadMore:f,hasMore:e.lengthC],52683)},93347,e=>{e.v(t=>Promise.all(["static/chunks/6dd1fc7c515721e7.js"].map(t=>e.l(t))).then(()=>t(42030)))}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/9367d18603aececf.js b/src/hyperview/server/static/_next/static/chunks/9367d18603aececf.js deleted file mode 100644 index 5ab9960..0000000 --- a/src/hyperview/server/static/_next/static/chunks/9367d18603aececf.js +++ /dev/null @@ -1,2 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74575,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getAssetPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(12718);function l(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new r.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?u.createElement("select",{is:r.is}):u.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?u.createElement(l,{is:r.is}):u.createElement(l)}}a[eW]=t,a[eK]=r;e:for(u=t.child;null!==u;){if(5===u.tag||6===u.tag)a.appendChild(u.stateNode);else if(4!==u.tag&&27!==u.tag&&null!==u.child){u.child.return=u,u=u.child;continue}if(u===t)break;for(;null===u.sibling;){if(null===u.return||u.return===t)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}switch(t.stateNode=a,cl(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&ou(t)}}return of(t),t.subtreeFlags&=-0x2000001,oo(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ou(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));if(e=en.current,rY(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=rB))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eW]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||ct(e.nodeValue,n)))||rQ(t,!0)}else(e=ci(e).createTextNode(r))[eW]=t,t.stateNode=e}return of(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rY(t),null!==n){if(null===e){if(!r)throw Error(i(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(i(557));e[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),e=!1}else n=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return l9(t),t;return l9(t),null}if(0!=(128&t.flags))throw Error(i(558))}return of(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rY(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(i(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(i(317));l[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),l=!1}else l=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&t.flags)return l9(t),t;return l9(t),null}}if(l9(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),os(t,t.updateQueue),of(t),null;case 4:return ea(),null===e&&s1(t.stateNode.containerInfo),t.flags|=0x4000000,of(t),null;case 10:return r5(t.type),of(t),null;case 19:if(an(t),null===(r=t.memoizedState))return of(t),null;if(l=0!=(128&t.flags),null===(a=r.rendering))if(l)oc(r,!1);else{if(0!==iM||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=ar(e))){for(t.flags|=128,oc(r,!1),t.updateQueue=e=a.updateQueue,os(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rS(n,e),n=n.sibling;return at(t,1&ae.current|2),rq&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ey()>iV&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304)}else{if(!l)if(null!==(e=ar(a))){if(t.flags|=128,l=!0,t.updateQueue=e=e.updateQueue,os(t,e),oc(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rq)return of(t),null}else 2*ey()-r.renderingStartTime>iV&&0x20000000!==n&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ey(),e.sibling=null,a=ae.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rq?at(t,a):(n=a,Z(l3,t),Z(ae,n),null===l4&&(l4=t)),rq&&rA(t,r.treeForkCount),e}return of(t),null;case 22:case 23:return l9(t),l2(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(of(t),6&t.subtreeFlags&&(t.flags|=8192)):of(t),null!==(n=t.updateQueue)&&os(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(lv),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),r5(lo),of(t),null;case 25:return null;case 30:return t.flags|=0x2000000,of(t),null}throw Error(i(156,t.tag))}(t.alternate,t,iN);if(null!==n){iP=n;return}if(null!==(t=t.sibling)){iP=t;return}iP=t=e}while(null!==t)0===iM&&(iM=5)}function sh(e,t){do{var n=function(e,t){switch(rU(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return r5(lo),ea(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return eo(t),null;case 31:if(null!==t.memoizedState){if(l9(t),null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(l9(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return an(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ea(),null;case 10:return r5(t.type),null;case 22:case 23:return l9(t),l2(),null!==e&&J(lv),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return r5(lo),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,iP=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){iP=e;return}iP=e=n}while(null!==e)iM=6,iP=null}function sm(e,t,n,r,l,a,u,o,s,c,f){e.cancelPendingCommit=null;do sE();while(0!==iW)if(0!=(6&iE))throw Error(i(327));if(null!==t){var d;if(t===e.current)throw Error(i(177));if(!function(e,t,n,r,l,a){var u=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,i=e.expirationTimes,s=e.hiddenUpdates;for(n=u&~n;0fc){o.length=u;break}d=new Promise(cR.bind(d)),o.push(d)}}}return 0g&&(u=g,g=m,m=u);var y=nH(o,m),v=nH(o,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=f.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),m>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(f=[],p=o;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof o.focus&&o.focus(),o=0;on?32:n,W.T=null,n=iY,iY=null;var a=iK,u=iG;if(iW=0,iQ=iK=null,iG=0,0!=(6&iE))throw Error(i(331));var o=iE;if(iE|=4,iv(a.current),ic(a,a.current,u,n),iE=o,sI(0,!1),ek&&"function"==typeof ek.onPostCommitFiberRoot)try{ek.onPostCommitFiberRoot(eP,a)}catch(e){}return!0}finally{K.p=l,W.T=r,sw(e,t)}}function sP(e,t,n){t=rT(n,t),t=uF(e.stateNode,t,2),null!==(e=lq(e,t,2))&&(eA(e,2),sA(e))}function sk(e,t,n){if(3===e.tag)sP(e,e,n);else for(;null!==t;){if(3===t.tag){sP(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===i$||!i$.has(r))){e=rT(n,e),null!==(r=lq(t,n=uA(2),2))&&(uI(n,r,t,e),eA(r,2),sA(r));break}}t=t.return}}function sR(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new iw;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(iC=!0,l.add(n),e=sT.bind(null,e,t,n),t.then(e,e))}function sT(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,i_===e&&(ik&n)===n&&(4===iM||3===iM&&(0x3c00000&ik)===ik&&300>ey()-iH?0==(2&iE)&&sr(e,0):ij|=n,iA===ik&&(iA=0)),sA(e)}function sx(e,t){0===t&&(t=ej()),null!==(e=rd(e,t))&&(eA(e,t),sA(e))}function sO(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sx(e,n)}function sC(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),sx(e,n)}var sN=null,sM=null,sL=!1,sz=!1,sj=!1,sF=0;function sA(e){e!==sM&&null===e.next&&(null===sM?sN=sM=e:sM=sM.next=e),sz=!0,sL||(sL=!0,cg(function(){0!=(6&iE)?ep(eb,sD):sU()}))}function sI(e,t){if(!sj&&sz){sj=!0;do for(var n=!1,r=sN;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var u=r.suspendedLanes,o=r.pingedLanes;a=0xc000095&(a=(1<<31-eR(42|e)+1)-1&(l&~(u&~o)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sV(r,a))}else a=ik,0==(3&(a=eL(r,r===i_?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ez(r,a)||(n=!0,sV(r,a));r=r.next}while(n)sj=!1}}function sD(){sU()}function sU(){sz=sL=!1;var e,t=0;0===sF||((e=window.event)&&"popstate"===e.type?e===cd||(cd=e,0):(cd=null,1))||(t=sF);for(var n=ey(),r=null,l=sN;null!==l;){var a=l.next,u=sH(l,n);0===u?(l.next=null,null===r?sN=a:r.next=a,null===a&&(sM=r)):(r=l,(0!==t||0!=(3&u))&&(sz=!0)),l=a}0!==iW&&5!==iW||sI(t,!1),0!==sF&&(sF=0)}function sH(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function fu(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function fo(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function fi(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fs(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=fi(t),e.suspenseyImages.push(t)),e=fp.bind(e),t.decode().then(e,e))}var fc=0;function ff(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fm(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function fd(){this.count--,ff(this)}function fp(){this.imgCount--,ff(this)}var fh=null;function fm(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fh=new Map,t.forEach(fg,e),fh=null,fd.call(e))}function fg(e,t){if(!(4&t.state.loading)){var n=fh.get(e);if(n)var r=n.get(null);else{n=new Map,fh.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(46480)},42732,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HeadManagerContext",{enumerable:!0,get:function(){return r}});let r=e.r(55682)._(e.r(71645)).default.createContext({})},51323,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={onCaughtError:function(){return d},onUncaughtError:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(55682),u=e.r(65713),o=e.r(32061),i=e.r(28279),s=e.r(72383),c=a._(e.r(68027)),f={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function d(e,t){let n,r=t.errorBoundary?.constructor;if(n=n||r===s.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===c.default)return p(e);(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||f.originConsoleError(e)}function p(e){(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||(0,i.reportGlobalError)(e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},34727,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={computeChangedPath:function(){return f},extractPathFromFlightRouterState:function(){return c},getSelectedParams:function(){return function e(t,n={}){for(let r of Object.values(t[1])){let t=r[0],l=Array.isArray(t),a=l?t[1]:t;!a||a.startsWith(u.PAGE_SEGMENT_KEY)||(l&&("c"===t[2]||"oc"===t[2])?n[t[0]]=t[1].split("/"):l&&(n[t[0]]=t[1]),n=e(r,n))}return n}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(91463),u=e.r(13258),o=e.r(56019),i=e=>"string"==typeof e?"children"===e?"":e:e[1];function s(e){return e.reduce((e,t)=>{let n;return""===(t="/"===(n=t)[0]?n.slice(1):n)||(0,u.isGroupSegment)(t)?e:`${e}/${t}`},"")||"/"}function c(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===u.DEFAULT_SEGMENT_KEY||a.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t.startsWith(u.PAGE_SEGMENT_KEY))return"";let n=[i(t)],r=e[1]??{},l=r.children?c(r.children):void 0;if(void 0!==l)n.push(l);else for(let[e,t]of Object.entries(r)){if("children"===e)continue;let r=c(t);void 0!==r&&n.push(r)}return s(n)}function f(e,t){let n=function e(t,n){let[r,l]=t,[u,s]=n,f=i(r),d=i(u);if(a.INTERCEPTION_ROUTE_MARKERS.some(e=>f.startsWith(e)||d.startsWith(e)))return"";if(!(0,o.matchSegment)(r,u))return c(n)??"";for(let t in l)if(s[t]){let n=e(l[t],s[t]);if(null!==n)return`${i(u)}/${n}`}return null}(e,t);return null==n||"/"===n?n:s(n.split("/"))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},47442,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleMutable",{enumerable:!0,get:function(){return a}});let r=e.r(34727);function l(e){return void 0!==e}function a(e,t){let n=t.shouldScroll??!0,a=e.previousNextUrl,u=e.nextUrl;if(l(t.patchedTree)){let n=(0,r.computeChangedPath)(e.tree,t.patchedTree);n?(a=u,u=n):u||(u=e.canonicalUrl)}return{canonicalUrl:t.canonicalUrl??e.canonicalUrl,renderedSearch:t.renderedSearch??e.renderedSearch,pushRef:{pendingPush:l(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:l(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:l(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!n&&(!!l(t?.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:t.onlyHashChange||!1,hashFragment:n?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:n?t?.scrollableSegments??e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,tree:l(t.patchedTree)?t.patchedTree:e.tree,nextUrl:u,previousNextUrl:a,debugInfo:t.collectedDebugInfo??null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},48919,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,n){let r=t[0],l=n[0];if(Array.isArray(r)&&Array.isArray(l)){if(r[0]!==l[0]||r[2]!==l[2])return!0}else if(r!==l)return!0;if(t[4])return!n[4];if(n[4])return!0;let a=Object.values(t[1])[0],u=Object.values(n[1])[0];return!a||!u||e(a,u)}}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},95871,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={abortTask:function(){return y},listenForDynamicRequest:function(){return g},startPPRNavigation:function(){return d},updateCacheNodeOnPopstateRestoration:function(){return function e(t,n){let r=n[1],l=t.parallelRoutes,a=new Map(l);for(let t in r){let n=r[t],u=n[0],o=(0,i.createRouterCacheKey)(u),s=l.get(t);if(void 0!==s){let r=s.get(o);if(void 0!==r){let l=e(r,n),u=new Map(s);u.set(o,l),a.set(t,u)}}}let u=t.rsc,o=S(u)&&"pending"===u.status;return{lazyData:null,rsc:u,head:t.head,prefetchHead:o?t.prefetchHead:[null,null],prefetchRsc:o?t.prefetchRsc:null,loading:t.loading,parallelRoutes:a,navigatedAt:t.navigatedAt}}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(13258),u=e.r(56019),o=e.r(51191),i=e.r(70725),s=e.r(48919),c=e.r(54069),f={route:null,node:null,dynamicRequestTree:null,children:null};function d(e,t,n,r,l,s,c,d,m,g){return function e(t,n,r,l,s,c,d,m,g,y,v,b){let S=l[1],w=s[1],E=null!==d?d[1]:null;c||!0===s[4]&&(c=!0);let _=r.parallelRoutes,P=new Map(_),k={},R=null,T=!1,x={};for(let r in w){let l,s=w[r],d=S[r],O=_.get(r),C=null!==E?E[r]:null,N=s[0],M=v.concat([r,N]),L=(0,i.createRouterCacheKey)(N),z=void 0!==d?d[0]:void 0,j=void 0!==O?O.get(L):void 0;if(null!==(l=N===a.DEFAULT_SEGMENT_KEY?void 0!==d?function(e,t){let n;return"refresh"===t[3]?n=t:((n=h(t,t[1]))[2]=(0,o.createHrefFromUrl)(e),n[3]="refresh"),{route:n,node:null,dynamicRequestTree:null,children:null}}(n,d):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):y&&0===Object.keys(s[1]).length?p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):void 0!==d&&void 0!==z&&(0,u.matchSegment)(N,z)&&void 0!==j&&void 0!==d?e(t,n,j,d,s,c,C,m,g,y,M,b):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b))){if(null===l.route)return f;null===R&&(R=new Map),R.set(r,l);let e=l.node;if(null!==e){let t=new Map(O);t.set(L,e),P.set(r,t)}let t=l.route;k[r]=t;let n=l.dynamicRequestTree;null!==n?(T=!0,x[r]=n):x[r]=t}else k[r]=s,x[r]=s}if(null===R)return null;let O={lazyData:null,rsc:r.rsc,prefetchRsc:r.prefetchRsc,head:r.head,prefetchHead:r.prefetchHead,loading:r.loading,parallelRoutes:P,navigatedAt:t};return{route:h(s,k),node:O,dynamicRequestTree:T?h(s,x):null,children:R}}(e,t,n,r,l,!1,s,c,d,m,[],g)}function p(e,t,n,r,l,a,u,o,d,p){return!l&&(void 0===t||(0,s.isNavigatingToNewRootLayout)(t,n))?f:function e(t,n,r,l,a,u,o,s){let f,d,p,g,y=n[1],v=0===Object.keys(y).length;if(void 0!==r&&r.navigatedAt+c.DYNAMIC_STALETIME_MS>t)f=r.rsc,d=r.loading,p=r.head,g=r.navigatedAt;else if(null===l)return m(t,n,null,a,u,o,s);else if(f=l[0],d=l[2],p=v?a:null,g=t,l[3]||u&&v)return m(t,n,l,a,u,o,s);let b=null!==l?l[1]:null,S=new Map,w=void 0!==r?r.parallelRoutes:null,E=new Map(w),_={},P=!1;if(v)s.push(o);else for(let n in y){let r=y[n],l=null!==b?b[n]:null,c=null!==w?w.get(n):void 0,f=r[0],d=o.concat([n,f]),p=(0,i.createRouterCacheKey)(f),h=e(t,r,void 0!==c?c.get(p):void 0,l,a,u,d,s);S.set(n,h);let m=h.dynamicRequestTree;null!==m?(P=!0,_[n]=m):_[n]=r;let g=h.node;if(null!==g){let e=new Map;e.set(p,g),E.set(n,e)}}return{route:n,node:{lazyData:null,rsc:f,prefetchRsc:null,head:p,prefetchHead:null,loading:d,parallelRoutes:E,navigatedAt:g},dynamicRequestTree:P?h(n,_):null,children:S}}(e,n,r,a,u,o,d,p)}function h(e,t){let n=[e[0],t];return 2 in e&&(n[2]=e[2]),3 in e&&(n[3]=e[3]),4 in e&&(n[4]=e[4]),n}function m(e,t,n,r,l,a,u){let o=h(t,t[1]);return o[3]="refetch",{route:t,node:function e(t,n,r,l,a,u,o){let s=n[1],c=null!==r?r[1]:null,f=new Map;for(let n in s){let r=s[n],d=null!==c?c[n]:null,p=r[0],h=u.concat([n,p]),m=(0,i.createRouterCacheKey)(p),g=e(t,r,void 0===d?null:d,l,a,h,o),y=new Map;y.set(m,g),f.set(n,y)}let d=0===f.size;d&&o.push(u);let p=null!==r?r[0]:null;return{lazyData:null,parallelRoutes:f,prefetchRsc:void 0!==p?p:null,prefetchHead:d?l:[null,null],rsc:w(),head:d?w():null,loading:null!==r?r[2]??null:w(),navigatedAt:t}}(e,t,n,r,l,a,u),dynamicRequestTree:o,children:null}}function g(e,t){t.then(t=>{if("string"==typeof t)return;let{flightData:n,debugInfo:r}=t;for(let t of n){let{segmentPath:n,tree:l,seedData:a,head:o}=t;a&&function(e,t,n,r,l,a){let o=e;for(let e=0;e{y(e,t,null)})}function y(e,t,n){let r=e.node;if(null===r)return;let l=e.children;if(null===l)v(e.route,r,t,n);else for(let e of l.values())y(e,t,n);e.dynamicRequestTree=null}function v(e,t,n,r){let l=e[1],a=t.parallelRoutes;for(let e in l){let t=l[e],u=a.get(e);if(void 0===u)continue;let o=t[0],s=(0,i.createRouterCacheKey)(o),c=u.get(s);void 0!==c&&v(t,c,n,r)}let u=t.rsc;S(u)&&(null===n?u.resolve(null,r):u.reject(n,r));let o=t.loading;S(o)&&o.resolve(null,r);let s=t.head;S(s)&&s.resolve(null,r)}let b=Symbol();function S(e){return e&&"object"==typeof e&&e.tag===b}function w(){let e,t,n=[],r=new Promise((n,r)=>{e=n,t=r});return r.status="pending",r.resolve=(t,l)=>{"pending"===r.status&&(r.status="fulfilled",r.value=t,null!==l&&n.push.apply(n,l),e(t))},r.reject=(e,l)=>{"pending"===r.status&&(r.status="rejected",r.reason=e,null!==l&&n.push.apply(n,l),t(e))},r.tag=b,r._debugInfo=n,r}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},22744,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HasLoadingBoundary",{enumerable:!0,get:function(){return l}});var r,l=((r={})[r.SegmentHasLoadingBoundary=1]="SegmentHasLoadingBoundary",r[r.SubtreeHasLoadingBoundary=2]="SubtreeHasLoadingBoundary",r[r.SubtreeHasNoLoadingBoundary=3]="SubtreeHasNoLoadingBoundary",r)},9396,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l,a,u={FetchStrategy:function(){return c},NavigationResultTag:function(){return i},PrefetchPriority:function(){return s}};for(var o in u)Object.defineProperty(n,o,{enumerable:!0,get:u[o]});var i=((r={})[r.MPA=0]="MPA",r[r.Success=1]="Success",r[r.NoOp=2]="NoOp",r[r.Async=3]="Async",r),s=((l={})[l.Intent=2]="Intent",l[l.Default=1]="Default",l[l.Background=0]="Background",l),c=((a={})[a.LoadingBoundary=0]="LoadingBoundary",a[a.PPR=1]="PPR",a[a.PPRRuntime=2]="PPRRuntime",a[a.Full=3]="Full",a);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},73861,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={deleteFromLru:function(){return f},lruPut:function(){return s},updateLruSize:function(){return c}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(511),u=null,o=!1,i=0;function s(e){if(u===e)return;let t=e.prev,n=e.next;if(null===n||null===t?(i+=e.size,d()):(t.next=n,n.prev=t),null===u)e.prev=e,e.next=e;else{let t=u.prev;e.prev=t,null!==t&&(t.next=e),e.next=u,u.prev=e}u=e}function c(e,t){let n=e.size;e.size=t,null!==e.next&&(i=i-n+t,d())}function f(e){let t=e.next,n=e.prev;null!==t&&null!==n&&(i-=e.size,e.next=null,e.prev=null,u===e?u=t===u?null:t:(n.next=t,t.prev=n))}function d(){o||i<=0x3200000||(o=!0,h(p))}function p(){o=!1;for(;i>0x2d00000&&null!==u;){let e=u.prev;null!==e&&(0,a.deleteFromCacheMap)(e.value)}}let h="function"==typeof requestIdleCallback?requestIdleCallback:e=>setTimeout(e,0);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},511,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={Fallback:function(){return u},createCacheMap:function(){return i},deleteFromCacheMap:function(){return h},getFromCacheMap:function(){return s},isValueExpired:function(){return c},setInCacheMap:function(){return f},setSizeInCacheMap:function(){return g}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(73861),u={},o={};function i(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function s(e,t,n,r,l){let i=function e(t,n,r,l,a,i){let s,f;if(null!==l)s=l.value,f=l.parent;else if(a&&i!==o)s=o,f=null;else return null===r.value?r:c(t,n,r.value)?(m(r),null):r;let d=r.map;if(null!==d){let r=d.get(s);if(void 0!==r){let l=e(t,n,r,f,a,s);if(null!==l)return l}let l=d.get(u);if(void 0!==l)return e(t,n,l,f,a,s)}return null}(e,t,n,r,l,0);return null===i||null===i.value?null:((0,a.lruPut)(i),i.value)}function c(e,t,n){return n.staleAt<=e||n.version{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={appendLayoutVaryPath:function(){return c},clonePageVaryPathWithNewSearchParams:function(){return m},finalizeLayoutVaryPath:function(){return f},finalizeMetadataVaryPath:function(){return p},finalizePageVaryPath:function(){return d},getFulfilledRouteVaryPath:function(){return s},getRouteVaryPath:function(){return i},getSegmentVaryPathForRequest:function(){return h}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(9396),u=e.r(511),o=e.r(67764);function i(e,t,n){return{value:e,parent:{value:t,parent:{value:n,parent:null}}}}function s(e,t,n,r){return{value:e,parent:{value:t,parent:{value:r?n:u.Fallback,parent:null}}}}function c(e,t){return{value:t,parent:e}}function f(e,t){return{value:e,parent:t}}function d(e,t,n){return{value:e,parent:{value:t,parent:n}}}function p(e,t,n){return{value:e+o.HEAD_REQUEST_KEY,parent:{value:t,parent:n}}}function h(e,t){let n=t.varyPath;if(t.isPage&&e!==a.FetchStrategy.Full&&e!==a.FetchStrategy.PPRRuntime){let e=n.parent.parent;return{value:n.value,parent:{value:u.Fallback,parent:e}}}return n}function m(e,t){let n=e.parent;return{value:e.value,parent:{value:t,parent:n.parent}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},77048,(e,t,n)=>{"use strict";function r(e,t){let n=new URL(e);return{pathname:n.pathname,search:n.search,nextUrl:t}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createCacheKey",{enumerable:!0,get:function(){return r}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},77709,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={cancelPrefetchTask:function(){return w},isPrefetchTaskDirty:function(){return _},pingPrefetchTask:function(){return O},reschedulePrefetchTask:function(){return E},schedulePrefetchTask:function(){return S},startRevalidationCooldown:function(){return b}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(22744),u=e.r(56019),o=e.r(20896),i=e.r(56655),s=e.r(77048),c=e.r(9396),f=e.r(13258),d="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),p=[],h=0,m=0,g=!1,y=null,v=null;function b(){null!==v&&clearTimeout(v),v=setTimeout(()=>{v=null,k()},300)}function S(e,t,n,r,l){let a={key:e,treeAtTimeOfPrefetch:t,cacheVersion:(0,o.getCurrentCacheVersion)(),priority:r,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:n,sortId:m++,isCanceled:!1,onInvalidate:l,_heapIndex:-1};return P(a),H(p,a),k(),a}function w(e){e.isCanceled=!0,function(e,t){let n=t._heapIndex;if(-1!==n&&(t._heapIndex=-1,0!==e.length)){let r=e.pop();r!==t&&(e[n]=r,r._heapIndex=n,W(e,r,n))}}(p,e)}function E(e,t,n,r){e.isCanceled=!1,e.phase=1,e.sortId=m++,e.priority=e===y?c.PrefetchPriority.Intent:r,e.treeAtTimeOfPrefetch=t,e.fetchStrategy=n,P(e),-1!==e._heapIndex?q(p,e):H(p,e),k()}function _(e,t,n){let r=(0,o.getCurrentCacheVersion)();return e.cacheVersion!==r||e.treeAtTimeOfPrefetch!==n||e.key.nextUrl!==t}function P(e){e.priority===c.PrefetchPriority.Intent&&e!==y&&(null!==y&&y.priority!==c.PrefetchPriority.Background&&(y.priority=c.PrefetchPriority.Default,q(p,y)),y=e)}function k(){g||(g=!0,d(C))}function R(e){return null===v&&(e.priority===c.PrefetchPriority.Intent?h<12:h<4)}function T(e){return h++,e.then(e=>null===e?(x(),null):(e.closed.then(x),e.value))}function x(){h--,k()}function O(e){e.isCanceled||-1!==e._heapIndex||(H(p,e),k())}function C(){g=!1;let e=Date.now(),t=B(p);for(;null!==t&&R(t);){t.cacheVersion=(0,o.getCurrentCacheVersion)();let n=function(e,t){let n=t.key,r=(0,o.readOrCreateRouteCacheEntry)(e,t,n),l=function(e,t,n){switch(n.status){case o.EntryStatus.Empty:T((0,o.fetchRouteOnCacheMiss)(n,t,t.key)),n.staleAt=e+6e4,n.status=o.EntryStatus.Pending;case o.EntryStatus.Pending:{let e=n.blockedTasks;return null===e?n.blockedTasks=new Set([t]):e.add(t),1}case o.EntryStatus.Rejected:break;case o.EntryStatus.Fulfilled:{if(0!==t.phase)return 2;if(!R(t))return 0;let i=n.tree,s=t.fetchStrategy===c.FetchStrategy.PPR?n.isPPREnabled?c.FetchStrategy.PPR:c.FetchStrategy.LoadingBoundary:t.fetchStrategy;switch(s){case c.FetchStrategy.PPR:{var r,l,u;if(z(r=e,l=t,u=n,(0,o.readOrCreateSegmentCacheEntry)(r,c.FetchStrategy.PPR,u,u.metadata),l.key,u.metadata),0===function e(t,n,r,l,a){let u=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,a);z(t,n,r,u,n.key,a);let i=l[1],s=a.slots;if(null!==s)for(let l in s){if(!R(n))return 0;let a=s[l],u=a.segment,c=i[l],f=c?.[0];if(0===(void 0!==f&&D(r,u,f)?e(t,n,r,c,a):function e(t,n,r,l){if(l.hasRuntimePrefetch)return null===n.spawnedRuntimePrefetches?n.spawnedRuntimePrefetches=new Set([l.requestKey]):n.spawnedRuntimePrefetches.add(l.requestKey),2;let a=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);if(z(t,n,r,a,n.key,l),null!==l.slots){if(!R(n))return 0;for(let a in l.slots)if(0===e(t,n,r,l.slots[a]))return 0}return 2}(t,n,r,a)))return 0}return 2}(e,t,n,t.treeAtTimeOfPrefetch,i))return 0;let a=t.spawnedRuntimePrefetches;if(null!==a){let r=new Map;M(e,t,n,r,c.FetchStrategy.PPRRuntime);let l=function e(t,n,r,l,a,u){if(a.has(l.requestKey))return L(t,n,r,l,!1,u,c.FetchStrategy.PPRRuntime);let o={},i=l.slots;if(null!==i)for(let l in i){let s=i[l];o[l]=e(t,n,r,s,a,u)}return[l.segment,o,null,null]}(e,t,n,i,a,r);r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,c.FetchStrategy.PPRRuntime,l,r))}return 2}case c.FetchStrategy.Full:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.LoadingBoundary:{let r=new Map;M(e,t,n,r,s);let l=function e(t,n,r,l,u,i,s){let f=l[1],d=u.slots,p={};if(null!==d)for(let l in d){let u=d[l],h=u.segment,m=f[l],g=m?.[0];if(void 0!==g&&D(r,h,g)){let a=e(t,n,r,m,u,i,s);p[l]=a}else switch(s){case c.FetchStrategy.LoadingBoundary:{let e=u.hasLoadingBoundary!==a.HasLoadingBoundary.SubtreeHasNoLoadingBoundary?function e(t,n,r,l,u,i){let s=null===u?"inside-shared-layout":null,f=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);switch(f.status){case o.EntryStatus.Empty:i.set(l.requestKey,(0,o.upgradeToPendingSegment)(f,c.FetchStrategy.LoadingBoundary)),"refetch"!==u&&(s=u="refetch");break;case o.EntryStatus.Fulfilled:if(l.hasLoadingBoundary===a.HasLoadingBoundary.SegmentHasLoadingBoundary)return(0,o.convertRouteTreeToFlightRouterState)(l);case o.EntryStatus.Pending:case o.EntryStatus.Rejected:}let d={};if(null!==l.slots)for(let a in l.slots){let o=l.slots[a];d[a]=e(t,n,r,o,u,i)}return[l.segment,d,null,s,l.isRootLayout]}(t,n,r,u,null,i):(0,o.convertRouteTreeToFlightRouterState)(u);p[l]=e;break}case c.FetchStrategy.PPRRuntime:{let e=L(t,n,r,u,!1,i,s);p[l]=e;break}case c.FetchStrategy.Full:{let e=L(t,n,r,u,!1,i,s);p[l]=e}}}return[u.segment,p,null,null,u.isRootLayout]}(e,t,n,t.treeAtTimeOfPrefetch,i,r,s);return r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,s,l,r)),2}}}}return 2}(e,t,r);if(0!==l&&""!==n.search){let r=new URL(n.pathname,location.origin),l=(0,s.createCacheKey)(r.href,n.nextUrl),a=(0,o.readOrCreateRouteCacheEntry)(e,t,l);switch(a.status){case o.EntryStatus.Empty:N(t)&&(a.status=o.EntryStatus.Pending,T((0,o.fetchRouteOnCacheMiss)(a,t,l)));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}return l}(e,t),r=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,n){case 0:return;case 1:V(p),t=B(p);continue;case 2:1===t.phase?(t.phase=0,q(p,t)):r?(t.priority=c.PrefetchPriority.Background,q(p,t)):V(p),t=B(p);continue}}}function N(e){return e.priority===c.PrefetchPriority.Background||(e.hasBackgroundWork=!0,!1)}function M(e,t,n,r,l){L(e,t,n,n.metadata,!1,r,l===c.FetchStrategy.LoadingBoundary?c.FetchStrategy.Full:l)}function L(e,t,n,r,l,a,u){let i=(0,o.readOrCreateSegmentCacheEntry)(e,u,n,r),s=null;switch(i.status){case o.EntryStatus.Empty:s=(0,o.upgradeToPendingSegment)(i,u);break;case o.EntryStatus.Fulfilled:i.isPartial&&(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u));break;case o.EntryStatus.Pending:case o.EntryStatus.Rejected:(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u))}let c={};if(null!==r.slots)for(let o in r.slots){let i=r.slots[o];c[o]=L(e,t,n,i,l||null!==s,a,u)}null!==s&&a.set(r.requestKey,s);let f=l||null===s?null:"refetch";return[r.segment,c,null,f,r.isRootLayout]}function z(e,t,n,r,l,a){switch(r.status){case o.EntryStatus.Empty:T((0,o.fetchSegmentOnCacheMiss)(n,(0,o.upgradeToPendingSegment)(r,c.FetchStrategy.PPR),l,a));break;case o.EntryStatus.Pending:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:N(t)&&j(e,n,l,a);break;default:r.fetchStrategy}break;case o.EntryStatus.Rejected:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:j(e,n,l,a);break;default:r.fetchStrategy}case o.EntryStatus.Fulfilled:}}function j(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,c.FetchStrategy.PPR,t,r);switch(l.status){case o.EntryStatus.Empty:I(T((0,o.fetchSegmentOnCacheMiss)(t,(0,o.upgradeToPendingSegment)(l,c.FetchStrategy.PPR),n,r)),(0,i.getSegmentVaryPathForRequest)(c.FetchStrategy.PPR,r));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}function F(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,r,t,n);if(l.status===o.EntryStatus.Empty){let e=(0,o.upgradeToPendingSegment)(l,r);return I((0,o.waitForSegmentCacheEntry)(e),(0,i.getSegmentVaryPathForRequest)(r,n)),e}if((0,o.canNewFetchStrategyProvideMoreContent)(l.fetchStrategy,r)){let e=(0,o.overwriteRevalidatingSegmentCacheEntry)(r,t,n),l=(0,o.upgradeToPendingSegment)(e,r);return I((0,o.waitForSegmentCacheEntry)(l),(0,i.getSegmentVaryPathForRequest)(r,n)),l}switch(l.status){case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:default:return null}}let A=()=>{};function I(e,t){e.then(e=>{null!==e&&(0,o.upsertSegmentEntry)(Date.now(),t,e)},A)}function D(e,t,n){return n===f.PAGE_SEGMENT_KEY?t===(0,f.addSearchParamsIfPageSegment)(f.PAGE_SEGMENT_KEY,Object.fromEntries(new URLSearchParams(e.renderedSearch))):(0,u.matchSegment)(n,t)}function U(e,t){let n=t.priority-e.priority;if(0!==n)return n;let r=t.phase-e.phase;return 0!==r?r:t.sortId-e.sortId}function H(e,t){let n=e.length;e.push(t),t._heapIndex=n,$(e,t,n)}function B(e){return 0===e.length?null:e[0]}function V(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let n=e.pop();return n!==t&&(e[0]=n,n._heapIndex=0,W(e,n,0)),t}function q(e,t){let n=t._heapIndex;-1!==n&&(0===n?W(e,t,0):U(e[n-1>>>1],t)>0?$(e,t,n):W(e,t,n))}function $(e,t,n){let r=n;for(;r>0;){let n=r-1>>>1,l=e[n];if(!(U(l,t)>0))return;e[n]=t,t._heapIndex=n,e[r]=l,l._heapIndex=r,r=n}}function W(e,t,n){let r=n,l=e.length,a=l>>>1;for(;rU(a,t))uU(o,a)?(e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u):(e[r]=a,a._heapIndex=r,e[n]=t,t._heapIndex=n,r=n);else{if(!(uU(o,t)))return;e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},72463,(e,t,n)=>{"use strict";function r(e){let t=e.indexOf("#"),n=e.indexOf("?"),r=n>-1&&(t<0||n-1?{pathname:e.substring(0,r?n:t),query:r?e.substring(n,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"parsePath",{enumerable:!0,get:function(){return r}})},41858,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(72463);function l(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:n,query:l,hash:a}=(0,r.parsePath)(e);return`${t}${n}${l}${a}`}},38281,(e,t,n)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},82823,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return a}});let r=e.r(38281),l=e.r(72463),a=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:n,hash:a}=(0,l.parsePath)(e);return/\.[^/]+\/?$/.test(t)?`${(0,r.removeTrailingSlash)(t)}${n}${a}`:t.endsWith("/")?`${t}${n}${a}`:`${t}/${n}${a}`};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},5550,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addBasePath",{enumerable:!0,get:function(){return a}});let r=e.r(41858),l=e.r(82823);function a(e,t){return(0,l.normalizePathTrailingSlash)((0,r.addPathPrefix)(e,""))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},57630,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createPrefetchURL:function(){return i},isExternalURL:function(){return o}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(82604),u=e.r(5550);function o(e){return e.origin!==window.location.origin}function i(e){let t;if((0,a.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,u.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return o(t)?null:t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},91949,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return c},mountFormInstance:function(){return S},mountLinkInstance:function(){return b},onLinkVisibilityChanged:function(){return E},onNavigationIntent:function(){return _},pingVisibleLinks:function(){return k},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return p},unmountPrefetchableInstance:function(){return w}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(9396),u=e.r(77048),o=e.r(77709),i=e.r(71645),s=null,c={pending:!0},f={pending:!1};function d(e){(0,i.startTransition)(()=>{s?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(c),s=e})}function p(e){s===e&&(s=null)}let h="function"==typeof WeakMap?new WeakMap:new Map,m=new Set,g="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;E(t.target,e)}},{rootMargin:"200px"}):null;function y(e,t){void 0!==h.get(e)&&w(e),h.set(e,t),null!==g&&g.observe(e)}function v(t){if("undefined"==typeof window)return null;{let{createPrefetchURL:n}=e.r(57630);try{return n(t)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${t}' because it cannot be converted to a URL.`),null}}}function b(e,t,n,r,l,a){if(l){let l=v(t);if(null!==l){let t={router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:a};return y(e,t),t}}return{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:a}}function S(e,t,n,r){let l=v(t);null===l||y(e,{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:null})}function w(e){let t=h.get(e);if(void 0!==t){h.delete(e),m.delete(t);let n=t.prefetchTask;null!==n&&(0,o.cancelPrefetchTask)(n)}null!==g&&g.unobserve(e)}function E(e,t){let n=h.get(e);void 0!==n&&(n.isVisible=t,t?m.add(n):m.delete(n),P(n,a.PrefetchPriority.Default))}function _(e,t){let n=h.get(e);void 0!==n&&void 0!==n&&P(n,a.PrefetchPriority.Intent)}function P(t,n){if("undefined"!=typeof window){let r=t.prefetchTask;if(!t.isVisible){null!==r&&(0,o.cancelPrefetchTask)(r);return}let{getCurrentAppRouterState:l}=e.r(99781),a=l();if(null!==a){let e=a.tree;if(null===r){let r=a.nextUrl,l=(0,u.createCacheKey)(t.prefetchHref,r);t.prefetchTask=(0,o.schedulePrefetchTask)(l,e,t.fetchStrategy,n,null)}else(0,o.reschedulePrefetchTask)(r,e,t.fetchStrategy,n)}}}function k(e,t){for(let n of m){let r=n.prefetchTask;if(null!==r&&!(0,o.isPrefetchTaskDirty)(r,e,t))continue;null!==r&&(0,o.cancelPrefetchTask)(r);let l=(0,u.createCacheKey)(n.prefetchHref,e);n.prefetchTask=(0,o.schedulePrefetchTask)(l,t,n.fetchStrategy,a.PrefetchPriority.Default,null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},95282,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return u},doesExportedHtmlMatchBuildId:function(){return s},insertBuildIdComment:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a="",u="bytes=0-63";function o(e){return e.slice(0,24).replace(/-/g,"_")}function i(e,t){return t.includes("-->")||!e.startsWith(a)?e:e.replace(a,a+"")}function s(e,t){return e.startsWith(a+"")}},20896,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l={EntryStatus:function(){return k},canNewFetchStrategyProvideMoreContent:function(){return el},convertRouteTreeToFlightRouterState:function(){return function e(t){let n={};if(null!==t.slots)for(let r in t.slots)n[r]=e(t.slots[r]);return[t.segment,n,null,null,t.isRootLayout]}},createDetachedSegmentCacheEntry:function(){return q},fetchRouteOnCacheMiss:function(){return X},fetchSegmentOnCacheMiss:function(){return Y},fetchSegmentPrefetchesUsingDynamicRequest:function(){return J},getCurrentCacheVersion:function(){return N},getStaleTimeMs:function(){return P},overwriteRevalidatingSegmentCacheEntry:function(){return B},pingInvalidationListeners:function(){return L},readOrCreateRevalidatingSegmentEntry:function(){return H},readOrCreateRouteCacheEntry:function(){return A},readOrCreateSegmentCacheEntry:function(){return U},readRouteCacheEntry:function(){return z},readSegmentCacheEntry:function(){return j},requestOptimisticRouteCacheEntry:function(){return I},revalidateEntireCache:function(){return M},upgradeToPendingSegment:function(){return $},upsertSegmentEntry:function(){return V},waitForSegmentCacheEntry:function(){return F}};for(var a in l)Object.defineProperty(n,a,{enumerable:!0,get:l[a]});let u=e.r(22744),o=e.r(21768),i=e.r(87288),s=e.r(77709),c=e.r(56655),f=e.r(14297),d=e.r(51191),p=e.r(77048),h=e.r(33906),m=e.r(511),g=e.r(67764),y=e.r(50590),v=e.r(54069),b=e.r(91949),S=e.r(13258),w=e.r(95282),E=e.r(9396),_=e.r(39470);function P(e){return 1e3*Math.max(e,30)}var k=((r={})[r.Empty=0]="Empty",r[r.Pending=1]="Pending",r[r.Fulfilled=2]="Fulfilled",r[r.Rejected=3]="Rejected",r);let R=["",{},null,"metadata-only"],T=(0,m.createCacheMap)(),x=(0,m.createCacheMap)(),O=null,C=0;function N(){return C}function M(e,t){C++,(0,s.startRevalidationCooldown)(),(0,b.pingVisibleLinks)(e,t),L(e,t)}function L(e,t){if(null!==O){let n=O;for(let r of(O=null,n))(0,s.isPrefetchTaskDirty)(r,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(r)}}function z(e,t){let n=(0,c.getRouteVaryPath)(t.pathname,t.search,t.nextUrl);return(0,m.getFromCacheMap)(e,C,T,n,!1)}function j(e,t){return(0,m.getFromCacheMap)(e,C,x,t,!1)}function F(e){let t=e.promise;return null===t&&(t=e.promise=(0,_.createPromiseWithResolvers)()),t.promise}function A(e,t,n){null!==t.onInvalidate&&(null===O?O=new Set([t]):O.add(t));let r=z(e,n);if(null!==r)return r;let l={canonicalUrl:null,status:0,blockedTasks:null,tree:null,metadata:null,couldBeIntercepted:!0,isPPREnabled:!1,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:C},a=(0,c.getRouteVaryPath)(n.pathname,n.search,n.nextUrl);return(0,m.setInCacheMap)(T,a,l,!1),l}function I(e,t,n){let r=t.search;if(""===r)return null;let l=new URL(t);l.search="";let a=z(e,(0,p.createCacheKey)(l.href,n));if(null===a||2!==a.status)return null;let u=new URL(a.canonicalUrl,t.origin),o=""!==u.search?u.search:r,i=""!==a.renderedSearch?a.renderedSearch:r,s=new URL(a.canonicalUrl,location.origin);return s.search=o,{canonicalUrl:(0,d.createHrefFromUrl)(s),status:2,blockedTasks:null,tree:D(a.tree,i),metadata:D(a.metadata,i),couldBeIntercepted:a.couldBeIntercepted,isPPREnabled:a.isPPREnabled,renderedSearch:i,ref:null,size:0,staleAt:a.staleAt,version:a.version}}function D(e,t){let n=null,r=e.slots;if(null!==r)for(let e in n={},r){let l=r[e];n[e]=D(l,t)}return e.isPage?{requestKey:e.requestKey,segment:e.segment,varyPath:(0,c.clonePageVaryPathWithNewSearchParams)(e.varyPath,t),isPage:!0,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}:{requestKey:e.requestKey,segment:e.segment,varyPath:e.varyPath,isPage:!1,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}}function U(e,t,n,r){let l=j(e,r.varyPath);if(null!==l)return l;let a=(0,c.getSegmentVaryPathForRequest)(t,r),u=q(n.staleAt);return(0,m.setInCacheMap)(x,a,u,!1),u}function H(e,t,n,r){var l;let a=(l=r.varyPath,(0,m.getFromCacheMap)(e,C,x,l,!0));if(null!==a)return a;let u=(0,c.getSegmentVaryPathForRequest)(t,r),o=q(n.staleAt);return(0,m.setInCacheMap)(x,u,o,!0),o}function B(e,t,n){let r=(0,c.getSegmentVaryPathForRequest)(e,n),l=q(t.staleAt);return(0,m.setInCacheMap)(x,r,l,!0),l}function V(e,t,n){if((0,m.isValueExpired)(e,C,n))return null;let r=j(e,t);if(null!==r){var l;if(n.fetchStrategy!==r.fetchStrategy&&(l=r.fetchStrategy,!(l""!==e),r=g.ROOT_SEGMENT_REQUEST_KEY,function e(t,n,r,l,a,o,i,s){let f,d,p=null,m=t.slots;if(null!==m)for(let t in f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r),p={},m){let n,u,f,d=m[t],y=d.name,v=d.paramType,b=d.paramKey;if(null!==v){let e=(0,h.parseDynamicParamFromURLPart)(v,a,o),t=null!==b?b:(0,h.getCacheKeyForDynamicParam)(e,"");f=(0,c.appendLayoutVaryPath)(r,t),u=[y,t,v],n=!0}else f=r,u=y,n=(0,h.doesStaticSegmentAppearInURL)(y);let S=n?o+1:o,w=(0,g.createSegmentRequestKeyPart)(u),E=(0,g.appendSegmentRequestKeyPart)(l,t,w);p[t]=e(d,u,f,E,a,S,i,s)}else l.endsWith(S.PAGE_SEGMENT_KEY)?(f=!0,d=(0,c.finalizePageVaryPath)(l,i,r),null===s.metadataVaryPath&&(s.metadataVaryPath=(0,c.finalizeMetadataVaryPath)(l,i,r))):(f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r));return{requestKey:l,segment:n,varyPath:d,isPage:f,slots:p,isRootLayout:t.isRootLayout,hasLoadingBoundary:u.HasLoadingBoundary.SegmentHasLoadingBoundary,hasRuntimePrefetch:t.hasRuntimePrefetch}}(o.tree,r,null,g.ROOT_SEGMENT_REQUEST_KEY,n,0,d,v)),E=v.metadataVaryPath;if(null===E)return Q(e,Date.now()+1e4),null;let _=P(o.staleTime);y=Date.now()+_,l={requestKey:g.HEAD_REQUEST_KEY,segment:g.HEAD_REQUEST_KEY,varyPath:E,isPage:!0,slots:null,isRootLayout:!1,hasLoadingBoundary:u.HasLoadingBoundary.SubtreeHasNoLoadingBoundary,hasRuntimePrefetch:!1},e.status=2,e.tree=w,e.metadata=l,e.staleAt=y,e.couldBeIntercepted=k,e.canonicalUrl=b,e.renderedSearch=d,e.isPPREnabled=x,W(e)}if(!k){let t=(0,c.getFulfilledRouteVaryPath)(r,l,a,k);(0,m.setInCacheMap)(T,t,e,!1)}return{value:null,closed:R.promise}}catch(t){return Q(e,Date.now()+1e4),null}}async function Y(e,t,n,r){let l=new URL(e.canonicalUrl,location.origin),a=n.nextUrl,u=r.requestKey,s=u===g.ROOT_SEGMENT_REQUEST_KEY?"/_index":u,c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_PREFETCH_HEADER]:"1",[o.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:s};null!==a&&(c[o.NEXT_URL]=a);let d=er(l,s);try{let n=await et(d,c);if(!n||!n.ok||204===n.status||"2"!==n.headers.get(o.NEXT_DID_POSTPONE_HEADER)&&0||!n.body)return G(t,Date.now()+1e4),null;let r=(0,_.createPromiseWithResolvers)(),l=en(n.body,r.resolve,function(e){(0,m.setSizeInCacheMap)(t,e)}),a=await (0,i.createFromNextReadableStream)(l,c);if(a.buildId!==(0,f.getAppBuildId)())return G(t,Date.now()+1e4),null;return{value:K(t,a.rsc,a.loading,e.staleAt,a.isPartial),closed:r.promise}}catch(e){return G(t,Date.now()+1e4),null}}async function J(e,t,n,r,l){let a=e.key,u=new URL(t.canonicalUrl,location.origin),s=a.nextUrl;1===l.size&&l.has(t.metadata.requestKey)&&(r=R);let c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_STATE_TREE_HEADER]:(0,y.prepareFlightRouterStateForRequest)(r)};switch(null!==s&&(c[o.NEXT_URL]=s),n){case E.FetchStrategy.Full:break;case E.FetchStrategy.PPRRuntime:c[o.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case E.FetchStrategy.LoadingBoundary:c[o.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let r=await et(u,c);if(!r||!r.ok||!r.body||(0,h.getRenderedSearch)(r)!==t.renderedSearch)return Z(l,Date.now()+1e4),null;let a=(0,_.createPromiseWithResolvers)(),s=null,d=en(r.body,a.resolve,function(e){if(null===s)return;let t=e/s.length;for(let e of s)(0,m.setSizeInCacheMap)(e,t)}),p=await (0,i.createFromNextReadableStream)(d,c),g=n===E.FetchStrategy.PPRRuntime&&p.rp?.[0]===!0;return s=function(e,t,n,r,l,a,u,i){if(l.b!==(0,f.getAppBuildId)())return null!==i&&Z(i,e+1e4),null;let s=(0,y.normalizeFlightData)(l.f);if("string"==typeof s)return null;let c="number"==typeof l.rp?.[1]?l.rp[1]:parseInt(r.headers.get(o.NEXT_ROUTER_STALE_TIME_HEADER)??"",10),d=e+(isNaN(c)?v.STATIC_STALETIME_MS:P(c));for(let r of s){let l=r.seedData;if(null!==l){let o=r.segmentPath,s=u.tree;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"navigate",{enumerable:!0,get:function(){return c}});let r=e.r(87288),l=e.r(95871),a=e.r(51191),u=e.r(20896),o=e.r(77048),i=e.r(13258),s=e.r(9396);function c(e,t,n,r,l,a,i){let c=Date.now(),d=e.href,g=d===window.location.href,y=(0,o.createCacheKey)(d,l),v=(0,u.readRouteCacheEntry)(c,y);if(null!==v&&v.status===u.EntryStatus.Fulfilled){let u=p(c,v,v.tree),o=u.flightRouterState,i=u.seedData,s=h(c,v),d=s.rsc,m=s.isPartial,y=v.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,o,i,d,m,y,v.renderedSearch,a,e.hash)}if(null===v||v.status!==u.EntryStatus.Rejected){let o=(0,u.requestOptimisticRouteCacheEntry)(c,e,l);if(null!==o){let u=p(c,o,o.tree),i=u.flightRouterState,s=u.seedData,d=h(c,o),m=d.rsc,y=d.isPartial,v=o.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,i,s,m,y,v,o.renderedSearch,a,e.hash)}}let b=i.collectedDebugInfo??[];return void 0===i.collectedDebugInfo&&(b=i.collectedDebugInfo=[]),{tag:s.NavigationResultTag.Async,data:m(c,e,t,l,g,n,r,a,e.hash,b)}}function f(e,t,n,a,u,o,i,c,f,p,h,m,g,y,v){let b=[],S=(0,l.startPPRNavigation)(e,n,o,i,c,f,p,h,u,b);if(null!==S){let e=S.dynamicRequestTree;if(null!==e){let n=(0,r.fetchServerResponse)(new URL(m,t.origin),{flightRouterState:e,nextUrl:a});(0,l.listenForDynamicRequest)(S,n)}return d(S,o,m,g,b,y,v)}return{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:m,shouldScroll:y}}}function d(e,t,n,r,l,a,u){let o=e.route;if(null===o)return{tag:s.NavigationResultTag.MPA,data:n};let i=e.node;return{tag:s.NavigationResultTag.Success,data:{flightRouterState:o,cacheNode:null!==i?i:t,canonicalUrl:n,renderedSearch:r,scrollableSegments:l,shouldScroll:a,hash:u}}}function p(e,t,n){let r={},l={},a=n.slots;if(null!==a)for(let n in a){let u=p(e,t,a[n]);r[n]=u.flightRouterState,l[n]=u.seedData}let o=null,s=null,c=!0,f=(0,u.readSegmentCacheEntry)(e,n.varyPath);if(null!==f)switch(f.status){case u.EntryStatus.Fulfilled:o=f.rsc,s=f.loading,c=f.isPartial;break;case u.EntryStatus.Pending:{let e=(0,u.waitForSegmentCacheEntry)(f);o=e.then(e=>null!==e?e.rsc:null),s=e.then(e=>null!==e?e.loading:null),c=!0}case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{flightRouterState:[(0,i.addSearchParamsIfPageSegment)(n.segment,Object.fromEntries(new URLSearchParams(t.renderedSearch))),r,null,null,n.isRootLayout],seedData:[o,l,s,c,!1]}}function h(e,t){let n=null,r=!0,l=(0,u.readSegmentCacheEntry)(e,t.metadata.varyPath);if(null!==l)switch(l.status){case u.EntryStatus.Fulfilled:n=l.rsc,r=l.isPartial;break;case u.EntryStatus.Pending:n=(0,u.waitForSegmentCacheEntry)(l).then(e=>null!==e?e.rsc:null),r=!0;case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{rsc:n,isPartial:r}}async function m(e,t,n,u,o,i,c,f,p,h){let m=(0,r.fetchServerResponse)(t,{flightRouterState:c,nextUrl:u}),g=await m;if("string"==typeof g)return{tag:s.NavigationResultTag.MPA,data:g};let{flightData:y,canonicalUrl:v,renderedSearch:b,debugInfo:S}=g;null!==S&&h.push(...S);let w=function(e,t){let n=e;for(let{segmentPath:r,tree:l}of t){let t=n!==e;n=function e(t,n,r,l,a){if(a===r.length)return n;let u=r[a],o=t[1],i={};for(let t in o)if(t===u){let u=o[t];i[t]=e(u,n,r,l,a+2)}else i[t]=o[t];if(l)return t[1]=i,t;let s=[t[0],i];return 2 in t&&(s[2]=t[2]),3 in t&&(s[3]=t[3]),4 in t&&(s[4]=t[4]),s}(n,l,r,t,0)}return n}(c,y),E=[],_=(0,l.startPPRNavigation)(e,n,i,c,w,null,null,!0,o,E);return null!==_?(null!==_.dynamicRequestTree&&(0,l.listenForDynamicRequest)(_,m),d(_,i,(0,a.createHrefFromUrl)(v),b,E,f,p)):{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:(0,a.createHrefFromUrl)(v),shouldScroll:f}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},54069,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DYNAMIC_STALETIME_MS:function(){return c},STATIC_STALETIME_MS:function(){return f},generateSegmentsFromPatch:function(){return function e(t){let n=[],[r,l]=t;if(0===Object.keys(l).length)return[[r]];for(let[t,a]of Object.entries(l))for(let l of e(a))""===r?n.push([t,...l]):n.push([r,t,...l]);return n}},handleExternalUrl:function(){return d},navigateReducer:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(51191),u=e.r(47442),o=e.r(60355),i=e.r(9396),s=e.r(20896),c=1e3*Number("0"),f=(0,s.getStaleTimeMs)(Number("300"));function d(e,t,n,r){return t.mpaNavigation=!0,t.canonicalUrl=n,t.pendingPush=r,t.scrollableSegments=void 0,(0,u.handleMutable)(e,t)}function p(e,t){let{url:n,isExternalUrl:r,navigateType:l,shouldScroll:s}=t,c={},f=(0,a.createHrefFromUrl)(n),p="push"===l;if(c.preserveCustomHistoryState=!1,c.pendingPush=p,r)return d(e,c,n.toString(),p);if(document.getElementById("__next-page-redirect"))return d(e,c,f,p);let h=new URL(e.canonicalUrl,location.origin),m=(0,o.navigate)(n,h,e.cache,e.tree,e.nextUrl,s,c);return function e(t,n,r,l,a){switch(a.tag){case i.NavigationResultTag.MPA:return d(n,r,a.data,l);case i.NavigationResultTag.NoOp:{r.canonicalUrl=a.data.canonicalUrl;let e=new URL(n.canonicalUrl,t);return t.pathname===e.pathname&&t.search===e.search&&t.hash!==e.hash&&(r.onlyHashChange=!0,r.shouldScroll=a.data.shouldScroll,r.hashFragment=t.hash,r.scrollableSegments=[]),(0,u.handleMutable)(n,r)}case i.NavigationResultTag.Success:return r.cache=a.data.cacheNode,r.patchedTree=a.data.flightRouterState,r.renderedSearch=a.data.renderedSearch,r.canonicalUrl=a.data.canonicalUrl,r.scrollableSegments=a.data.scrollableSegments,r.shouldScroll=a.data.shouldScroll,r.hashFragment=a.data.hash,(0,u.handleMutable)(n,r);case i.NavigationResultTag.Async:return a.data.then(a=>e(t,n,r,l,a),()=>n);default:return n}}(n,e,c,p,m)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1764,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,n,l,a,u,o){if(0===Object.keys(a[1]).length){n.head=o;return}for(let i in a[1]){let s,c=a[1][i],f=c[0],d=(0,r.createRouterCacheKey)(f),p=null!==u&&void 0!==u[1][i]?u[1][i]:null;if(l){let r=l.parallelRoutes.get(i);if(r){let l,a=new Map(r),u=a.get(d);l=null!==p?{lazyData:null,rsc:p[0],prefetchRsc:null,head:null,prefetchHead:null,loading:p[2],parallelRoutes:new Map(u?.parallelRoutes),navigatedAt:t}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(u?.parallelRoutes),loading:null,navigatedAt:t},a.set(d,l),e(t,l,u,c,p||null,o),n.parallelRoutes.set(i,a);continue}}if(null!==p){let e=p[0],n=p[2];s={lazyData:null,rsc:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:n,navigatedAt:t}}else s={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:t};let h=n.parallelRoutes.get(i);h?h.set(d,s):n.parallelRoutes.set(i,new Map([[d,s]])),e(t,s,void 0,c,p,o)}}}});let r=e.r(70725);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},51565,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return l}});let r=e.r(70725);function l(e,t,n){for(let l in n[1]){let a=n[1][l][0],u=(0,r.createRouterCacheKey)(a),o=t.parallelRoutes.get(l);if(o){let t=new Map(o);t.delete(u),e.parallelRoutes.set(l,t)}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},87752,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={fillCacheWithNewSubTreeData:function(){return c},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return f}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(51565),u=e.r(1764),o=e.r(70725),i=e.r(13258);function s(e,t,n,r,l){let{segmentPath:s,seedData:c,tree:f,head:d}=r,p=t,h=n;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyFlightData",{enumerable:!0,get:function(){return a}});let r=e.r(1764),l=e.r(87752);function a(e,t,n,a){let{tree:u,seedData:o,head:i,isRootRender:s}=a;if(null===o)return!1;if(s){let l=o[0];n.loading=o[2],n.rsc=l,n.prefetchRsc=null,(0,r.fillLazyItemsTillLeafWithHead)(e,n,t,u,o,i)}else n.rsc=t.rsc,n.prefetchRsc=t.prefetchRsc,n.parallelRoutes=new Map(t.parallelRoutes),n.loading=t.loading,(0,l.fillCacheWithNewSubTreeData)(e,n,t,a);return!0}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},13576,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={addRefreshMarkerToActiveParallelSegments:function(){return function e(t,n){let[r,l,,a]=t;for(let u in r.includes(o.PAGE_SEGMENT_KEY)&&"refresh"!==a&&(t[2]=n,t[3]="refresh"),l)e(l[u],n)}},refreshInactiveParallelSegments:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(10827),u=e.r(87288),o=e.r(13258);async function i(e){let t=new Set;await s({...e,rootTree:e.updatedTree,fetchedSegments:t})}async function s({navigatedAt:e,state:t,updatedTree:n,updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i=n,canonicalUrl:c}){let[,f,d,p]=n,h=[];if(d&&d!==c&&"refresh"===p&&!o.has(d)){o.add(d);let n=(0,u.fetchServerResponse)(new URL(d,location.origin),{flightRouterState:[i[0],i[1],i[2],"refetch"],nextUrl:l?t.nextUrl:null}).then(t=>{if("string"!=typeof t){let{flightData:n}=t;for(let t of n)(0,a.applyFlightData)(e,r,r,t)}});h.push(n)}for(let n in f){let a=s({navigatedAt:e,state:t,updatedTree:f[n],updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i,canonicalUrl:c});h.push(a)}await Promise.all(h)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},22719,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,n,r,i){let s,[c,f,d,p,h]=n;if(1===t.length){let e=o(n,r);return(0,u.addRefreshMarkerToActiveParallelSegments)(e,i),e}let[m,g]=t;if(!(0,a.matchSegment)(m,c))return null;if(2===t.length)s=o(f[g],r);else if(null===(s=e((0,l.getNextFlightSegmentPath)(t),f[g],r,i)))return null;let y=[t[0],{...f,[g]:s},d,p];return h&&(y[4]=!0),(0,u.addRefreshMarkerToActiveParallelSegments)(y,i),y}}});let r=e.r(13258),l=e.r(50590),a=e.r(56019),u=e.r(13576);function o(e,t){let[n,l]=e,[u,i]=t;if(u===r.DEFAULT_SEGMENT_KEY&&n!==r.DEFAULT_SEGMENT_KEY)return e;if((0,a.matchSegment)(n,u)){let t={};for(let e in l)void 0!==i[e]?t[e]=o(l[e],i[e]):t[e]=l[e];for(let e in i)t[e]||(t[e]=i[e]);let r=[n,t];return e[2]&&(r[2]=e[2]),e[3]&&(r[3]=e[3]),e[4]&&(r[4]=e[4]),r}return t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},62634,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"AppRouterAnnouncer",{enumerable:!0,get:function(){return u}});let r=e.r(71645),l=e.r(74080),a="next-route-announcer";function u({tree:e}){let[t,n]=(0,r.useState)(null);(0,r.useEffect)(()=>(n(function(){let e=document.getElementsByName(a)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(a);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(a)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[u,o]=(0,r.useState)(""),i=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&o(e),i.current=e},[e]),t?(0,l.createPortal)(u,t):null}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},25018,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findHeadInCache",{enumerable:!0,get:function(){return a}});let r=e.r(13258),l=e.r(70725);function a(e,t){return function e(t,n,a,u){if(0===Object.keys(n).length)return[t,a,u];let o=Object.keys(n).filter(e=>"children"!==e);for(let u of("children"in n&&o.unshift("children"),o)){let[o,i]=n[u];if(o===r.DEFAULT_SEGMENT_KEY)continue;let s=t.parallelRoutes.get(u);if(!s)continue;let c=(0,l.createRouterCacheKey)(o),f=(0,l.createRouterCacheKey)(o,!0),d=s.get(c);if(!d)continue;let p=e(d,i,a+"/"+c,a+"/"+f);if(p)return p}return null}(e,t,"","")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},39584,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"pathHasPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(72463);function l(e,t){if("string"!=typeof e)return!1;let{pathname:n}=(0,r.parsePath)(e);return n===t||n.startsWith(t+"/")}},52817,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hasBasePath",{enumerable:!0,get:function(){return l}});let r=e.r(39584);function l(e){return(0,r.pathHasPrefix)(e,"")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},87250,(e,t,n)=>{"use strict";function r(e){return e}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeBasePath",{enumerable:!0,get:function(){return r}}),e.r(52817),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},41624,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={GracefulDegradeBoundary:function(){return o},default:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(43476),u=e.r(71645);class o extends u.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,u.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,n])=>{e.setAttribute(t,n)})}render(){let{hasError:e}=this.state;return("undefined"==typeof window||this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(55682),l=e.r(43476);e.r(71645);let a=r._(e.r(41624)),u=e.r(72383),o=e.r(82604),i="undefined"!=typeof window&&(0,o.isBot)(window.navigator.userAgent);function s({children:e,errorComponent:t,errorStyles:n,errorScripts:r}){return i?(0,l.jsx)(a.default,{children:e}):(0,l.jsx)(u.ErrorBoundary,{errorComponent:t,errorStyles:n,errorScripts:r,children:e})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},75530,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createEmptyCacheNode:function(){return N},default:function(){return j}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(55682),u=e.r(90809),o=e.r(43476),i=u._(e.r(71645)),s=e.r(8372),c=e.r(88540),f=e.r(51191),d=e.r(61994),p=e.r(41538),h=e.r(62634),m=e.r(58442),g=e.r(25018),y=e.r(1244),v=e.r(87250),b=e.r(52817),S=e.r(34727),w=e.r(78377),E=e.r(99781),_=e.r(24063),P=e.r(68391),k=e.r(91949),R=a._(e.r(94109)),T=a._(e.r(68027)),x=e.r(97367),O={};function C({appRouterState:e}){return(0,i.useInsertionEffect)(()=>{let{tree:t,pushRef:n,canonicalUrl:r,renderedSearch:l}=e,a={...n.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:l}};n.pendingPush&&(0,f.createHrefFromUrl)(new URL(window.location.href))!==r?(n.pendingPush=!1,window.history.pushState(a,"",r)):window.history.replaceState(a,"",r)},[e]),(0,i.useEffect)(()=>{(0,k.pingVisibleLinks)(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function N(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1}}function M(e){null==e&&(e={});let t=window.history.state,n=t?.__NA;n&&(e.__NA=n);let r=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return r&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=r),e}function L({headCacheNode:e}){let t=null!==e?e.head:null,n=null!==e?e.prefetchHead:null,r=null!==n?n:t;return(0,i.useDeferredValue)(t,r)}function z({actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r}){let l,a=(0,p.useActionQueue)(e),{canonicalUrl:u}=a,{searchParams:f,pathname:w}=(0,i.useMemo)(()=>{let e=new URL(u,"undefined"==typeof window?"http://n":window.location.href);return{searchParams:e.searchParams,pathname:(0,b.hasBasePath)(e.pathname)?(0,v.removeBasePath)(e.pathname):e.pathname}},[u]);(0,i.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(O.pendingMpaPath=void 0,(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,i.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,P.isRedirectError)(t)){e.preventDefault();let n=(0,_.getURLFromRedirectError)(t);(0,_.getRedirectTypeFromError)(t)===P.RedirectType.push?E.publicAppRouterInstance.push(n,{}):E.publicAppRouterInstance.replace(n,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:k}=a;if(k.mpaNavigation){if(O.pendingMpaPath!==u){let e=window.location;k.pendingPush?e.assign(u):e.replace(u),O.pendingMpaPath=u}throw y.unresolvedThenable}(0,i.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),n=e=>{let t=window.location.href,n=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,i.startTransition)(()=>{(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(e??t,t),historyState:n})})};window.history.pushState=function(t,r,l){return t?.__NA||t?._N||(t=M(t),l&&n(l)),e(t,r,l)},window.history.replaceState=function(e,r,l){return e?.__NA||e?._N||(e=M(e),l&&n(l)),t(e,r,l)};let r=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,i.startTransition)(()=>{(0,E.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",r),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",r)}},[]);let{cache:T,tree:N,nextUrl:z,focusAndScrollRef:j,previousNextUrl:F}=a,A=(0,i.useMemo)(()=>(0,g.findHeadInCache)(T,N[1]),[T,N]),D=(0,i.useMemo)(()=>(0,S.getSelectedParams)(N),[N]),U=(0,i.useMemo)(()=>({parentTree:N,parentCacheNode:T,parentSegmentPath:null,parentParams:{},debugNameContext:"/",url:u,isActive:!0}),[N,T,u]),H=(0,i.useMemo)(()=>({tree:N,focusAndScrollRef:j,nextUrl:z,previousNextUrl:F}),[N,j,z,F]);if(null!==A){let[e,t,n]=A;l=(0,o.jsx)(L,{headCacheNode:e},"undefined"==typeof window?n:t)}else l=null;let B=(0,o.jsxs)(m.RedirectBoundary,{children:[l,(0,o.jsx)(x.RootLayoutBoundary,{children:T.rsc}),(0,o.jsx)(h.AppRouterAnnouncer,{tree:N})]});return B=(0,o.jsx)(R.default,{errorComponent:t[0],errorStyles:t[1],children:B}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C,{appRouterState:a}),(0,o.jsx)(I,{}),(0,o.jsx)(d.NavigationPromisesContext.Provider,{value:null,children:(0,o.jsx)(d.PathParamsContext.Provider,{value:D,children:(0,o.jsx)(d.PathnameContext.Provider,{value:w,children:(0,o.jsx)(d.SearchParamsContext.Provider,{value:f,children:(0,o.jsx)(s.GlobalLayoutRouterContext.Provider,{value:H,children:(0,o.jsx)(s.AppRouterContext.Provider,{value:E.publicAppRouterInstance,children:(0,o.jsx)(s.LayoutRouterContext.Provider,{value:U,children:B})})})})})})})]})}function j({actionQueue:e,globalErrorState:t,webSocket:n,staticIndicatorState:r}){(0,w.useNavFailureHandler)();let l=(0,o.jsx)(z,{actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r});return(0,o.jsx)(R.default,{errorComponent:T.default,children:l})}let F=new Set,A=new Set;function I(){let[,e]=i.default.useState(0),t=F.size;return(0,i.useEffect)(()=>{let n=()=>e(e=>e+1);return A.add(n),t!==F.size&&n(),()=>{A.delete(n)}},[t,e]),[...F].map((e,t)=>(0,o.jsx)("link",{rel:"stylesheet",href:`${e}`,precedence:"next"},t))}globalThis._N_E_STYLE_LOAD=function(e){let t=F.size;return F.add(e),F.size!==t&&A.forEach(e=>e()),Promise.resolve()},("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},91668,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverPatchReducer",{enumerable:!0,get:function(){return c}});let r=e.r(51191),l=e.r(22719),a=e.r(48919),u=e.r(54069),o=e.r(10827),i=e.r(47442),s=e.r(75530);function c(e,t){let{serverResponse:n,navigatedAt:c}=t,f={};if(f.preserveCustomHistoryState=!1,"string"==typeof n)return(0,u.handleExternalUrl)(e,f,n,e.pushRef.pendingPush);let{flightData:d,canonicalUrl:p,renderedSearch:h}=n,m=e.tree,g=e.cache;for(let t of d){let{segmentPath:n,tree:i}=t,d=(0,l.applyRouterStatePatchToTree)(["",...n],m,i,e.canonicalUrl);if(null===d)return e;if((0,a.isNavigatingToNewRootLayout)(m,d))return(0,u.handleExternalUrl)(e,f,e.canonicalUrl,e.pushRef.pendingPush);f.canonicalUrl=(0,r.createHrefFromUrl)(p);let y=(0,s.createEmptyCacheNode)();(0,o.applyFlightData)(c,g,y,t),f.patchedTree=d,f.renderedSearch=h,f.cache=y,g=y,m=d}return(0,i.handleMutable)(e,f)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},73790,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"restoreReducer",{enumerable:!0,get:function(){return a}});let r=e.r(51191),l=e.r(34727);function a(e,t){let n,a,{url:u,historyState:o}=t,i=(0,r.createHrefFromUrl)(u);o?(n=o.tree,a=o.renderedSearch):(n=e.tree,a=e.renderedSearch);let s=e.cache;return{canonicalUrl:i,renderedSearch:a,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:s,tree:n,nextUrl:(0,l.extractPathFromFlightRouterState)(n)??u.pathname,previousNextUrl:null,debugInfo:null}}e.r(95871),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},54003,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleSegmentMismatch",{enumerable:!0,get:function(){return l}});let r=e.r(54069);function l(e,t,n){return(0,r.handleExternalUrl)(e,{},e.canonicalUrl,!0)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},69845,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"refreshReducer",{enumerable:!0,get:function(){return m}});let r=e.r(87288),l=e.r(51191),a=e.r(22719),u=e.r(48919),o=e.r(54069),i=e.r(47442),s=e.r(1764),c=e.r(75530),f=e.r(54003),d=e.r(84356),p=e.r(13576),h=e.r(20896);function m(e,t){let{origin:n}=t,m={},g=e.canonicalUrl,y=e.tree;m.preserveCustomHistoryState=!1;let v=(0,c.createEmptyCacheNode)(),b=(0,d.hasInterceptionRouteInCurrentTree)(e.tree);v.lazyData=(0,r.fetchServerResponse)(new URL(g,n),{flightRouterState:[y[0],y[1],y[2],"refetch"],nextUrl:b?e.nextUrl:null});let S=Date.now();return v.lazyData.then(async n=>{if("string"==typeof n)return(0,o.handleExternalUrl)(e,m,n,e.pushRef.pendingPush);let{flightData:r,canonicalUrl:c,renderedSearch:d}=n;for(let n of(v.lazyData=null,r)){let{tree:r,seedData:i,head:w,isRootRender:E}=n;if(!E)return console.log("REFRESH FAILED"),e;let _=(0,a.applyRouterStatePatchToTree)([""],y,r,e.canonicalUrl);if(null===_)return(0,f.handleSegmentMismatch)(e,t,r);if((0,u.isNavigatingToNewRootLayout)(y,_))return(0,o.handleExternalUrl)(e,m,g,e.pushRef.pendingPush);if(m.canonicalUrl=(0,l.createHrefFromUrl)(c),null!==i){let t=i[0],n=i[2];v.rsc=t,v.prefetchRsc=null,v.loading=n,(0,s.fillLazyItemsTillLeafWithHead)(S,v,void 0,r,i,w),(0,h.revalidateEntireCache)(e.nextUrl,_)}await (0,p.refreshInactiveParallelSegments)({navigatedAt:S,state:e,updatedTree:_,updatedCache:v,includeNextUrl:b,canonicalUrl:m.canonicalUrl||e.canonicalUrl}),m.cache=v,m.patchedTree=_,m.renderedSearch=d,y=_}return(0,i.handleMutable)(e,m)},()=>e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},86720,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hmrRefreshReducer",{enumerable:!0,get:function(){return r}}),e.r(87288),e.r(51191),e.r(22719),e.r(48919),e.r(54069),e.r(47442),e.r(10827),e.r(75530),e.r(54003),e.r(84356);let r=function(e,t){return e};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},27801,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"assignLocation",{enumerable:!0,get:function(){return l}});let r=e.r(5550);function l(e,t){if(e.startsWith(".")){let n=t.origin+t.pathname;return new URL((n.endsWith("/")?n:n+"/")+e)}return new URL((0,r.addBasePath)(e),t.href)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},39747,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={extractInfoFromServerReferenceId:function(){return a},omitUnusedArgs:function(){return u}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});function a(e){let t=parseInt(e.slice(0,2),16),n=t>>1&63,r=Array(6);for(let e=0;e<6;e++){let t=n>>5-e&1;r[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:r,hasRestArgs:1==(1&t)}}function u(e,t){let n=Array(e.length);for(let r=0;r=6&&t.hasRestArgs)&&(n[r]=e[r]);return n}},45794,(e,t,n)=>{"use strict";let r;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverActionReducer",{enumerable:!0,get:function(){return C}});let l=e.r(32120),a=e.r(92245),u=e.r(21768),o=e.r(92838),i=e.r(35326),s=e.r(27801),c=e.r(51191),f=e.r(54069),d=e.r(22719),p=e.r(48919),h=e.r(47442),m=e.r(1764),g=e.r(75530),y=e.r(84356),v=e.r(54003),b=e.r(13576),S=e.r(50590),w=e.r(24063),E=e.r(68391),_=e.r(87250),P=e.r(52817),k=e.r(39747),R=e.r(20896),T=i.createFromFetch;async function x(e,t,{actionId:n,actionArgs:c}){let f,d,p,h,m=(0,i.createTemporaryReferenceSet)(),g=(0,k.extractInfoFromServerReferenceId)(n),y="use-cache"===g.type?(0,k.omitUnusedArgs)(c,g):c,v=await (0,i.encodeReply)(y,{temporaryReferences:m}),b={Accept:u.RSC_CONTENT_TYPE_HEADER,[u.ACTION_HEADER]:n,[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,S.prepareFlightRouterStateForRequest)(e.tree)};t&&(b[u.NEXT_URL]=t);let w=await fetch(e.canonicalUrl,{method:"POST",headers:b,body:v});if("1"===w.headers.get(u.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new o.UnrecognizedActionError(`Server Action "${n}" was not found on the server. -Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let _=w.headers.get("x-action-redirect"),[P,R]=_?.split(";")||[];switch(R){case"push":f=E.RedirectType.push;break;case"replace":f=E.RedirectType.replace;break;default:f=void 0}let x=!!w.headers.get(u.NEXT_IS_PRERENDER_HEADER);try{let e=JSON.parse(w.headers.get("x-action-revalidated")||"[[],0,0]");d={paths:e[0]||[],tag:!!e[1],cookie:e[2]}}catch(e){d=O}let C=P?(0,s.assignLocation)(P,new URL(e.canonicalUrl,window.location.href)):void 0,N=w.headers.get("content-type"),M=!!(N&&N.startsWith(u.RSC_CONTENT_TYPE_HEADER));if(!M&&!C)throw Object.defineProperty(Error(w.status>=400&&"text/plain"===N?await w.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(M){let e=await T(Promise.resolve(w),{callServer:l.callServer,findSourceMapURL:a.findSourceMapURL,temporaryReferences:m,debugChannel:r&&r(b)});p=C?void 0:e.a,h=(0,S.normalizeFlightData)(e.f)}else p=void 0,h=void 0;return{actionResult:p,actionFlightData:h,redirectLocation:C,redirectType:f,revalidatedParts:d,isPrerender:x}}let O={paths:[],tag:!1,cookie:!1};function C(e,t){let{resolve:n,reject:r}=t,l={},a=e.tree;l.preserveCustomHistoryState=!1;let u=(e.previousNextUrl||e.nextUrl)&&(0,y.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null,o=Date.now();return x(e,u,t).then(async({actionResult:i,actionFlightData:s,redirectLocation:y,redirectType:S,revalidatedParts:k})=>{let T;if(y&&(S===E.RedirectType.replace?(e.pushRef.pendingPush=!1,l.pendingPush=!1):(e.pushRef.pendingPush=!0,l.pendingPush=!0),l.canonicalUrl=T=(0,c.createHrefFromUrl)(y,!1)),!s)return(n(i),y)?(0,f.handleExternalUrl)(e,l,y.href,e.pushRef.pendingPush):e;if("string"==typeof s)return n(i),(0,f.handleExternalUrl)(e,l,s,e.pushRef.pendingPush);let x=k.paths.length>0||k.tag||k.cookie;for(let r of(x&&(t.didRevalidate=!0),s)){let{tree:s,seedData:c,head:h,isRootRender:y}=r;if(!y)return console.log("SERVER ACTION APPLY FAILED"),n(i),e;let S=(0,d.applyRouterStatePatchToTree)([""],a,s,T||e.canonicalUrl);if(null===S)return n(i),(0,v.handleSegmentMismatch)(e,t,s);if((0,p.isNavigatingToNewRootLayout)(a,S))return n(i),(0,f.handleExternalUrl)(e,l,T||e.canonicalUrl,e.pushRef.pendingPush);if(null!==c){let t=c[0],n=(0,g.createEmptyCacheNode)();n.rsc=t,n.prefetchRsc=null,n.loading=c[2],(0,m.fillLazyItemsTillLeafWithHead)(o,n,void 0,s,c,h),l.cache=n,(0,R.revalidateEntireCache)(e.nextUrl,S),x&&await (0,b.refreshInactiveParallelSegments)({navigatedAt:o,state:e,updatedTree:S,updatedCache:n,includeNextUrl:!!u,canonicalUrl:l.canonicalUrl||e.canonicalUrl})}l.patchedTree=S,a=S}if(y&&T){let e=(0,w.getRedirectError)((0,P.hasBasePath)(T)?(0,_.removeBasePath)(T):T,S||E.RedirectType.push);e.handled=!0,r(e)}else n(i);return(0,h.handleMutable)(e,l)},t=>(r(t),e))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},4924,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"reducer",{enumerable:!0,get:function(){return c}});let r=e.r(88540),l=e.r(54069),a=e.r(91668),u=e.r(73790),o=e.r(69845),i=e.r(86720),s=e.r(45794),c="undefined"==typeof window?function(e,t){return e}:function(e,t){switch(t.type){case r.ACTION_NAVIGATE:return(0,l.navigateReducer)(e,t);case r.ACTION_SERVER_PATCH:return(0,a.serverPatchReducer)(e,t);case r.ACTION_RESTORE:return(0,u.restoreReducer)(e,t);case r.ACTION_REFRESH:return(0,o.refreshReducer)(e,t);case r.ACTION_HMR_REFRESH:return(0,i.hmrRefreshReducer)(e,t);case r.ACTION_SERVER_ACTION:return(0,s.serverActionReducer)(e,t);default:throw Object.defineProperty(Error("Unknown action"),"__NEXT_ERROR_CODE",{value:"E295",enumerable:!1,configurable:!0})}};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1411,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"prefetch",{enumerable:!0,get:function(){return o}});let r=e.r(57630),l=e.r(77048),a=e.r(77709),u=e.r(9396);function o(e,t,n,o,i){let s=(0,r.createPrefetchURL)(e);if(null===s)return;let c=(0,l.createCacheKey)(s.href,t);(0,a.schedulePrefetchTask)(c,n,o,u.PrefetchPriority.Default,i)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},99781,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createMutableActionQueue:function(){return v},dispatchNavigateAction:function(){return w},dispatchTraverseAction:function(){return E},getCurrentAppRouterState:function(){return b},publicAppRouterInstance:function(){return _}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(88540),u=e.r(4924),o=e.r(71645),i=e.r(64245),s=e.r(9396),c=e.r(1411),f=e.r(41538),d=e.r(5550),p=e.r(57630),h=e.r(91949);function m(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&g({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:a.ACTION_REFRESH,origin:window.location.origin},t))}async function g({actionQueue:e,action:t,setState:n}){let r=e.state;e.pending=t;let l=t.payload,u=e.action(r,l);function o(r){if(t.discarded){t.payload.type===a.ACTION_SERVER_ACTION&&t.payload.didRevalidate&&(e.needsRefresh=!0),m(e,n);return}e.state=r,m(e,n),t.resolve(r)}(0,i.isThenable)(u)?u.then(o,r=>{m(e,n),t.reject(r)}):o(u)}let y=null;function v(e,t){let n={state:e,dispatch:(e,t)=>(function(e,t,n){let r={resolve:n,reject:()=>{}};if(t.type!==a.ACTION_RESTORE){let e=new Promise((e,t)=>{r={resolve:e,reject:t}});(0,o.startTransition)(()=>{n(e)})}let l={payload:t,next:null,resolve:r.resolve,reject:r.reject};null===e.pending?(e.last=l,g({actionQueue:e,action:l,setState:n})):t.type===a.ACTION_NAVIGATE||t.type===a.ACTION_RESTORE?(e.pending.discarded=!0,l.next=e.pending.next,g({actionQueue:e,action:l,setState:n})):(null!==e.last&&(e.last.next=l),e.last=l)})(n,e,t),action:async(e,t)=>(0,u.reducer)(e,t),pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};if("undefined"!=typeof window){if(null!==y)throw Object.defineProperty(Error("Internal Next.js Error: createMutableActionQueue was called more than once"),"__NEXT_ERROR_CODE",{value:"E624",enumerable:!1,configurable:!0});y=n}return n}function b(){return null!==y?y.state:null}function S(){return null!==y?y.onRouterTransitionStart:null}function w(e,t,n,r){let l=new URL((0,d.addBasePath)(e),location.href);(0,h.setLinkForCurrentNavigation)(r);let u=S();null!==u&&u(e,t),(0,f.dispatchAppRouterAction)({type:a.ACTION_NAVIGATE,url:l,isExternalUrl:(0,p.isExternalURL)(l),locationSearch:location.search,shouldScroll:n,navigateType:t})}function E(e,t){let n=S();null!==n&&n(e,"traverse"),(0,f.dispatchAppRouterAction)({type:a.ACTION_RESTORE,url:new URL(e),historyState:t})}let _={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let n,r=function(){if(null===y)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});return y}();switch(t?.kind??a.PrefetchKind.AUTO){case a.PrefetchKind.AUTO:n=s.FetchStrategy.PPR;break;case a.PrefetchKind.FULL:n=s.FetchStrategy.Full;break;case a.PrefetchKind.TEMPORARY:return;default:n=s.FetchStrategy.PPR}(0,c.prefetch)(e,r.state.nextUrl,r.state.tree,n,t?.onInvalidate??null)},replace:(e,t)=>{(0,o.startTransition)(()=>{w(e,"replace",t?.scroll??!0,null)})},push:(e,t)=>{(0,o.startTransition)(()=>{w(e,"push",t?.scroll??!0,null)})},refresh:()=>{(0,o.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:a.ACTION_REFRESH,origin:window.location.origin})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};"undefined"!=typeof window&&window.next&&(window.next.router=_),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},65716,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createInitialRouterState",{enumerable:!0,get:function(){return i}});let r=e.r(51191),l=e.r(1764),a=e.r(34727),u=e.r(13576),o=e.r(50590);function i({navigatedAt:e,initialFlightData:t,initialCanonicalUrlParts:n,initialRenderedSearch:i,initialParallelRoutes:s,location:c}){let f=n.join("/"),{tree:d,seedData:p,head:h}=(0,o.getFlightDataPartsFromPath)(t[0]),m={lazyData:null,rsc:p?.[0],prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:s,loading:p?.[2]??null,navigatedAt:e},g=c?(0,r.createHrefFromUrl)(c):f;return(0,u.addRefreshMarkerToActiveParallelSegments)(d,g),(null===s||0===s.size)&&(0,l.fillLazyItemsTillLeafWithHead)(e,m,void 0,d,p,h),{tree:d,cache:m,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{apply:!1,onlyHashChange:!1,hashFragment:null,segmentPaths:[]},canonicalUrl:g,renderedSearch:i,nextUrl:((0,a.extractPathFromFlightRouterState)(d)||c?.pathname)??null,previousNextUrl:null,debugInfo:null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},98569,(e,t,n)=>{"use strict";let r,l,a,u;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hydrate",{enumerable:!0,get:function(){return I}});let o=e.r(55682),i=e.r(43476);e.r(23911);let s=o._(e.r(88014)),c=o._(e.r(71645)),f=e.r(35326),d=e.r(42732),p=e.r(97238),h=e.r(51323),m=e.r(32120),g=e.r(92245),y=e.r(99781),v=o._(e.r(75530)),b=e.r(65716);e.r(8372);let S=e.r(14297),w=e.r(50590),E=f.createFromReadableStream,_=f.createFromFetch,P=document,k=new TextEncoder,R=!1,T=!1,x=null;function O(e){if(0===e[0])a=[];else if(1===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});u?u.enqueue(k.encode(e[1])):a.push(e[1])}else if(2===e[0])x=e[1];else if(3===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let n=atob(e[1]),r=new Uint8Array(n.length);for(var t=0;t{e.enqueue("string"==typeof t?k.encode(t):t)}),R&&!T)&&(null===e.desiredSize||e.desiredSize<0?e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),T=!0,a=void 0),u=e}}),L=window.__NEXT_CLIENT_RESUME;function z({initialRSCPayload:e,actionQueue:t,webSocket:n,staticIndicatorState:r}){return(0,i.jsx)(v.default,{actionQueue:t,globalErrorState:e.G,webSocket:n,staticIndicatorState:r})}l=L?Promise.resolve(_(L,{callServer:m.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r})).then(async e=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await L,e)):E(M,{callServer:m.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,startTime:0});let j=c.default.StrictMode;function F({children:e}){return e}let A={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:p.onRecoverableError,onCaughtError:h.onCaughtError,onUncaughtError:h.onUncaughtError};async function I(e,t){let n,r,a=await l;(0,S.setAppBuildId)(a.b);let u=Date.now(),o=(0,y.createMutableActionQueue)((0,b.createInitialRouterState)({navigatedAt:u,initialFlightData:a.f,initialCanonicalUrlParts:a.c,initialRenderedSearch:a.q,initialParallelRoutes:new Map,location:window.location}),e),f=(0,i.jsx)(j,{children:(0,i.jsx)(d.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,i.jsx)(F,{children:(0,i.jsx)(z,{initialRSCPayload:a,actionQueue:o,webSocket:r,staticIndicatorState:n})})})});"__next_error__"===document.documentElement.id?s.default.createRoot(P,A).render(f):c.default.startTransition(()=>{s.default.hydrateRoot(P,f,{...A,formState:x})})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},94553,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});let r=e.r(96517);e.r(97238),window.next.turbopack=!0,self.__webpack_hash__="";let l=e.r(5526);(0,r.appBootstrap)(t=>{let{hydrate:n}=e.r(98569);n(l,t)}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/a7dc7061f42f51e9.js b/src/hyperview/server/static/_next/static/chunks/a7dc7061f42f51e9.js deleted file mode 100644 index 0fb5ffd..0000000 --- a/src/hyperview/server/static/_next/static/chunks/a7dc7061f42f51e9.js +++ /dev/null @@ -1,4 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12718,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},55682,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},32061,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return a},isBailoutToCSRError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="BAILOUT_TO_CLIENT_SIDE_RENDERING";class a extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}},64893,(e,t,r)=>{"use strict";var n=e.r(74080),o={stream:!0},u=Object.prototype.hasOwnProperty;function a(t){var r=e.r(t);return"function"!=typeof r.then||"fulfilled"===r.status?null:(r.then(function(e){r.status="fulfilled",r.value=e},function(e){r.status="rejected",r.reason=e}),r)}var i=new WeakSet,l=new WeakSet;function s(){}function c(t){for(var r=t[1],n=[],o=0;of||35===f||114===f||120===f?(p=f,f=3,s++):(p=0,f=3);continue;case 2:44===(b=l[s++])?f=4:h=h<<4|(96l.length&&(b=-1)}var g=l.byteOffset+s;if(-1{"use strict";t.exports=e.r(64893)},35326,(e,t,r)=>{"use strict";t.exports=e.r(21413)},54394,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return i},getAccessFallbackErrorTypeByStatus:function(){return c},getAccessFallbackHTTPStatus:function(){return s},isHTTPAccessFallbackError:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},a=new Set(Object.values(u)),i="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===i&&a.has(Number(r))}function s(e){return Number(e.digest.split(";")[1])}function c(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76963,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68391,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return i},RedirectType:function(){return l},isRedirectError:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(76963),i="NEXT_REDIRECT";var l=((n={}).push="push",n.replace="replace",n);function s(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in a.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65713,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(54394),o=e.r(68391);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61994,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return l},PathnameContext:function(){return i},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(71645),a=(0,u.createContext)(null),i=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null);function c(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},45955,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},21768,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return a},FLIGHT_HEADERS:function(){return h},NEXT_ACTION_NOT_FOUND_HEADER:function(){return E},NEXT_DID_POSTPONE_HEADER:function(){return b},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return c},NEXT_HTML_REQUEST_ID_HEADER:function(){return O},NEXT_IS_PRERENDER_HEADER:function(){return m},NEXT_REQUEST_ID_HEADER:function(){return R},NEXT_REWRITTEN_PATH_HEADER:function(){return g},NEXT_REWRITTEN_QUERY_HEADER:function(){return v},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return i},NEXT_RSC_UNION_QUERY:function(){return _},NEXT_URL:function(){return d},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",a="next-action",i="next-router-state-tree",l="next-router-prefetch",s="next-router-segment-prefetch",c="next-hmr-refresh",f="__next_hmr_refresh_hash__",d="next-url",p="text/x-component",h=[u,i,l,c,s],_="_rsc",y="x-nextjs-stale-time",b="x-nextjs-postponed",g="x-nextjs-rewritten-path",v="x-nextjs-rewritten-query",m="x-nextjs-prerender",E="x-nextjs-action-not-found",R="x-nextjs-request-id",O="x-nextjs-html-request-id";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},62141,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return y},getDraftModeProviderForCacheScope:function(){return _},getHmrRefreshHash:function(){return d},getPrerenderResumeDataCache:function(){return c},getRenderResumeDataCache:function(){return f},getRuntimeStagePromise:function(){return b},getServerComponentsHmrCache:function(){return h},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return l},throwInvariantForMissingStore:function(){return s},workUnitAsyncStorage:function(){return u.workUnitAsyncStorageInstance}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(45955),a=e.r(21768),i=e.r(12718);function l(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function s(){throw Object.defineProperty(new i.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function c(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function f(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function d(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return t.hmrRefreshHash;case"request":var r;return null==(r=t.cookies.get(a.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:r.value}}function p(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.isHmrRefresh??!1}return!1}function h(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.serverComponentsHmrCache}}function _(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function y(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function b(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},90373,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(71645),o=e.r(61994);function u(){return!function(){if("undefined"==typeof window){let{workUnitAsyncStorage:t}=e.r(62141),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},51191,(e,t,r)=>{"use strict";function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},78377,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return a},useNavFailureHandler:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(71645);let u=e.r(51191);function a(e){return!!e&&"undefined"!=typeof window&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function i(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},26935,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},82604,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return i},getBotType:function(){return c},isBot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(26935),a=/Googlebot(?!-)|Googlebot$/i,i=u.HTML_LIMITED_BOT_UA_RE.source;function l(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return a.test(e)||l(e)}function c(e){return a.test(e)?"dom":l(e)?"html":void 0}},72383,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return h},ErrorBoundaryHandler:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(55682),a=e.r(43476),i=u._(e.r(71645)),l=e.r(90373),s=e.r(65713);e.r(78377);let c=e.r(12354),f=e.r(82604),d="undefined"!=typeof window&&(0,f.isBot)(window.navigator.userAgent);class p extends i.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,a.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function h({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,l.useUntrackedPathname)();return e?(0,a.jsx)(p,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88540,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={ACTION_HMR_REFRESH:function(){return c},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return a},ACTION_RESTORE:function(){return l},ACTION_SERVER_ACTION:function(){return f},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return d}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a="refresh",i="navigate",l="restore",s="server-patch",c="hmr-refresh",f="server-action";var d=((n={}).AUTO="auto",n.FULL="full",n.TEMPORARY="temporary",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90809,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=u?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}},64245,(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},41538,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return l},useActionQueue:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),a=e.r(64245),i=null;function l(e){if(null===i)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});i(e)}function s(e){let[t,r]=u.default.useState(e.state);i=t=>e.dispatch(t,r);let n=(0,u.useMemo)(()=>t,[t]);return(0,a.isThenable)(n)?(0,u.use)(n):n}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},32120,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return a}});let n=e.r(71645),o=e.r(88540),u=e.r(41538);async function a(e,t){return new Promise((r,a)=>{(0,n.startTransition)(()=>{(0,u.dispatchAppRouterAction)({type:o.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:a})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92245,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3372,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},13258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return c},addSearchParamsIfPageSegment:function(){return l},computeSelectedLayoutSegment:function(){return s},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let a;if(n)a=t[1][r];else{let e=t[1];a=e.children??Object.values(e)[0]}if(!a)return o;let i=u(a[0]);return!i||i.startsWith(c)?o:(o.push(i),e(a,r,!1,o))}},isGroupSegment:function(){return a},isParallelRouteSegment:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function a(e){return"("===e[0]&&e.endsWith(")")}function i(e){return e.startsWith("@")&&"@children"!==e}function l(e,t){if(e.includes(c)){let e=JSON.stringify(t);return"{}"!==e?c+"?"+e:c}return e}function s(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let c="__PAGE__",f="__DEFAULT__"},74180,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={normalizeAppPath:function(){return i},normalizeRscURL:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(3372),a=e.r(13258);function i(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function l(e){return e.replace(/\.rsc($|\?)/,"$1")}},91463,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return a},extractInterceptionRouteInformation:function(){return l},isInterceptionRouteAppPath:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(74180),a=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function l(e){let t,r,n;for(let o of e.split("/"))if(r=a.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=o.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},56019,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"matchSegment",{enumerable:!0,get:function(){return n}});let n=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},67764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return i},ROOT_SEGMENT_REQUEST_KEY:function(){return a},appendSegmentRequestKeyPart:function(){return s},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentRequestKeyPart:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13258),a="",i="/_head";function l(e){if("string"==typeof e)return e.startsWith(u.PAGE_SEGMENT_KEY)?u.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0];return"$"+e[2]+"$"+f(t)}function s(e,t,r){return e+"/"+("children"===t?r:`@${f(t)}/${r}`)}let c=/^[a-zA-Z0-9\-_@]+$/;function f(e){return c.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return`__next${e.replace(/\//g,".")}.txt`}},33906,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return f},getCacheKeyForDynamicParam:function(){return d},getParamValueFromCacheKey:function(){return h},getRenderedPathname:function(){return s},getRenderedSearch:function(){return l},parseDynamicParamFromURLPart:function(){return c},urlSearchParamsToParsedUrlQuery:function(){return _},urlToUrlWithoutFlightMarker:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13258),a=e.r(67764),i=e.r(21768);function l(e){let t=e.headers.get(i.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:p(new URL(e.url)).search}function s(e){return e.headers.get(i.NEXT_REWRITTEN_PATH_HEADER)??p(new URL(e.url)).pathname}function c(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}function f(e){return!(e===a.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(u.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==u.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function d(e,t){return"string"==typeof e?(0,u.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function p(e){let t=new URL(e);if(t.searchParams.delete(i.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function h(e,t){return"c"===t||"oc"===t?e.split("/"):e}function _(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},50590,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return s},getFlightDataPartsFromPath:function(){return l},getNextFlightSegmentPath:function(){return c},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13258),a=e.r(33906),i=e.r(51191);function l(e){let[t,r,n,o]=e.slice(-4),u=e.slice(0,-4);return{pathToSegment:u.slice(0,-1),segmentPath:u,segment:u[u.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:o,isRootRender:4===e.length}}function s(e,t){let r=(0,a.getRenderedPathname)(e),n=(0,a.getRenderedSearch)(e),o=(0,i.createHrefFromUrl)(new URL(location.href)),u=t.f[0],l=u[0];return{b:t.b,c:o.split("/"),q:n,i:t.i,f:[[function e(t,r,n,o){let u,i,l=t[0];if("string"==typeof l)u=l,i=(0,a.doesStaticSegmentAppearInURL)(l);else{let e=l[0],t=l[2],s=(0,a.parseDynamicParamFromURLPart)(t,n,o);u=[e,(0,a.getCacheKeyForDynamicParam)(s,r),t],i=!0}let s=i?o+1:o,c=t[1],f={};for(let t in c){let o=c[t];f[t]=e(o,r,n,s)}return[u,f,null,t[3],t[4]]}(l,n,r.split("/").filter(e=>""!==e),0),u[1],u[2],u[2]]],m:t.m,G:t.G,S:t.S}}function c(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>l(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){var r,n;let[o,a,i,l,s,c]=t,f="string"==typeof(r=o)&&r.startsWith(u.PAGE_SEGMENT_KEY+"?")?u.PAGE_SEGMENT_KEY:r,d={};for(let[t,r]of Object.entries(a))d[t]=e(r);let p=[f,d,null,(n=l)&&"refresh"!==n?l:null];return void 0!==s&&(p[4]=s),void 0!==c&&(p[5]=c),p}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},14297,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getAppBuildId:function(){return i},setAppBuildId:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="";function a(e){u=e}function i(){return u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},19921,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return u},hexHash:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t=5381;for(let r=0;r>>0}function a(e){return u(e).toString(36).slice(0,5)}},86051,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return o}});let n=e.r(19921);function o(e,t,r,o){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===o?"":(0,n.hexHash)([e||"0",t||"0",r||"0",o||"0"].join(","))}},88093,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return i},setCacheBustingSearchParamWithHash:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(86051),a=e.r(21768),i=(e,t)=>{l(e,(0,u.computeCacheBustingSearchParam)(t[a.NEXT_ROUTER_PREFETCH_HEADER],t[a.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[a.NEXT_ROUTER_STATE_TREE_HEADER],t[a.NEXT_URL]))},l=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${a.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${a.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${a.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},87288,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var o={createFetch:function(){return m},createFromNextReadableStream:function(){return E},fetchServerResponse:function(){return v}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(35326),i=e.r(21768),l=e.r(32120),s=e.r(92245),c=e.r(88540),f=e.r(50590),d=e.r(14297),p=e.r(88093),h=e.r(33906),_=a.createFromReadableStream,y=a.createFromFetch;function b(e){return(0,h.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let g=!1;async function v(e,t){let{flightRouterState:r,nextUrl:n,prefetchKind:o}=t,u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,f.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};o===c.PrefetchKind.AUTO&&(u[i.NEXT_ROUTER_PREFETCH_HEADER]="1"),n&&(u[i.NEXT_URL]=n);let a=e;try{let t=o?o===c.PrefetchKind.TEMPORARY?"high":"low":"auto";(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let r=await m(e,u,t,!0),n=(0,h.urlToUrlWithoutFlightMarker)(new URL(r.url)),l=r.redirected?n:a,s=r.headers.get("content-type")||"",p=!!r.headers.get("vary")?.includes(i.NEXT_URL),_=!!r.headers.get(i.NEXT_DID_POSTPONE_HEADER),y=r.headers.get(i.NEXT_ROUTER_STALE_TIME_HEADER),g=null!==y?1e3*parseInt(y,10):-1,v=s.startsWith(i.RSC_CONTENT_TYPE_HEADER);if(v||(v=s.startsWith("text/plain")),!v||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),b(n.toString());let R=r.flightResponse;if(null===R){let e,t=_?(e=r.body.getReader(),new ReadableStream({async pull(t){for(;;){let{done:r,value:n}=await e.read();if(!r){t.enqueue(n);continue}return}}})):r.body;R=E(t,u)}let O=await R;if((0,d.getAppBuildId)()!==O.b)return b(r.url);let S=(0,f.normalizeFlightData)(O.f);if("string"==typeof S)return b(S);return{flightData:S,canonicalUrl:l,renderedSearch:(0,h.getRenderedSearch)(r),couldBeIntercepted:p,prerendered:O.S,postponed:_,staleTime:g,debugInfo:R._debugInfo??null}}catch(e){return g||console.error(`Failed to fetch RSC payload for ${a}. Falling back to browser navigation.`,e),a.toString()}}async function m(e,t,r,o,u){var a,c;let f=new URL(e);(0,p.setCacheBustingSearchParam)(f,t);let d=fetch(f,{credentials:"same-origin",headers:t,priority:r||void 0,signal:u}),h=o?(a=d,c=t,y(a,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(c)})):null,_=await d,b=_.redirected,g=new URL(_.url,f);return g.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:g.href,redirected:b,ok:_.ok,headers:_.headers,body:_.body,status:_.status,flightResponse:h}}function E(e,t){return _(e,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t)})}"undefined"!=typeof window&&(window.addEventListener("pagehide",()=>{g=!0}),window.addEventListener("pageshow",()=>{g=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70725,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=e.r(13258);function o(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39470,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},8372,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return a},GlobalLayoutRouterContext:function(){return l},LayoutRouterContext:function(){return i},MissingSlotContext:function(){return c},TemplateContext:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(55682)._(e.r(71645)),a=u.default.createContext(null),i=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(null),c=u.default.createContext(new Set)},3680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},13957,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return a},useServerInsertedHTML:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),a=u.default.createContext(null);function i(e){let t=(0,u.useContext)(a);t&&t(e)}},92838,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function a(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},34457,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},62266,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(34457)},24063,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return l},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return c},redirect:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(76963),a=e.r(68391),i="undefined"==typeof window?e.r(62266).actionAsyncStorage:void 0;function l(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(a.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${a.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw l(e,t??=i?.getStore()?.isAction?a.RedirectType.push:a.RedirectType.replace,u.RedirectStatusCode.TemporaryRedirect)}function c(e,t=a.RedirectType.replace){throw l(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,a.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22783,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(54394),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79854,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22683,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15507,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(32061),o=e.r(65713);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63138,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return u},makeDevtoolsIOAwarePromise:function(){return f},makeHangingPromise:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}let a="HANGING_PROMISE_REJECTION";class i extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=a}}let l=new WeakMap;function s(e,t,r){if(e.aborted)return Promise.reject(new i(t,r));{let n=new Promise((n,o)=>{let u=o.bind(null,new i(t,r)),a=l.get(e);if(a)a.push(u);else{let t=[u];l.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{t(e)},0)})}},67287,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},76353,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return a},isDynamicServerError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="DYNAMIC_SERVER_USAGE";class a extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},43248,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return a},isStaticGenBailoutError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="NEXT_STATIC_GEN_BAILOUT";class a extends Error{constructor(...e){super(...e),this.code=u}}function i(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},54839,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return u},OUTLET_BOUNDARY_NAME:function(){return i},ROOT_LAYOUT_BOUNDARY_NAME:function(){return l},VIEWPORT_BOUNDARY_NAME:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="__next_metadata_boundary__",a="__next_viewport_boundary__",i="__next_outlet_boundary__",l="__next_root_layout_boundary__"},29419,(e,t,r)=>{"use strict";var n=e.i(47167);Object.defineProperty(r,"__esModule",{value:!0});var o={atLeastOneTask:function(){return l},scheduleImmediate:function(){return i},scheduleOnNextTick:function(){return a},waitAtLeastOneReactRenderTask:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},i=e=>{setImmediate(e)};function l(){return new Promise(e=>i(e))}function s(){return new Promise(e=>setImmediate(e))}},42852,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={RenderStage:function(){return l},StagedRenderingController:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(12718),i=e.r(39470);var l=((n={})[n.Static=1]="Static",n[n.Runtime=2]="Runtime",n[n.Dynamic=3]="Dynamic",n);class s{constructor(e=null){this.abortSignal=e,this.currentStage=1,this.runtimeStagePromise=(0,i.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,i.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<2&&(this.runtimeStagePromise.promise.catch(c),this.runtimeStagePromise.reject(t)),this.currentStage<3&&(this.dynamicStagePromise.promise.catch(c),this.dynamicStagePromise.reject(t))},{once:!0})}advanceStage(e){!(this.currentStage>=e)&&(this.currentStage=e,e>=2&&this.runtimeStagePromise.resolve(),e>=3&&this.dynamicStagePromise.resolve())}getStagePromise(e){switch(e){case 2:return this.runtimeStagePromise.promise;case 3:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new a.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,o,u;let a,i=(n=this.getStagePromise(e),o=t,u=r,a=new Promise((e,t)=>{n.then(e.bind(null,u),t)}),void 0!==o&&(a.displayName=o),a);return this.abortSignal&&i.catch(c),i}}function c(){}},67673,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,u={Postpone:function(){return A},PreludeState:function(){return J},abortAndThrowOnSynchronousRequestDataAccess:function(){return T},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return B},consumeDynamicAccess:function(){return L},createDynamicTrackingState:function(){return v},createDynamicValidationState:function(){return m},createHangingInputAbortSignal:function(){return H},createRenderInBrowserAbortSignal:function(){return F},delayUntilRuntimeStage:function(){return ee},formatDynamicAPIAccesses:function(){return $},getFirstDynamicReason:function(){return E},isDynamicPostpone:function(){return N},isPrerenderInterruptedError:function(){return U},logDisallowedDynamicError:function(){return Q},markCurrentScopeAsDynamic:function(){return R},postponeWithTracking:function(){return M},throwIfDisallowedDynamic:function(){return Z},throwToInterruptStaticGeneration:function(){return O},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return S},trackSynchronousPlatformIOAccessInDev:function(){return w},useDynamicRouteParams:function(){return X},useDynamicSearchParams:function(){return W}};for(var a in u)Object.defineProperty(r,a,{enumerable:!0,get:u[a]});let i=(n=e.r(71645))&&n.__esModule?n:{default:n},l=e.r(76353),s=e.r(43248),c=e.r(62141),f=e.r(63599),d=e.r(63138),p=e.r(54839),h=e.r(29419),_=e.r(32061),y=e.r(12718),b=e.r(42852),g="function"==typeof i.default.unstable_postpone;function v(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function m(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function E(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function R(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new s.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return M(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new l.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function O(e,t,r){let n=Object.defineProperty(new l.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function S(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function P(e,t,r){let n=k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let o=n.dynamicTracking;P(e,t,n),o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}function w(e){e.stagedRendering&&e.stagedRendering.advanceStage(b.RenderStage.Dynamic)}function T(e,t,r,n){if(!1===n.controller.signal.aborted){P(e,t,n);let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}throw k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function A({reason:e,route:t}){let r=c.workUnitAsyncStorage.getStore();M(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function M(e,t,r){(function(){if(!g)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),i.default.unstable_postpone(D(e,t))}function D(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function N(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&x(e.message)}function x(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===x(D("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let C="NEXT_PRERENDER_INTERRUPTED";function k(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=C,t}function U(e){return"object"==typeof e&&null!==e&&e.digest===C&&"name"in e&&"message"in e&&e instanceof Error}function I(e){return e.length>0}function L(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function $(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: -${t}`))}function F(){let e=new AbortController;return e.abort(Object.defineProperty(new _.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function H(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,c.getRuntimeStagePromise)(e);r?r.then(()=>(0,h.scheduleOnNextTick)(()=>t.abort())):(0,h.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function B(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function X(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return M(t.route,e,r.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function W(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,c.throwForMissingRequestStore)(e),r.type){case"prerender-client":i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new _.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let G=/\n\s+at Suspense \(\)/,Y=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${p.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),q=RegExp(`\\n\\s+at ${p.METADATA_BOUNDARY_NAME}[\\n\\s]`),K=RegExp(`\\n\\s+at ${p.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),z=RegExp(`\\n\\s+at ${p.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function V(e,t,r,n){if(!z.test(t)){if(q.test(t)){r.hasDynamicMetadata=!0;return}if(K.test(t)){r.hasDynamicViewport=!0;return}if(Y.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(G.test(t)){r.hasAllowedDynamic=!0;return}else{var o,u;let a;if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let i=(o=`Route "${e.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,u=t,(a=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).stack=a.name+": "+o+u,a);return void r.dynamicErrors.push(i)}}}var J=((o={})[o.Full=0]="Full",o[o.Empty=1]="Empty",o[o.Errored=2]="Errored",o);function Q(e,t){console.error(t),e.dev||(e.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: - - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error. - - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function Z(e,t,r,n){if(n.syncDynamicErrorWithStack)throw Q(e,n.syncDynamicErrorWithStack),new s.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;tt):t}},91414,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,u.isBailoutToCSRError)(t)||(0,l.isDynamicServerError)(t)||(0,i.isDynamicPostpone)(t)||(0,o.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,i.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(63138),o=e.r(67287),u=e.r(32061),a=e.r(65713),i=e.r(67673),l=e.r(76353);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="undefined"==typeof window?e.r(91414).unstable_rethrow:e.r(15507).unstable_rethrow;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92805,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},forbidden:function(){return s.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return a.permanentRedirect},redirect:function(){return a.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return f.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(3680),a=e.r(24063),i=e.r(68391),l=e.r(22783),s=e.r(79854),c=e.r(22683),f=e.r(90508);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76562,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return d.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return f.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return g},usePathname:function(){return y},useRouter:function(){return b},useSearchParams:function(){return _},useSelectedLayoutSegment:function(){return m},useSelectedLayoutSegments:function(){return v},useServerInsertedHTML:function(){return c.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),a=e.r(8372),i=e.r(61994),l=e.r(13258),s=e.r(3680),c=e.r(13957),f=e.r(92838),d=e.r(92805),p="undefined"==typeof window?e.r(67673).useDynamicRouteParams:void 0,h="undefined"==typeof window?e.r(67673).useDynamicSearchParams:void 0;function _(){h?.("useSearchParams()");let e=(0,u.useContext)(i.SearchParamsContext);return(0,u.useMemo)(()=>e?new s.ReadonlyURLSearchParams(e):null,[e])}function y(){return p?.("usePathname()"),(0,u.useContext)(i.PathnameContext)}function b(){let e=(0,u.useContext)(a.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function g(){return p?.("useParams()"),(0,u.useContext)(i.PathParamsContext)}function v(e="children"){p?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(a.LayoutRouterContext);return t?(0,l.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function m(e="children"){p?.("useSelectedLayoutSegment()"),(0,u.useContext)(i.NavigationPromisesContext);let t=v(e);return(0,l.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},58442,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809),a=e.r(43476),i=u._(e.r(71645)),l=e.r(76562),s=e.r(24063),c=e.r(68391);function f({redirect:e,reset:t,redirectType:r}){let n=(0,l.useRouter)();return(0,i.useEffect)(()=>{i.default.startTransition(()=>{r===c.RedirectType.push?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends i.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,s.getURLFromRedirectError)(e),r=(0,s.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,a.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,l.useRouter)();return(0,a.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1244,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97367,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return i},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(54839),a={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},i=a[u.METADATA_BOUNDARY_NAME.slice(0)],l=a[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=a[u.OUTLET_BOUNDARY_NAME.slice(0)],c=a[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},84356,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=e.r(91463);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/b3cfdd883c96563c.js b/src/hyperview/server/static/_next/static/chunks/b3cfdd883c96563c.js new file mode 100644 index 0000000..e03e870 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/b3cfdd883c96563c.js @@ -0,0 +1 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,20606,t=>{t.v(e=>Promise.all(["static/chunks/3686d57edf1023fb.js"].map(e=>t.l(e))).then(()=>e(54214)))}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/c19ebe11de4d2730.js b/src/hyperview/server/static/_next/static/chunks/c19ebe11de4d2730.js deleted file mode 100644 index 4aa3b49..0000000 --- a/src/hyperview/server/static/_next/static/chunks/c19ebe11de4d2730.js +++ /dev/null @@ -1,4 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,12718,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},55682,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},32061,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return a},isBailoutToCSRError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="BAILOUT_TO_CLIENT_SIDE_RENDERING";class a extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}},64893,(e,t,r)=>{"use strict";var n=e.r(74080),o={stream:!0},u=Object.prototype.hasOwnProperty;function a(t){var r=e.r(t);return"function"!=typeof r.then||"fulfilled"===r.status?null:(r.then(function(e){r.status="fulfilled",r.value=e},function(e){r.status="rejected",r.reason=e}),r)}var i=new WeakSet,l=new WeakSet;function s(){}function c(t){for(var r=t[1],n=[],o=0;of||35===f||114===f||120===f?(p=f,f=3,s++):(p=0,f=3);continue;case 2:44===(b=l[s++])?f=4:h=h<<4|(96l.length&&(b=-1)}var g=l.byteOffset+s;if(-1{"use strict";t.exports=e.r(64893)},35326,(e,t,r)=>{"use strict";t.exports=e.r(21413)},54394,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return i},getAccessFallbackErrorTypeByStatus:function(){return c},getAccessFallbackHTTPStatus:function(){return s},isHTTPAccessFallbackError:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},a=new Set(Object.values(u)),i="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===i&&a.has(Number(r))}function s(e){return Number(e.digest.split(";")[1])}function c(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76963,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68391,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return i},RedirectType:function(){return l},isRedirectError:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(76963),i="NEXT_REDIRECT";var l=((n={}).push="push",n.replace="replace",n);function s(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in a.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},65713,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(54394),o=e.r(68391);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61994,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return l},PathnameContext:function(){return i},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(71645),a=(0,u.createContext)(null),i=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null);function c(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},45955,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},21768,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return a},FLIGHT_HEADERS:function(){return h},NEXT_ACTION_NOT_FOUND_HEADER:function(){return E},NEXT_DID_POSTPONE_HEADER:function(){return b},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return c},NEXT_HTML_REQUEST_ID_HEADER:function(){return O},NEXT_IS_PRERENDER_HEADER:function(){return m},NEXT_REQUEST_ID_HEADER:function(){return R},NEXT_REWRITTEN_PATH_HEADER:function(){return g},NEXT_REWRITTEN_QUERY_HEADER:function(){return v},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return i},NEXT_RSC_UNION_QUERY:function(){return _},NEXT_URL:function(){return d},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",a="next-action",i="next-router-state-tree",l="next-router-prefetch",s="next-router-segment-prefetch",c="next-hmr-refresh",f="__next_hmr_refresh_hash__",d="next-url",p="text/x-component",h=[u,i,l,c,s],_="_rsc",y="x-nextjs-stale-time",b="x-nextjs-postponed",g="x-nextjs-rewritten-path",v="x-nextjs-rewritten-query",m="x-nextjs-prerender",E="x-nextjs-action-not-found",R="x-nextjs-request-id",O="x-nextjs-html-request-id";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},62141,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return y},getDraftModeProviderForCacheScope:function(){return _},getHmrRefreshHash:function(){return d},getPrerenderResumeDataCache:function(){return c},getRenderResumeDataCache:function(){return f},getRuntimeStagePromise:function(){return b},getServerComponentsHmrCache:function(){return h},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return l},throwInvariantForMissingStore:function(){return s},workUnitAsyncStorage:function(){return u.workUnitAsyncStorageInstance}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(45955),a=e.r(21768),i=e.r(12718);function l(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function s(){throw Object.defineProperty(new i.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function c(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function f(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function d(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return t.hmrRefreshHash;case"request":var r;return null==(r=t.cookies.get(a.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:r.value}}function p(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.isHmrRefresh??!1}return!1}function h(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.serverComponentsHmrCache}}function _(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function y(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function b(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},90373,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(71645),o=e.r(61994);function u(){return!function(){if("undefined"==typeof window){let{workUnitAsyncStorage:t}=e.r(62141),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},51191,(e,t,r)=>{"use strict";function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},78377,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return a},useNavFailureHandler:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(71645);let u=e.r(51191);function a(e){return!!e&&"undefined"!=typeof window&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function i(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},26935,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},82604,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return i},getBotType:function(){return c},isBot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(26935),a=/Googlebot(?!-)|Googlebot$/i,i=u.HTML_LIMITED_BOT_UA_RE.source;function l(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return a.test(e)||l(e)}function c(e){return a.test(e)?"dom":l(e)?"html":void 0}},72383,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return h},ErrorBoundaryHandler:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(55682),a=e.r(43476),i=u._(e.r(71645)),l=e.r(90373),s=e.r(65713);e.r(78377);let c=e.r(12354),f=e.r(82604),d="undefined"!=typeof window&&(0,f.isBot)(window.navigator.userAgent);class p extends i.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,a.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function h({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,l.useUntrackedPathname)();return e?(0,a.jsx)(p,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},88540,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={ACTION_HMR_REFRESH:function(){return c},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return a},ACTION_RESTORE:function(){return l},ACTION_SERVER_ACTION:function(){return f},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return d}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a="refresh",i="navigate",l="restore",s="server-patch",c="hmr-refresh",f="server-action";var d=((n={}).AUTO="auto",n.FULL="full",n.TEMPORARY="temporary",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90809,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=u?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}},64245,(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},41538,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return l},useActionQueue:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),a=e.r(64245),i=null;function l(e){if(null===i)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});i(e)}function s(e){let[t,r]=u.default.useState(e.state);i=t=>e.dispatch(t,r);let n=(0,u.useMemo)(()=>t,[t]);return(0,a.isThenable)(n)?(0,u.use)(n):n}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},32120,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return a}});let n=e.r(71645),o=e.r(88540),u=e.r(41538);async function a(e,t){return new Promise((r,a)=>{(0,n.startTransition)(()=>{(0,u.dispatchAppRouterAction)({type:o.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:a})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92245,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},3372,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},13258,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return c},addSearchParamsIfPageSegment:function(){return l},computeSelectedLayoutSegment:function(){return s},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let a;if(n)a=t[1][r];else{let e=t[1];a=e.children??Object.values(e)[0]}if(!a)return o;let i=u(a[0]);return!i||i.startsWith(c)?o:(o.push(i),e(a,r,!1,o))}},isGroupSegment:function(){return a},isParallelRouteSegment:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function a(e){return"("===e[0]&&e.endsWith(")")}function i(e){return e.startsWith("@")&&"@children"!==e}function l(e,t){if(e.includes(c)){let e=JSON.stringify(t);return"{}"!==e?c+"?"+e:c}return e}function s(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let c="__PAGE__",f="__DEFAULT__"},74180,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={normalizeAppPath:function(){return i},normalizeRscURL:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(3372),a=e.r(13258);function i(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function l(e){return e.replace(/\.rsc($|\?)/,"$1")}},91463,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return a},extractInterceptionRouteInformation:function(){return l},isInterceptionRouteAppPath:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(74180),a=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function l(e){let t,r,n;for(let o of e.split("/"))if(r=a.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=o.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},56019,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"matchSegment",{enumerable:!0,get:function(){return n}});let n=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},67764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return i},ROOT_SEGMENT_REQUEST_KEY:function(){return a},appendSegmentRequestKeyPart:function(){return s},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentRequestKeyPart:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13258),a="",i="/_head";function l(e){if("string"==typeof e)return e.startsWith(u.PAGE_SEGMENT_KEY)?u.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0];return"$"+e[2]+"$"+f(t)}function s(e,t,r){return e+"/"+("children"===t?r:`@${f(t)}/${r}`)}let c=/^[a-zA-Z0-9\-_@]+$/;function f(e){return c.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return`__next${e.replace(/\//g,".")}.txt`}},33906,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return f},getCacheKeyForDynamicParam:function(){return d},getParamValueFromCacheKey:function(){return h},getRenderedPathname:function(){return s},getRenderedSearch:function(){return l},parseDynamicParamFromURLPart:function(){return c},urlSearchParamsToParsedUrlQuery:function(){return _},urlToUrlWithoutFlightMarker:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13258),a=e.r(67764),i=e.r(21768);function l(e){let t=e.headers.get(i.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:p(new URL(e.url)).search}function s(e){return e.headers.get(i.NEXT_REWRITTEN_PATH_HEADER)??p(new URL(e.url)).pathname}function c(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}function f(e){return!(e===a.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(u.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==u.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function d(e,t){return"string"==typeof e?(0,u.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function p(e){let t=new URL(e);if(t.searchParams.delete(i.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function h(e,t){return"c"===t||"oc"===t?e.split("/"):e}function _(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},50590,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return s},getFlightDataPartsFromPath:function(){return l},getNextFlightSegmentPath:function(){return c},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13258),a=e.r(33906),i=e.r(51191);function l(e){let[t,r,n,o]=e.slice(-4),u=e.slice(0,-4);return{pathToSegment:u.slice(0,-1),segmentPath:u,segment:u[u.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:o,isRootRender:4===e.length}}function s(e,t){let r=(0,a.getRenderedPathname)(e),n=(0,a.getRenderedSearch)(e),o=(0,i.createHrefFromUrl)(new URL(location.href)),u=t.f[0],l=u[0];return{b:t.b,c:o.split("/"),q:n,i:t.i,f:[[function e(t,r,n,o){let u,i,l=t[0];if("string"==typeof l)u=l,i=(0,a.doesStaticSegmentAppearInURL)(l);else{let e=l[0],t=l[2],s=(0,a.parseDynamicParamFromURLPart)(t,n,o);u=[e,(0,a.getCacheKeyForDynamicParam)(s,r),t],i=!0}let s=i?o+1:o,c=t[1],f={};for(let t in c){let o=c[t];f[t]=e(o,r,n,s)}return[u,f,null,t[3],t[4]]}(l,n,r.split("/").filter(e=>""!==e),0),u[1],u[2],u[2]]],m:t.m,G:t.G,S:t.S}}function c(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>l(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){var r,n;let[o,a,i,l,s,c]=t,f="string"==typeof(r=o)&&r.startsWith(u.PAGE_SEGMENT_KEY+"?")?u.PAGE_SEGMENT_KEY:r,d={};for(let[t,r]of Object.entries(a))d[t]=e(r);let p=[f,d,null,(n=l)&&"refresh"!==n?l:null];return void 0!==s&&(p[4]=s),void 0!==c&&(p[5]=c),p}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},14297,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getAppBuildId:function(){return i},setAppBuildId:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="";function a(e){u=e}function i(){return u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},19921,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return u},hexHash:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t=5381;for(let r=0;r>>0}function a(e){return u(e).toString(36).slice(0,5)}},86051,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return o}});let n=e.r(19921);function o(e,t,r,o){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===o?"":(0,n.hexHash)([e||"0",t||"0",r||"0",o||"0"].join(","))}},71482,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return i},setCacheBustingSearchParamWithHash:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(86051),a=e.r(21768),i=(e,t)=>{l(e,(0,u.computeCacheBustingSearchParam)(t[a.NEXT_ROUTER_PREFETCH_HEADER],t[a.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[a.NEXT_ROUTER_STATE_TREE_HEADER],t[a.NEXT_URL]))},l=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${a.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${a.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${a.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},87288,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var o={createFetch:function(){return m},createFromNextReadableStream:function(){return E},fetchServerResponse:function(){return v}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(35326),i=e.r(21768),l=e.r(32120),s=e.r(92245),c=e.r(88540),f=e.r(50590),d=e.r(14297),p=e.r(71482),h=e.r(33906),_=a.createFromReadableStream,y=a.createFromFetch;function b(e){return(0,h.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let g=!1;async function v(e,t){let{flightRouterState:r,nextUrl:n,prefetchKind:o}=t,u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,f.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};o===c.PrefetchKind.AUTO&&(u[i.NEXT_ROUTER_PREFETCH_HEADER]="1"),n&&(u[i.NEXT_URL]=n);let a=e;try{let t=o?o===c.PrefetchKind.TEMPORARY?"high":"low":"auto";(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let r=await m(e,u,t,!0),n=(0,h.urlToUrlWithoutFlightMarker)(new URL(r.url)),l=r.redirected?n:a,s=r.headers.get("content-type")||"",p=!!r.headers.get("vary")?.includes(i.NEXT_URL),_=!!r.headers.get(i.NEXT_DID_POSTPONE_HEADER),y=r.headers.get(i.NEXT_ROUTER_STALE_TIME_HEADER),g=null!==y?1e3*parseInt(y,10):-1,v=s.startsWith(i.RSC_CONTENT_TYPE_HEADER);if(v||(v=s.startsWith("text/plain")),!v||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),b(n.toString());let R=r.flightResponse;if(null===R){let e,t=_?(e=r.body.getReader(),new ReadableStream({async pull(t){for(;;){let{done:r,value:n}=await e.read();if(!r){t.enqueue(n);continue}return}}})):r.body;R=E(t,u)}let O=await R;if((0,d.getAppBuildId)()!==O.b)return b(r.url);let S=(0,f.normalizeFlightData)(O.f);if("string"==typeof S)return b(S);return{flightData:S,canonicalUrl:l,renderedSearch:(0,h.getRenderedSearch)(r),couldBeIntercepted:p,prerendered:O.S,postponed:_,staleTime:g,debugInfo:R._debugInfo??null}}catch(e){return g||console.error(`Failed to fetch RSC payload for ${a}. Falling back to browser navigation.`,e),a.toString()}}async function m(e,t,r,o,u){var a,c;let f=new URL(e);(0,p.setCacheBustingSearchParam)(f,t);let d=fetch(f,{credentials:"same-origin",headers:t,priority:r||void 0,signal:u}),h=o?(a=d,c=t,y(a,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(c)})):null,_=await d,b=_.redirected,g=new URL(_.url,f);return g.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:g.href,redirected:b,ok:_.ok,headers:_.headers,body:_.body,status:_.status,flightResponse:h}}function E(e,t){return _(e,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t)})}"undefined"!=typeof window&&(window.addEventListener("pagehide",()=>{g=!0}),window.addEventListener("pageshow",()=>{g=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70725,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=e.r(13258);function o(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39470,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},8372,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return a},GlobalLayoutRouterContext:function(){return l},LayoutRouterContext:function(){return i},MissingSlotContext:function(){return c},TemplateContext:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(55682)._(e.r(71645)),a=u.default.createContext(null),i=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(null),c=u.default.createContext(new Set)},3680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},13957,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return a},useServerInsertedHTML:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),a=u.default.createContext(null);function i(e){let t=(0,u.useContext)(a);t&&t(e)}},92838,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function a(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},34457,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(90317).createAsyncLocalStorage)()},62266,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(34457)},24063,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return l},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return c},redirect:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(76963),a=e.r(68391),i="undefined"==typeof window?e.r(62266).actionAsyncStorage:void 0;function l(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(a.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${a.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw l(e,t??=i?.getStore()?.isAction?a.RedirectType.push:a.RedirectType.replace,u.RedirectStatusCode.TemporaryRedirect)}function c(e,t=a.RedirectType.replace){throw l(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,a.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22783,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(54394),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},79854,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},22683,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(54394).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},15507,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(32061),o=e.r(65713);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63138,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return u},makeDevtoolsIOAwarePromise:function(){return f},makeHangingPromise:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}let a="HANGING_PROMISE_REJECTION";class i extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=a}}let l=new WeakMap;function s(e,t,r){if(e.aborted)return Promise.reject(new i(t,r));{let n=new Promise((n,o)=>{let u=o.bind(null,new i(t,r)),a=l.get(e);if(a)a.push(u);else{let t=[u];l.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{t(e)},0)})}},67287,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},76353,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return a},isDynamicServerError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="DYNAMIC_SERVER_USAGE";class a extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},43248,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return a},isStaticGenBailoutError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="NEXT_STATIC_GEN_BAILOUT";class a extends Error{constructor(...e){super(...e),this.code=u}}function i(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},54839,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return u},OUTLET_BOUNDARY_NAME:function(){return i},ROOT_LAYOUT_BOUNDARY_NAME:function(){return l},VIEWPORT_BOUNDARY_NAME:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="__next_metadata_boundary__",a="__next_viewport_boundary__",i="__next_outlet_boundary__",l="__next_root_layout_boundary__"},29419,(e,t,r)=>{"use strict";var n=e.i(47167);Object.defineProperty(r,"__esModule",{value:!0});var o={atLeastOneTask:function(){return l},scheduleImmediate:function(){return i},scheduleOnNextTick:function(){return a},waitAtLeastOneReactRenderTask:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},i=e=>{setImmediate(e)};function l(){return new Promise(e=>i(e))}function s(){return new Promise(e=>setImmediate(e))}},42852,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={RenderStage:function(){return l},StagedRenderingController:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(12718),i=e.r(39470);var l=((n={})[n.Static=1]="Static",n[n.Runtime=2]="Runtime",n[n.Dynamic=3]="Dynamic",n);class s{constructor(e=null){this.abortSignal=e,this.currentStage=1,this.runtimeStagePromise=(0,i.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,i.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<2&&(this.runtimeStagePromise.promise.catch(c),this.runtimeStagePromise.reject(t)),this.currentStage<3&&(this.dynamicStagePromise.promise.catch(c),this.dynamicStagePromise.reject(t))},{once:!0})}advanceStage(e){!(this.currentStage>=e)&&(this.currentStage=e,e>=2&&this.runtimeStagePromise.resolve(),e>=3&&this.dynamicStagePromise.resolve())}getStagePromise(e){switch(e){case 2:return this.runtimeStagePromise.promise;case 3:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new a.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,o,u;let a,i=(n=this.getStagePromise(e),o=t,u=r,a=new Promise((e,t)=>{n.then(e.bind(null,u),t)}),void 0!==o&&(a.displayName=o),a);return this.abortSignal&&i.catch(c),i}}function c(){}},67673,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,u={Postpone:function(){return A},PreludeState:function(){return J},abortAndThrowOnSynchronousRequestDataAccess:function(){return T},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return B},consumeDynamicAccess:function(){return L},createDynamicTrackingState:function(){return v},createDynamicValidationState:function(){return m},createHangingInputAbortSignal:function(){return H},createRenderInBrowserAbortSignal:function(){return F},delayUntilRuntimeStage:function(){return ee},formatDynamicAPIAccesses:function(){return $},getFirstDynamicReason:function(){return E},isDynamicPostpone:function(){return N},isPrerenderInterruptedError:function(){return U},logDisallowedDynamicError:function(){return Q},markCurrentScopeAsDynamic:function(){return R},postponeWithTracking:function(){return M},throwIfDisallowedDynamic:function(){return Z},throwToInterruptStaticGeneration:function(){return O},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return S},trackSynchronousPlatformIOAccessInDev:function(){return w},useDynamicRouteParams:function(){return X},useDynamicSearchParams:function(){return W}};for(var a in u)Object.defineProperty(r,a,{enumerable:!0,get:u[a]});let i=(n=e.r(71645))&&n.__esModule?n:{default:n},l=e.r(76353),s=e.r(43248),c=e.r(62141),f=e.r(63599),d=e.r(63138),p=e.r(54839),h=e.r(29419),_=e.r(32061),y=e.r(12718),b=e.r(42852),g="function"==typeof i.default.unstable_postpone;function v(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function m(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function E(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function R(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new s.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return M(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new l.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function O(e,t,r){let n=Object.defineProperty(new l.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function S(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function P(e,t,r){let n=k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let o=n.dynamicTracking;P(e,t,n),o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}function w(e){e.stagedRendering&&e.stagedRendering.advanceStage(b.RenderStage.Dynamic)}function T(e,t,r,n){if(!1===n.controller.signal.aborted){P(e,t,n);let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}throw k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function A({reason:e,route:t}){let r=c.workUnitAsyncStorage.getStore();M(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function M(e,t,r){(function(){if(!g)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),i.default.unstable_postpone(D(e,t))}function D(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function N(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&x(e.message)}function x(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===x(D("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let C="NEXT_PRERENDER_INTERRUPTED";function k(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=C,t}function U(e){return"object"==typeof e&&null!==e&&e.digest===C&&"name"in e&&"message"in e&&e instanceof Error}function I(e){return e.length>0}function L(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function $(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: -${t}`))}function F(){let e=new AbortController;return e.abort(Object.defineProperty(new _.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function H(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,c.getRuntimeStagePromise)(e);r?r.then(()=>(0,h.scheduleOnNextTick)(()=>t.abort())):(0,h.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function B(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function X(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return M(t.route,e,r.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function W(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,c.throwForMissingRequestStore)(e),r.type){case"prerender-client":i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new _.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let G=/\n\s+at Suspense \(\)/,Y=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${p.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),q=RegExp(`\\n\\s+at ${p.METADATA_BOUNDARY_NAME}[\\n\\s]`),K=RegExp(`\\n\\s+at ${p.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),z=RegExp(`\\n\\s+at ${p.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function V(e,t,r,n){if(!z.test(t)){if(q.test(t)){r.hasDynamicMetadata=!0;return}if(K.test(t)){r.hasDynamicViewport=!0;return}if(Y.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(G.test(t)){r.hasAllowedDynamic=!0;return}else{var o,u;let a;if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let i=(o=`Route "${e.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,u=t,(a=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).stack=a.name+": "+o+u,a);return void r.dynamicErrors.push(i)}}}var J=((o={})[o.Full=0]="Full",o[o.Empty=1]="Empty",o[o.Errored=2]="Errored",o);function Q(e,t){console.error(t),e.dev||(e.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: - - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error. - - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function Z(e,t,r,n){if(n.syncDynamicErrorWithStack)throw Q(e,n.syncDynamicErrorWithStack),new s.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;tt):t}},91414,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,u.isBailoutToCSRError)(t)||(0,l.isDynamicServerError)(t)||(0,i.isDynamicPostpone)(t)||(0,o.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,i.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(63138),o=e.r(67287),u=e.r(32061),a=e.r(65713),i=e.r(67673),l=e.r(76353);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="undefined"==typeof window?e.r(91414).unstable_rethrow:e.r(15507).unstable_rethrow;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92805,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},forbidden:function(){return s.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return a.permanentRedirect},redirect:function(){return a.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return f.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(3680),a=e.r(24063),i=e.r(68391),l=e.r(22783),s=e.r(79854),c=e.r(22683),f=e.r(90508);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},76562,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return d.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return f.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return g},usePathname:function(){return y},useRouter:function(){return b},useSearchParams:function(){return _},useSelectedLayoutSegment:function(){return m},useSelectedLayoutSegments:function(){return v},useServerInsertedHTML:function(){return c.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809)._(e.r(71645)),a=e.r(8372),i=e.r(61994),l=e.r(13258),s=e.r(3680),c=e.r(13957),f=e.r(92838),d=e.r(92805),p="undefined"==typeof window?e.r(67673).useDynamicRouteParams:void 0,h="undefined"==typeof window?e.r(67673).useDynamicSearchParams:void 0;function _(){h?.("useSearchParams()");let e=(0,u.useContext)(i.SearchParamsContext);return(0,u.useMemo)(()=>e?new s.ReadonlyURLSearchParams(e):null,[e])}function y(){return p?.("usePathname()"),(0,u.useContext)(i.PathnameContext)}function b(){let e=(0,u.useContext)(a.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function g(){return p?.("useParams()"),(0,u.useContext)(i.PathParamsContext)}function v(e="children"){p?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(a.LayoutRouterContext);return t?(0,l.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function m(e="children"){p?.("useSelectedLayoutSegment()"),(0,u.useContext)(i.NavigationPromisesContext);let t=v(e);return(0,l.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},58442,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(90809),a=e.r(43476),i=u._(e.r(71645)),l=e.r(76562),s=e.r(24063),c=e.r(68391);function f({redirect:e,reset:t,redirectType:r}){let n=(0,l.useRouter)();return(0,i.useEffect)(()=>{i.default.startTransition(()=>{r===c.RedirectType.push?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends i.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,s.getURLFromRedirectError)(e),r=(0,s.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,a.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,l.useRouter)();return(0,a.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},1244,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},97367,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return i},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(54839),a={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},i=a[u.METADATA_BOUNDARY_NAME.slice(0)],l=a[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=a[u.OUTLET_BOUNDARY_NAME.slice(0)],c=a[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},84356,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=e.r(91463);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/turbopack-11ec5967a08af43c.js b/src/hyperview/server/static/_next/static/chunks/turbopack-ce3658797261f2db.js similarity index 98% rename from src/hyperview/server/static/_next/static/chunks/turbopack-11ec5967a08af43c.js rename to src/hyperview/server/static/_next/static/chunks/turbopack-ce3658797261f2db.js index 0a3c163..517cdb1 100644 --- a/src/hyperview/server/static/_next/static/chunks/turbopack-11ec5967a08af43c.js +++ b/src/hyperview/server/static/_next/static/chunks/turbopack-ce3658797261f2db.js @@ -1,3 +1,3 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/5f8e11d2476d2135.js","static/chunks/9367d18603aececf.js","static/chunks/c19ebe11de4d2730.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),c(t,n),t}function d(e){let t=N(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return N(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C,U=((C=U||{})[C.Runtime=0]="Runtime",C[C.Parent=1]="Parent",C[C.Update=2]="Update",C);let k=new Map;o.M=k;let v=new Map,_=new Map;async function P(e,t,r){let n;if("string"==typeof r)return A(e,t,S(r));let o=r.included||[],l=o.map(e=>!!k.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=A(e,t,S(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=A(e,t,S(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)v.has(e)||v.set(e,n);await n}R.l=function(e){return P(1,this.m.id,e)};let $=Promise.resolve(void 0),T=new WeakMap;function A(t,r,n){let o=e.loadChunkCached(t,n),l=T.get(o);if(void 0===l){let e=T.set.bind(T,o,$);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),T.set(o,l)}return l}function S(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return A(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)}; +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/10c3a2ade180023c.js","static/chunks/5a5ec5690ca4254a.js","static/chunks/118bac1f0e1f8b45.js"],runtimeModuleIds:[24153]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),c(t,n),t}function d(e){let t=N(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return N(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C,U=((C=U||{})[C.Runtime=0]="Runtime",C[C.Parent=1]="Parent",C[C.Update=2]="Update",C);let k=new Map;o.M=k;let v=new Map,_=new Map;async function P(e,t,r){let n;if("string"==typeof r)return A(e,t,S(r));let o=r.included||[],l=o.map(e=>!!k.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=A(e,t,S(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=A(e,t,S(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)v.has(e)||v.set(e,n);await n}R.l=function(e){return P(1,this.m.id,e)};let $=Promise.resolve(void 0),T=new WeakMap;function A(t,r,n){let o=e.loadChunkCached(t,n),l=T.get(o);if(void 0===l){let e=T.set.bind(T,o,$);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),T.set(o,l)}return l}function S(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return A(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)}; self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(S),null,2)}; importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let E=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function x(e){return K.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let M={};o.c=M;let N=(e,t)=>{let r=M[e];if(r){if(r.error)throw r.error;return r}return L(e,U.Parent,t.id)};function L(e,t,r){let o=k.get(e);if("function"!=typeof o)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;M[e]=l;let s=new n(l,i);try{o(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function q(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}e={async registerChunk(e,t){if(W(S(e)).resolve(),null!=t){for(let e of t.otherChunks)W(S("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>P(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=M[t];if(r){if(r.error)throw r.error;return}L(t,U.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=W(t);if(r.loadingStarted)return r.promise;if(e===U.Runtime)return r.loadingStarted=!0,x(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(x(t));else if(E.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(x(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(E.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(S(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(S(r));return await WebAssembly.compileStreaming(o)}};let I=globalThis.TURBOPACK;globalThis.TURBOPACK={push:q},I.forEach(q)})(); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/turbopack-f85f95889fd14d61.js b/src/hyperview/server/static/_next/static/chunks/turbopack-f85f95889fd14d61.js deleted file mode 100644 index f22e5e5..0000000 --- a/src/hyperview/server/static/_next/static/chunks/turbopack-f85f95889fd14d61.js +++ /dev/null @@ -1,3 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/5f8e11d2476d2135.js","static/chunks/9367d18603aececf.js","static/chunks/a7dc7061f42f51e9.js"],runtimeModuleIds:[94553]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),c(t,n),t}function d(e){let t=N(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return N(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C,U=((C=U||{})[C.Runtime=0]="Runtime",C[C.Parent=1]="Parent",C[C.Update=2]="Update",C);let k=new Map;o.M=k;let v=new Map,_=new Map;async function P(e,t,r){let n;if("string"==typeof r)return A(e,t,S(r));let o=r.included||[],l=o.map(e=>!!k.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=A(e,t,S(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=A(e,t,S(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)v.has(e)||v.set(e,n);await n}R.l=function(e){return P(1,this.m.id,e)};let $=Promise.resolve(void 0),T=new WeakMap;function A(t,r,n){let o=e.loadChunkCached(t,n),l=T.get(o);if(void 0===l){let e=T.set.bind(T,o,$);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),T.set(o,l)}return l}function S(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return A(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)}; -self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(S),null,2)}; -importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let E=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function x(e){return K.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let M={};o.c=M;let N=(e,t)=>{let r=M[e];if(r){if(r.error)throw r.error;return r}return L(e,U.Parent,t.id)};function L(e,t,r){let o=k.get(e);if("function"!=typeof o)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;M[e]=l;let s=new n(l,i);try{o(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function q(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}e={async registerChunk(e,t){if(W(S(e)).resolve(),null!=t){for(let e of t.otherChunks)W(S("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>P(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=M[t];if(r){if(r.error)throw r.error;return}L(t,U.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=W(t);if(r.loadingStarted)return r.promise;if(e===U.Runtime)return r.loadingStarted=!0,x(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(x(t));else if(E.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(x(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(E.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(S(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(S(r));return await WebAssembly.compileStreaming(o)}};let I=globalThis.TURBOPACK;globalThis.TURBOPACK={push:q},I.forEach(q)})(); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_buildManifest.js b/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_buildManifest.js deleted file mode 100644 index 1af6a5b..0000000 --- a/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_buildManifest.js +++ /dev/null @@ -1,15 +0,0 @@ -self.__BUILD_MANIFEST = { - "__rewrites": { - "afterFiles": [ - { - "source": "/api/:path*" - } - ], - "beforeFiles": [], - "fallback": [] - }, - "sortedPages": [ - "/_app", - "/_error" - ] -};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_clientMiddlewareManifest.json b/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_clientMiddlewareManifest.json deleted file mode 100644 index 0637a08..0000000 --- a/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_clientMiddlewareManifest.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_ssgManifest.js b/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_ssgManifest.js deleted file mode 100644 index 5b3ff59..0000000 --- a/src/hyperview/server/static/_next/static/lAwT6e3uaMqLUXxndbn_f/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/__next._full.txt b/src/hyperview/server/static/_not-found/__next._full.txt index 310dcfd..c7c3c55 100644 --- a/src/hyperview/server/static/_not-found/__next._full.txt +++ b/src/hyperview/server/static/_not-found/__next._full.txt @@ -1,13 +1,13 @@ 1:"$Sreact.fragment" -2:I[39756,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -3:I[37457,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -4:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"OutletBoundary"] +2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] +3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] +4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 5:"$Sreact.suspense" -7:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"ViewportBoundary"] -9:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"MetadataBoundary"] -b:I[68027,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -:HL["/_next/static/chunks/19d0d66700a996ca.css","style"] -0:{"P":null,"b":"lAwT6e3uaMqLUXxndbn_f","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/19d0d66700a996ca.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/42879de7b8087bc9.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +7:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] +9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] +b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] +:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] +0:{"P":null,"b":"Oel6IrA8CsSgwXZSPI61A","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/_not-found/__next._head.txt b/src/hyperview/server/static/_not-found/__next._head.txt index 86b1312..909881c 100644 --- a/src/hyperview/server/static/_not-found/__next._head.txt +++ b/src/hyperview/server/static/_not-found/__next._head.txt @@ -1,7 +1,7 @@ 1:"$Sreact.fragment" -2:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"ViewportBoundary"] -4:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"MetadataBoundary"] +2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] +4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/_not-found/__next._index.txt b/src/hyperview/server/static/_not-found/__next._index.txt index b7c718a..4f5500a 100644 --- a/src/hyperview/server/static/_not-found/__next._index.txt +++ b/src/hyperview/server/static/_not-found/__next._index.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" -2:I[39756,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -3:I[37457,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -:HL["/_next/static/chunks/19d0d66700a996ca.css","style"] -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/19d0d66700a996ca.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/42879de7b8087bc9.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] +3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] +:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt index 23f2df6..c01dab0 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" -2:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"OutletBoundary"] +2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/src/hyperview/server/static/_not-found/__next._not-found.txt b/src/hyperview/server/static/_not-found/__next._not-found.txt index 0795cef..e4c6fb9 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.txt @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" -2:I[39756,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -3:I[37457,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] +3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._tree.txt b/src/hyperview/server/static/_not-found/__next._tree.txt index 61b47aa..1589d94 100644 --- a/src/hyperview/server/static/_not-found/__next._tree.txt +++ b/src/hyperview/server/static/_not-found/__next._tree.txt @@ -1,2 +1,2 @@ -:HL["/_next/static/chunks/19d0d66700a996ca.css","style"] -0:{"buildId":"lAwT6e3uaMqLUXxndbn_f","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] +0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_not-found/index.html b/src/hyperview/server/static/_not-found/index.html index 27fc3dd..8a12bc0 100644 --- a/src/hyperview/server/static/_not-found/index.html +++ b/src/hyperview/server/static/_not-found/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/index.txt b/src/hyperview/server/static/_not-found/index.txt index 310dcfd..c7c3c55 100644 --- a/src/hyperview/server/static/_not-found/index.txt +++ b/src/hyperview/server/static/_not-found/index.txt @@ -1,13 +1,13 @@ 1:"$Sreact.fragment" -2:I[39756,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -3:I[37457,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -4:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"OutletBoundary"] +2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] +3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] +4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 5:"$Sreact.suspense" -7:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"ViewportBoundary"] -9:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"MetadataBoundary"] -b:I[68027,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -:HL["/_next/static/chunks/19d0d66700a996ca.css","style"] -0:{"P":null,"b":"lAwT6e3uaMqLUXxndbn_f","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/19d0d66700a996ca.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/42879de7b8087bc9.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +7:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] +9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] +b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] +:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] +0:{"P":null,"b":"Oel6IrA8CsSgwXZSPI61A","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/index.html b/src/hyperview/server/static/index.html index a0eec5e..d038354 100644 --- a/src/hyperview/server/static/index.html +++ b/src/hyperview/server/static/index.html @@ -1 +1 @@ -HyperView

HyperView

Samples0 items
Embeddings
Loading...
Loading embeddings...
Shift+drag to lasso select • Scroll to zoom • Drag to pan
\ No newline at end of file +HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file diff --git a/src/hyperview/server/static/index.txt b/src/hyperview/server/static/index.txt index f4d4f19..f6fc92a 100644 --- a/src/hyperview/server/static/index.txt +++ b/src/hyperview/server/static/index.txt @@ -1,15 +1,15 @@ 1:"$Sreact.fragment" -2:I[39756,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -3:I[37457,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -4:I[47257,["/_next/static/chunks/42879de7b8087bc9.js"],"ClientPageRoot"] -5:I[52683,["/_next/static/chunks/640b68f22e2796e6.js","/_next/static/chunks/71c75872eed19356.js"],"default"] -8:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"OutletBoundary"] +2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] +3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] +4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/08706ac30fdde8df.js"],"default"] +8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" -b:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"ViewportBoundary"] -d:I[97367,["/_next/static/chunks/42879de7b8087bc9.js"],"MetadataBoundary"] -f:I[68027,["/_next/static/chunks/42879de7b8087bc9.js"],"default"] -:HL["/_next/static/chunks/19d0d66700a996ca.css","style"] -0:{"P":null,"b":"lAwT6e3uaMqLUXxndbn_f","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/19d0d66700a996ca.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/640b68f22e2796e6.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/71c75872eed19356.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] +d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] +f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] +:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] +0:{"P":null,"b":"Oel6IrA8CsSgwXZSPI61A","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/08706ac30fdde8df.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] From 8139630881d2502a8ea2255a1aee260fabc4410a Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 16 Jan 2026 17:37:41 +0100 Subject: [PATCH 19/75] fix(colab): update git clone command and improve instructions for opening HyperView --- notebooks/colab_smoke_test.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/notebooks/colab_smoke_test.ipynb b/notebooks/colab_smoke_test.ipynb index 85a1ce0..f9e483b 100644 --- a/notebooks/colab_smoke_test.ipynb +++ b/notebooks/colab_smoke_test.ipynb @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "945a1017", "metadata": {}, "outputs": [ @@ -38,7 +38,7 @@ ], "source": [ "!pip install -q uv\n", - "!git clone https://github.com/HackerRoomAI/HyperView.git\n", + "!git clone --depth 1 --branch colab-fix --single-branch https://github.com/HackerRoomAI/HyperView.git\n", "%cd HyperView\n", "!uv pip install -e ." ] @@ -100,7 +100,7 @@ "id": "b1cb3148", "metadata": {}, "source": [ - "If your browser blocks popups, click the button again or use the inline fallback shown in the cell output." + "Click the link printed above to open HyperView in a new tab. If needed, copy/paste the URL." ] } ], From 00d1d38efa61ec51cdfa8685a0976a3b5d34737a Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 16 Jan 2026 17:53:32 +0100 Subject: [PATCH 20/75] fix: detect Colab as notebook environment for proper proxy URL display --- src/hyperview/api.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/hyperview/api.py b/src/hyperview/api.py index 9f570d1..dadcf53 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -242,7 +242,8 @@ def launch( >>> hv.launch(dataset) """ if notebook is None: - notebook = _is_notebook() + # Colab is always a notebook environment, even if _is_notebook() fails to detect it + notebook = _is_notebook() or _is_colab() if _is_colab() and host == "127.0.0.1": # Colab port forwarding/proxying is most reliable when the server binds From cc2195db4d66ea1d3d26021c321be359d3ef9eb5 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 16 Jan 2026 18:02:57 +0100 Subject: [PATCH 21/75] fix: remove accidentally committed HyperView clone in notebooks --- notebooks/HyperView | 1 - 1 file changed, 1 deletion(-) delete mode 160000 notebooks/HyperView diff --git a/notebooks/HyperView b/notebooks/HyperView deleted file mode 160000 index 490b90c..0000000 --- a/notebooks/HyperView +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 490b90cb51e83d8cafd90de9fd437cac9aa38d05 From 43666b932ce090c854cdcd8fcb57a74469567b98 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 16 Jan 2026 18:03:27 +0100 Subject: [PATCH 22/75] cleanup: simplify Colab install to single pip command, remove debug code --- docs/colab.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/colab.md b/docs/colab.md index ed5ac25..392cd0d 100644 --- a/docs/colab.md +++ b/docs/colab.md @@ -11,10 +11,7 @@ This smoke test creates a tiny synthetic dataset with random images + precompute ### 1) Install HyperView ```bash -!pip install -q uv -!git clone https://github.com/HackerRoomAI/HyperView.git -%cd HyperView -!uv pip install -e . +!pip install -q git+https://github.com/HackerRoomAI/HyperView.git ``` ### 2) Create a synthetic dataset and launch From eedc724e861f909e60c2273220c7542267230c1e Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 16 Jan 2026 18:05:35 +0100 Subject: [PATCH 23/75] docs: simplify colab documentation --- docs/colab.md | 48 +++++++++++++----------------------------------- 1 file changed, 13 insertions(+), 35 deletions(-) diff --git a/docs/colab.md b/docs/colab.md index 392cd0d..bef3f7c 100644 --- a/docs/colab.md +++ b/docs/colab.md @@ -1,22 +1,21 @@ # Running HyperView in Google Colab -Colab notebooks run on a remote VM, so you **can’t** open `http://127.0.0.1:` directly from your local browser. +HyperView works natively in Google Colab. Because Colab runs on a remote VM, you cannot access `localhost` directly. HyperView handles this automatically. -HyperView detects Colab and shows an **“Open HyperView in a new tab”** button that opens a same-site blank tab and embeds the proxied app URL in a full-page iframe (this avoids known issues with opening the proxied URL as a top-level page due to browser cookie partitioning). +## Usage -## Quick smoke test (no model downloads) - -This smoke test creates a tiny synthetic dataset with random images + precomputed 2D coordinates, so you can validate the UI and the “open in new tab” flow without running CLIP/UMAP. - -### 1) Install HyperView +### 1. Install HyperView ```bash !pip install -q git+https://github.com/HackerRoomAI/HyperView.git ``` -### 2) Create a synthetic dataset and launch +### 2. Launch the visualizer + +When you run `hv.launch()`, a button labeled **“Open HyperView in a new tab”** will appear in the output. Click it to open the visualization. ```python +# Minimal example import numpy as np import hyperview as hv from hyperview.core.sample import SampleFromArray @@ -24,36 +23,15 @@ from hyperview.core.sample import SampleFromArray dataset = hv.Dataset("colab_smoke", persist=False) rng = np.random.default_rng(0) -num_samples = 200 - -for i in range(num_samples): - # Random 64x64 RGB image +for i in range(200): img = (rng.random((64, 64, 3)) * 255).astype(np.uint8) - - sample = SampleFromArray.from_array( - id=f"s{i}", - image_array=img, - label=f"class_{i % 10}", - metadata={"i": i}, - ) - - # Precomputed 2D Euclidean projection - sample.embedding_2d = [float(rng.normal()), float(rng.normal())] - - # Precomputed 2D hyperbolic projection (inside unit disk) - r = float(rng.random() * 0.95) - theta = float(rng.random() * 2 * np.pi) - sample.embedding_2d_hyperbolic = [float(r * np.cos(theta)), float(r * np.sin(theta))] - + sample = SampleFromArray.from_array(id=f"s{i}", image_array=img, label="demo") + sample.embedding_2d = [float(rng.normal()), float(rng.normal())] # Dummy 2D points dataset.add_sample(sample) -hv.launch(dataset, port=5151) +hv.launch(dataset) ``` -Click **“Open HyperView in a new tab”**. - -If your browser blocks popups, HyperView will fall back to an inline iframe view inside the notebook output. - -## Full demo (real embeddings) +## Technical Details -If you want the full pipeline (download images, compute CLIP embeddings, run UMAP, etc.), use the demo flow described in the project README. +To support Colab, HyperView uses `google.colab.kernel.proxyPort` to expose the backend server. The UI is opened via a specially constructed "launcher" page that embeds the proxied application in a full-page iframe. This workaround ensures compatibility with modern browser security policies (like third-party cookie blocking) that often break direct proxy URLs. From deeed2246f33272b36b3432f328b2cb98c3683f5 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 16 Jan 2026 18:37:55 +0100 Subject: [PATCH 24/75] feat: change default port to 6262, rebuild frontend --- README.md | 8 +- frontend/next.config.ts | 2 +- frontend/src/app/page.tsx | 2 +- frontend/src/lib/api.ts | 2 +- notebooks/colab_smoke_test.ipynb | 24 +--- notebooks/demo.ipynb | 132 ++---------------- scripts/demo.py | 2 +- src/hyperview/api.py | 2 +- src/hyperview/cli.py | 12 +- src/hyperview/server/static/404.html | 2 +- src/hyperview/server/static/404/index.html | 2 +- .../server/static/__next.__PAGE__.txt | 4 +- src/hyperview/server/static/__next._full.txt | 4 +- src/hyperview/server/static/__next._head.txt | 2 +- src/hyperview/server/static/__next._index.txt | 2 +- src/hyperview/server/static/__next._tree.txt | 2 +- .../_buildManifest.js | 0 .../_clientMiddlewareManifest.json | 0 .../_ssgManifest.js | 0 ...8706ac30fdde8df.js => 799ca86fb297c98a.js} | 2 +- .../server/static/_not-found/__next._full.txt | 2 +- .../server/static/_not-found/__next._head.txt | 2 +- .../static/_not-found/__next._index.txt | 2 +- .../_not-found/__next._not-found.__PAGE__.txt | 2 +- .../static/_not-found/__next._not-found.txt | 2 +- .../server/static/_not-found/__next._tree.txt | 2 +- .../server/static/_not-found/index.html | 2 +- .../server/static/_not-found/index.txt | 2 +- src/hyperview/server/static/index.html | 2 +- src/hyperview/server/static/index.txt | 4 +- 30 files changed, 50 insertions(+), 178 deletions(-) rename src/hyperview/server/static/_next/static/{Oel6IrA8CsSgwXZSPI61A => 6WlEYFpQs-g9pqMRTk8sU}/_buildManifest.js (100%) rename src/hyperview/server/static/_next/static/{Oel6IrA8CsSgwXZSPI61A => 6WlEYFpQs-g9pqMRTk8sU}/_clientMiddlewareManifest.json (100%) rename src/hyperview/server/static/_next/static/{Oel6IrA8CsSgwXZSPI61A => 6WlEYFpQs-g9pqMRTk8sU}/_ssgManifest.js (100%) rename src/hyperview/server/static/_next/static/chunks/{08706ac30fdde8df.js => 799ca86fb297c98a.js} (99%) diff --git a/README.md b/README.md index eff96f8..3d964d7 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ This will: 1. Load 500 samples from CIFAR-100 2. Compute CLIP embeddings 3. Generate Euclidean and Hyperbolic visualizations -4. Start the server at **http://127.0.0.1:5151** +4. Start the server at **http://127.0.0.1:6262** ### Python API @@ -71,7 +71,7 @@ dataset.compute_embeddings() dataset.compute_visualization() # Launch the UI -hv.launch(dataset) # Opens http://127.0.0.1:5151 +hv.launch(dataset) # Opens http://127.0.0.1:6262 ``` ### Google Colab @@ -131,7 +131,7 @@ source .venv/bin/activate # Run the demo script in no-browser mode python scripts/demo.py --samples 200 --no-browser ``` -This runs the API on **http://127.0.0.1:5151** +This runs the API on **http://127.0.0.1:6262** **Terminal 2 - Start the frontend dev server:** ```bash @@ -141,7 +141,7 @@ npm run dev ``` This runs the frontend on **http://localhost:3000** with hot reloading. -Open **http://localhost:3000** in your browser. The frontend automatically proxies `/api/*` requests to the backend at port 5151 (configured in `next.config.ts`). +Open **http://localhost:3000** in your browser. The frontend automatically proxies `/api/*` requests to the backend at port 6262 (configured in `next.config.ts`). Now you can: - Edit React components and see changes instantly diff --git a/frontend/next.config.ts b/frontend/next.config.ts index 2d9cfbf..7dbfdbd 100644 --- a/frontend/next.config.ts +++ b/frontend/next.config.ts @@ -15,7 +15,7 @@ const nextConfig: NextConfig = { return [ { source: "/api/:path*", - destination: "http://127.0.0.1:5151/api/:path*", + destination: "http://127.0.0.1:6262/api/:path*", }, ]; }, diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index d3d2bf6..81a2504 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -190,7 +190,7 @@ export default function Home() {
Error
{error}

- Make sure the HyperView backend is running on port 5151. + Make sure the HyperView backend is running on port 6262.

diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 082fed0..f0ed658 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1,6 +1,6 @@ import type { DatasetInfo, EmbeddingsData, Sample, SamplesResponse, ViewMode } from "@/types"; -const API_BASE = process.env.NODE_ENV === "development" ? "http://127.0.0.1:5151" : ""; +const API_BASE = process.env.NODE_ENV === "development" ? "http://127.0.0.1:6262" : ""; export async function fetchDataset(): Promise { const res = await fetch(`${API_BASE}/api/dataset`); diff --git a/notebooks/colab_smoke_test.ipynb b/notebooks/colab_smoke_test.ipynb index f9e483b..27597eb 100644 --- a/notebooks/colab_smoke_test.ipynb +++ b/notebooks/colab_smoke_test.ipynb @@ -37,31 +37,15 @@ } ], "source": [ - "!pip install -q uv\n", - "!git clone --depth 1 --branch colab-fix --single-branch https://github.com/HackerRoomAI/HyperView.git\n", - "%cd HyperView\n", - "!uv pip install -e ." + "!pip install -q git+https://github.com/HackerRoomAI/HyperView.git@colab-fix" ] }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "58b82256", "metadata": {}, - "outputs": [ - { - "ename": "IndentationError", - "evalue": "unexpected indent (api.py, line 173)", - "output_type": "error", - "traceback": [ - "Traceback \u001b[36m(most recent call last)\u001b[39m:\n", - " File \u001b[92m~/hyperview_org/HyperView/.venv/lib/python3.12/site-packages/IPython/core/interactiveshell.py:3701\u001b[39m in \u001b[95mrun_code\u001b[39m\n exec(code_obj, self.user_global_ns, self.user_ns)\n", - " Cell \u001b[92mIn[2]\u001b[39m\u001b[92m, line 2\u001b[39m\n import hyperview as hv\n", - "\u001b[36m \u001b[39m\u001b[36mFile \u001b[39m\u001b[32m~/hyperview_org/HyperView/src/hyperview/__init__.py:3\u001b[39m\n\u001b[31m \u001b[39m\u001b[31mfrom hyperview.api import Dataset, launch\u001b[39m\n", - " \u001b[36mFile \u001b[39m\u001b[32m~/hyperview_org/HyperView/src/hyperview/api.py:173\u001b[39m\n\u001b[31m \u001b[39m\u001b[31mif _is_colab():\u001b[39m\n ^\n\u001b[31mIndentationError\u001b[39m\u001b[31m:\u001b[39m unexpected indent\n" - ] - } - ], + "outputs": [], "source": [ "import numpy as np\n", "import hyperview as hv\n", @@ -92,7 +76,7 @@ "\n", " dataset.add_sample(sample)\n", "\n", - "hv.launch(dataset, port=5151)" + "hv.launch(dataset, port=6262)" ] }, { diff --git a/notebooks/demo.ipynb b/notebooks/demo.ipynb index eae7ba7..20b5343 100644 --- a/notebooks/demo.ipynb +++ b/notebooks/demo.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "0aba0ed9", "metadata": { "execution": { @@ -21,23 +21,7 @@ "shell.execute_reply": "2025-12-21T23:01:48.735942Z" } }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/matin/merantix/HyperView/.venv/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", - " from .autonotebook import tqdm as notebook_tqdm\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "HyperView version: 0.1.0\n" - ] - } - ], + "outputs": [], "source": [ "import sys\n", "from pathlib import Path\n", @@ -86,7 +70,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "0666b39a", "metadata": { "execution": { @@ -96,57 +80,7 @@ "shell.execute_reply": "2025-12-21T23:01:51.732008Z" } }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "\r\n", - "Loading uoft-cs/cifar100: 0%| | 0/500 [00:00\n", - " " - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "session = hv.launch(dataset)\n" ] diff --git a/scripts/demo.py b/scripts/demo.py index 91d0717..778f6f2 100644 --- a/scripts/demo.py +++ b/scripts/demo.py @@ -22,7 +22,7 @@ def main(): "--samples", type=int, default=50000, help="Number of samples to load (default: 50000)" ) parser.add_argument( - "--port", type=int, default=5151, help="Port to run server on (default: 5151)" + "--port", type=int, default=6262, help="Port to run server on (default: 6262)" ) parser.add_argument( "--no-browser", action="store_true", help="Don't open browser automatically" diff --git a/src/hyperview/api.py b/src/hyperview/api.py index dadcf53..2c60c54 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -214,7 +214,7 @@ def open_browser(self): def launch( dataset: Dataset, - port: int = 5151, + port: int = 6262, host: str = "127.0.0.1", open_browser: bool = True, notebook: bool | None = None, diff --git a/src/hyperview/cli.py b/src/hyperview/cli.py index 9bbe321..78c7d53 100644 --- a/src/hyperview/cli.py +++ b/src/hyperview/cli.py @@ -25,8 +25,8 @@ def main(): demo_parser.add_argument( "--port", type=int, - default=5151, - help="Port to run the server on (default: 5151)", + default=6262, + help="Port to run the server on (default: 6262)", ) demo_parser.add_argument( "--host", @@ -46,8 +46,8 @@ def main(): serve_parser.add_argument( "--port", type=int, - default=5151, - help="Port to run the server on (default: 5151)", + default=6262, + help="Port to run the server on (default: 6262)", ) serve_parser.add_argument( "--host", @@ -74,7 +74,7 @@ def main(): def run_demo( num_samples: int = 500, - port: int = 5151, + port: int = 6262, *, host: str = "127.0.0.1", open_browser: bool = True, @@ -113,7 +113,7 @@ def run_demo( def serve_dataset( filepath: str, - port: int = 5151, + port: int = 6262, *, host: str = "127.0.0.1", open_browser: bool = True, diff --git a/src/hyperview/server/static/404.html b/src/hyperview/server/static/404.html index 8a12bc0..61eb8b7 100644 --- a/src/hyperview/server/static/404.html +++ b/src/hyperview/server/static/404.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/404/index.html b/src/hyperview/server/static/404/index.html index 8a12bc0..61eb8b7 100644 --- a/src/hyperview/server/static/404/index.html +++ b/src/hyperview/server/static/404/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/__next.__PAGE__.txt b/src/hyperview/server/static/__next.__PAGE__.txt index a7760ba..8e426ac 100644 --- a/src/hyperview/server/static/__next.__PAGE__.txt +++ b/src/hyperview/server/static/__next.__PAGE__.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" 2:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/08706ac30fdde8df.js"],"default"] +3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/799ca86fb297c98a.js"],"default"] 6:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 7:"$Sreact.suspense" -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/08706ac30fdde8df.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/799ca86fb297c98a.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 8:null diff --git a/src/hyperview/server/static/__next._full.txt b/src/hyperview/server/static/__next._full.txt index f6fc92a..2c13d29 100644 --- a/src/hyperview/server/static/__next._full.txt +++ b/src/hyperview/server/static/__next._full.txt @@ -2,14 +2,14 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] 4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/08706ac30fdde8df.js"],"default"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/799ca86fb297c98a.js"],"default"] 8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"P":null,"b":"Oel6IrA8CsSgwXZSPI61A","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/08706ac30fdde8df.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +0:{"P":null,"b":"6WlEYFpQs-g9pqMRTk8sU","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/799ca86fb297c98a.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] diff --git a/src/hyperview/server/static/__next._head.txt b/src/hyperview/server/static/__next._head.txt index 445d63b..bfb6559 100644 --- a/src/hyperview/server/static/__next._head.txt +++ b/src/hyperview/server/static/__next._head.txt @@ -2,6 +2,6 @@ 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/__next._index.txt b/src/hyperview/server/static/__next._index.txt index 343f05e..0a92701 100644 --- a/src/hyperview/server/static/__next._index.txt +++ b/src/hyperview/server/static/__next._index.txt @@ -2,4 +2,4 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/__next._tree.txt b/src/hyperview/server/static/__next._tree.txt index 0eedca1..abc662a 100644 --- a/src/hyperview/server/static/__next._tree.txt +++ b/src/hyperview/server/static/__next._tree.txt @@ -1,2 +1,2 @@ :HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_buildManifest.js b/src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_buildManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_buildManifest.js rename to src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_buildManifest.js diff --git a/src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_clientMiddlewareManifest.json b/src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_clientMiddlewareManifest.json similarity index 100% rename from src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_clientMiddlewareManifest.json rename to src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_clientMiddlewareManifest.json diff --git a/src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_ssgManifest.js b/src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_ssgManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/Oel6IrA8CsSgwXZSPI61A/_ssgManifest.js rename to src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_ssgManifest.js diff --git a/src/hyperview/server/static/_next/static/chunks/08706ac30fdde8df.js b/src/hyperview/server/static/_next/static/chunks/799ca86fb297c98a.js similarity index 99% rename from src/hyperview/server/static/_next/static/chunks/08706ac30fdde8df.js rename to src/hyperview/server/static/_next/static/chunks/799ca86fb297c98a.js index 59f0d01..621fb40 100644 --- a/src/hyperview/server/static/_next/static/chunks/08706ac30fdde8df.js +++ b/src/hyperview/server/static/_next/static/chunks/799ca86fb297c98a.js @@ -6,4 +6,4 @@ transition-all duration-150 ease-out ${t?"ring-2 ring-primary":""} ${r?"ring-2 ring-primary/50":""} - `,onClick:t=>g(e,t),onMouseEnter:()=>c(e.id),onMouseLeave:()=>c(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(tF,{})})]},e.id)}),Array.from({length:p-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function t_(e,t=[]){let r=[],n=()=>{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let i=t=>{let{scope:r,children:n,...i}=t,s=r?.[e]?.[l]||o,a=u.useMemo(()=>i,Object.values(i));return(0,d.jsx)(s.Provider,{value:a,children:n})};return i.displayName=t+"Provider",[i,function(r,i){let s=i?.[e]?.[l]||o,a=u.useContext(s);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tW(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tV(...e){return t=>{let r=!1,n=e.map(e=>{let n=tW(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,i,s=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(i=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),i=o.find(tK);if(i){let e=i.props.children,r=o.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,i),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?s:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tq(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function tY(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),i=l.find(tX);if(i){let e=i.props.children,r=l.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var tQ=Symbol("radix.slottable");function tX(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===tQ}var tZ=new WeakMap;function tJ(e,t){var r,n;let o,l,i;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let s=(r=e,n=t,o=r.length,(i=(l=t0(n))>=0?l:o+l)<0||i>=o?-1:i);return -1===s?void 0:e[s]}function t0(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],tZ.set(this,!0)}set(e,t){return tZ.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,i=t0(e),s=i>=0?i:l+i,a=s<0||s>=l?-1:s;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;i<0&&s++;let u=[...this.#t],c=!1;for(let e=s;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t1=globalThis?.document?u.useLayoutEffect:()=>{},t2=u[" useId ".trim().toString()]||(()=>void 0),t5=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t4=u[" useInsertionEffect ".trim().toString()]||t1;function t3({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,i]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t4(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),s=void 0!==e,a=s?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==s){let t=s?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=s},[s,n])}return[a,u.useCallback(t=>{if(s){let r="function"==typeof t?t(e):t;r!==e&&i.current?.(r)}else l(t)},[s,e,l,i])]}Symbol("RADIX:SYNC_STATE");var t6=u.createContext(void 0);function t8(e){let t=u.useContext(t6);return e||t||"ltr"}var t9="rovingFocusGroup.onEntryFocus",t7={bubbles:!1,cancelable:!0},re="RovingFocusGroup",[rt,rr,rn]=function(e){let t=e+"CollectionProvider",[r,n]=t_(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};i.displayName=t;let s=e+"CollectionSlot",a=tY(s),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tB(t,l(s,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=s;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=tY(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,i=u.default.useRef(null),s=tB(t,i),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(i,{ref:i,...o}),()=>void a.itemMap.delete(i))),(0,d.jsx)(h,{...{[p]:""},ref:s,children:n})});return m.displayName=f,[{Provider:i,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(re),[ro,rl]=t_(re,[rn]),[ri,rs]=ro(re),ra=u.forwardRef((e,t)=>(0,d.jsx)(rt.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rt.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rd,{...e,ref:t})})}));ra.displayName=re;var rd=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:i,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tB(t,m),b=t8(i),[y,v]=t3({prop:s,defaultProp:a??null,onChange:c,caller:re}),[x,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=rr(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(t9,k),()=>e.removeEventListener(t9,k)},[k]),(0,d.jsx)(ri,{scope:n,orientation:o,dir:b,loop:l,currentTabStopId:y,onItemFocus:u.useCallback(e=>v(e),[v]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tU.div,{tabIndex:x||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tq(e.onMouseDown,()=>{z.current=!0}),onFocus:tq(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!x){let t=new CustomEvent(t9,t7);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rp([e.find(e=>e.active),e.find(e=>e.id===y),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tq(e.onBlur,()=>w(!1))})})}),ru="RovingFocusGroupItem",rc=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:i,...s}=e,a=function(e){let[t,r]=u.useState(t2());return t1(()=>{r(e=>e??String(t5++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rs(ru,r),p=f.currentTabStopId===c,h=rr(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:b}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rt.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tU.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...s,ref:t,onMouseDown:tq(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tq(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tq(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return rf[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rp(o))}}),children:"function"==typeof i?i({isCurrentTabStop:p,hasTabStop:null!=b}):i})})});rc.displayName=ru;var rf={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rp(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rh="Toggle",rm=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[i,s]=t3({prop:r,onChange:o,defaultProp:n??!1,caller:rh});return(0,d.jsx)(tU.button,{type:"button","aria-pressed":i,"data-state":i?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tq(e.onClick,()=>{e.disabled||s(!i)})})});rm.displayName=rh;var rg="ToggleGroup",[rb,ry]=t_(rg,[rl]),rv=rl(),rx=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rS,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rz,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rg}\``)});rx.displayName=rg;var[rw,rk]=rb(rg),rS=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[i,s]=t3({prop:r,defaultProp:n??"",onChange:o,caller:rg});return(0,d.jsx)(rw,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>i?[i]:[],[i]),onItemActivate:s,onItemDeactivate:u.default.useCallback(()=>s(""),[s]),children:(0,d.jsx)(rE,{...l,ref:t})})}),rz=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[i,s]=t3({prop:r,defaultProp:n??[],onChange:o,caller:rg}),a=u.default.useCallback(e=>s((t=[])=>[...t,e]),[s]),c=u.default.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,d.jsx)(rw,{scope:e.__scopeToggleGroup,type:"multiple",value:i,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rE,{...l,ref:t})})});rx.displayName=rg;var[rj,rC]=rb(rg),rE=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:i,loop:s=!0,...a}=e,u=rv(r),c=t8(i),f={role:"group",dir:c,...a};return(0,d.jsx)(rj,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(ra,{asChild:!0,...u,orientation:l,dir:c,loop:s,children:(0,d.jsx)(tU.div,{...f,ref:t})}):(0,d.jsx)(tU.div,{...f,ref:t})})}),rM="ToggleGroupItem",rR=u.default.forwardRef((e,t)=>{let r=rk(rM,e.__scopeToggleGroup),n=rC(rM,e.__scopeToggleGroup),o=rv(e.__scopeToggleGroup),l=r.value.includes(e.value),i=n.disabled||e.disabled,s={...e,pressed:l,disabled:i},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rc,{asChild:!0,...o,focusable:!i,active:l,ref:a,children:(0,d.jsx)(rN,{...s,ref:t})}):(0,d.jsx)(rN,{...s,ref:t})});rR.displayName=rM;var rN=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rk(rM,r),i={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s="single"===l.type?i:void 0;return(0,d.jsx)(rm,{...s,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rI=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rL=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,i=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let i=rI(t)||rI(n);return o[e][i]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,i,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...s}[t]):({...l,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},rP=rL("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rm,{ref:o,className:tf(rP({variant:t,size:r,className:e})),...n})).displayName=rm.displayName;let rO=u.createContext({size:"default",variant:"default"}),rT=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rx,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(rO.Provider,{value:{variant:t,size:r},children:n})}));rT.displayName=rx.displayName;let rA=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let i=u.useContext(rO);return(0,d.jsx)(rR,{ref:l,className:tf(rP({variant:i.variant||r,size:i.size||n}),e),...o,children:t})});function rD(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function r$(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function rF(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(r$(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{if(!r)return null;let e=[...new Set(r.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":r.label_colors[e]||"#808080");return{uniqueLabels:e,categories:n,palette:o}},[r]),{canvasRef:p,overlayCanvasRef:h,containerRef:m,handlePointerDown:g,handlePointerMove:b,handlePointerUp:y,handlePointerLeave:v,handleDoubleClick:x}=function({embeddings:t,viewMode:r,labelsInfo:n,selectedIds:o,hoveredId:l,setSelectedIds:i,beginLassoSelection:s,setHoveredId:a}){let d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),p=(0,u.useRef)(null),h=(0,u.useRef)(!1),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),b=(0,u.useRef)(0),y=(0,u.useRef)(0),v=(0,u.useRef)([]),x=(0,u.useRef)(-1),w=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{h.current||(h.current=!0,requestAnimationFrame(()=>{h.current=!1;let e=p.current;e&&(e.render(),g.current&&rF(c.current,v.current))}))},[]),S=(0,u.useCallback)(e=>{let t=d.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),z=(0,u.useCallback)(()=>{m.current=!1,g.current=!1,v.current=[],r$(c.current)},[]);(0,u.useEffect)(()=>{if(!t||!n||!d.current||!f.current)return;let o=!1;return(async()=>{try{let l=await e.A(20606);if(o)return;let i=f.current,s=d.current;if(!i||!s)return;p.current&&(p.current.destroy(),p.current=null);let a=i.getBoundingClientRect(),u=Math.floor(a.width),h=Math.floor(a.height);c.current&&(c.current.width=Math.max(1,u),c.current.height=Math.max(1,h),c.current.style.width=`${u}px`,c.current.style.height=`${h}px`,r$(c.current));let m="euclidean"===r?t.euclidean:t.hyperbolic,g=new Float32Array(2*m.length);for(let e=0;e{o=!0,z(),p.current&&(p.current.destroy(),p.current=null)}},[t,n,k,z,r]),(0,u.useEffect)(()=>{let e=p.current;if(!e||!t||!w)return;let r=new Set;for(let e of o){let t=w.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let n=l?w.get(l)??-1:-1;e.setHovered(n),x.current=n,k()},[t,l,w,k,o]),(0,u.useEffect)(()=>{let e=f.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;c.current&&(c.current.width=Math.max(1,r),c.current.height=Math.max(1,n),c.current.style.width=`${r}px`,c.current.style.height=`${n}px`);let o=p.current;o&&(o.resize(r,n),k())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[k]),(0,u.useEffect)(()=>{let e=d.current;if(!e)return;let t=e=>{let t=p.current;if(!t)return;e.preventDefault();let r=S(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,rD(e)),k()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[S,k]);let j=(0,u.useCallback)(e=>{if(!p.current||"number"==typeof e.button&&0!==e.button)return;let t=S(e);b.current=t.x,y.current=t.y,e.shiftKey?(g.current=!0,m.current=!1,v.current=[t.x,t.y],rF(c.current,v.current)):(m.current=!0,g.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[S]),C=(0,u.useCallback)(e=>{let r=p.current;if(!r)return;let n=S(e);if(m.current){let t=n.x-b.current,o=n.y-y.current;b.current=n.x,y.current=n.y,r.pan(t,o,rD(e)),k();return}if(g.current){let e=v.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),rF(c.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===x.current||(x.current=l,r.setHovered(l),t&&(l>=0&&l{let n=p.current;if(!n||!t)return void z();if(g.current){let e=v.current;if(z(),e.length>=6)try{let t=new Float32Array(e),o=n.lassoSelect(t),l=o.geometry?.coords;if(!l||l.length<6)return;n.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({viewMode:r,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}k();return}z(),k()},[s,t,k,z,r]);return{canvasRef:d,overlayCanvasRef:c,containerRef:f,handlePointerDown:j,handlePointerMove:C,handlePointerUp:E,handlePointerLeave:(0,u.useCallback)(e=>{let t=p.current;t&&(x.current=-1,a(null),t.setHovered(-1),k()),z()},[k,a,z]),handleDoubleClick:(0,u.useCallback)(e=>{let t=p.current;t&&(z(),t.setSelection(new Set),i(new Set),k())},[k,i,z])}}({embeddings:r,viewMode:n,labelsInfo:f,selectedIds:l,hoveredId:a,setSelectedIds:i,beginLassoSelection:s,setHoveredId:c}),w=f?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:r?`${r.ids.length} points`:"Loading...",children:(0,d.jsxs)(rT,{type:"single",value:n,onValueChange:e=>e&&o(e),variant:"outline",size:"sm",className:"h-6",children:[(0,d.jsx)(rA,{value:"euclidean",className:"text-[11px] px-2.5 h-6",children:"Euclidean"}),(0,d.jsx)(rA,{value:"hyperbolic",className:"text-[11px] px-2.5 h-6",children:"Hyperbolic"})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:m,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:p,className:"absolute inset-0",style:{zIndex:1},onPointerDown:g,onPointerMove:b,onPointerUp:y,onPointerCancel:y,onPointerLeave:v,onDoubleClick:x}),(0,d.jsx)("canvas",{ref:h,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),!r&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),w.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[w.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":r?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),w.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",w.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rA.displayName=rR.displayName;var r_=Symbol.for("react.lazy"),rW=u[" use ".trim().toString()];function rV(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===r_&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rB=((i=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rV(r)&&"function"==typeof rW&&(r=rW(r._payload)),u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=i,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rV(r)&&"function"==typeof rW&&(r=rW(r._payload));let l=u.Children.toArray(r),i=l.find(rK);if(i){let e=i.props.children,r=l.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rH=Symbol("radix.slottable");function rK(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rH}let rU=rL("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rq=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rB:"button",{className:tf(rU({variant:t,size:r,className:e})),ref:l,...o}));function rY(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tL();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(t$,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rq,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rQ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rX(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function rZ(){let e=await fetch("/api/embeddings");if(!e.ok)throw Error(`Failed to fetch embeddings: ${e.statusText}`);return e.json()}async function rJ(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r0(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({space:"euclidean"===e.viewMode?"euclidean":"hyperbolic",polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r1(){let{samples:e,totalSamples:t,setSamples:r,appendSamples:n,addSamplesIfMissing:o,setDatasetInfo:l,setEmbeddings:i,setIsLoading:s,isLoading:a,error:c,setError:f,selectedIds:p,isLassoSelection:h,lassoQuery:m,lassoSamples:g,lassoTotal:b,lassoIsLoading:y,setLassoResults:v}=tL(),[x,w]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{s(!0),f(null);try{let[e,t,n]=await Promise.all([rQ(),rX(0,100),rZ()]);l(e),r(t.samples,t.total),i(n)}catch(e){console.error("Failed to load data:",e),f(e instanceof Error?e.message:"Failed to load data")}finally{s(!1)}})()},[]),(0,u.useEffect)(()=>{(async()=>{if(h||0===p.size)return;let t=new Set(e.map(e=>e.id)),r=Array.from(p).filter(e=>!t.has(e));if(0!==r.length)try{let e=await rJ(r);o(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[p,e,o,h]),(0,u.useEffect)(()=>{if(!h||!m||!y)return;let e=new AbortController;return(async()=>{try{let t=await r0({viewMode:m.viewMode,polygon:m.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;v(t.samples,t.total,!1)}catch(e){if(e?.name==="AbortError")return;console.error("Failed to fetch lasso selection:",e),v([],0,!1)}})(),()=>e.abort()},[h,y,m,v]);let k=(0,u.useCallback)(async()=>{if(!x){if(h){if(!m||y||!y&&g.length>=b)return;w(!0);try{let e=await r0({viewMode:m.viewMode,polygon:m.polygon,offset:g.length,limit:100});v(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{w(!1)}return}if(!(e.length>=t)){w(!0);try{let t=await rX(e.length,100);n(t.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{w(!1)}}}},[x,n,h,y,m,g.length,b,e.length,t,v]),S=h?g:e,z=h?b:t,j=S.lengthr1],50912)}]); \ No newline at end of file + `,onClick:t=>g(e,t),onMouseEnter:()=>c(e.id),onMouseLeave:()=>c(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(tF,{})})]},e.id)}),Array.from({length:p-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function t_(e,t=[]){let r=[],n=()=>{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let i=t=>{let{scope:r,children:n,...i}=t,s=r?.[e]?.[l]||o,a=u.useMemo(()=>i,Object.values(i));return(0,d.jsx)(s.Provider,{value:a,children:n})};return i.displayName=t+"Provider",[i,function(r,i){let s=i?.[e]?.[l]||o,a=u.useContext(s);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tW(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tV(...e){return t=>{let r=!1,n=e.map(e=>{let n=tW(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,i,s=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(i=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),i=o.find(tK);if(i){let e=i.props.children,r=o.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,i),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?s:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tq(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function tY(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),i=l.find(tX);if(i){let e=i.props.children,r=l.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var tQ=Symbol("radix.slottable");function tX(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===tQ}var tZ=new WeakMap;function tJ(e,t){var r,n;let o,l,i;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let s=(r=e,n=t,o=r.length,(i=(l=t0(n))>=0?l:o+l)<0||i>=o?-1:i);return -1===s?void 0:e[s]}function t0(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],tZ.set(this,!0)}set(e,t){return tZ.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,i=t0(e),s=i>=0?i:l+i,a=s<0||s>=l?-1:s;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;i<0&&s++;let u=[...this.#t],c=!1;for(let e=s;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t1=globalThis?.document?u.useLayoutEffect:()=>{},t2=u[" useId ".trim().toString()]||(()=>void 0),t5=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t4=u[" useInsertionEffect ".trim().toString()]||t1;function t3({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,i]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t4(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),s=void 0!==e,a=s?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==s){let t=s?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=s},[s,n])}return[a,u.useCallback(t=>{if(s){let r="function"==typeof t?t(e):t;r!==e&&i.current?.(r)}else l(t)},[s,e,l,i])]}Symbol("RADIX:SYNC_STATE");var t6=u.createContext(void 0);function t8(e){let t=u.useContext(t6);return e||t||"ltr"}var t9="rovingFocusGroup.onEntryFocus",t7={bubbles:!1,cancelable:!0},re="RovingFocusGroup",[rt,rr,rn]=function(e){let t=e+"CollectionProvider",[r,n]=t_(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};i.displayName=t;let s=e+"CollectionSlot",a=tY(s),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tB(t,l(s,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=s;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=tY(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,i=u.default.useRef(null),s=tB(t,i),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(i,{ref:i,...o}),()=>void a.itemMap.delete(i))),(0,d.jsx)(h,{...{[p]:""},ref:s,children:n})});return m.displayName=f,[{Provider:i,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(re),[ro,rl]=t_(re,[rn]),[ri,rs]=ro(re),ra=u.forwardRef((e,t)=>(0,d.jsx)(rt.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rt.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rd,{...e,ref:t})})}));ra.displayName=re;var rd=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:i,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tB(t,m),b=t8(i),[y,v]=t3({prop:s,defaultProp:a??null,onChange:c,caller:re}),[x,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=rr(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(t9,k),()=>e.removeEventListener(t9,k)},[k]),(0,d.jsx)(ri,{scope:n,orientation:o,dir:b,loop:l,currentTabStopId:y,onItemFocus:u.useCallback(e=>v(e),[v]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tU.div,{tabIndex:x||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tq(e.onMouseDown,()=>{z.current=!0}),onFocus:tq(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!x){let t=new CustomEvent(t9,t7);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rp([e.find(e=>e.active),e.find(e=>e.id===y),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tq(e.onBlur,()=>w(!1))})})}),ru="RovingFocusGroupItem",rc=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:i,...s}=e,a=function(e){let[t,r]=u.useState(t2());return t1(()=>{r(e=>e??String(t5++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rs(ru,r),p=f.currentTabStopId===c,h=rr(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:b}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rt.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tU.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...s,ref:t,onMouseDown:tq(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tq(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tq(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return rf[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rp(o))}}),children:"function"==typeof i?i({isCurrentTabStop:p,hasTabStop:null!=b}):i})})});rc.displayName=ru;var rf={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rp(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rh="Toggle",rm=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[i,s]=t3({prop:r,onChange:o,defaultProp:n??!1,caller:rh});return(0,d.jsx)(tU.button,{type:"button","aria-pressed":i,"data-state":i?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tq(e.onClick,()=>{e.disabled||s(!i)})})});rm.displayName=rh;var rg="ToggleGroup",[rb,ry]=t_(rg,[rl]),rv=rl(),rx=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rS,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rz,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rg}\``)});rx.displayName=rg;var[rw,rk]=rb(rg),rS=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[i,s]=t3({prop:r,defaultProp:n??"",onChange:o,caller:rg});return(0,d.jsx)(rw,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>i?[i]:[],[i]),onItemActivate:s,onItemDeactivate:u.default.useCallback(()=>s(""),[s]),children:(0,d.jsx)(rE,{...l,ref:t})})}),rz=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[i,s]=t3({prop:r,defaultProp:n??[],onChange:o,caller:rg}),a=u.default.useCallback(e=>s((t=[])=>[...t,e]),[s]),c=u.default.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,d.jsx)(rw,{scope:e.__scopeToggleGroup,type:"multiple",value:i,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rE,{...l,ref:t})})});rx.displayName=rg;var[rj,rC]=rb(rg),rE=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:i,loop:s=!0,...a}=e,u=rv(r),c=t8(i),f={role:"group",dir:c,...a};return(0,d.jsx)(rj,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(ra,{asChild:!0,...u,orientation:l,dir:c,loop:s,children:(0,d.jsx)(tU.div,{...f,ref:t})}):(0,d.jsx)(tU.div,{...f,ref:t})})}),rM="ToggleGroupItem",rR=u.default.forwardRef((e,t)=>{let r=rk(rM,e.__scopeToggleGroup),n=rC(rM,e.__scopeToggleGroup),o=rv(e.__scopeToggleGroup),l=r.value.includes(e.value),i=n.disabled||e.disabled,s={...e,pressed:l,disabled:i},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rc,{asChild:!0,...o,focusable:!i,active:l,ref:a,children:(0,d.jsx)(rN,{...s,ref:t})}):(0,d.jsx)(rN,{...s,ref:t})});rR.displayName=rM;var rN=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rk(rM,r),i={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s="single"===l.type?i:void 0;return(0,d.jsx)(rm,{...s,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rI=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rL=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,i=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let i=rI(t)||rI(n);return o[e][i]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,i,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...s}[t]):({...l,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},rP=rL("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rm,{ref:o,className:tf(rP({variant:t,size:r,className:e})),...n})).displayName=rm.displayName;let rO=u.createContext({size:"default",variant:"default"}),rT=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rx,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(rO.Provider,{value:{variant:t,size:r},children:n})}));rT.displayName=rx.displayName;let rA=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let i=u.useContext(rO);return(0,d.jsx)(rR,{ref:l,className:tf(rP({variant:i.variant||r,size:i.size||n}),e),...o,children:t})});function rD(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function r$(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function rF(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(r$(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{if(!r)return null;let e=[...new Set(r.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":r.label_colors[e]||"#808080");return{uniqueLabels:e,categories:n,palette:o}},[r]),{canvasRef:p,overlayCanvasRef:h,containerRef:m,handlePointerDown:g,handlePointerMove:b,handlePointerUp:y,handlePointerLeave:v,handleDoubleClick:x}=function({embeddings:t,viewMode:r,labelsInfo:n,selectedIds:o,hoveredId:l,setSelectedIds:i,beginLassoSelection:s,setHoveredId:a}){let d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),p=(0,u.useRef)(null),h=(0,u.useRef)(!1),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),b=(0,u.useRef)(0),y=(0,u.useRef)(0),v=(0,u.useRef)([]),x=(0,u.useRef)(-1),w=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{h.current||(h.current=!0,requestAnimationFrame(()=>{h.current=!1;let e=p.current;e&&(e.render(),g.current&&rF(c.current,v.current))}))},[]),S=(0,u.useCallback)(e=>{let t=d.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),z=(0,u.useCallback)(()=>{m.current=!1,g.current=!1,v.current=[],r$(c.current)},[]);(0,u.useEffect)(()=>{if(!t||!n||!d.current||!f.current)return;let o=!1;return(async()=>{try{let l=await e.A(20606);if(o)return;let i=f.current,s=d.current;if(!i||!s)return;p.current&&(p.current.destroy(),p.current=null);let a=i.getBoundingClientRect(),u=Math.floor(a.width),h=Math.floor(a.height);c.current&&(c.current.width=Math.max(1,u),c.current.height=Math.max(1,h),c.current.style.width=`${u}px`,c.current.style.height=`${h}px`,r$(c.current));let m="euclidean"===r?t.euclidean:t.hyperbolic,g=new Float32Array(2*m.length);for(let e=0;e{o=!0,z(),p.current&&(p.current.destroy(),p.current=null)}},[t,n,k,z,r]),(0,u.useEffect)(()=>{let e=p.current;if(!e||!t||!w)return;let r=new Set;for(let e of o){let t=w.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let n=l?w.get(l)??-1:-1;e.setHovered(n),x.current=n,k()},[t,l,w,k,o]),(0,u.useEffect)(()=>{let e=f.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;c.current&&(c.current.width=Math.max(1,r),c.current.height=Math.max(1,n),c.current.style.width=`${r}px`,c.current.style.height=`${n}px`);let o=p.current;o&&(o.resize(r,n),k())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[k]),(0,u.useEffect)(()=>{let e=d.current;if(!e)return;let t=e=>{let t=p.current;if(!t)return;e.preventDefault();let r=S(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,rD(e)),k()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[S,k]);let j=(0,u.useCallback)(e=>{if(!p.current||"number"==typeof e.button&&0!==e.button)return;let t=S(e);b.current=t.x,y.current=t.y,e.shiftKey?(g.current=!0,m.current=!1,v.current=[t.x,t.y],rF(c.current,v.current)):(m.current=!0,g.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[S]),C=(0,u.useCallback)(e=>{let r=p.current;if(!r)return;let n=S(e);if(m.current){let t=n.x-b.current,o=n.y-y.current;b.current=n.x,y.current=n.y,r.pan(t,o,rD(e)),k();return}if(g.current){let e=v.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),rF(c.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===x.current||(x.current=l,r.setHovered(l),t&&(l>=0&&l{let n=p.current;if(!n||!t)return void z();if(g.current){let e=v.current;if(z(),e.length>=6)try{let t=new Float32Array(e),o=n.lassoSelect(t),l=o.geometry?.coords;if(!l||l.length<6)return;n.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({viewMode:r,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}k();return}z(),k()},[s,t,k,z,r]);return{canvasRef:d,overlayCanvasRef:c,containerRef:f,handlePointerDown:j,handlePointerMove:C,handlePointerUp:E,handlePointerLeave:(0,u.useCallback)(e=>{let t=p.current;t&&(x.current=-1,a(null),t.setHovered(-1),k()),z()},[k,a,z]),handleDoubleClick:(0,u.useCallback)(e=>{let t=p.current;t&&(z(),t.setSelection(new Set),i(new Set),k())},[k,i,z])}}({embeddings:r,viewMode:n,labelsInfo:f,selectedIds:l,hoveredId:a,setSelectedIds:i,beginLassoSelection:s,setHoveredId:c}),w=f?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:r?`${r.ids.length} points`:"Loading...",children:(0,d.jsxs)(rT,{type:"single",value:n,onValueChange:e=>e&&o(e),variant:"outline",size:"sm",className:"h-6",children:[(0,d.jsx)(rA,{value:"euclidean",className:"text-[11px] px-2.5 h-6",children:"Euclidean"}),(0,d.jsx)(rA,{value:"hyperbolic",className:"text-[11px] px-2.5 h-6",children:"Hyperbolic"})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:m,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:p,className:"absolute inset-0",style:{zIndex:1},onPointerDown:g,onPointerMove:b,onPointerUp:y,onPointerCancel:y,onPointerLeave:v,onDoubleClick:x}),(0,d.jsx)("canvas",{ref:h,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),!r&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),w.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[w.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":r?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),w.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",w.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rA.displayName=rR.displayName;var r_=Symbol.for("react.lazy"),rW=u[" use ".trim().toString()];function rV(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===r_&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rB=((i=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rV(r)&&"function"==typeof rW&&(r=rW(r._payload)),u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=i,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rV(r)&&"function"==typeof rW&&(r=rW(r._payload));let l=u.Children.toArray(r),i=l.find(rK);if(i){let e=i.props.children,r=l.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rH=Symbol("radix.slottable");function rK(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rH}let rU=rL("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rq=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rB:"button",{className:tf(rU({variant:t,size:r,className:e})),ref:l,...o}));function rY(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tL();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(t$,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rq,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rQ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rX(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function rZ(){let e=await fetch("/api/embeddings");if(!e.ok)throw Error(`Failed to fetch embeddings: ${e.statusText}`);return e.json()}async function rJ(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r0(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({space:"euclidean"===e.viewMode?"euclidean":"hyperbolic",polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r1(){let{samples:e,totalSamples:t,setSamples:r,appendSamples:n,addSamplesIfMissing:o,setDatasetInfo:l,setEmbeddings:i,setIsLoading:s,isLoading:a,error:c,setError:f,selectedIds:p,isLassoSelection:h,lassoQuery:m,lassoSamples:g,lassoTotal:b,lassoIsLoading:y,setLassoResults:v}=tL(),[x,w]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{s(!0),f(null);try{let[e,t,n]=await Promise.all([rQ(),rX(0,100),rZ()]);l(e),r(t.samples,t.total),i(n)}catch(e){console.error("Failed to load data:",e),f(e instanceof Error?e.message:"Failed to load data")}finally{s(!1)}})()},[]),(0,u.useEffect)(()=>{(async()=>{if(h||0===p.size)return;let t=new Set(e.map(e=>e.id)),r=Array.from(p).filter(e=>!t.has(e));if(0!==r.length)try{let e=await rJ(r);o(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[p,e,o,h]),(0,u.useEffect)(()=>{if(!h||!m||!y)return;let e=new AbortController;return(async()=>{try{let t=await r0({viewMode:m.viewMode,polygon:m.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;v(t.samples,t.total,!1)}catch(e){if(e?.name==="AbortError")return;console.error("Failed to fetch lasso selection:",e),v([],0,!1)}})(),()=>e.abort()},[h,y,m,v]);let k=(0,u.useCallback)(async()=>{if(!x){if(h){if(!m||y||!y&&g.length>=b)return;w(!0);try{let e=await r0({viewMode:m.viewMode,polygon:m.polygon,offset:g.length,limit:100});v(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{w(!1)}return}if(!(e.length>=t)){w(!0);try{let t=await rX(e.length,100);n(t.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{w(!1)}}}},[x,n,h,y,m,g.length,b,e.length,t,v]),S=h?g:e,z=h?b:t,j=S.lengthr1],50912)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/__next._full.txt b/src/hyperview/server/static/_not-found/__next._full.txt index c7c3c55..b7156c3 100644 --- a/src/hyperview/server/static/_not-found/__next._full.txt +++ b/src/hyperview/server/static/_not-found/__next._full.txt @@ -7,7 +7,7 @@ 9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"P":null,"b":"Oel6IrA8CsSgwXZSPI61A","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +0:{"P":null,"b":"6WlEYFpQs-g9pqMRTk8sU","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/_not-found/__next._head.txt b/src/hyperview/server/static/_not-found/__next._head.txt index 909881c..bda5c52 100644 --- a/src/hyperview/server/static/_not-found/__next._head.txt +++ b/src/hyperview/server/static/_not-found/__next._head.txt @@ -2,6 +2,6 @@ 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/_not-found/__next._index.txt b/src/hyperview/server/static/_not-found/__next._index.txt index 4f5500a..a6b3c10 100644 --- a/src/hyperview/server/static/_not-found/__next._index.txt +++ b/src/hyperview/server/static/_not-found/__next._index.txt @@ -2,4 +2,4 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt index c01dab0..b252b07 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/src/hyperview/server/static/_not-found/__next._not-found.txt b/src/hyperview/server/static/_not-found/__next._not-found.txt index e4c6fb9..1554d1a 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.txt @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._tree.txt b/src/hyperview/server/static/_not-found/__next._tree.txt index 1589d94..6b304ff 100644 --- a/src/hyperview/server/static/_not-found/__next._tree.txt +++ b/src/hyperview/server/static/_not-found/__next._tree.txt @@ -1,2 +1,2 @@ :HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"buildId":"Oel6IrA8CsSgwXZSPI61A","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_not-found/index.html b/src/hyperview/server/static/_not-found/index.html index 8a12bc0..61eb8b7 100644 --- a/src/hyperview/server/static/_not-found/index.html +++ b/src/hyperview/server/static/_not-found/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/index.txt b/src/hyperview/server/static/_not-found/index.txt index c7c3c55..b7156c3 100644 --- a/src/hyperview/server/static/_not-found/index.txt +++ b/src/hyperview/server/static/_not-found/index.txt @@ -7,7 +7,7 @@ 9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"P":null,"b":"Oel6IrA8CsSgwXZSPI61A","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +0:{"P":null,"b":"6WlEYFpQs-g9pqMRTk8sU","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/index.html b/src/hyperview/server/static/index.html index d038354..8cb537e 100644 --- a/src/hyperview/server/static/index.html +++ b/src/hyperview/server/static/index.html @@ -1 +1 @@ -HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file +HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file diff --git a/src/hyperview/server/static/index.txt b/src/hyperview/server/static/index.txt index f6fc92a..2c13d29 100644 --- a/src/hyperview/server/static/index.txt +++ b/src/hyperview/server/static/index.txt @@ -2,14 +2,14 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] 4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/08706ac30fdde8df.js"],"default"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/799ca86fb297c98a.js"],"default"] 8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"P":null,"b":"Oel6IrA8CsSgwXZSPI61A","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/08706ac30fdde8df.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +0:{"P":null,"b":"6WlEYFpQs-g9pqMRTk8sU","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/799ca86fb297c98a.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] From d521ba5ecd41f01698ac972cefb068f99b03cc88 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 16 Jan 2026 23:17:52 +0100 Subject: [PATCH 25/75] Refactor code structure for improved readability and maintainability --- src/hyperview/api.py | 15 +- src/hyperview/core/dataset.py | 35 +- src/hyperview/embeddings/compute.py | 192 +- uv.lock | 3210 --------------------------- 4 files changed, 110 insertions(+), 3342 deletions(-) delete mode 100644 uv.lock diff --git a/src/hyperview/api.py b/src/hyperview/api.py index 2c60c54..8481c72 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -128,7 +128,7 @@ def start(self, background: bool = True): try: health = _read_health(self._health_url, timeout_s=0.2) - except (URLError, Exception) as exc: + except (URLError, TimeoutError, OSError, ValueError, json.JSONDecodeError) as exc: last_health_error = exc time.sleep(0.05) continue @@ -290,16 +290,11 @@ def _is_notebook() -> bool: """Check if running in a notebook environment.""" try: from IPython import get_ipython + except ImportError: + return False - shell = get_ipython().__class__.__name__ - if shell == "ZMQInteractiveShell": - return True # Jupyter notebook or qtconsole - elif shell == "TerminalInteractiveShell": - return False # Terminal running IPython - else: - return False # Other type (?) - except (ImportError, NameError): - return False # Probably standard Python interpreter + shell = get_ipython() + return shell is not None and shell.__class__.__name__ == "ZMQInteractiveShell" def _is_colab() -> bool: diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 19c1359..15afa58 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -5,7 +5,7 @@ import uuid from collections.abc import Callable, Iterator from pathlib import Path -from typing import Any +from typing import Any, cast import numpy as np from datasets import load_dataset @@ -160,14 +160,14 @@ def add_images_dir( Returns: Number of images added. """ - directory = Path(directory) - if not directory.exists(): - raise ValueError(f"Directory does not exist: {directory}") + directory_path = Path(directory) + if not directory_path.exists(): + raise ValueError(f"Directory does not exist: {directory_path}") samples = [] pattern = "**/*" if recursive else "*" - for path in directory.glob(pattern): + for path in directory_path.glob(pattern): if path.is_file() and path.suffix.lower() in extensions: label = path.parent.name if label_from_folder else None sample_id = hashlib.md5(str(path).encode()).hexdigest()[:12] @@ -234,7 +234,7 @@ def add_from_huggingface( except ImportError: tqdm = None - ds = load_dataset(dataset_name, split=split) + ds = cast(Any, load_dataset(dataset_name, split=split)) # Get label names if available label_names = None @@ -274,7 +274,7 @@ def add_from_huggingface( if isinstance(image, Image.Image): pil_image = image else: - pil_image = Image.fromarray(image) + pil_image = Image.fromarray(np.asarray(image)) # Get label label = None @@ -370,23 +370,36 @@ def add_from_huggingface( def compute_embeddings( self, - model: str = "clip", + model: str = "openai/clip-vit-base-patch32", batch_size: int = 32, show_progress: bool = True, ) -> None: """Compute embeddings for samples that don't have them yet. Args: - model: Embedding model to use. + model: EmbedAnything HuggingFace `model_id` to use. batch_size: Batch size for processing. show_progress: Whether to show progress bar. """ from hyperview.embeddings.compute import EmbeddingComputer + all_samples = self._storage.get_all_samples() + if self._embedding_computer is None: self._embedding_computer = EmbeddingComputer(model=model) - - all_samples = self._storage.get_all_samples() + else: + existing_model_id = getattr(self._embedding_computer, "model_id", None) + if existing_model_id and existing_model_id != model: + if any(s.embedding is not None for s in all_samples): + raise ValueError( + "Embeddings already exist for this dataset, but " + "compute_embeddings() was called with a different model_id. " + f"Existing model_id={existing_model_id!r}, requested model_id={model!r}. " + "Create a new Dataset or clear existing embeddings before recomputing." + ) + + # No existing embeddings yet: allow switching models. + self._embedding_computer = EmbeddingComputer(model=model) # Only compute for samples without embeddings samples_needing_embeddings = [s for s in all_samples if s.embedding is None] diff --git a/src/hyperview/embeddings/compute.py b/src/hyperview/embeddings/compute.py index af278cc..f0e7d3b 100644 --- a/src/hyperview/embeddings/compute.py +++ b/src/hyperview/embeddings/compute.py @@ -1,101 +1,96 @@ -"""Embedding computation using EmbedAnything.""" +"""Image embedding computation via EmbedAnything. + +This module is intentionally minimal: +- Callers pass a HuggingFace `model_id` string. +- We delegate model loading + inference to EmbedAnything. + +""" import os import tempfile +from pathlib import Path +from typing import Any -import embed_anything import numpy as np -from embed_anything import EmbeddingModel, WhichModel +from embed_anything import EmbeddingModel from PIL import Image -try: - from tqdm import tqdm -except ImportError: - tqdm = None - from hyperview.core.sample import Sample +tqdm: Any | None = None +try: + from tqdm import tqdm as tqdm_impl +except ImportError: # pragma: no cover + pass +else: + tqdm = tqdm_impl + class EmbeddingComputer: - """Compute embeddings for images using EmbedAnything.""" + """Compute embeddings for image samples using EmbedAnything.""" - def __init__(self, model: str = "clip"): + def __init__(self, model: str): """Initialize the embedding computer. Args: - model: Model to use for embeddings. + model: HuggingFace model ID to load via EmbedAnything. """ - self.model_name = model - self._model = None - self._initialized = False - - def _init_model(self) -> None: - """Lazily initialize the model.""" - if self._initialized: - return - # Use CLIP model by default - self._model = EmbeddingModel.from_pretrained_hf( - WhichModel.Clip, - model_id="openai/clip-vit-base-patch32", - ) - self._embed_anything = embed_anything - self._initialized = True + if not model or not model.strip(): + raise ValueError("model must be a non-empty HuggingFace model_id") - def _load_rgb_image(self, sample: Sample) -> Image.Image: - """Load an image and ensure it is in RGB mode.""" - image = sample.load_image() - if image.mode != "RGB": - image = image.convert("RGB") - return image + self.model_id = model + self._model: EmbeddingModel | None = None - def _embed_with_model( - self, - sample: Sample, - image: Image.Image | None = None, - ) -> np.ndarray | None: - """Attempt to embed a sample via embed_anything, handling memory-backed files.""" - path = sample.filepath - temp_path: str | None = None + def _get_model(self) -> EmbeddingModel: + """Lazily initialize the EmbedAnything model.""" + if self._model is None: + self._model = EmbeddingModel.from_pretrained_hf(model_id=self.model_id) + return self._model + + def _load_rgb_image(self, sample: Sample) -> Image.Image: + """Load an image and normalize it to RGB. + For file-backed samples, returns an in-memory copy and closes the file + handle immediately to avoid leaking descriptors during batch processing. + """ + with sample.load_image() as img: + img.load() + if img.mode != "RGB": + return img.convert("RGB") + return img.copy() + + def _embed_file(self, file_path: str) -> np.ndarray: + model = self._get_model() + result = model.embed_file(file_path) + + if not result: + raise RuntimeError(f"EmbedAnything returned no embeddings for: {file_path}") + if len(result) != 1: + raise RuntimeError( + f"Expected 1 embedding for an image file, got {len(result)}: {file_path}" + ) + + return np.asarray(result[0].embedding, dtype=np.float32) + + def _embed_pil_image(self, image: Image.Image) -> np.ndarray: + temp_fd, temp_path = tempfile.mkstemp(suffix=".png") + os.close(temp_fd) try: - if path.startswith("memory://"): - if image is None: - image = self._load_rgb_image(sample) - temp_file = tempfile.NamedTemporaryFile(suffix=".png", delete=False) - image.save(temp_file, format="PNG") - temp_file.close() - temp_path = temp_file.name - path = temp_path - - result = self._embed_anything.embed_file(path, embedder=self._model) - if result: - return np.array(result[0].embedding, dtype=np.float32) + image.save(temp_path, format="PNG") + return self._embed_file(temp_path) finally: - if temp_path and os.path.exists(temp_path): - os.remove(temp_path) - - return None + Path(temp_path).unlink(missing_ok=True) def compute_single(self, sample: Sample) -> np.ndarray: - """Compute embedding for a single sample. - - Args: - sample: Sample to compute embedding for. - - Returns: - Embedding as numpy array. - """ - self._init_model() - - pil_image = None - if sample.filepath.startswith("memory://"): - pil_image = self._load_rgb_image(sample) - - embedding = self._embed_with_model(sample, image=pil_image) - if embedding is None: - raise RuntimeError(f"Failed to compute embedding for sample {sample.id}") - - return embedding + """Compute embedding for a single sample.""" + try: + image = self._load_rgb_image(sample) + return self._embed_pil_image(image) + except Exception as exc: + raise RuntimeError( + f"Failed to compute embedding for sample {sample.id} " + f"(filepath={sample.filepath}, model_id={self.model_id})" + ) from exc def compute_batch( self, @@ -103,46 +98,21 @@ def compute_batch( batch_size: int = 32, show_progress: bool = True, ) -> list[np.ndarray]: - """Compute embeddings for a batch of samples. - - Args: - samples: List of samples to compute embeddings for. - batch_size: Number of samples to process at once. - show_progress: Whether to show a progress bar. + """Compute embeddings for a list of samples.""" + if batch_size <= 0: + raise ValueError("batch_size must be > 0") - Returns: - List of embeddings as numpy arrays. - """ - self._init_model() + # Prime model init so download errors happen before work starts. + self._get_model() - embeddings = [] total = len(samples) + iterator = samples - if show_progress and tqdm is not None: - iterator = tqdm(range(0, total, batch_size), desc="Computing embeddings") - else: - if show_progress and tqdm is None: + if show_progress: + if tqdm is not None: + iterator = tqdm(samples, total=total, desc="Computing embeddings") + else: print(f"Computing embeddings for {total} samples...") - iterator = range(0, total, batch_size) - - for i in iterator: - batch = samples[i : i + batch_size] - batch_embeddings = [] - - for sample in batch: - pil_image = None - if sample.filepath.startswith("memory://"): - pil_image = self._load_rgb_image(sample) - - embedding = self._embed_with_model(sample, image=pil_image) - if embedding is None: - raise RuntimeError( - f"Failed to compute embedding for sample {sample.id}" - ) - - batch_embeddings.append(embedding) - - embeddings.extend(batch_embeddings) - return embeddings + return [self.compute_single(sample) for sample in iterator] diff --git a/uv.lock b/uv.lock deleted file mode 100644 index 56230ae..0000000 --- a/uv.lock +++ /dev/null @@ -1,3210 +0,0 @@ -version = 1 -requires-python = ">=3.10" -resolution-markers = [ - "python_full_version == '3.11.*'", - "python_full_version >= '3.12'", - "python_full_version < '3.11'", -] - -[[package]] -name = "aiofiles" -version = "25.1.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/41/c3/534eac40372d8ee36ef40df62ec129bee4fdb5ad9706e58a29be53b2c970/aiofiles-25.1.0.tar.gz", hash = "sha256:a8d728f0a29de45dc521f18f07297428d56992a742f0cd2701ba86e44d23d5b2", size = 46354 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/8a/340a1555ae33d7354dbca4faa54948d76d89a27ceef032c8c3bc661d003e/aiofiles-25.1.0-py3-none-any.whl", hash = "sha256:abe311e527c862958650f9438e859c1fa7568a141b22abcd015e120e86a85695", size = 14668 }, -] - -[[package]] -name = "aiohappyeyeballs" -version = "2.6.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265 }, -] - -[[package]] -name = "aiohttp" -version = "3.13.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "aiohappyeyeballs" }, - { name = "aiosignal" }, - { name = "async-timeout", marker = "python_full_version < '3.11'" }, - { name = "attrs" }, - { name = "frozenlist" }, - { name = "multidict" }, - { name = "propcache" }, - { name = "yarl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/1c/ce/3b83ebba6b3207a7135e5fcaba49706f8a4b6008153b4e30540c982fae26/aiohttp-3.13.2.tar.gz", hash = "sha256:40176a52c186aefef6eb3cad2cdd30cd06e3afbe88fe8ab2af9c0b90f228daca", size = 7837994 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/34/939730e66b716b76046dedfe0842995842fa906ccc4964bba414ff69e429/aiohttp-3.13.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2372b15a5f62ed37789a6b383ff7344fc5b9f243999b0cd9b629d8bc5f5b4155", size = 736471 }, - { url = "https://files.pythonhosted.org/packages/fd/cf/dcbdf2df7f6ca72b0bb4c0b4509701f2d8942cf54e29ca197389c214c07f/aiohttp-3.13.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e7f8659a48995edee7229522984bd1009c1213929c769c2daa80b40fe49a180c", size = 493985 }, - { url = "https://files.pythonhosted.org/packages/9d/87/71c8867e0a1d0882dcbc94af767784c3cb381c1c4db0943ab4aae4fed65e/aiohttp-3.13.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:939ced4a7add92296b0ad38892ce62b98c619288a081170695c6babe4f50e636", size = 489274 }, - { url = "https://files.pythonhosted.org/packages/38/0f/46c24e8dae237295eaadd113edd56dee96ef6462adf19b88592d44891dc5/aiohttp-3.13.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6315fb6977f1d0dd41a107c527fee2ed5ab0550b7d885bc15fee20ccb17891da", size = 1668171 }, - { url = "https://files.pythonhosted.org/packages/eb/c6/4cdfb4440d0e28483681a48f69841fa5e39366347d66ef808cbdadddb20e/aiohttp-3.13.2-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6e7352512f763f760baaed2637055c49134fd1d35b37c2dedfac35bfe5cf8725", size = 1636036 }, - { url = "https://files.pythonhosted.org/packages/84/37/8708cf678628216fb678ab327a4e1711c576d6673998f4f43e86e9ae90dd/aiohttp-3.13.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e09a0a06348a2dd73e7213353c90d709502d9786219f69b731f6caa0efeb46f5", size = 1727975 }, - { url = "https://files.pythonhosted.org/packages/e6/2e/3ebfe12fdcb9b5f66e8a0a42dffcd7636844c8a018f261efb2419f68220b/aiohttp-3.13.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a09a6d073fb5789456545bdee2474d14395792faa0527887f2f4ec1a486a59d3", size = 1815823 }, - { url = "https://files.pythonhosted.org/packages/a1/4f/ca2ef819488cbb41844c6cf92ca6dd15b9441e6207c58e5ae0e0fc8d70ad/aiohttp-3.13.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b59d13c443f8e049d9e94099c7e412e34610f1f49be0f230ec656a10692a5802", size = 1669374 }, - { url = "https://files.pythonhosted.org/packages/f8/fe/1fe2e1179a0d91ce09c99069684aab619bf2ccde9b20bd6ca44f8837203e/aiohttp-3.13.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:20db2d67985d71ca033443a1ba2001c4b5693fe09b0e29f6d9358a99d4d62a8a", size = 1555315 }, - { url = "https://files.pythonhosted.org/packages/5a/2b/f3781899b81c45d7cbc7140cddb8a3481c195e7cbff8e36374759d2ab5a5/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:960c2fc686ba27b535f9fd2b52d87ecd7e4fd1cf877f6a5cba8afb5b4a8bd204", size = 1639140 }, - { url = "https://files.pythonhosted.org/packages/72/27/c37e85cd3ece6f6c772e549bd5a253d0c122557b25855fb274224811e4f2/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6c00dbcf5f0d88796151e264a8eab23de2997c9303dd7c0bf622e23b24d3ce22", size = 1645496 }, - { url = "https://files.pythonhosted.org/packages/66/20/3af1ab663151bd3780b123e907761cdb86ec2c4e44b2d9b195ebc91fbe37/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fed38a5edb7945f4d1bcabe2fcd05db4f6ec7e0e82560088b754f7e08d93772d", size = 1697625 }, - { url = "https://files.pythonhosted.org/packages/95/eb/ae5cab15efa365e13d56b31b0d085a62600298bf398a7986f8388f73b598/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:b395bbca716c38bef3c764f187860e88c724b342c26275bc03e906142fc5964f", size = 1542025 }, - { url = "https://files.pythonhosted.org/packages/e9/2d/1683e8d67ec72d911397fe4e575688d2a9b8f6a6e03c8fdc9f3fd3d4c03f/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:204ffff2426c25dfda401ba08da85f9c59525cdc42bda26660463dd1cbcfec6f", size = 1714918 }, - { url = "https://files.pythonhosted.org/packages/99/a2/ffe8e0e1c57c5e542d47ffa1fcf95ef2b3ea573bf7c4d2ee877252431efc/aiohttp-3.13.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:05c4dd3c48fb5f15db31f57eb35374cb0c09afdde532e7fb70a75aede0ed30f6", size = 1656113 }, - { url = "https://files.pythonhosted.org/packages/0d/42/d511aff5c3a2b06c09d7d214f508a4ad8ac7799817f7c3d23e7336b5e896/aiohttp-3.13.2-cp310-cp310-win32.whl", hash = "sha256:e574a7d61cf10351d734bcddabbe15ede0eaa8a02070d85446875dc11189a251", size = 432290 }, - { url = "https://files.pythonhosted.org/packages/8b/ea/1c2eb7098b5bad4532994f2b7a8228d27674035c9b3234fe02c37469ef14/aiohttp-3.13.2-cp310-cp310-win_amd64.whl", hash = "sha256:364f55663085d658b8462a1c3f17b2b84a5c2e1ba858e1b79bff7b2e24ad1514", size = 455075 }, - { url = "https://files.pythonhosted.org/packages/35/74/b321e7d7ca762638cdf8cdeceb39755d9c745aff7a64c8789be96ddf6e96/aiohttp-3.13.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4647d02df098f6434bafd7f32ad14942f05a9caa06c7016fdcc816f343997dd0", size = 743409 }, - { url = "https://files.pythonhosted.org/packages/99/3d/91524b905ec473beaf35158d17f82ef5a38033e5809fe8742e3657cdbb97/aiohttp-3.13.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e3403f24bcb9c3b29113611c3c16a2a447c3953ecf86b79775e7be06f7ae7ccb", size = 497006 }, - { url = "https://files.pythonhosted.org/packages/eb/d3/7f68bc02a67716fe80f063e19adbd80a642e30682ce74071269e17d2dba1/aiohttp-3.13.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:43dff14e35aba17e3d6d5ba628858fb8cb51e30f44724a2d2f0c75be492c55e9", size = 493195 }, - { url = "https://files.pythonhosted.org/packages/98/31/913f774a4708775433b7375c4f867d58ba58ead833af96c8af3621a0d243/aiohttp-3.13.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e2a9ea08e8c58bb17655630198833109227dea914cd20be660f52215f6de5613", size = 1747759 }, - { url = "https://files.pythonhosted.org/packages/e8/63/04efe156f4326f31c7c4a97144f82132c3bb21859b7bb84748d452ccc17c/aiohttp-3.13.2-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53b07472f235eb80e826ad038c9d106c2f653584753f3ddab907c83f49eedead", size = 1704456 }, - { url = "https://files.pythonhosted.org/packages/8e/02/4e16154d8e0a9cf4ae76f692941fd52543bbb148f02f098ca73cab9b1c1b/aiohttp-3.13.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e736c93e9c274fce6419af4aac199984d866e55f8a4cec9114671d0ea9688780", size = 1807572 }, - { url = "https://files.pythonhosted.org/packages/34/58/b0583defb38689e7f06798f0285b1ffb3a6fb371f38363ce5fd772112724/aiohttp-3.13.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ff5e771f5dcbc81c64898c597a434f7682f2259e0cd666932a913d53d1341d1a", size = 1895954 }, - { url = "https://files.pythonhosted.org/packages/6b/f3/083907ee3437425b4e376aa58b2c915eb1a33703ec0dc30040f7ae3368c6/aiohttp-3.13.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a3b6fb0c207cc661fa0bf8c66d8d9b657331ccc814f4719468af61034b478592", size = 1747092 }, - { url = "https://files.pythonhosted.org/packages/ac/61/98a47319b4e425cc134e05e5f3fc512bf9a04bf65aafd9fdcda5d57ec693/aiohttp-3.13.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:97a0895a8e840ab3520e2288db7cace3a1981300d48babeb50e7425609e2e0ab", size = 1606815 }, - { url = "https://files.pythonhosted.org/packages/97/4b/e78b854d82f66bb974189135d31fce265dee0f5344f64dd0d345158a5973/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9e8f8afb552297aca127c90cb840e9a1d4bfd6a10d7d8f2d9176e1acc69bad30", size = 1723789 }, - { url = "https://files.pythonhosted.org/packages/ed/fc/9d2ccc794fc9b9acd1379d625c3a8c64a45508b5091c546dea273a41929e/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:ed2f9c7216e53c3df02264f25d824b079cc5914f9e2deba94155190ef648ee40", size = 1718104 }, - { url = "https://files.pythonhosted.org/packages/66/65/34564b8765ea5c7d79d23c9113135d1dd3609173da13084830f1507d56cf/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:99c5280a329d5fa18ef30fd10c793a190d996567667908bef8a7f81f8202b948", size = 1785584 }, - { url = "https://files.pythonhosted.org/packages/30/be/f6a7a426e02fc82781afd62016417b3948e2207426d90a0e478790d1c8a4/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2ca6ffef405fc9c09a746cb5d019c1672cd7f402542e379afc66b370833170cf", size = 1595126 }, - { url = "https://files.pythonhosted.org/packages/e5/c7/8e22d5d28f94f67d2af496f14a83b3c155d915d1fe53d94b66d425ec5b42/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:47f438b1a28e926c37632bff3c44df7d27c9b57aaf4e34b1def3c07111fdb782", size = 1800665 }, - { url = "https://files.pythonhosted.org/packages/d1/11/91133c8b68b1da9fc16555706aa7276fdf781ae2bb0876c838dd86b8116e/aiohttp-3.13.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9acda8604a57bb60544e4646a4615c1866ee6c04a8edef9b8ee6fd1d8fa2ddc8", size = 1739532 }, - { url = "https://files.pythonhosted.org/packages/17/6b/3747644d26a998774b21a616016620293ddefa4d63af6286f389aedac844/aiohttp-3.13.2-cp311-cp311-win32.whl", hash = "sha256:868e195e39b24aaa930b063c08bb0c17924899c16c672a28a65afded9c46c6ec", size = 431876 }, - { url = "https://files.pythonhosted.org/packages/c3/63/688462108c1a00eb9f05765331c107f95ae86f6b197b865d29e930b7e462/aiohttp-3.13.2-cp311-cp311-win_amd64.whl", hash = "sha256:7fd19df530c292542636c2a9a85854fab93474396a52f1695e799186bbd7f24c", size = 456205 }, - { url = "https://files.pythonhosted.org/packages/29/9b/01f00e9856d0a73260e86dd8ed0c2234a466c5c1712ce1c281548df39777/aiohttp-3.13.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b1e56bab2e12b2b9ed300218c351ee2a3d8c8fdab5b1ec6193e11a817767e47b", size = 737623 }, - { url = "https://files.pythonhosted.org/packages/5a/1b/4be39c445e2b2bd0aab4ba736deb649fabf14f6757f405f0c9685019b9e9/aiohttp-3.13.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:364e25edaabd3d37b1db1f0cbcee8c73c9a3727bfa262b83e5e4cf3489a2a9dc", size = 492664 }, - { url = "https://files.pythonhosted.org/packages/28/66/d35dcfea8050e131cdd731dff36434390479b4045a8d0b9d7111b0a968f1/aiohttp-3.13.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c5c94825f744694c4b8db20b71dba9a257cd2ba8e010a803042123f3a25d50d7", size = 491808 }, - { url = "https://files.pythonhosted.org/packages/00/29/8e4609b93e10a853b65f8291e64985de66d4f5848c5637cddc70e98f01f8/aiohttp-3.13.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba2715d842ffa787be87cbfce150d5e88c87a98e0b62e0f5aa489169a393dbbb", size = 1738863 }, - { url = "https://files.pythonhosted.org/packages/9d/fa/4ebdf4adcc0def75ced1a0d2d227577cd7b1b85beb7edad85fcc87693c75/aiohttp-3.13.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:585542825c4bc662221fb257889e011a5aa00f1ae4d75d1d246a5225289183e3", size = 1700586 }, - { url = "https://files.pythonhosted.org/packages/da/04/73f5f02ff348a3558763ff6abe99c223381b0bace05cd4530a0258e52597/aiohttp-3.13.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:39d02cb6025fe1aabca329c5632f48c9532a3dabccd859e7e2f110668972331f", size = 1768625 }, - { url = "https://files.pythonhosted.org/packages/f8/49/a825b79ffec124317265ca7d2344a86bcffeb960743487cb11988ffb3494/aiohttp-3.13.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e67446b19e014d37342f7195f592a2a948141d15a312fe0e700c2fd2f03124f6", size = 1867281 }, - { url = "https://files.pythonhosted.org/packages/b9/48/adf56e05f81eac31edcfae45c90928f4ad50ef2e3ea72cb8376162a368f8/aiohttp-3.13.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4356474ad6333e41ccefd39eae869ba15a6c5299c9c01dfdcfdd5c107be4363e", size = 1752431 }, - { url = "https://files.pythonhosted.org/packages/30/ab/593855356eead019a74e862f21523db09c27f12fd24af72dbc3555b9bfd9/aiohttp-3.13.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:eeacf451c99b4525f700f078becff32c32ec327b10dcf31306a8a52d78166de7", size = 1562846 }, - { url = "https://files.pythonhosted.org/packages/39/0f/9f3d32271aa8dc35036e9668e31870a9d3b9542dd6b3e2c8a30931cb27ae/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8a9b889aeabd7a4e9af0b7f4ab5ad94d42e7ff679aaec6d0db21e3b639ad58d", size = 1699606 }, - { url = "https://files.pythonhosted.org/packages/2c/3c/52d2658c5699b6ef7692a3f7128b2d2d4d9775f2a68093f74bca06cf01e1/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:fa89cb11bc71a63b69568d5b8a25c3ca25b6d54c15f907ca1c130d72f320b76b", size = 1720663 }, - { url = "https://files.pythonhosted.org/packages/9b/d4/8f8f3ff1fb7fb9e3f04fcad4e89d8a1cd8fc7d05de67e3de5b15b33008ff/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8aa7c807df234f693fed0ecd507192fc97692e61fee5702cdc11155d2e5cadc8", size = 1737939 }, - { url = "https://files.pythonhosted.org/packages/03/d3/ddd348f8a27a634daae39a1b8e291ff19c77867af438af844bf8b7e3231b/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:9eb3e33fdbe43f88c3c75fa608c25e7c47bbd80f48d012763cb67c47f39a7e16", size = 1555132 }, - { url = "https://files.pythonhosted.org/packages/39/b8/46790692dc46218406f94374903ba47552f2f9f90dad554eed61bfb7b64c/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9434bc0d80076138ea986833156c5a48c9c7a8abb0c96039ddbb4afc93184169", size = 1764802 }, - { url = "https://files.pythonhosted.org/packages/ba/e4/19ce547b58ab2a385e5f0b8aa3db38674785085abcf79b6e0edd1632b12f/aiohttp-3.13.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ff15c147b2ad66da1f2cbb0622313f2242d8e6e8f9b79b5206c84523a4473248", size = 1719512 }, - { url = "https://files.pythonhosted.org/packages/70/30/6355a737fed29dcb6dfdd48682d5790cb5eab050f7b4e01f49b121d3acad/aiohttp-3.13.2-cp312-cp312-win32.whl", hash = "sha256:27e569eb9d9e95dbd55c0fc3ec3a9335defbf1d8bc1d20171a49f3c4c607b93e", size = 426690 }, - { url = "https://files.pythonhosted.org/packages/0a/0d/b10ac09069973d112de6ef980c1f6bb31cb7dcd0bc363acbdad58f927873/aiohttp-3.13.2-cp312-cp312-win_amd64.whl", hash = "sha256:8709a0f05d59a71f33fd05c17fc11fcb8c30140506e13c2f5e8ee1b8964e1b45", size = 453465 }, - { url = "https://files.pythonhosted.org/packages/bf/78/7e90ca79e5aa39f9694dcfd74f4720782d3c6828113bb1f3197f7e7c4a56/aiohttp-3.13.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7519bdc7dfc1940d201651b52bf5e03f5503bda45ad6eacf64dda98be5b2b6be", size = 732139 }, - { url = "https://files.pythonhosted.org/packages/db/ed/1f59215ab6853fbaa5c8495fa6cbc39edfc93553426152b75d82a5f32b76/aiohttp-3.13.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:088912a78b4d4f547a1f19c099d5a506df17eacec3c6f4375e2831ec1d995742", size = 490082 }, - { url = "https://files.pythonhosted.org/packages/68/7b/fe0fe0f5e05e13629d893c760465173a15ad0039c0a5b0d0040995c8075e/aiohttp-3.13.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5276807b9de9092af38ed23ce120539ab0ac955547b38563a9ba4f5b07b95293", size = 489035 }, - { url = "https://files.pythonhosted.org/packages/d2/04/db5279e38471b7ac801d7d36a57d1230feeee130bbe2a74f72731b23c2b1/aiohttp-3.13.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1237c1375eaef0db4dcd7c2559f42e8af7b87ea7d295b118c60c36a6e61cb811", size = 1720387 }, - { url = "https://files.pythonhosted.org/packages/31/07/8ea4326bd7dae2bd59828f69d7fdc6e04523caa55e4a70f4a8725a7e4ed2/aiohttp-3.13.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:96581619c57419c3d7d78703d5b78c1e5e5fc0172d60f555bdebaced82ded19a", size = 1688314 }, - { url = "https://files.pythonhosted.org/packages/48/ab/3d98007b5b87ffd519d065225438cc3b668b2f245572a8cb53da5dd2b1bc/aiohttp-3.13.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a2713a95b47374169409d18103366de1050fe0ea73db358fc7a7acb2880422d4", size = 1756317 }, - { url = "https://files.pythonhosted.org/packages/97/3d/801ca172b3d857fafb7b50c7c03f91b72b867a13abca982ed6b3081774ef/aiohttp-3.13.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:228a1cd556b3caca590e9511a89444925da87d35219a49ab5da0c36d2d943a6a", size = 1858539 }, - { url = "https://files.pythonhosted.org/packages/f7/0d/4764669bdf47bd472899b3d3db91fffbe925c8e3038ec591a2fd2ad6a14d/aiohttp-3.13.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac6cde5fba8d7d8c6ac963dbb0256a9854e9fafff52fbcc58fdf819357892c3e", size = 1739597 }, - { url = "https://files.pythonhosted.org/packages/c4/52/7bd3c6693da58ba16e657eb904a5b6decfc48ecd06e9ac098591653b1566/aiohttp-3.13.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f2bef8237544f4e42878c61cef4e2839fee6346dc60f5739f876a9c50be7fcdb", size = 1555006 }, - { url = "https://files.pythonhosted.org/packages/48/30/9586667acec5993b6f41d2ebcf96e97a1255a85f62f3c653110a5de4d346/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:16f15a4eac3bc2d76c45f7ebdd48a65d41b242eb6c31c2245463b40b34584ded", size = 1683220 }, - { url = "https://files.pythonhosted.org/packages/71/01/3afe4c96854cfd7b30d78333852e8e851dceaec1c40fd00fec90c6402dd2/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:bb7fb776645af5cc58ab804c58d7eba545a97e047254a52ce89c157b5af6cd0b", size = 1712570 }, - { url = "https://files.pythonhosted.org/packages/11/2c/22799d8e720f4697a9e66fd9c02479e40a49de3de2f0bbe7f9f78a987808/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e1b4951125ec10c70802f2cb09736c895861cd39fd9dcb35107b4dc8ae6220b8", size = 1733407 }, - { url = "https://files.pythonhosted.org/packages/34/cb/90f15dd029f07cebbd91f8238a8b363978b530cd128488085b5703683594/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:550bf765101ae721ee1d37d8095f47b1f220650f85fe1af37a90ce75bab89d04", size = 1550093 }, - { url = "https://files.pythonhosted.org/packages/69/46/12dce9be9d3303ecbf4d30ad45a7683dc63d90733c2d9fe512be6716cd40/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fe91b87fc295973096251e2d25a811388e7d8adf3bd2b97ef6ae78bc4ac6c476", size = 1758084 }, - { url = "https://files.pythonhosted.org/packages/f9/c8/0932b558da0c302ffd639fc6362a313b98fdf235dc417bc2493da8394df7/aiohttp-3.13.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e0c8e31cfcc4592cb200160344b2fb6ae0f9e4effe06c644b5a125d4ae5ebe23", size = 1716987 }, - { url = "https://files.pythonhosted.org/packages/5d/8b/f5bd1a75003daed099baec373aed678f2e9b34f2ad40d85baa1368556396/aiohttp-3.13.2-cp313-cp313-win32.whl", hash = "sha256:0740f31a60848d6edb296a0df827473eede90c689b8f9f2a4cdde74889eb2254", size = 425859 }, - { url = "https://files.pythonhosted.org/packages/5d/28/a8a9fc6957b2cee8902414e41816b5ab5536ecf43c3b1843c10e82c559b2/aiohttp-3.13.2-cp313-cp313-win_amd64.whl", hash = "sha256:a88d13e7ca367394908f8a276b89d04a3652044612b9a408a0bb22a5ed976a1a", size = 452192 }, - { url = "https://files.pythonhosted.org/packages/9b/36/e2abae1bd815f01c957cbf7be817b3043304e1c87bad526292a0410fdcf9/aiohttp-3.13.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2475391c29230e063ef53a66669b7b691c9bfc3f1426a0f7bcdf1216bdbac38b", size = 735234 }, - { url = "https://files.pythonhosted.org/packages/ca/e3/1ee62dde9b335e4ed41db6bba02613295a0d5b41f74a783c142745a12763/aiohttp-3.13.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f33c8748abef4d8717bb20e8fb1b3e07c6adacb7fd6beaae971a764cf5f30d61", size = 490733 }, - { url = "https://files.pythonhosted.org/packages/1a/aa/7a451b1d6a04e8d15a362af3e9b897de71d86feac3babf8894545d08d537/aiohttp-3.13.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ae32f24bbfb7dbb485a24b30b1149e2f200be94777232aeadba3eecece4d0aa4", size = 491303 }, - { url = "https://files.pythonhosted.org/packages/57/1e/209958dbb9b01174870f6a7538cd1f3f28274fdbc88a750c238e2c456295/aiohttp-3.13.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d7f02042c1f009ffb70067326ef183a047425bb2ff3bc434ead4dd4a4a66a2b", size = 1717965 }, - { url = "https://files.pythonhosted.org/packages/08/aa/6a01848d6432f241416bc4866cae8dc03f05a5a884d2311280f6a09c73d6/aiohttp-3.13.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:93655083005d71cd6c072cdab54c886e6570ad2c4592139c3fb967bfc19e4694", size = 1667221 }, - { url = "https://files.pythonhosted.org/packages/87/4f/36c1992432d31bbc789fa0b93c768d2e9047ec8c7177e5cd84ea85155f36/aiohttp-3.13.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0db1e24b852f5f664cd728db140cf11ea0e82450471232a394b3d1a540b0f906", size = 1757178 }, - { url = "https://files.pythonhosted.org/packages/ac/b4/8e940dfb03b7e0f68a82b88fd182b9be0a65cb3f35612fe38c038c3112cf/aiohttp-3.13.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b009194665bcd128e23eaddef362e745601afa4641930848af4c8559e88f18f9", size = 1838001 }, - { url = "https://files.pythonhosted.org/packages/d7/ef/39f3448795499c440ab66084a9db7d20ca7662e94305f175a80f5b7e0072/aiohttp-3.13.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c038a8fdc8103cd51dbd986ecdce141473ffd9775a7a8057a6ed9c3653478011", size = 1716325 }, - { url = "https://files.pythonhosted.org/packages/d7/51/b311500ffc860b181c05d91c59a1313bdd05c82960fdd4035a15740d431e/aiohttp-3.13.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66bac29b95a00db411cd758fea0e4b9bdba6d549dfe333f9a945430f5f2cc5a6", size = 1547978 }, - { url = "https://files.pythonhosted.org/packages/31/64/b9d733296ef79815226dab8c586ff9e3df41c6aff2e16c06697b2d2e6775/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4ebf9cfc9ba24a74cf0718f04aac2a3bbe745902cc7c5ebc55c0f3b5777ef213", size = 1682042 }, - { url = "https://files.pythonhosted.org/packages/3f/30/43d3e0f9d6473a6db7d472104c4eff4417b1e9df01774cb930338806d36b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:a4b88ebe35ce54205c7074f7302bd08a4cb83256a3e0870c72d6f68a3aaf8e49", size = 1680085 }, - { url = "https://files.pythonhosted.org/packages/16/51/c709f352c911b1864cfd1087577760ced64b3e5bee2aa88b8c0c8e2e4972/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:98c4fb90bb82b70a4ed79ca35f656f4281885be076f3f970ce315402b53099ae", size = 1728238 }, - { url = "https://files.pythonhosted.org/packages/19/e2/19bd4c547092b773caeb48ff5ae4b1ae86756a0ee76c16727fcfd281404b/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:ec7534e63ae0f3759df3a1ed4fa6bc8f75082a924b590619c0dd2f76d7043caa", size = 1544395 }, - { url = "https://files.pythonhosted.org/packages/cf/87/860f2803b27dfc5ed7be532832a3498e4919da61299b4a1f8eb89b8ff44d/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5b927cf9b935a13e33644cbed6c8c4b2d0f25b713d838743f8fe7191b33829c4", size = 1742965 }, - { url = "https://files.pythonhosted.org/packages/67/7f/db2fc7618925e8c7a601094d5cbe539f732df4fb570740be88ed9e40e99a/aiohttp-3.13.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:88d6c017966a78c5265d996c19cdb79235be5e6412268d7e2ce7dee339471b7a", size = 1697585 }, - { url = "https://files.pythonhosted.org/packages/0c/07/9127916cb09bb38284db5036036042b7b2c514c8ebaeee79da550c43a6d6/aiohttp-3.13.2-cp314-cp314-win32.whl", hash = "sha256:f7c183e786e299b5d6c49fb43a769f8eb8e04a2726a2bd5887b98b5cc2d67940", size = 431621 }, - { url = "https://files.pythonhosted.org/packages/fb/41/554a8a380df6d3a2bba8a7726429a23f4ac62aaf38de43bb6d6cde7b4d4d/aiohttp-3.13.2-cp314-cp314-win_amd64.whl", hash = "sha256:fe242cd381e0fb65758faf5ad96c2e460df6ee5b2de1072fe97e4127927e00b4", size = 457627 }, - { url = "https://files.pythonhosted.org/packages/c7/8e/3824ef98c039d3951cb65b9205a96dd2b20f22241ee17d89c5701557c826/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:f10d9c0b0188fe85398c61147bbd2a657d616c876863bfeff43376e0e3134673", size = 767360 }, - { url = "https://files.pythonhosted.org/packages/a4/0f/6a03e3fc7595421274fa34122c973bde2d89344f8a881b728fa8c774e4f1/aiohttp-3.13.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:e7c952aefdf2460f4ae55c5e9c3e80aa72f706a6317e06020f80e96253b1accd", size = 504616 }, - { url = "https://files.pythonhosted.org/packages/c6/aa/ed341b670f1bc8a6f2c6a718353d13b9546e2cef3544f573c6a1ff0da711/aiohttp-3.13.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c20423ce14771d98353d2e25e83591fa75dfa90a3c1848f3d7c68243b4fbded3", size = 509131 }, - { url = "https://files.pythonhosted.org/packages/7f/f0/c68dac234189dae5c4bbccc0f96ce0cc16b76632cfc3a08fff180045cfa4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e96eb1a34396e9430c19d8338d2ec33015e4a87ef2b4449db94c22412e25ccdf", size = 1864168 }, - { url = "https://files.pythonhosted.org/packages/8f/65/75a9a76db8364b5d0e52a0c20eabc5d52297385d9af9c35335b924fafdee/aiohttp-3.13.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:23fb0783bc1a33640036465019d3bba069942616a6a2353c6907d7fe1ccdaf4e", size = 1719200 }, - { url = "https://files.pythonhosted.org/packages/f5/55/8df2ed78d7f41d232f6bd3ff866b6f617026551aa1d07e2f03458f964575/aiohttp-3.13.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2e1a9bea6244a1d05a4e57c295d69e159a5c50d8ef16aa390948ee873478d9a5", size = 1843497 }, - { url = "https://files.pythonhosted.org/packages/e9/e0/94d7215e405c5a02ccb6a35c7a3a6cfff242f457a00196496935f700cde5/aiohttp-3.13.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0a3d54e822688b56e9f6b5816fb3de3a3a64660efac64e4c2dc435230ad23bad", size = 1935703 }, - { url = "https://files.pythonhosted.org/packages/0b/78/1eeb63c3f9b2d1015a4c02788fb543141aad0a03ae3f7a7b669b2483f8d4/aiohttp-3.13.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7a653d872afe9f33497215745da7a943d1dc15b728a9c8da1c3ac423af35178e", size = 1792738 }, - { url = "https://files.pythonhosted.org/packages/41/75/aaf1eea4c188e51538c04cc568040e3082db263a57086ea74a7d38c39e42/aiohttp-3.13.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:56d36e80d2003fa3fc0207fac644216d8532e9504a785ef9a8fd013f84a42c61", size = 1624061 }, - { url = "https://files.pythonhosted.org/packages/9b/c2/3b6034de81fbcc43de8aeb209073a2286dfb50b86e927b4efd81cf848197/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:78cd586d8331fb8e241c2dd6b2f4061778cc69e150514b39a9e28dd050475661", size = 1789201 }, - { url = "https://files.pythonhosted.org/packages/c9/38/c15dcf6d4d890217dae79d7213988f4e5fe6183d43893a9cf2fe9e84ca8d/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:20b10bbfbff766294fe99987f7bb3b74fdd2f1a2905f2562132641ad434dcf98", size = 1776868 }, - { url = "https://files.pythonhosted.org/packages/04/75/f74fd178ac81adf4f283a74847807ade5150e48feda6aef024403716c30c/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9ec49dff7e2b3c85cdeaa412e9d438f0ecd71676fde61ec57027dd392f00c693", size = 1790660 }, - { url = "https://files.pythonhosted.org/packages/e7/80/7368bd0d06b16b3aba358c16b919e9c46cf11587dc572091031b0e9e3ef0/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:94f05348c4406450f9d73d38efb41d669ad6cd90c7ee194810d0eefbfa875a7a", size = 1617548 }, - { url = "https://files.pythonhosted.org/packages/7d/4b/a6212790c50483cb3212e507378fbe26b5086d73941e1ec4b56a30439688/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:fa4dcb605c6f82a80c7f95713c2b11c3b8e9893b3ebd2bc9bde93165ed6107be", size = 1817240 }, - { url = "https://files.pythonhosted.org/packages/ff/f7/ba5f0ba4ea8d8f3c32850912944532b933acbf0f3a75546b89269b9b7dde/aiohttp-3.13.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cf00e5db968c3f67eccd2778574cf64d8b27d95b237770aa32400bd7a1ca4f6c", size = 1762334 }, - { url = "https://files.pythonhosted.org/packages/7e/83/1a5a1856574588b1cad63609ea9ad75b32a8353ac995d830bf5da9357364/aiohttp-3.13.2-cp314-cp314t-win32.whl", hash = "sha256:d23b5fe492b0805a50d3371e8a728a9134d8de5447dce4c885f5587294750734", size = 464685 }, - { url = "https://files.pythonhosted.org/packages/9f/4d/d22668674122c08f4d56972297c51a624e64b3ed1efaa40187607a7cb66e/aiohttp-3.13.2-cp314-cp314t-win_amd64.whl", hash = "sha256:ff0a7b0a82a7ab905cbda74006318d1b12e37c797eb1b0d4eb3e316cf47f658f", size = 498093 }, -] - -[[package]] -name = "aiosignal" -version = "1.4.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "frozenlist" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490 }, -] - -[[package]] -name = "annotated-doc" -version = "0.0.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303 }, -] - -[[package]] -name = "annotated-types" -version = "0.7.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, -] - -[[package]] -name = "anyio" -version = "4.12.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, - { name = "idna" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/16/ce/8a777047513153587e5434fd752e89334ac33e379aa3497db860eeb60377/anyio-4.12.0.tar.gz", hash = "sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0", size = 228266 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362 }, -] - -[[package]] -name = "async-timeout" -version = "5.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233 }, -] - -[[package]] -name = "attrs" -version = "25.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615 }, -] - -[[package]] -name = "backports-asyncio-runner" -version = "1.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/ff/70dca7d7cb1cbc0edb2c6cc0c38b65cba36cccc491eca64cabd5fe7f8670/backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162", size = 69893 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/59/76ab57e3fe74484f48a53f8e337171b4a2349e506eabe136d7e01d059086/backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5", size = 12313 }, -] - -[[package]] -name = "certifi" -version = "2025.11.12" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/8c/58f469717fa48465e4a50c014a0400602d3c437d7c0c468e17ada824da3a/certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316", size = 160538 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", size = 159438 }, -] - -[[package]] -name = "charset-normalizer" -version = "3.4.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709 }, - { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814 }, - { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467 }, - { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280 }, - { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454 }, - { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609 }, - { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849 }, - { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586 }, - { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290 }, - { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663 }, - { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964 }, - { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064 }, - { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015 }, - { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792 }, - { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198 }, - { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262 }, - { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988 }, - { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324 }, - { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742 }, - { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863 }, - { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837 }, - { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550 }, - { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162 }, - { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019 }, - { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310 }, - { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022 }, - { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383 }, - { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098 }, - { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991 }, - { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456 }, - { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978 }, - { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969 }, - { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425 }, - { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162 }, - { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558 }, - { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497 }, - { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240 }, - { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471 }, - { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864 }, - { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647 }, - { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110 }, - { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839 }, - { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667 }, - { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535 }, - { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816 }, - { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694 }, - { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131 }, - { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390 }, - { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091 }, - { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936 }, - { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180 }, - { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346 }, - { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874 }, - { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076 }, - { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601 }, - { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376 }, - { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825 }, - { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583 }, - { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366 }, - { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300 }, - { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465 }, - { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404 }, - { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092 }, - { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408 }, - { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746 }, - { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889 }, - { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641 }, - { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779 }, - { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035 }, - { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542 }, - { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524 }, - { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395 }, - { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680 }, - { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045 }, - { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687 }, - { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014 }, - { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044 }, - { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940 }, - { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104 }, - { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743 }, - { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402 }, -] - -[[package]] -name = "click" -version = "8.3.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274 }, -] - -[[package]] -name = "colorama" -version = "0.4.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, -] - -[[package]] -name = "coloredlogs" -version = "15.0.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "humanfriendly" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cc/c7/eed8f27100517e8c0e6b923d5f0845d0cb99763da6fdee00478f91db7325/coloredlogs-15.0.1.tar.gz", hash = "sha256:7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0", size = 278520 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/06/3d6badcf13db419e25b07041d9c7b4a2c331d3f4e7134445ec5df57714cd/coloredlogs-15.0.1-py2.py3-none-any.whl", hash = "sha256:612ee75c546f53e92e70049c9dbfcc18c935a2b9a53b66085ce9ef6a6e5c0934", size = 46018 }, -] - -[[package]] -name = "datasets" -version = "4.4.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "dill" }, - { name = "filelock" }, - { name = "fsspec", extra = ["http"] }, - { name = "httpx" }, - { name = "huggingface-hub" }, - { name = "multiprocess" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "packaging" }, - { name = "pandas" }, - { name = "pyarrow" }, - { name = "pyyaml" }, - { name = "requests" }, - { name = "tqdm" }, - { name = "xxhash" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/93/bf/0dae295d6d1ba0b1a200a9dd216838464b5bbd05da01407cb1330b377445/datasets-4.4.1.tar.gz", hash = "sha256:80322699aa8c0bbbdb7caa87906da689c3c2e29523cff698775c67f28fdab1fc", size = 585341 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/5e/6f8d874366788ad5d549e9ba258037d974dda6e004843be1bda794571701/datasets-4.4.1-py3-none-any.whl", hash = "sha256:c1163de5211e42546079ab355cc0250c7e6db16eb209ac5ac6252f801f596c44", size = 511591 }, -] - -[[package]] -name = "deprecation" -version = "2.1.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "packaging" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5a/d3/8ae2869247df154b64c1884d7346d412fed0c49df84db635aab2d1c40e62/deprecation-2.1.0.tar.gz", hash = "sha256:72b3bde64e5d778694b0cf68178aed03d15e15477116add3fb773e581f9518ff", size = 173788 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/02/c3/253a89ee03fc9b9682f1541728eb66db7db22148cd94f89ab22528cd1e1b/deprecation-2.1.0-py2.py3-none-any.whl", hash = "sha256:a10811591210e1fb0e768a8c25517cabeabcba6f0bf96564f8ff45189f90b14a", size = 11178 }, -] - -[[package]] -name = "dill" -version = "0.4.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/12/80/630b4b88364e9a8c8c5797f4602d0f76ef820909ee32f0bacb9f90654042/dill-0.4.0.tar.gz", hash = "sha256:0633f1d2df477324f53a895b02c901fb961bdbf65a17122586ea7019292cbcf0", size = 186976 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl", hash = "sha256:44f54bf6412c2c8464c14e8243eb163690a9800dbe2c367330883b19c7561049", size = 119668 }, -] - -[[package]] -name = "embed-anything" -version = "0.6.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "onnxruntime" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cc/a5/438ee439f219ef3c29476ddb050836770c3e4d0c22cef24ff434b207e3dd/embed_anything-0.6.6.tar.gz", hash = "sha256:43eaa6e3f0a173f343da22dfafb770fee31708958d79e7968a90d027d18721e3", size = 998508 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/5b/99c10bce60235029152cf0a2a75b3280cfdcbbdc80acfd8958a93239abe5/embed_anything-0.6.6-cp310-cp310-manylinux_2_34_x86_64.whl", hash = "sha256:30b297e5f57f9eb7ffbbf31e536c162e65fa1ccb48a70e0e2167accd3a6d7794", size = 19271030 }, - { url = "https://files.pythonhosted.org/packages/79/79/bb9ac8f26f227e1f2a6322fa257d7d5a40bbcf0baaf5c960307889895a57/embed_anything-0.6.6-cp310-cp310-win_amd64.whl", hash = "sha256:82e26e54c991278c177b786e0597063a37b669479c2f843cbadd2e26ed5868ae", size = 17902211 }, - { url = "https://files.pythonhosted.org/packages/49/ba/17cdc42c88888a9a8921f75c6ceb080eeb88a46a645febc2a5a5de526abc/embed_anything-0.6.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2c0b10ad5c60718763c077929b7d1c8990e13c4cb246ac36a4d3dfcda994dde6", size = 18803384 }, - { url = "https://files.pythonhosted.org/packages/6a/ed/8bab81c1803d41ba581bb1a594b6e6238499636a5e3431332aafbfb8b1db/embed_anything-0.6.6-cp311-cp311-manylinux_2_34_x86_64.whl", hash = "sha256:6d48f3aae3164e6d5629685e4e0cceb8a093b9232f07ca9e50302bfb7f3a4f9d", size = 19269285 }, - { url = "https://files.pythonhosted.org/packages/ef/c7/e233a63ee2579a42e34e8b5da78003b9d009357895de6a52ab3594255eda/embed_anything-0.6.6-cp311-cp311-win_amd64.whl", hash = "sha256:ddba04b7a423304e0427688a48d1eb9f0767458377f4f80200c78abe5038bca4", size = 17903392 }, - { url = "https://files.pythonhosted.org/packages/f9/ac/bfd094ed8ac3b5b8bb1cc8d1bf30edb665d7a7f6c63504d35351d71c5732/embed_anything-0.6.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:81d5a5955fd7a67701a9ab310a723a8359bc9b83538712f96d0e4cd41541b553", size = 18787028 }, - { url = "https://files.pythonhosted.org/packages/7c/0f/77468c9da656c362df4f8dd1820d5216a041761da92061e6b53d219d7399/embed_anything-0.6.6-cp312-cp312-manylinux_2_34_x86_64.whl", hash = "sha256:07fa624eeb91ef9064d068a1740cc6ab516693359bbccd72d89f26c8efff57ed", size = 19270732 }, - { url = "https://files.pythonhosted.org/packages/2d/4a/b6f7e746353b33ff397ba1a1f229098c65e17c93397172b9238adad8abce/embed_anything-0.6.6-cp312-cp312-win_amd64.whl", hash = "sha256:cbbd2b013dfb39768e1212d9e96adf7fbef710a4f2718c569117491b825df776", size = 17892426 }, - { url = "https://files.pythonhosted.org/packages/c0/cc/6835559ff76b63a6ec2e28318dc7987db615597693c6ad47ef7a5a041d33/embed_anything-0.6.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9d37d25b4b20cc4016ca0fcb2f5c2bd972fac10739acdea89a0e679ede30142b", size = 18786285 }, - { url = "https://files.pythonhosted.org/packages/de/92/dad5f1b424cbe806cb142c6a51cd0ec49207e14e35d599b89963b17b827f/embed_anything-0.6.6-cp313-cp313-win_amd64.whl", hash = "sha256:1c2bf239a372f874d4cafff7d43ef25a5bd0f92f9f1330ba5fd3b4f47e1c3a4d", size = 17892278 }, - { url = "https://files.pythonhosted.org/packages/fa/84/b9d7e88ff4e071e2ff8e7bfd54fc8fe24c7bdc0422ccf9c9e7e669d0ce9e/embed_anything-0.6.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:723e15577b09dc5ad8f4c9b40020c4177b7f227ae898c19158ed8e7ba819444b", size = 18789269 }, - { url = "https://files.pythonhosted.org/packages/d2/57/ecd259227d6510ac020713e38760273c06ada996c820681b7fcf2430f73c/embed_anything-0.6.6-cp314-cp314-manylinux_2_34_x86_64.whl", hash = "sha256:dc7062dc3ca88014bf5d7e24fb8de0287ff83a9cf339cc5ece1f2ff9a568187b", size = 19268786 }, - { url = "https://files.pythonhosted.org/packages/d5/95/164e7b08658b1b31d536db665ad6dff5e8e85e70f0d1e9e254f8ad4097fd/embed_anything-0.6.6-cp314-cp314-win_amd64.whl", hash = "sha256:37f2df9ded7c2549f5b0112d9a7b27e701dcb219b07b9b8ba053f18e99d4bee7", size = 17893594 }, -] - -[[package]] -name = "exceptiongroup" -version = "1.3.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740 }, -] - -[[package]] -name = "fastapi" -version = "0.123.9" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-doc" }, - { name = "pydantic" }, - { name = "starlette" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/2c/01/c3fb48c0135d89586a03c3e2c5bc04540dda52079a1af5cac4a63598efb9/fastapi-0.123.9.tar.gz", hash = "sha256:ab33d672d8e1cc6e0b49777eb73c32ccf20761011f5ca16755889ab406fd1de0", size = 355616 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/db/15/a785e992a27620e022d0bc61b6c897ec14cff07c5ab7ff9f27651a21570b/fastapi-0.123.9-py3-none-any.whl", hash = "sha256:f54c69f23db14bd3dbcdfaf3fdce0483ca5f499512380c8e379a70cda30aa920", size = 111776 }, -] - -[[package]] -name = "filelock" -version = "3.20.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/46/0028a82567109b5ef6e4d2a1f04a583fb513e6cf9527fcdd09afd817deeb/filelock-3.20.0.tar.gz", hash = "sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4", size = 18922 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/76/91/7216b27286936c16f5b4d0c530087e4a54eead683e6b0b73dd0c64844af6/filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2", size = 16054 }, -] - -[[package]] -name = "flatbuffers" -version = "25.9.23" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9d/1f/3ee70b0a55137442038f2a33469cc5fddd7e0ad2abf83d7497c18a2b6923/flatbuffers-25.9.23.tar.gz", hash = "sha256:676f9fa62750bb50cf531b42a0a2a118ad8f7f797a511eda12881c016f093b12", size = 22067 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/1b/00a78aa2e8fbd63f9af08c9c19e6deb3d5d66b4dda677a0f61654680ee89/flatbuffers-25.9.23-py2.py3-none-any.whl", hash = "sha256:255538574d6cb6d0a79a17ec8bc0d30985913b87513a01cce8bcdb6b4c44d0e2", size = 30869 }, -] - -[[package]] -name = "frozenlist" -version = "1.8.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/4a/557715d5047da48d54e659203b9335be7bfaafda2c3f627b7c47e0b3aaf3/frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011", size = 86230 }, - { url = "https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565", size = 49621 }, - { url = "https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad", size = 49889 }, - { url = "https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2", size = 219464 }, - { url = "https://files.pythonhosted.org/packages/6b/83/4d587dccbfca74cb8b810472392ad62bfa100bf8108c7223eb4c4fa2f7b3/frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186", size = 221649 }, - { url = "https://files.pythonhosted.org/packages/6a/c6/fd3b9cd046ec5fff9dab66831083bc2077006a874a2d3d9247dea93ddf7e/frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e", size = 219188 }, - { url = "https://files.pythonhosted.org/packages/ce/80/6693f55eb2e085fc8afb28cf611448fb5b90e98e068fa1d1b8d8e66e5c7d/frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450", size = 231748 }, - { url = "https://files.pythonhosted.org/packages/97/d6/e9459f7c5183854abd989ba384fe0cc1a0fb795a83c033f0571ec5933ca4/frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef", size = 236351 }, - { url = "https://files.pythonhosted.org/packages/97/92/24e97474b65c0262e9ecd076e826bfd1d3074adcc165a256e42e7b8a7249/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4", size = 218767 }, - { url = "https://files.pythonhosted.org/packages/ee/bf/dc394a097508f15abff383c5108cb8ad880d1f64a725ed3b90d5c2fbf0bb/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff", size = 235887 }, - { url = "https://files.pythonhosted.org/packages/40/90/25b201b9c015dbc999a5baf475a257010471a1fa8c200c843fd4abbee725/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c", size = 228785 }, - { url = "https://files.pythonhosted.org/packages/84/f4/b5bc148df03082f05d2dd30c089e269acdbe251ac9a9cf4e727b2dbb8a3d/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f", size = 230312 }, - { url = "https://files.pythonhosted.org/packages/db/4b/87e95b5d15097c302430e647136b7d7ab2398a702390cf4c8601975709e7/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7", size = 217650 }, - { url = "https://files.pythonhosted.org/packages/e5/70/78a0315d1fea97120591a83e0acd644da638c872f142fd72a6cebee825f3/frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a", size = 39659 }, - { url = "https://files.pythonhosted.org/packages/66/aa/3f04523fb189a00e147e60c5b2205126118f216b0aa908035c45336e27e4/frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6", size = 43837 }, - { url = "https://files.pythonhosted.org/packages/39/75/1135feecdd7c336938bd55b4dc3b0dfc46d85b9be12ef2628574b28de776/frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e", size = 39989 }, - { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912 }, - { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046 }, - { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119 }, - { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067 }, - { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160 }, - { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544 }, - { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797 }, - { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923 }, - { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886 }, - { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731 }, - { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544 }, - { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806 }, - { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382 }, - { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647 }, - { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064 }, - { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937 }, - { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782 }, - { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594 }, - { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448 }, - { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411 }, - { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014 }, - { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909 }, - { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049 }, - { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485 }, - { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619 }, - { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320 }, - { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820 }, - { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518 }, - { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096 }, - { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985 }, - { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591 }, - { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102 }, - { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717 }, - { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651 }, - { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417 }, - { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391 }, - { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048 }, - { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549 }, - { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833 }, - { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363 }, - { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314 }, - { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365 }, - { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763 }, - { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110 }, - { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717 }, - { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628 }, - { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882 }, - { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676 }, - { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235 }, - { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742 }, - { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725 }, - { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533 }, - { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506 }, - { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161 }, - { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676 }, - { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638 }, - { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067 }, - { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101 }, - { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901 }, - { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395 }, - { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659 }, - { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492 }, - { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034 }, - { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749 }, - { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127 }, - { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698 }, - { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749 }, - { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298 }, - { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015 }, - { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038 }, - { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130 }, - { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845 }, - { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131 }, - { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542 }, - { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308 }, - { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210 }, - { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972 }, - { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536 }, - { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330 }, - { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627 }, - { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238 }, - { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738 }, - { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739 }, - { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186 }, - { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196 }, - { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830 }, - { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289 }, - { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318 }, - { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814 }, - { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762 }, - { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470 }, - { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042 }, - { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148 }, - { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676 }, - { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451 }, - { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507 }, - { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409 }, -] - -[[package]] -name = "fsspec" -version = "2025.10.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/24/7f/2747c0d332b9acfa75dc84447a066fdf812b5a6b8d30472b74d309bfe8cb/fsspec-2025.10.0.tar.gz", hash = "sha256:b6789427626f068f9a83ca4e8a3cc050850b6c0f71f99ddb4f542b8266a26a59", size = 309285 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/02/a6b21098b1d5d6249b7c5ab69dde30108a71e4e819d4a9778f1de1d5b70d/fsspec-2025.10.0-py3-none-any.whl", hash = "sha256:7c7712353ae7d875407f97715f0e1ffcc21e33d5b24556cb1e090ae9409ec61d", size = 200966 }, -] - -[package.optional-dependencies] -http = [ - { name = "aiohttp" }, -] - -[[package]] -name = "geoopt" -version = "0.5.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "scipy", version = "1.16.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "torch" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/0f/f8d4afc40ffd1d2e8a4386bad152176cdc726b077c9bd5d65621b122559d/geoopt-0.5.1-py3-none-any.whl", hash = "sha256:d6ee06e943e7e882ba785db09a6d705d34b8bf5408d4d546b3a8ac2e4ff3496d", size = 90072 }, -] - -[[package]] -name = "h11" -version = "0.16.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515 }, -] - -[[package]] -name = "hf-xet" -version = "1.2.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5e/6e/0f11bacf08a67f7fb5ee09740f2ca54163863b07b70d579356e9222ce5d8/hf_xet-1.2.0.tar.gz", hash = "sha256:a8c27070ca547293b6890c4bf389f713f80e8c478631432962bb7f4bc0bd7d7f", size = 506020 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/a5/85ef910a0aa034a2abcfadc360ab5ac6f6bc4e9112349bd40ca97551cff0/hf_xet-1.2.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:ceeefcd1b7aed4956ae8499e2199607765fbd1c60510752003b6cc0b8413b649", size = 2861870 }, - { url = "https://files.pythonhosted.org/packages/ea/40/e2e0a7eb9a51fe8828ba2d47fe22a7e74914ea8a0db68a18c3aa7449c767/hf_xet-1.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b70218dd548e9840224df5638fdc94bd033552963cfa97f9170829381179c813", size = 2717584 }, - { url = "https://files.pythonhosted.org/packages/a5/7d/daf7f8bc4594fdd59a8a596f9e3886133fdc68e675292218a5e4c1b7e834/hf_xet-1.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d40b18769bb9a8bc82a9ede575ce1a44c75eb80e7375a01d76259089529b5dc", size = 3315004 }, - { url = "https://files.pythonhosted.org/packages/b1/ba/45ea2f605fbf6d81c8b21e4d970b168b18a53515923010c312c06cd83164/hf_xet-1.2.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:cd3a6027d59cfb60177c12d6424e31f4b5ff13d8e3a1247b3a584bf8977e6df5", size = 3222636 }, - { url = "https://files.pythonhosted.org/packages/4a/1d/04513e3cab8f29ab8c109d309ddd21a2705afab9d52f2ba1151e0c14f086/hf_xet-1.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6de1fc44f58f6dd937956c8d304d8c2dea264c80680bcfa61ca4a15e7b76780f", size = 3408448 }, - { url = "https://files.pythonhosted.org/packages/f0/7c/60a2756d7feec7387db3a1176c632357632fbe7849fce576c5559d4520c7/hf_xet-1.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f182f264ed2acd566c514e45da9f2119110e48a87a327ca271027904c70c5832", size = 3503401 }, - { url = "https://files.pythonhosted.org/packages/4e/64/48fffbd67fb418ab07451e4ce641a70de1c40c10a13e25325e24858ebe5a/hf_xet-1.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:293a7a3787e5c95d7be1857358a9130694a9c6021de3f27fa233f37267174382", size = 2900866 }, - { url = "https://files.pythonhosted.org/packages/e2/51/f7e2caae42f80af886db414d4e9885fac959330509089f97cccb339c6b87/hf_xet-1.2.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:10bfab528b968c70e062607f663e21e34e2bba349e8038db546646875495179e", size = 2861861 }, - { url = "https://files.pythonhosted.org/packages/6e/1d/a641a88b69994f9371bd347f1dd35e5d1e2e2460a2e350c8d5165fc62005/hf_xet-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2a212e842647b02eb6a911187dc878e79c4aa0aa397e88dd3b26761676e8c1f8", size = 2717699 }, - { url = "https://files.pythonhosted.org/packages/df/e0/e5e9bba7d15f0318955f7ec3f4af13f92e773fbb368c0b8008a5acbcb12f/hf_xet-1.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30e06daccb3a7d4c065f34fc26c14c74f4653069bb2b194e7f18f17cbe9939c0", size = 3314885 }, - { url = "https://files.pythonhosted.org/packages/21/90/b7fe5ff6f2b7b8cbdf1bd56145f863c90a5807d9758a549bf3d916aa4dec/hf_xet-1.2.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:29c8fc913a529ec0a91867ce3d119ac1aac966e098cf49501800c870328cc090", size = 3221550 }, - { url = "https://files.pythonhosted.org/packages/6f/cb/73f276f0a7ce46cc6a6ec7d6c7d61cbfe5f2e107123d9bbd0193c355f106/hf_xet-1.2.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e159cbfcfbb29f920db2c09ed8b660eb894640d284f102ada929b6e3dc410a", size = 3408010 }, - { url = "https://files.pythonhosted.org/packages/b8/1e/d642a12caa78171f4be64f7cd9c40e3ca5279d055d0873188a58c0f5fbb9/hf_xet-1.2.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9c91d5ae931510107f148874e9e2de8a16052b6f1b3ca3c1b12f15ccb491390f", size = 3503264 }, - { url = "https://files.pythonhosted.org/packages/17/b5/33764714923fa1ff922770f7ed18c2daae034d21ae6e10dbf4347c854154/hf_xet-1.2.0-cp314-cp314t-win_amd64.whl", hash = "sha256:210d577732b519ac6ede149d2f2f34049d44e8622bf14eb3d63bbcd2d4b332dc", size = 2901071 }, - { url = "https://files.pythonhosted.org/packages/96/2d/22338486473df5923a9ab7107d375dbef9173c338ebef5098ef593d2b560/hf_xet-1.2.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:46740d4ac024a7ca9b22bebf77460ff43332868b661186a8e46c227fdae01848", size = 2866099 }, - { url = "https://files.pythonhosted.org/packages/7f/8c/c5becfa53234299bc2210ba314eaaae36c2875e0045809b82e40a9544f0c/hf_xet-1.2.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:27df617a076420d8845bea087f59303da8be17ed7ec0cd7ee3b9b9f579dff0e4", size = 2722178 }, - { url = "https://files.pythonhosted.org/packages/9a/92/cf3ab0b652b082e66876d08da57fcc6fa2f0e6c70dfbbafbd470bb73eb47/hf_xet-1.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3651fd5bfe0281951b988c0facbe726aa5e347b103a675f49a3fa8144c7968fd", size = 3320214 }, - { url = "https://files.pythonhosted.org/packages/46/92/3f7ec4a1b6a65bf45b059b6d4a5d38988f63e193056de2f420137e3c3244/hf_xet-1.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d06fa97c8562fb3ee7a378dd9b51e343bc5bc8190254202c9771029152f5e08c", size = 3229054 }, - { url = "https://files.pythonhosted.org/packages/0b/dd/7ac658d54b9fb7999a0ccb07ad863b413cbaf5cf172f48ebcd9497ec7263/hf_xet-1.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:4c1428c9ae73ec0939410ec73023c4f842927f39db09b063b9482dac5a3bb737", size = 3413812 }, - { url = "https://files.pythonhosted.org/packages/92/68/89ac4e5b12a9ff6286a12174c8538a5930e2ed662091dd2572bbe0a18c8a/hf_xet-1.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a55558084c16b09b5ed32ab9ed38421e2d87cf3f1f89815764d1177081b99865", size = 3508920 }, - { url = "https://files.pythonhosted.org/packages/cb/44/870d44b30e1dcfb6a65932e3e1506c103a8a5aea9103c337e7a53180322c/hf_xet-1.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:e6584a52253f72c9f52f9e549d5895ca7a471608495c4ecaa6cc73dba2b24d69", size = 2905735 }, -] - -[[package]] -name = "httpcore" -version = "1.0.9" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "h11" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784 }, -] - -[[package]] -name = "httptools" -version = "0.7.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz", hash = "sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9", size = 258961 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78", size = 204531 }, - { url = "https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4", size = 109408 }, - { url = "https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05", size = 440889 }, - { url = "https://files.pythonhosted.org/packages/eb/d9/2e34811397b76718750fea44658cb0205b84566e895192115252e008b152/httptools-0.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed", size = 440460 }, - { url = "https://files.pythonhosted.org/packages/01/3f/a04626ebeacc489866bb4d82362c0657b2262bef381d68310134be7f40bb/httptools-0.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a", size = 425267 }, - { url = "https://files.pythonhosted.org/packages/a5/99/adcd4f66614db627b587627c8ad6f4c55f18881549bab10ecf180562e7b9/httptools-0.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b", size = 424429 }, - { url = "https://files.pythonhosted.org/packages/d5/72/ec8fc904a8fd30ba022dfa85f3bbc64c3c7cd75b669e24242c0658e22f3c/httptools-0.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568", size = 86173 }, - { url = "https://files.pythonhosted.org/packages/9c/08/17e07e8d89ab8f343c134616d72eebfe03798835058e2ab579dcc8353c06/httptools-0.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657", size = 206521 }, - { url = "https://files.pythonhosted.org/packages/aa/06/c9c1b41ff52f16aee526fd10fbda99fa4787938aa776858ddc4a1ea825ec/httptools-0.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70", size = 110375 }, - { url = "https://files.pythonhosted.org/packages/cc/cc/10935db22fda0ee34c76f047590ca0a8bd9de531406a3ccb10a90e12ea21/httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df", size = 456621 }, - { url = "https://files.pythonhosted.org/packages/0e/84/875382b10d271b0c11aa5d414b44f92f8dd53e9b658aec338a79164fa548/httptools-0.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e", size = 454954 }, - { url = "https://files.pythonhosted.org/packages/30/e1/44f89b280f7e46c0b1b2ccee5737d46b3bb13136383958f20b580a821ca0/httptools-0.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274", size = 440175 }, - { url = "https://files.pythonhosted.org/packages/6f/7e/b9287763159e700e335028bc1824359dc736fa9b829dacedace91a39b37e/httptools-0.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec", size = 440310 }, - { url = "https://files.pythonhosted.org/packages/b3/07/5b614f592868e07f5c94b1f301b5e14a21df4e8076215a3bccb830a687d8/httptools-0.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb", size = 86875 }, - { url = "https://files.pythonhosted.org/packages/53/7f/403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed/httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5", size = 206280 }, - { url = "https://files.pythonhosted.org/packages/2a/0d/7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b/httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5", size = 110004 }, - { url = "https://files.pythonhosted.org/packages/84/a6/b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596/httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03", size = 517655 }, - { url = "https://files.pythonhosted.org/packages/11/7d/71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0/httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2", size = 511440 }, - { url = "https://files.pythonhosted.org/packages/22/a5/079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823/httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362", size = 495186 }, - { url = "https://files.pythonhosted.org/packages/e9/9e/025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084/httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c", size = 499192 }, - { url = "https://files.pythonhosted.org/packages/6d/de/40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f/httptools-0.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321", size = 86694 }, - { url = "https://files.pythonhosted.org/packages/09/8f/c77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90/httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3", size = 202889 }, - { url = "https://files.pythonhosted.org/packages/0a/1a/22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517/httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca", size = 108180 }, - { url = "https://files.pythonhosted.org/packages/32/6a/6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011/httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c", size = 478596 }, - { url = "https://files.pythonhosted.org/packages/6d/70/023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6/httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66", size = 473268 }, - { url = "https://files.pythonhosted.org/packages/32/4d/9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7/httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346", size = 455517 }, - { url = "https://files.pythonhosted.org/packages/1d/3a/a6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be/httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650", size = 458337 }, - { url = "https://files.pythonhosted.org/packages/fd/82/88e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582/httptools-0.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6", size = 85743 }, - { url = "https://files.pythonhosted.org/packages/34/50/9d095fcbb6de2d523e027a2f304d4551855c2f46e0b82befd718b8b20056/httptools-0.7.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:c08fe65728b8d70b6923ce31e3956f859d5e1e8548e6f22ec520a962c6757270", size = 203619 }, - { url = "https://files.pythonhosted.org/packages/07/f0/89720dc5139ae54b03f861b5e2c55a37dba9a5da7d51e1e824a1f343627f/httptools-0.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7aea2e3c3953521c3c51106ee11487a910d45586e351202474d45472db7d72d3", size = 108714 }, - { url = "https://files.pythonhosted.org/packages/b3/cb/eea88506f191fb552c11787c23f9a405f4c7b0c5799bf73f2249cd4f5228/httptools-0.7.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0e68b8582f4ea9166be62926077a3334064d422cf08ab87d8b74664f8e9058e1", size = 472909 }, - { url = "https://files.pythonhosted.org/packages/e0/4a/a548bdfae6369c0d078bab5769f7b66f17f1bfaa6fa28f81d6be6959066b/httptools-0.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df091cf961a3be783d6aebae963cc9b71e00d57fa6f149025075217bc6a55a7b", size = 470831 }, - { url = "https://files.pythonhosted.org/packages/4d/31/14df99e1c43bd132eec921c2e7e11cda7852f65619bc0fc5bdc2d0cb126c/httptools-0.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f084813239e1eb403ddacd06a30de3d3e09a9b76e7894dcda2b22f8a726e9c60", size = 452631 }, - { url = "https://files.pythonhosted.org/packages/22/d2/b7e131f7be8d854d48cb6d048113c30f9a46dca0c9a8b08fcb3fcd588cdc/httptools-0.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7347714368fb2b335e9063bc2b96f2f87a9ceffcd9758ac295f8bbcd3ffbc0ca", size = 452910 }, - { url = "https://files.pythonhosted.org/packages/53/cf/878f3b91e4e6e011eff6d1fa9ca39f7eb17d19c9d7971b04873734112f30/httptools-0.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:cfabda2a5bb85aa2a904ce06d974a3f30fb36cc63d7feaddec05d2050acede96", size = 88205 }, -] - -[[package]] -name = "httpx" -version = "0.28.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "certifi" }, - { name = "httpcore" }, - { name = "idna" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517 }, -] - -[[package]] -name = "huggingface-hub" -version = "1.1.7" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "filelock" }, - { name = "fsspec" }, - { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, - { name = "httpx" }, - { name = "packaging" }, - { name = "pyyaml" }, - { name = "shellingham" }, - { name = "tqdm" }, - { name = "typer-slim" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/6f/fa/a1a94c55637f2b7cfeb05263ac3881aa87c82df92d8b4b31c909079f4419/huggingface_hub-1.1.7.tar.gz", hash = "sha256:3c84b6283caca928595f08fd42e9a572f17ec3501dec508c3f2939d94bfbd9d2", size = 607537 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/4f/82e5ab009089a2c48472bf4248391fe4091cf0b9c3e951dbb8afe3b23d76/huggingface_hub-1.1.7-py3-none-any.whl", hash = "sha256:f3efa4779f4890e44c957bbbb0f197e6028887ad09f0cf95a21659fa7753605d", size = 516239 }, -] - -[[package]] -name = "humanfriendly" -version = "10.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pyreadline3", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cc/3f/2c29224acb2e2df4d2046e4c73ee2662023c58ff5b113c4c1adac0886c43/humanfriendly-10.0.tar.gz", hash = "sha256:6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc", size = 360702 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/0f/310fb31e39e2d734ccaa2c0fb981ee41f7bd5056ce9bc29b2248bd569169/humanfriendly-10.0-py2.py3-none-any.whl", hash = "sha256:1697e1a8a8f550fd43c2865cd84542fc175a61dcb779b6fee18cf6b6ccba1477", size = 86794 }, -] - -[[package]] -name = "hyperview" -version = "0.1.0" -source = { editable = "." } -dependencies = [ - { name = "aiofiles" }, - { name = "datasets" }, - { name = "embed-anything" }, - { name = "fastapi" }, - { name = "lancedb" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "pillow" }, - { name = "pyarrow" }, - { name = "pydantic" }, - { name = "umap-learn" }, - { name = "uvicorn", extra = ["standard"] }, -] - -[package.optional-dependencies] -dev = [ - { name = "httpx" }, - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "ruff" }, -] -hyperbolic = [ - { name = "geoopt" }, - { name = "torch" }, -] - -[package.metadata] -requires-dist = [ - { name = "aiofiles", specifier = ">=24.0.0" }, - { name = "datasets", specifier = ">=3.0.0" }, - { name = "embed-anything", specifier = ">=0.3.0" }, - { name = "fastapi", specifier = ">=0.115.0" }, - { name = "geoopt", marker = "extra == 'hyperbolic'", specifier = ">=0.5.1" }, - { name = "httpx", marker = "extra == 'dev'", specifier = ">=0.27.0" }, - { name = "lancedb", specifier = ">=0.5.0" }, - { name = "numpy", specifier = ">=1.26.0" }, - { name = "pillow", specifier = ">=10.0.0" }, - { name = "pyarrow", specifier = ">=14.0.0" }, - { name = "pydantic", specifier = ">=2.0.0" }, - { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0" }, - { name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.24.0" }, - { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.7.0" }, - { name = "torch", marker = "extra == 'hyperbolic'", specifier = ">=2.0.0" }, - { name = "umap-learn", specifier = ">=0.5.6" }, - { name = "uvicorn", extras = ["standard"], specifier = ">=0.32.0" }, -] - -[[package]] -name = "idna" -version = "3.11" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008 }, -] - -[[package]] -name = "iniconfig" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484 }, -] - -[[package]] -name = "jinja2" -version = "3.1.6" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "markupsafe" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899 }, -] - -[[package]] -name = "joblib" -version = "1.5.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/5d/447af5ea094b9e4c4054f82e223ada074c552335b9b4b2d14bd9b35a67c4/joblib-1.5.2.tar.gz", hash = "sha256:3faa5c39054b2f03ca547da9b2f52fde67c06240c31853f306aea97f13647b55", size = 331077 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/e8/685f47e0d754320684db4425a0967f7d3fa70126bffd76110b7009a0090f/joblib-1.5.2-py3-none-any.whl", hash = "sha256:4e1f0bdbb987e6d843c70cf43714cb276623def372df3c22fe5266b2670bc241", size = 308396 }, -] - -[[package]] -name = "lance-namespace" -version = "0.3.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "lance-namespace-urllib3-client" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/4d/44/946ca6033997820623906d84cb9830af89768940bbc9f824aadec6136254/lance_namespace-0.3.2.tar.gz", hash = "sha256:51eb30f8a9f073bba15d1824460bf6e9fa7f867e224e73ee64520ed254f0c140", size = 6833 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/98/d2/947eedf16c59e1269c9cf7a2dc3c4522a3915cec664a9ffe8a7d1a0e2fcd/lance_namespace-0.3.2-py3-none-any.whl", hash = "sha256:794249bec15fb6e34d2b8d9f9698f11ae191179eccd9cd879743d8fb3c666ca0", size = 8335 }, -] - -[[package]] -name = "lance-namespace-urllib3-client" -version = "0.3.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pydantic" }, - { name = "python-dateutil" }, - { name = "typing-extensions" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/e7/17/56d98ad4a969e59d08d6e7157f9a680383f1fe5fd2916b75a42826ad0b52/lance_namespace_urllib3_client-0.3.2.tar.gz", hash = "sha256:1474e8a16a3547faeb5be56270b8903bd2c9ce10ae04d09245f3870ede3a5c4d", size = 151790 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/8c/40ac725fb6fb7a4a13295fa2bc3b6ff877be1538d0a95ecf939ef0ceb562/lance_namespace_urllib3_client-0.3.2-py3-none-any.whl", hash = "sha256:bc73668b1086ef96c279870b019902bb293d15a6271ea8cf8eb429a57ab6a6ab", size = 256823 }, -] - -[[package]] -name = "lancedb" -version = "0.26.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "deprecation" }, - { name = "lance-namespace" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "overrides", marker = "python_full_version < '3.12'" }, - { name = "packaging" }, - { name = "pyarrow" }, - { name = "pydantic" }, - { name = "tqdm" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/a8/91/fe585b2181bd61efc65e1da410ae8ab7b29a26f156e4ca7d7d616b1234de/lancedb-0.26.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:3a0d435fff1392f056c173f695f71d495c691c555daa9802c056ea23f6a3900e", size = 41174270 }, - { url = "https://files.pythonhosted.org/packages/ce/fc/e47e092f4fc97a8810b37dbee07996689bca42f0817f3f3c38d7fb51dd9d/lancedb-0.26.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a2206320fd0f33c01e264960afd768987646133cf152c4d3a8b7faf81b3017bf", size = 42936720 }, - { url = "https://files.pythonhosted.org/packages/b5/d7/323897d22a7c00ef1dc4f5b76df1a11df549fe887d8e05d689c2224e47b8/lancedb-0.26.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca0322cb4b62d526748f6f29e5b43cce4251c7f693e111897eb1f77e7f1ec2b", size = 45846184 }, - { url = "https://files.pythonhosted.org/packages/3a/0b/7671c94b27a5aa267b9f1d6db759c9e08070cb8f783828ade04da9dc7d79/lancedb-0.26.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:7f2b8d69a647265b8753576b501354333c3edfd47d12ec9f47e665e8574c92fe", size = 42954293 }, - { url = "https://files.pythonhosted.org/packages/52/2e/9f720d6ae7bd3a94d096f320a0ec2f277735423af9d16cf5c61c4a70e6ca/lancedb-0.26.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:8e5cc334686a389cf2f28d1c239d13a205098ed98f3914226d3966858e58b957", size = 45896935 }, - { url = "https://files.pythonhosted.org/packages/00/0e/4b292c24a9e25ee2cd081d2da930fcdc672ee0eea531fc453c19c73addb5/lancedb-0.26.0-cp39-abi3-win_amd64.whl", hash = "sha256:2fc9b48a11f526de87388002eb3838329db7279241eefb3166c1c6c3b194a3cf", size = 50615000 }, -] - -[[package]] -name = "llvmlite" -version = "0.45.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/99/8d/5baf1cef7f9c084fb35a8afbde88074f0d6a727bc63ef764fe0e7543ba40/llvmlite-0.45.1.tar.gz", hash = "sha256:09430bb9d0bb58fc45a45a57c7eae912850bedc095cd0810a57de109c69e1c32", size = 185600 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/6d/585c84ddd9d2a539a3c3487792b3cf3f988e28ec4fa281bf8b0e055e1166/llvmlite-0.45.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:1b1af0c910af0978aa55fa4f60bbb3e9f39b41e97c2a6d94d199897be62ba07a", size = 43043523 }, - { url = "https://files.pythonhosted.org/packages/ae/34/992bd12d3ff245e0801bcf6013961daa8c19c9b9c2e61cb4b8bce94566f9/llvmlite-0.45.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02a164db2d79088bbd6e0d9633b4fe4021d6379d7e4ac7cc85ed5f44b06a30c5", size = 37253122 }, - { url = "https://files.pythonhosted.org/packages/a6/7b/6d7585998a5991fa74dc925aae57913ba8c7c2efff909de9d34cc1cd3c27/llvmlite-0.45.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f2d47f34e4029e6df3395de34cc1c66440a8d72712993a6e6168db228686711b", size = 56288210 }, - { url = "https://files.pythonhosted.org/packages/b5/e2/a4abea058633bfc82eb08fd69ce242c118fdb9b0abad1fdcbe0bc6aedab5/llvmlite-0.45.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7319e5f9f90720578a7f56fbc805bdfb4bc071b507c7611f170d631c3c0f1e0", size = 55140958 }, - { url = "https://files.pythonhosted.org/packages/74/c0/233468e96ed287b953239c3b24b1d69df47c6ba9262bfdca98eda7e83a04/llvmlite-0.45.1-cp310-cp310-win_amd64.whl", hash = "sha256:4edb62e685867799e336723cb9787ec6598d51d0b1ed9af0f38e692aa757e898", size = 38132232 }, - { url = "https://files.pythonhosted.org/packages/04/ad/9bdc87b2eb34642c1cfe6bcb4f5db64c21f91f26b010f263e7467e7536a3/llvmlite-0.45.1-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:60f92868d5d3af30b4239b50e1717cb4e4e54f6ac1c361a27903b318d0f07f42", size = 43043526 }, - { url = "https://files.pythonhosted.org/packages/a5/ea/c25c6382f452a943b4082da5e8c1665ce29a62884e2ec80608533e8e82d5/llvmlite-0.45.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98baab513e19beb210f1ef39066288784839a44cd504e24fff5d17f1b3cf0860", size = 37253118 }, - { url = "https://files.pythonhosted.org/packages/fe/af/85fc237de98b181dbbe8647324331238d6c52a3554327ccdc83ced28efba/llvmlite-0.45.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3adc2355694d6a6fbcc024d59bb756677e7de506037c878022d7b877e7613a36", size = 56288209 }, - { url = "https://files.pythonhosted.org/packages/0a/df/3daf95302ff49beff4230065e3178cd40e71294968e8d55baf4a9e560814/llvmlite-0.45.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f3377a6db40f563058c9515dedcc8a3e562d8693a106a28f2ddccf2c8fcf6ca", size = 55140958 }, - { url = "https://files.pythonhosted.org/packages/a4/56/4c0d503fe03bac820ecdeb14590cf9a248e120f483bcd5c009f2534f23f0/llvmlite-0.45.1-cp311-cp311-win_amd64.whl", hash = "sha256:f9c272682d91e0d57f2a76c6d9ebdfccc603a01828cdbe3d15273bdca0c3363a", size = 38132232 }, - { url = "https://files.pythonhosted.org/packages/e2/7c/82cbd5c656e8991bcc110c69d05913be2229302a92acb96109e166ae31fb/llvmlite-0.45.1-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:28e763aba92fe9c72296911e040231d486447c01d4f90027c8e893d89d49b20e", size = 43043524 }, - { url = "https://files.pythonhosted.org/packages/9d/bc/5314005bb2c7ee9f33102c6456c18cc81745d7055155d1218f1624463774/llvmlite-0.45.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1a53f4b74ee9fd30cb3d27d904dadece67a7575198bd80e687ee76474620735f", size = 37253123 }, - { url = "https://files.pythonhosted.org/packages/96/76/0f7154952f037cb320b83e1c952ec4a19d5d689cf7d27cb8a26887d7bbc1/llvmlite-0.45.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b3796b1b1e1c14dcae34285d2f4ea488402fbd2c400ccf7137603ca3800864f", size = 56288211 }, - { url = "https://files.pythonhosted.org/packages/00/b1/0b581942be2683ceb6862d558979e87387e14ad65a1e4db0e7dd671fa315/llvmlite-0.45.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:779e2f2ceefef0f4368548685f0b4adde34e5f4b457e90391f570a10b348d433", size = 55140958 }, - { url = "https://files.pythonhosted.org/packages/33/94/9ba4ebcf4d541a325fd8098ddc073b663af75cc8b065b6059848f7d4dce7/llvmlite-0.45.1-cp312-cp312-win_amd64.whl", hash = "sha256:9e6c9949baf25d9aa9cd7cf0f6d011b9ca660dd17f5ba2b23bdbdb77cc86b116", size = 38132231 }, - { url = "https://files.pythonhosted.org/packages/1d/e2/c185bb7e88514d5025f93c6c4092f6120c6cea8fe938974ec9860fb03bbb/llvmlite-0.45.1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:d9ea9e6f17569a4253515cc01dade70aba536476e3d750b2e18d81d7e670eb15", size = 43043524 }, - { url = "https://files.pythonhosted.org/packages/09/b8/b5437b9ecb2064e89ccf67dccae0d02cd38911705112dd0dcbfa9cd9a9de/llvmlite-0.45.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:c9f3cadee1630ce4ac18ea38adebf2a4f57a89bd2740ce83746876797f6e0bfb", size = 37253121 }, - { url = "https://files.pythonhosted.org/packages/f7/97/ad1a907c0173a90dd4df7228f24a3ec61058bc1a9ff8a0caec20a0cc622e/llvmlite-0.45.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:57c48bf2e1083eedbc9406fb83c4e6483017879714916fe8be8a72a9672c995a", size = 56288210 }, - { url = "https://files.pythonhosted.org/packages/32/d8/c99c8ac7a326e9735401ead3116f7685a7ec652691aeb2615aa732b1fc4a/llvmlite-0.45.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3aa3dfceda4219ae39cf18806c60eeb518c1680ff834b8b311bd784160b9ce40", size = 55140957 }, - { url = "https://files.pythonhosted.org/packages/09/56/ed35668130e32dbfad2eb37356793b0a95f23494ab5be7d9bf5cb75850ee/llvmlite-0.45.1-cp313-cp313-win_amd64.whl", hash = "sha256:080e6f8d0778a8239cd47686d402cb66eb165e421efa9391366a9b7e5810a38b", size = 38132232 }, -] - -[[package]] -name = "markupsafe" -version = "3.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631 }, - { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057 }, - { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050 }, - { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681 }, - { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705 }, - { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524 }, - { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282 }, - { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745 }, - { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571 }, - { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056 }, - { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932 }, - { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631 }, - { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058 }, - { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287 }, - { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940 }, - { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887 }, - { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692 }, - { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471 }, - { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923 }, - { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572 }, - { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077 }, - { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876 }, - { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615 }, - { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020 }, - { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332 }, - { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947 }, - { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962 }, - { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760 }, - { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529 }, - { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015 }, - { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540 }, - { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105 }, - { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906 }, - { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622 }, - { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029 }, - { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374 }, - { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980 }, - { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990 }, - { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784 }, - { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588 }, - { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041 }, - { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543 }, - { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113 }, - { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911 }, - { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658 }, - { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066 }, - { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639 }, - { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569 }, - { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284 }, - { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801 }, - { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769 }, - { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642 }, - { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612 }, - { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200 }, - { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973 }, - { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619 }, - { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029 }, - { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408 }, - { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005 }, - { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048 }, - { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821 }, - { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606 }, - { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043 }, - { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747 }, - { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341 }, - { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073 }, - { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661 }, - { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069 }, - { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670 }, - { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598 }, - { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261 }, - { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835 }, - { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733 }, - { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672 }, - { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819 }, - { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426 }, - { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146 }, -] - -[[package]] -name = "mpmath" -version = "1.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198 }, -] - -[[package]] -name = "multidict" -version = "6.7.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/80/1e/5492c365f222f907de1039b91f922b93fa4f764c713ee858d235495d8f50/multidict-6.7.0.tar.gz", hash = "sha256:c6e99d9a65ca282e578dfea819cfa9c0a62b2499d8677392e09feaf305e9e6f5", size = 101834 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a9/63/7bdd4adc330abcca54c85728db2327130e49e52e8c3ce685cec44e0f2e9f/multidict-6.7.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:9f474ad5acda359c8758c8accc22032c6abe6dc87a8be2440d097785e27a9349", size = 77153 }, - { url = "https://files.pythonhosted.org/packages/3f/bb/b6c35ff175ed1a3142222b78455ee31be71a8396ed3ab5280fbe3ebe4e85/multidict-6.7.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b7a9db5a870f780220e931d0002bbfd88fb53aceb6293251e2c839415c1b20e", size = 44993 }, - { url = "https://files.pythonhosted.org/packages/e0/1f/064c77877c5fa6df6d346e68075c0f6998547afe952d6471b4c5f6a7345d/multidict-6.7.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:03ca744319864e92721195fa28c7a3b2bc7b686246b35e4078c1e4d0eb5466d3", size = 44607 }, - { url = "https://files.pythonhosted.org/packages/04/7a/bf6aa92065dd47f287690000b3d7d332edfccb2277634cadf6a810463c6a/multidict-6.7.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:f0e77e3c0008bc9316e662624535b88d360c3a5d3f81e15cf12c139a75250046", size = 241847 }, - { url = "https://files.pythonhosted.org/packages/94/39/297a8de920f76eda343e4ce05f3b489f0ab3f9504f2576dfb37b7c08ca08/multidict-6.7.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:08325c9e5367aa379a3496aa9a022fe8837ff22e00b94db256d3a1378c76ab32", size = 242616 }, - { url = "https://files.pythonhosted.org/packages/39/3a/d0eee2898cfd9d654aea6cb8c4addc2f9756e9a7e09391cfe55541f917f7/multidict-6.7.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e2862408c99f84aa571ab462d25236ef9cb12a602ea959ba9c9009a54902fc73", size = 222333 }, - { url = "https://files.pythonhosted.org/packages/05/48/3b328851193c7a4240815b71eea165b49248867bbb6153a0aee227a0bb47/multidict-6.7.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4d72a9a2d885f5c208b0cb91ff2ed43636bb7e345ec839ff64708e04f69a13cc", size = 253239 }, - { url = "https://files.pythonhosted.org/packages/b1/ca/0706a98c8d126a89245413225ca4a3fefc8435014de309cf8b30acb68841/multidict-6.7.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:478cc36476687bac1514d651cbbaa94b86b0732fb6855c60c673794c7dd2da62", size = 251618 }, - { url = "https://files.pythonhosted.org/packages/5e/4f/9c7992f245554d8b173f6f0a048ad24b3e645d883f096857ec2c0822b8bd/multidict-6.7.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6843b28b0364dc605f21481c90fadb5f60d9123b442eb8a726bb74feef588a84", size = 241655 }, - { url = "https://files.pythonhosted.org/packages/31/79/26a85991ae67efd1c0b1fc2e0c275b8a6aceeb155a68861f63f87a798f16/multidict-6.7.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:23bfeee5316266e5ee2d625df2d2c602b829435fc3a235c2ba2131495706e4a0", size = 239245 }, - { url = "https://files.pythonhosted.org/packages/14/1e/75fa96394478930b79d0302eaf9a6c69f34005a1a5251ac8b9c336486ec9/multidict-6.7.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:680878b9f3d45c31e1f730eef731f9b0bc1da456155688c6745ee84eb818e90e", size = 233523 }, - { url = "https://files.pythonhosted.org/packages/b2/5e/085544cb9f9c4ad2b5d97467c15f856df8d9bac410cffd5c43991a5d878b/multidict-6.7.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:eb866162ef2f45063acc7a53a88ef6fe8bf121d45c30ea3c9cd87ce7e191a8d4", size = 243129 }, - { url = "https://files.pythonhosted.org/packages/b9/c3/e9d9e2f20c9474e7a8fcef28f863c5cbd29bb5adce6b70cebe8bdad0039d/multidict-6.7.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:df0e3bf7993bdbeca5ac25aa859cf40d39019e015c9c91809ba7093967f7a648", size = 248999 }, - { url = "https://files.pythonhosted.org/packages/b5/3f/df171b6efa3239ae33b97b887e42671cd1d94d460614bfb2c30ffdab3b95/multidict-6.7.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:661709cdcd919a2ece2234f9bae7174e5220c80b034585d7d8a755632d3e2111", size = 243711 }, - { url = "https://files.pythonhosted.org/packages/3c/2f/9b5564888c4e14b9af64c54acf149263721a283aaf4aa0ae89b091d5d8c1/multidict-6.7.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:096f52730c3fb8ed419db2d44391932b63891b2c5ed14850a7e215c0ba9ade36", size = 237504 }, - { url = "https://files.pythonhosted.org/packages/6c/3a/0bd6ca0f7d96d790542d591c8c3354c1e1b6bfd2024d4d92dc3d87485ec7/multidict-6.7.0-cp310-cp310-win32.whl", hash = "sha256:afa8a2978ec65d2336305550535c9c4ff50ee527914328c8677b3973ade52b85", size = 41422 }, - { url = "https://files.pythonhosted.org/packages/00/35/f6a637ea2c75f0d3b7c7d41b1189189acff0d9deeb8b8f35536bb30f5e33/multidict-6.7.0-cp310-cp310-win_amd64.whl", hash = "sha256:b15b3afff74f707b9275d5ba6a91ae8f6429c3ffb29bbfd216b0b375a56f13d7", size = 46050 }, - { url = "https://files.pythonhosted.org/packages/e7/b8/f7bf8329b39893d02d9d95cf610c75885d12fc0f402b1c894e1c8e01c916/multidict-6.7.0-cp310-cp310-win_arm64.whl", hash = "sha256:4b73189894398d59131a66ff157837b1fafea9974be486d036bb3d32331fdbf0", size = 43153 }, - { url = "https://files.pythonhosted.org/packages/34/9e/5c727587644d67b2ed479041e4b1c58e30afc011e3d45d25bbe35781217c/multidict-6.7.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4d409aa42a94c0b3fa617708ef5276dfe81012ba6753a0370fcc9d0195d0a1fc", size = 76604 }, - { url = "https://files.pythonhosted.org/packages/17/e4/67b5c27bd17c085a5ea8f1ec05b8a3e5cba0ca734bfcad5560fb129e70ca/multidict-6.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:14c9e076eede3b54c636f8ce1c9c252b5f057c62131211f0ceeec273810c9721", size = 44715 }, - { url = "https://files.pythonhosted.org/packages/4d/e1/866a5d77be6ea435711bef2a4291eed11032679b6b28b56b4776ab06ba3e/multidict-6.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c09703000a9d0fa3c3404b27041e574cc7f4df4c6563873246d0e11812a94b6", size = 44332 }, - { url = "https://files.pythonhosted.org/packages/31/61/0c2d50241ada71ff61a79518db85ada85fdabfcf395d5968dae1cbda04e5/multidict-6.7.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a265acbb7bb33a3a2d626afbe756371dce0279e7b17f4f4eda406459c2b5ff1c", size = 245212 }, - { url = "https://files.pythonhosted.org/packages/ac/e0/919666a4e4b57fff1b57f279be1c9316e6cdc5de8a8b525d76f6598fefc7/multidict-6.7.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51cb455de290ae462593e5b1cb1118c5c22ea7f0d3620d9940bf695cea5a4bd7", size = 246671 }, - { url = "https://files.pythonhosted.org/packages/a1/cc/d027d9c5a520f3321b65adea289b965e7bcbd2c34402663f482648c716ce/multidict-6.7.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:db99677b4457c7a5c5a949353e125ba72d62b35f74e26da141530fbb012218a7", size = 225491 }, - { url = "https://files.pythonhosted.org/packages/75/c4/bbd633980ce6155a28ff04e6a6492dd3335858394d7bb752d8b108708558/multidict-6.7.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f470f68adc395e0183b92a2f4689264d1ea4b40504a24d9882c27375e6662bb9", size = 257322 }, - { url = "https://files.pythonhosted.org/packages/4c/6d/d622322d344f1f053eae47e033b0b3f965af01212de21b10bcf91be991fb/multidict-6.7.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0db4956f82723cc1c270de9c6e799b4c341d327762ec78ef82bb962f79cc07d8", size = 254694 }, - { url = "https://files.pythonhosted.org/packages/a8/9f/78f8761c2705d4c6d7516faed63c0ebdac569f6db1bef95e0d5218fdc146/multidict-6.7.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e56d780c238f9e1ae66a22d2adf8d16f485381878250db8d496623cd38b22bd", size = 246715 }, - { url = "https://files.pythonhosted.org/packages/78/59/950818e04f91b9c2b95aab3d923d9eabd01689d0dcd889563988e9ea0fd8/multidict-6.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d14baca2ee12c1a64740d4531356ba50b82543017f3ad6de0deb943c5979abb", size = 243189 }, - { url = "https://files.pythonhosted.org/packages/7a/3d/77c79e1934cad2ee74991840f8a0110966d9599b3af95964c0cd79bb905b/multidict-6.7.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:295a92a76188917c7f99cda95858c822f9e4aae5824246bba9b6b44004ddd0a6", size = 237845 }, - { url = "https://files.pythonhosted.org/packages/63/1b/834ce32a0a97a3b70f86437f685f880136677ac00d8bce0027e9fd9c2db7/multidict-6.7.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:39f1719f57adbb767ef592a50ae5ebb794220d1188f9ca93de471336401c34d2", size = 246374 }, - { url = "https://files.pythonhosted.org/packages/23/ef/43d1c3ba205b5dec93dc97f3fba179dfa47910fc73aaaea4f7ceb41cec2a/multidict-6.7.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0a13fb8e748dfc94749f622de065dd5c1def7e0d2216dba72b1d8069a389c6ff", size = 253345 }, - { url = "https://files.pythonhosted.org/packages/6b/03/eaf95bcc2d19ead522001f6a650ef32811aa9e3624ff0ad37c445c7a588c/multidict-6.7.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e3aa16de190d29a0ea1b48253c57d99a68492c8dd8948638073ab9e74dc9410b", size = 246940 }, - { url = "https://files.pythonhosted.org/packages/e8/df/ec8a5fd66ea6cd6f525b1fcbb23511b033c3e9bc42b81384834ffa484a62/multidict-6.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a048ce45dcdaaf1defb76b2e684f997fb5abf74437b6cb7b22ddad934a964e34", size = 242229 }, - { url = "https://files.pythonhosted.org/packages/8a/a2/59b405d59fd39ec86d1142630e9049243015a5f5291ba49cadf3c090c541/multidict-6.7.0-cp311-cp311-win32.whl", hash = "sha256:a90af66facec4cebe4181b9e62a68be65e45ac9b52b67de9eec118701856e7ff", size = 41308 }, - { url = "https://files.pythonhosted.org/packages/32/0f/13228f26f8b882c34da36efa776c3b7348455ec383bab4a66390e42963ae/multidict-6.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:95b5ffa4349df2887518bb839409bcf22caa72d82beec453216802f475b23c81", size = 46037 }, - { url = "https://files.pythonhosted.org/packages/84/1f/68588e31b000535a3207fd3c909ebeec4fb36b52c442107499c18a896a2a/multidict-6.7.0-cp311-cp311-win_arm64.whl", hash = "sha256:329aa225b085b6f004a4955271a7ba9f1087e39dcb7e65f6284a988264a63912", size = 43023 }, - { url = "https://files.pythonhosted.org/packages/c2/9e/9f61ac18d9c8b475889f32ccfa91c9f59363480613fc807b6e3023d6f60b/multidict-6.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8a3862568a36d26e650a19bb5cbbba14b71789032aebc0423f8cc5f150730184", size = 76877 }, - { url = "https://files.pythonhosted.org/packages/38/6f/614f09a04e6184f8824268fce4bc925e9849edfa654ddd59f0b64508c595/multidict-6.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:960c60b5849b9b4f9dcc9bea6e3626143c252c74113df2c1540aebce70209b45", size = 45467 }, - { url = "https://files.pythonhosted.org/packages/b3/93/c4f67a436dd026f2e780c433277fff72be79152894d9fc36f44569cab1a6/multidict-6.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2049be98fb57a31b4ccf870bf377af2504d4ae35646a19037ec271e4c07998aa", size = 43834 }, - { url = "https://files.pythonhosted.org/packages/7f/f5/013798161ca665e4a422afbc5e2d9e4070142a9ff8905e482139cd09e4d0/multidict-6.7.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0934f3843a1860dd465d38895c17fce1f1cb37295149ab05cd1b9a03afacb2a7", size = 250545 }, - { url = "https://files.pythonhosted.org/packages/71/2f/91dbac13e0ba94669ea5119ba267c9a832f0cb65419aca75549fcf09a3dc/multidict-6.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b3e34f3a1b8131ba06f1a73adab24f30934d148afcd5f5de9a73565a4404384e", size = 258305 }, - { url = "https://files.pythonhosted.org/packages/ef/b0/754038b26f6e04488b48ac621f779c341338d78503fb45403755af2df477/multidict-6.7.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:efbb54e98446892590dc2458c19c10344ee9a883a79b5cec4bc34d6656e8d546", size = 242363 }, - { url = "https://files.pythonhosted.org/packages/87/15/9da40b9336a7c9fa606c4cf2ed80a649dffeb42b905d4f63a1d7eb17d746/multidict-6.7.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a35c5fc61d4f51eb045061e7967cfe3123d622cd500e8868e7c0c592a09fedc4", size = 268375 }, - { url = "https://files.pythonhosted.org/packages/82/72/c53fcade0cc94dfaad583105fd92b3a783af2091eddcb41a6d5a52474000/multidict-6.7.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29fe6740ebccba4175af1b9b87bf553e9c15cd5868ee967e010efcf94e4fd0f1", size = 269346 }, - { url = "https://files.pythonhosted.org/packages/0d/e2/9baffdae21a76f77ef8447f1a05a96ec4bc0a24dae08767abc0a2fe680b8/multidict-6.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:123e2a72e20537add2f33a79e605f6191fba2afda4cbb876e35c1a7074298a7d", size = 256107 }, - { url = "https://files.pythonhosted.org/packages/3c/06/3f06f611087dc60d65ef775f1fb5aca7c6d61c6db4990e7cda0cef9b1651/multidict-6.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b284e319754366c1aee2267a2036248b24eeb17ecd5dc16022095e747f2f4304", size = 253592 }, - { url = "https://files.pythonhosted.org/packages/20/24/54e804ec7945b6023b340c412ce9c3f81e91b3bf5fa5ce65558740141bee/multidict-6.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:803d685de7be4303b5a657b76e2f6d1240e7e0a8aa2968ad5811fa2285553a12", size = 251024 }, - { url = "https://files.pythonhosted.org/packages/14/48/011cba467ea0b17ceb938315d219391d3e421dfd35928e5dbdc3f4ae76ef/multidict-6.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c04a328260dfd5db8c39538f999f02779012268f54614902d0afc775d44e0a62", size = 251484 }, - { url = "https://files.pythonhosted.org/packages/0d/2f/919258b43bb35b99fa127435cfb2d91798eb3a943396631ef43e3720dcf4/multidict-6.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8a19cdb57cd3df4cd865849d93ee14920fb97224300c88501f16ecfa2604b4e0", size = 263579 }, - { url = "https://files.pythonhosted.org/packages/31/22/a0e884d86b5242b5a74cf08e876bdf299e413016b66e55511f7a804a366e/multidict-6.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b2fd74c52accced7e75de26023b7dccee62511a600e62311b918ec5c168fc2a", size = 259654 }, - { url = "https://files.pythonhosted.org/packages/b2/e5/17e10e1b5c5f5a40f2fcbb45953c9b215f8a4098003915e46a93f5fcaa8f/multidict-6.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3e8bfdd0e487acf992407a140d2589fe598238eaeffa3da8448d63a63cd363f8", size = 251511 }, - { url = "https://files.pythonhosted.org/packages/e3/9a/201bb1e17e7af53139597069c375e7b0dcbd47594604f65c2d5359508566/multidict-6.7.0-cp312-cp312-win32.whl", hash = "sha256:dd32a49400a2c3d52088e120ee00c1e3576cbff7e10b98467962c74fdb762ed4", size = 41895 }, - { url = "https://files.pythonhosted.org/packages/46/e2/348cd32faad84eaf1d20cce80e2bb0ef8d312c55bca1f7fa9865e7770aaf/multidict-6.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:92abb658ef2d7ef22ac9f8bb88e8b6c3e571671534e029359b6d9e845923eb1b", size = 46073 }, - { url = "https://files.pythonhosted.org/packages/25/ec/aad2613c1910dce907480e0c3aa306905830f25df2e54ccc9dea450cb5aa/multidict-6.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:490dab541a6a642ce1a9d61a4781656b346a55c13038f0b1244653828e3a83ec", size = 43226 }, - { url = "https://files.pythonhosted.org/packages/d2/86/33272a544eeb36d66e4d9a920602d1a2f57d4ebea4ef3cdfe5a912574c95/multidict-6.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bee7c0588aa0076ce77c0ea5d19a68d76ad81fcd9fe8501003b9a24f9d4000f6", size = 76135 }, - { url = "https://files.pythonhosted.org/packages/91/1c/eb97db117a1ebe46d457a3d235a7b9d2e6dcab174f42d1b67663dd9e5371/multidict-6.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7ef6b61cad77091056ce0e7ce69814ef72afacb150b7ac6a3e9470def2198159", size = 45117 }, - { url = "https://files.pythonhosted.org/packages/f1/d8/6c3442322e41fb1dd4de8bd67bfd11cd72352ac131f6368315617de752f1/multidict-6.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c0359b1ec12b1d6849c59f9d319610b7f20ef990a6d454ab151aa0e3b9f78ca", size = 43472 }, - { url = "https://files.pythonhosted.org/packages/75/3f/e2639e80325af0b6c6febdf8e57cc07043ff15f57fa1ef808f4ccb5ac4cd/multidict-6.7.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cd240939f71c64bd658f186330603aac1a9a81bf6273f523fca63673cb7378a8", size = 249342 }, - { url = "https://files.pythonhosted.org/packages/5d/cc/84e0585f805cbeaa9cbdaa95f9a3d6aed745b9d25700623ac89a6ecff400/multidict-6.7.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60a4d75718a5efa473ebd5ab685786ba0c67b8381f781d1be14da49f1a2dc60", size = 257082 }, - { url = "https://files.pythonhosted.org/packages/b0/9c/ac851c107c92289acbbf5cfb485694084690c1b17e555f44952c26ddc5bd/multidict-6.7.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53a42d364f323275126aff81fb67c5ca1b7a04fda0546245730a55c8c5f24bc4", size = 240704 }, - { url = "https://files.pythonhosted.org/packages/50/cc/5f93e99427248c09da95b62d64b25748a5f5c98c7c2ab09825a1d6af0e15/multidict-6.7.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3b29b980d0ddbecb736735ee5bef69bb2ddca56eff603c86f3f29a1128299b4f", size = 266355 }, - { url = "https://files.pythonhosted.org/packages/ec/0c/2ec1d883ceb79c6f7f6d7ad90c919c898f5d1c6ea96d322751420211e072/multidict-6.7.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f8a93b1c0ed2d04b97a5e9336fd2d33371b9a6e29ab7dd6503d63407c20ffbaf", size = 267259 }, - { url = "https://files.pythonhosted.org/packages/c6/2d/f0b184fa88d6630aa267680bdb8623fb69cb0d024b8c6f0d23f9a0f406d3/multidict-6.7.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ff96e8815eecacc6645da76c413eb3b3d34cfca256c70b16b286a687d013c32", size = 254903 }, - { url = "https://files.pythonhosted.org/packages/06/c9/11ea263ad0df7dfabcad404feb3c0dd40b131bc7f232d5537f2fb1356951/multidict-6.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7516c579652f6a6be0e266aec0acd0db80829ca305c3d771ed898538804c2036", size = 252365 }, - { url = "https://files.pythonhosted.org/packages/41/88/d714b86ee2c17d6e09850c70c9d310abac3d808ab49dfa16b43aba9d53fd/multidict-6.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:040f393368e63fb0f3330e70c26bfd336656bed925e5cbe17c9da839a6ab13ec", size = 250062 }, - { url = "https://files.pythonhosted.org/packages/15/fe/ad407bb9e818c2b31383f6131ca19ea7e35ce93cf1310fce69f12e89de75/multidict-6.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b3bc26a951007b1057a1c543af845f1c7e3e71cc240ed1ace7bf4484aa99196e", size = 249683 }, - { url = "https://files.pythonhosted.org/packages/8c/a4/a89abdb0229e533fb925e7c6e5c40201c2873efebc9abaf14046a4536ee6/multidict-6.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7b022717c748dd1992a83e219587aabe45980d88969f01b316e78683e6285f64", size = 261254 }, - { url = "https://files.pythonhosted.org/packages/8d/aa/0e2b27bd88b40a4fb8dc53dd74eecac70edaa4c1dd0707eb2164da3675b3/multidict-6.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:9600082733859f00d79dee64effc7aef1beb26adb297416a4ad2116fd61374bd", size = 257967 }, - { url = "https://files.pythonhosted.org/packages/d0/8e/0c67b7120d5d5f6d874ed85a085f9dc770a7f9d8813e80f44a9fec820bb7/multidict-6.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:94218fcec4d72bc61df51c198d098ce2b378e0ccbac41ddbed5ef44092913288", size = 250085 }, - { url = "https://files.pythonhosted.org/packages/ba/55/b73e1d624ea4b8fd4dd07a3bb70f6e4c7c6c5d9d640a41c6ffe5cdbd2a55/multidict-6.7.0-cp313-cp313-win32.whl", hash = "sha256:a37bd74c3fa9d00be2d7b8eca074dc56bd8077ddd2917a839bd989612671ed17", size = 41713 }, - { url = "https://files.pythonhosted.org/packages/32/31/75c59e7d3b4205075b4c183fa4ca398a2daf2303ddf616b04ae6ef55cffe/multidict-6.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:30d193c6cc6d559db42b6bcec8a5d395d34d60c9877a0b71ecd7c204fcf15390", size = 45915 }, - { url = "https://files.pythonhosted.org/packages/31/2a/8987831e811f1184c22bc2e45844934385363ee61c0a2dcfa8f71b87e608/multidict-6.7.0-cp313-cp313-win_arm64.whl", hash = "sha256:ea3334cabe4d41b7ccd01e4d349828678794edbc2d3ae97fc162a3312095092e", size = 43077 }, - { url = "https://files.pythonhosted.org/packages/e8/68/7b3a5170a382a340147337b300b9eb25a9ddb573bcdfff19c0fa3f31ffba/multidict-6.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ad9ce259f50abd98a1ca0aa6e490b58c316a0fce0617f609723e40804add2c00", size = 83114 }, - { url = "https://files.pythonhosted.org/packages/55/5c/3fa2d07c84df4e302060f555bbf539310980362236ad49f50eeb0a1c1eb9/multidict-6.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07f5594ac6d084cbb5de2df218d78baf55ef150b91f0ff8a21cc7a2e3a5a58eb", size = 48442 }, - { url = "https://files.pythonhosted.org/packages/fc/56/67212d33239797f9bd91962bb899d72bb0f4c35a8652dcdb8ed049bef878/multidict-6.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0591b48acf279821a579282444814a2d8d0af624ae0bc600aa4d1b920b6e924b", size = 46885 }, - { url = "https://files.pythonhosted.org/packages/46/d1/908f896224290350721597a61a69cd19b89ad8ee0ae1f38b3f5cd12ea2ac/multidict-6.7.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:749a72584761531d2b9467cfbdfd29487ee21124c304c4b6cb760d8777b27f9c", size = 242588 }, - { url = "https://files.pythonhosted.org/packages/ab/67/8604288bbd68680eee0ab568fdcb56171d8b23a01bcd5cb0c8fedf6e5d99/multidict-6.7.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b4c3d199f953acd5b446bf7c0de1fe25d94e09e79086f8dc2f48a11a129cdf1", size = 249966 }, - { url = "https://files.pythonhosted.org/packages/20/33/9228d76339f1ba51e3efef7da3ebd91964d3006217aae13211653193c3ff/multidict-6.7.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9fb0211dfc3b51efea2f349ec92c114d7754dd62c01f81c3e32b765b70c45c9b", size = 228618 }, - { url = "https://files.pythonhosted.org/packages/f8/2d/25d9b566d10cab1c42b3b9e5b11ef79c9111eaf4463b8c257a3bd89e0ead/multidict-6.7.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a027ec240fe73a8d6281872690b988eed307cd7d91b23998ff35ff577ca688b5", size = 257539 }, - { url = "https://files.pythonhosted.org/packages/b6/b1/8d1a965e6637fc33de3c0d8f414485c2b7e4af00f42cab3d84e7b955c222/multidict-6.7.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1d964afecdf3a8288789df2f5751dc0a8261138c3768d9af117ed384e538fad", size = 256345 }, - { url = "https://files.pythonhosted.org/packages/ba/0c/06b5a8adbdeedada6f4fb8d8f193d44a347223b11939b42953eeb6530b6b/multidict-6.7.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:caf53b15b1b7df9fbd0709aa01409000a2b4dd03a5f6f5cc548183c7c8f8b63c", size = 247934 }, - { url = "https://files.pythonhosted.org/packages/8f/31/b2491b5fe167ca044c6eb4b8f2c9f3b8a00b24c432c365358eadac5d7625/multidict-6.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:654030da3197d927f05a536a66186070e98765aa5142794c9904555d3a9d8fb5", size = 245243 }, - { url = "https://files.pythonhosted.org/packages/61/1a/982913957cb90406c8c94f53001abd9eafc271cb3e70ff6371590bec478e/multidict-6.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:2090d3718829d1e484706a2f525e50c892237b2bf9b17a79b059cb98cddc2f10", size = 235878 }, - { url = "https://files.pythonhosted.org/packages/be/c0/21435d804c1a1cf7a2608593f4d19bca5bcbd7a81a70b253fdd1c12af9c0/multidict-6.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d2cfeec3f6f45651b3d408c4acec0ebf3daa9bc8a112a084206f5db5d05b754", size = 243452 }, - { url = "https://files.pythonhosted.org/packages/54/0a/4349d540d4a883863191be6eb9a928846d4ec0ea007d3dcd36323bb058ac/multidict-6.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:4ef089f985b8c194d341eb2c24ae6e7408c9a0e2e5658699c92f497437d88c3c", size = 252312 }, - { url = "https://files.pythonhosted.org/packages/26/64/d5416038dbda1488daf16b676e4dbfd9674dde10a0cc8f4fc2b502d8125d/multidict-6.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e93a0617cd16998784bf4414c7e40f17a35d2350e5c6f0bd900d3a8e02bd3762", size = 246935 }, - { url = "https://files.pythonhosted.org/packages/9f/8c/8290c50d14e49f35e0bd4abc25e1bc7711149ca9588ab7d04f886cdf03d9/multidict-6.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f0feece2ef8ebc42ed9e2e8c78fc4aa3cf455733b507c09ef7406364c94376c6", size = 243385 }, - { url = "https://files.pythonhosted.org/packages/ef/a0/f83ae75e42d694b3fbad3e047670e511c138be747bc713cf1b10d5096416/multidict-6.7.0-cp313-cp313t-win32.whl", hash = "sha256:19a1d55338ec1be74ef62440ca9e04a2f001a04d0cc49a4983dc320ff0f3212d", size = 47777 }, - { url = "https://files.pythonhosted.org/packages/dc/80/9b174a92814a3830b7357307a792300f42c9e94664b01dee8e457551fa66/multidict-6.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3da4fb467498df97e986af166b12d01f05d2e04f978a9c1c680ea1988e0bc4b6", size = 53104 }, - { url = "https://files.pythonhosted.org/packages/cc/28/04baeaf0428d95bb7a7bea0e691ba2f31394338ba424fb0679a9ed0f4c09/multidict-6.7.0-cp313-cp313t-win_arm64.whl", hash = "sha256:b4121773c49a0776461f4a904cdf6264c88e42218aaa8407e803ca8025872792", size = 45503 }, - { url = "https://files.pythonhosted.org/packages/e2/b1/3da6934455dd4b261d4c72f897e3a5728eba81db59959f3a639245891baa/multidict-6.7.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3bab1e4aff7adaa34410f93b1f8e57c4b36b9af0426a76003f441ee1d3c7e842", size = 75128 }, - { url = "https://files.pythonhosted.org/packages/14/2c/f069cab5b51d175a1a2cb4ccdf7a2c2dabd58aa5bd933fa036a8d15e2404/multidict-6.7.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b8512bac933afc3e45fb2b18da8e59b78d4f408399a960339598374d4ae3b56b", size = 44410 }, - { url = "https://files.pythonhosted.org/packages/42/e2/64bb41266427af6642b6b128e8774ed84c11b80a90702c13ac0a86bb10cc/multidict-6.7.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:79dcf9e477bc65414ebfea98ffd013cb39552b5ecd62908752e0e413d6d06e38", size = 43205 }, - { url = "https://files.pythonhosted.org/packages/02/68/6b086fef8a3f1a8541b9236c594f0c9245617c29841f2e0395d979485cde/multidict-6.7.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:31bae522710064b5cbeddaf2e9f32b1abab70ac6ac91d42572502299e9953128", size = 245084 }, - { url = "https://files.pythonhosted.org/packages/15/ee/f524093232007cd7a75c1d132df70f235cfd590a7c9eaccd7ff422ef4ae8/multidict-6.7.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a0df7ff02397bb63e2fd22af2c87dfa39e8c7f12947bc524dbdc528282c7e34", size = 252667 }, - { url = "https://files.pythonhosted.org/packages/02/a5/eeb3f43ab45878f1895118c3ef157a480db58ede3f248e29b5354139c2c9/multidict-6.7.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7a0222514e8e4c514660e182d5156a415c13ef0aabbd71682fc714e327b95e99", size = 233590 }, - { url = "https://files.pythonhosted.org/packages/6a/1e/76d02f8270b97269d7e3dbd45644b1785bda457b474315f8cf999525a193/multidict-6.7.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2397ab4daaf2698eb51a76721e98db21ce4f52339e535725de03ea962b5a3202", size = 264112 }, - { url = "https://files.pythonhosted.org/packages/76/0b/c28a70ecb58963847c2a8efe334904cd254812b10e535aefb3bcce513918/multidict-6.7.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8891681594162635948a636c9fe0ff21746aeb3dd5463f6e25d9bea3a8a39ca1", size = 261194 }, - { url = "https://files.pythonhosted.org/packages/b4/63/2ab26e4209773223159b83aa32721b4021ffb08102f8ac7d689c943fded1/multidict-6.7.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18706cc31dbf402a7945916dd5cddf160251b6dab8a2c5f3d6d5a55949f676b3", size = 248510 }, - { url = "https://files.pythonhosted.org/packages/93/cd/06c1fa8282af1d1c46fd55c10a7930af652afdce43999501d4d68664170c/multidict-6.7.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f844a1bbf1d207dd311a56f383f7eda2d0e134921d45751842d8235e7778965d", size = 248395 }, - { url = "https://files.pythonhosted.org/packages/99/ac/82cb419dd6b04ccf9e7e61befc00c77614fc8134362488b553402ecd55ce/multidict-6.7.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d4393e3581e84e5645506923816b9cc81f5609a778c7e7534054091acc64d1c6", size = 239520 }, - { url = "https://files.pythonhosted.org/packages/fa/f3/a0f9bf09493421bd8716a362e0cd1d244f5a6550f5beffdd6b47e885b331/multidict-6.7.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:fbd18dc82d7bf274b37aa48d664534330af744e03bccf696d6f4c6042e7d19e7", size = 245479 }, - { url = "https://files.pythonhosted.org/packages/8d/01/476d38fc73a212843f43c852b0eee266b6971f0e28329c2184a8df90c376/multidict-6.7.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:b6234e14f9314731ec45c42fc4554b88133ad53a09092cc48a88e771c125dadb", size = 258903 }, - { url = "https://files.pythonhosted.org/packages/49/6d/23faeb0868adba613b817d0e69c5f15531b24d462af8012c4f6de4fa8dc3/multidict-6.7.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:08d4379f9744d8f78d98c8673c06e202ffa88296f009c71bbafe8a6bf847d01f", size = 252333 }, - { url = "https://files.pythonhosted.org/packages/1e/cc/48d02ac22b30fa247f7dad82866e4b1015431092f4ba6ebc7e77596e0b18/multidict-6.7.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9fe04da3f79387f450fd0061d4dd2e45a72749d31bf634aecc9e27f24fdc4b3f", size = 243411 }, - { url = "https://files.pythonhosted.org/packages/4a/03/29a8bf5a18abf1fe34535c88adbdfa88c9fb869b5a3b120692c64abe8284/multidict-6.7.0-cp314-cp314-win32.whl", hash = "sha256:fbafe31d191dfa7c4c51f7a6149c9fb7e914dcf9ffead27dcfd9f1ae382b3885", size = 40940 }, - { url = "https://files.pythonhosted.org/packages/82/16/7ed27b680791b939de138f906d5cf2b4657b0d45ca6f5dd6236fdddafb1a/multidict-6.7.0-cp314-cp314-win_amd64.whl", hash = "sha256:2f67396ec0310764b9222a1728ced1ab638f61aadc6226f17a71dd9324f9a99c", size = 45087 }, - { url = "https://files.pythonhosted.org/packages/cd/3c/e3e62eb35a1950292fe39315d3c89941e30a9d07d5d2df42965ab041da43/multidict-6.7.0-cp314-cp314-win_arm64.whl", hash = "sha256:ba672b26069957ee369cfa7fc180dde1fc6f176eaf1e6beaf61fbebbd3d9c000", size = 42368 }, - { url = "https://files.pythonhosted.org/packages/8b/40/cd499bd0dbc5f1136726db3153042a735fffd0d77268e2ee20d5f33c010f/multidict-6.7.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:c1dcc7524066fa918c6a27d61444d4ee7900ec635779058571f70d042d86ed63", size = 82326 }, - { url = "https://files.pythonhosted.org/packages/13/8a/18e031eca251c8df76daf0288e6790561806e439f5ce99a170b4af30676b/multidict-6.7.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:27e0b36c2d388dc7b6ced3406671b401e84ad7eb0656b8f3a2f46ed0ce483718", size = 48065 }, - { url = "https://files.pythonhosted.org/packages/40/71/5e6701277470a87d234e433fb0a3a7deaf3bcd92566e421e7ae9776319de/multidict-6.7.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2a7baa46a22e77f0988e3b23d4ede5513ebec1929e34ee9495be535662c0dfe2", size = 46475 }, - { url = "https://files.pythonhosted.org/packages/fe/6a/bab00cbab6d9cfb57afe1663318f72ec28289ea03fd4e8236bb78429893a/multidict-6.7.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7bf77f54997a9166a2f5675d1201520586439424c2511723a7312bdb4bcc034e", size = 239324 }, - { url = "https://files.pythonhosted.org/packages/2a/5f/8de95f629fc22a7769ade8b41028e3e5a822c1f8904f618d175945a81ad3/multidict-6.7.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e011555abada53f1578d63389610ac8a5400fc70ce71156b0aa30d326f1a5064", size = 246877 }, - { url = "https://files.pythonhosted.org/packages/23/b4/38881a960458f25b89e9f4a4fdcb02ac101cfa710190db6e5528841e67de/multidict-6.7.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:28b37063541b897fd6a318007373930a75ca6d6ac7c940dbe14731ffdd8d498e", size = 225824 }, - { url = "https://files.pythonhosted.org/packages/1e/39/6566210c83f8a261575f18e7144736059f0c460b362e96e9cf797a24b8e7/multidict-6.7.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:05047ada7a2fde2631a0ed706f1fd68b169a681dfe5e4cf0f8e4cb6618bbc2cd", size = 253558 }, - { url = "https://files.pythonhosted.org/packages/00/a3/67f18315100f64c269f46e6c0319fa87ba68f0f64f2b8e7fd7c72b913a0b/multidict-6.7.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:716133f7d1d946a4e1b91b1756b23c088881e70ff180c24e864c26192ad7534a", size = 252339 }, - { url = "https://files.pythonhosted.org/packages/c8/2a/1cb77266afee2458d82f50da41beba02159b1d6b1f7973afc9a1cad1499b/multidict-6.7.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d1bed1b467ef657f2a0ae62844a607909ef1c6889562de5e1d505f74457d0b96", size = 244895 }, - { url = "https://files.pythonhosted.org/packages/dd/72/09fa7dd487f119b2eb9524946ddd36e2067c08510576d43ff68469563b3b/multidict-6.7.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ca43bdfa5d37bd6aee89d85e1d0831fb86e25541be7e9d376ead1b28974f8e5e", size = 241862 }, - { url = "https://files.pythonhosted.org/packages/65/92/bc1f8bd0853d8669300f732c801974dfc3702c3eeadae2f60cef54dc69d7/multidict-6.7.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:44b546bd3eb645fd26fb949e43c02a25a2e632e2ca21a35e2e132c8105dc8599", size = 232376 }, - { url = "https://files.pythonhosted.org/packages/09/86/ac39399e5cb9d0c2ac8ef6e10a768e4d3bc933ac808d49c41f9dc23337eb/multidict-6.7.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:a6ef16328011d3f468e7ebc326f24c1445f001ca1dec335b2f8e66bed3006394", size = 240272 }, - { url = "https://files.pythonhosted.org/packages/3d/b6/fed5ac6b8563ec72df6cb1ea8dac6d17f0a4a1f65045f66b6d3bf1497c02/multidict-6.7.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:5aa873cbc8e593d361ae65c68f85faadd755c3295ea2c12040ee146802f23b38", size = 248774 }, - { url = "https://files.pythonhosted.org/packages/6b/8d/b954d8c0dc132b68f760aefd45870978deec6818897389dace00fcde32ff/multidict-6.7.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:3d7b6ccce016e29df4b7ca819659f516f0bc7a4b3efa3bb2012ba06431b044f9", size = 242731 }, - { url = "https://files.pythonhosted.org/packages/16/9d/a2dac7009125d3540c2f54e194829ea18ac53716c61b655d8ed300120b0f/multidict-6.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:171b73bd4ee683d307599b66793ac80981b06f069b62eea1c9e29c9241aa66b0", size = 240193 }, - { url = "https://files.pythonhosted.org/packages/39/ca/c05f144128ea232ae2178b008d5011d4e2cea86e4ee8c85c2631b1b94802/multidict-6.7.0-cp314-cp314t-win32.whl", hash = "sha256:b2d7f80c4e1fd010b07cb26820aae86b7e73b681ee4889684fb8d2d4537aab13", size = 48023 }, - { url = "https://files.pythonhosted.org/packages/ba/8f/0a60e501584145588be1af5cc829265701ba3c35a64aec8e07cbb71d39bb/multidict-6.7.0-cp314-cp314t-win_amd64.whl", hash = "sha256:09929cab6fcb68122776d575e03c6cc64ee0b8fca48d17e135474b042ce515cd", size = 53507 }, - { url = "https://files.pythonhosted.org/packages/7f/ae/3148b988a9c6239903e786eac19c889fab607c31d6efa7fb2147e5680f23/multidict-6.7.0-cp314-cp314t-win_arm64.whl", hash = "sha256:cc41db090ed742f32bd2d2c721861725e6109681eddf835d0a82bd3a5c382827", size = 44804 }, - { url = "https://files.pythonhosted.org/packages/b7/da/7d22601b625e241d4f23ef1ebff8acfc60da633c9e7e7922e24d10f592b3/multidict-6.7.0-py3-none-any.whl", hash = "sha256:394fc5c42a333c9ffc3e421a4c85e08580d990e08b99f6bf35b4132114c5dcb3", size = 12317 }, -] - -[[package]] -name = "multiprocess" -version = "0.70.18" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "dill" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/72/fd/2ae3826f5be24c6ed87266bc4e59c46ea5b059a103f3d7e7eb76a52aeecb/multiprocess-0.70.18.tar.gz", hash = "sha256:f9597128e6b3e67b23956da07cf3d2e5cba79e2f4e0fba8d7903636663ec6d0d", size = 1798503 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/f8/7f9a8f08bf98cea1dfaa181e05cc8bbcb59cecf044b5a9ac3cce39f9c449/multiprocess-0.70.18-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25d4012dcaaf66b9e8e955f58482b42910c2ee526d532844d8bcf661bbc604df", size = 135083 }, - { url = "https://files.pythonhosted.org/packages/e5/03/b7b10dbfc17b2b3ce07d4d30b3ba8367d0ed32d6d46cd166e298f161dd46/multiprocess-0.70.18-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:06b19433de0d02afe5869aec8931dd5c01d99074664f806c73896b0d9e527213", size = 135128 }, - { url = "https://files.pythonhosted.org/packages/c1/a3/5f8d3b9690ea5580bee5868ab7d7e2cfca74b7e826b28192b40aa3881cdc/multiprocess-0.70.18-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6fa1366f994373aaf2d4738b0f56e707caeaa05486e97a7f71ee0853823180c2", size = 135132 }, - { url = "https://files.pythonhosted.org/packages/55/4d/9af0d1279c84618bcd35bf5fd7e371657358c7b0a523e54a9cffb87461f8/multiprocess-0.70.18-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:8b8940ae30139e04b076da6c5b83e9398585ebdf0f2ad3250673fef5b2ff06d6", size = 144695 }, - { url = "https://files.pythonhosted.org/packages/17/bf/87323e79dd0562474fad3373c21c66bc6c3c9963b68eb2a209deb4c8575e/multiprocess-0.70.18-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0929ba95831adb938edbd5fb801ac45e705ecad9d100b3e653946b7716cb6bd3", size = 144742 }, - { url = "https://files.pythonhosted.org/packages/dd/74/cb8c831e58dc6d5cf450b17c7db87f14294a1df52eb391da948b5e0a0b94/multiprocess-0.70.18-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4d77f8e4bfe6c6e2e661925bbf9aed4d5ade9a1c6502d5dfc10129b9d1141797", size = 144745 }, - { url = "https://files.pythonhosted.org/packages/ba/d8/0cba6cf51a1a31f20471fbc823a716170c73012ddc4fb85d706630ed6e8f/multiprocess-0.70.18-py310-none-any.whl", hash = "sha256:60c194974c31784019c1f459d984e8f33ee48f10fcf42c309ba97b30d9bd53ea", size = 134948 }, - { url = "https://files.pythonhosted.org/packages/4b/88/9039f2fed1012ef584751d4ceff9ab4a51e5ae264898f0b7cbf44340a859/multiprocess-0.70.18-py311-none-any.whl", hash = "sha256:5aa6eef98e691281b3ad923be2832bf1c55dd2c859acd73e5ec53a66aae06a1d", size = 144462 }, - { url = "https://files.pythonhosted.org/packages/bf/b6/5f922792be93b82ec6b5f270bbb1ef031fd0622847070bbcf9da816502cc/multiprocess-0.70.18-py312-none-any.whl", hash = "sha256:9b78f8e5024b573730bfb654783a13800c2c0f2dfc0c25e70b40d184d64adaa2", size = 150287 }, - { url = "https://files.pythonhosted.org/packages/ee/25/7d7e78e750bc1aecfaf0efbf826c69a791d2eeaf29cf20cba93ff4cced78/multiprocess-0.70.18-py313-none-any.whl", hash = "sha256:871743755f43ef57d7910a38433cfe41319e72be1bbd90b79c7a5ac523eb9334", size = 151917 }, - { url = "https://files.pythonhosted.org/packages/3b/c3/ca84c19bd14cdfc21c388fdcebf08b86a7a470ebc9f5c3c084fc2dbc50f7/multiprocess-0.70.18-py38-none-any.whl", hash = "sha256:dbf705e52a154fe5e90fb17b38f02556169557c2dd8bb084f2e06c2784d8279b", size = 132636 }, - { url = "https://files.pythonhosted.org/packages/6c/28/dd72947e59a6a8c856448a5e74da6201cb5502ddff644fbc790e4bd40b9a/multiprocess-0.70.18-py39-none-any.whl", hash = "sha256:e78ca805a72b1b810c690b6b4cc32579eba34f403094bbbae962b7b5bf9dfcb8", size = 133478 }, -] - -[[package]] -name = "networkx" -version = "3.4.2" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.11'", -] -sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263 }, -] - -[[package]] -name = "networkx" -version = "3.6" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.11.*'", - "python_full_version >= '3.12'", -] -sdist = { url = "https://files.pythonhosted.org/packages/e8/fc/7b6fd4d22c8c4dc5704430140d8b3f520531d4fe7328b8f8d03f5a7950e8/networkx-3.6.tar.gz", hash = "sha256:285276002ad1f7f7da0f7b42f004bcba70d381e936559166363707fdad3d72ad", size = 2511464 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/c7/d64168da60332c17d24c0d2f08bdf3987e8d1ae9d84b5bbd0eec2eb26a55/networkx-3.6-py3-none-any.whl", hash = "sha256:cdb395b105806062473d3be36458d8f1459a4e4b98e236a66c3a48996e07684f", size = 2063713 }, -] - -[[package]] -name = "numba" -version = "0.62.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "llvmlite" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a3/20/33dbdbfe60e5fd8e3dbfde299d106279a33d9f8308346022316781368591/numba-0.62.1.tar.gz", hash = "sha256:7b774242aa890e34c21200a1fc62e5b5757d5286267e71103257f4e2af0d5161", size = 2749817 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/27/a5a9a58f267ec3b72f609789b2a8eefd6156bd7117e41cc9b7cf5de30490/numba-0.62.1-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:a323df9d36a0da1ca9c592a6baaddd0176d9f417ef49a65bb81951dce69d941a", size = 2684281 }, - { url = "https://files.pythonhosted.org/packages/3a/9d/ffc091c0bfd7b80f66df3887a7061b6af80c8c2649902444026ee1454391/numba-0.62.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1e1f4781d3f9f7c23f16eb04e76ca10b5a3516e959634bd226fc48d5d8e7a0a", size = 2687311 }, - { url = "https://files.pythonhosted.org/packages/a1/13/9a27bcd0baeea236116070c7df458414336f25e9dd5a872b066cf36b74bf/numba-0.62.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:14432af305ea68627a084cd702124fd5d0c1f5b8a413b05f4e14757202d1cf6c", size = 3734548 }, - { url = "https://files.pythonhosted.org/packages/a7/00/17a1ac4a60253c784ce59549375e047da98330b82de7df6ac7f4ecc90902/numba-0.62.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f180922adf159ae36c2fe79fb94ffaa74cf5cb3688cb72dba0a904b91e978507", size = 3441277 }, - { url = "https://files.pythonhosted.org/packages/86/94/20ae0ff78612c4697eaf942a639db01dd4e2d90f634ac41fa3e015c961fc/numba-0.62.1-cp310-cp310-win_amd64.whl", hash = "sha256:f41834909d411b4b8d1c68f745144136f21416547009c1e860cc2098754b4ca7", size = 2745647 }, - { url = "https://files.pythonhosted.org/packages/dd/5f/8b3491dd849474f55e33c16ef55678ace1455c490555337899c35826836c/numba-0.62.1-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:f43e24b057714e480fe44bc6031de499e7cf8150c63eb461192caa6cc8530bc8", size = 2684279 }, - { url = "https://files.pythonhosted.org/packages/bf/18/71969149bfeb65a629e652b752b80167fe8a6a6f6e084f1f2060801f7f31/numba-0.62.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:57cbddc53b9ee02830b828a8428757f5c218831ccc96490a314ef569d8342b7b", size = 2687330 }, - { url = "https://files.pythonhosted.org/packages/0e/7d/403be3fecae33088027bc8a95dc80a2fda1e3beff3e0e5fc4374ada3afbe/numba-0.62.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:604059730c637c7885386521bb1b0ddcbc91fd56131a6dcc54163d6f1804c872", size = 3739727 }, - { url = "https://files.pythonhosted.org/packages/e0/c3/3d910d08b659a6d4c62ab3cd8cd93c4d8b7709f55afa0d79a87413027ff6/numba-0.62.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d6c540880170bee817011757dc9049dba5a29db0c09b4d2349295991fe3ee55f", size = 3445490 }, - { url = "https://files.pythonhosted.org/packages/5b/82/9d425c2f20d9f0a37f7cb955945a553a00fa06a2b025856c3550227c5543/numba-0.62.1-cp311-cp311-win_amd64.whl", hash = "sha256:03de6d691d6b6e2b76660ba0f38f37b81ece8b2cc524a62f2a0cfae2bfb6f9da", size = 2745550 }, - { url = "https://files.pythonhosted.org/packages/5e/fa/30fa6873e9f821c0ae755915a3ca444e6ff8d6a7b6860b669a3d33377ac7/numba-0.62.1-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:1b743b32f8fa5fff22e19c2e906db2f0a340782caf024477b97801b918cf0494", size = 2685346 }, - { url = "https://files.pythonhosted.org/packages/a9/d5/504ce8dc46e0dba2790c77e6b878ee65b60fe3e7d6d0006483ef6fde5a97/numba-0.62.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:90fa21b0142bcf08ad8e32a97d25d0b84b1e921bc9423f8dda07d3652860eef6", size = 2688139 }, - { url = "https://files.pythonhosted.org/packages/50/5f/6a802741176c93f2ebe97ad90751894c7b0c922b52ba99a4395e79492205/numba-0.62.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6ef84d0ac19f1bf80431347b6f4ce3c39b7ec13f48f233a48c01e2ec06ecbc59", size = 3796453 }, - { url = "https://files.pythonhosted.org/packages/7e/df/efd21527d25150c4544eccc9d0b7260a5dec4b7e98b5a581990e05a133c0/numba-0.62.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9315cc5e441300e0ca07c828a627d92a6802bcbf27c5487f31ae73783c58da53", size = 3496451 }, - { url = "https://files.pythonhosted.org/packages/80/44/79bfdab12a02796bf4f1841630355c82b5a69933b1d50eb15c7fa37dabe8/numba-0.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:44e3aa6228039992f058f5ebfcfd372c83798e9464297bdad8cc79febcf7891e", size = 2745552 }, - { url = "https://files.pythonhosted.org/packages/22/76/501ea2c07c089ef1386868f33dff2978f43f51b854e34397b20fc55e0a58/numba-0.62.1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:b72489ba8411cc9fdcaa2458d8f7677751e94f0109eeb53e5becfdc818c64afb", size = 2685766 }, - { url = "https://files.pythonhosted.org/packages/80/68/444986ed95350c0611d5c7b46828411c222ce41a0c76707c36425d27ce29/numba-0.62.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:44a1412095534a26fb5da2717bc755b57da5f3053965128fe3dc286652cc6a92", size = 2688741 }, - { url = "https://files.pythonhosted.org/packages/78/7e/bf2e3634993d57f95305c7cee4c9c6cb3c9c78404ee7b49569a0dfecfe33/numba-0.62.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8c9460b9e936c5bd2f0570e20a0a5909ee6e8b694fd958b210e3bde3a6dba2d7", size = 3804576 }, - { url = "https://files.pythonhosted.org/packages/e8/b6/8a1723fff71f63bbb1354bdc60a1513a068acc0f5322f58da6f022d20247/numba-0.62.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:728f91a874192df22d74e3fd42c12900b7ce7190b1aad3574c6c61b08313e4c5", size = 3503367 }, - { url = "https://files.pythonhosted.org/packages/9c/ec/9d414e7a80d6d1dc4af0e07c6bfe293ce0b04ea4d0ed6c45dad9bd6e72eb/numba-0.62.1-cp313-cp313-win_amd64.whl", hash = "sha256:bbf3f88b461514287df66bc8d0307e949b09f2b6f67da92265094e8fa1282dd8", size = 2745529 }, -] - -[[package]] -name = "numpy" -version = "2.2.6" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.11'", -] -sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245 }, - { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048 }, - { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542 }, - { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301 }, - { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320 }, - { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050 }, - { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034 }, - { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185 }, - { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149 }, - { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620 }, - { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963 }, - { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743 }, - { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616 }, - { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579 }, - { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005 }, - { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570 }, - { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548 }, - { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521 }, - { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866 }, - { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455 }, - { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348 }, - { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362 }, - { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103 }, - { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382 }, - { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462 }, - { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618 }, - { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511 }, - { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783 }, - { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506 }, - { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190 }, - { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828 }, - { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006 }, - { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765 }, - { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736 }, - { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719 }, - { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072 }, - { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213 }, - { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632 }, - { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532 }, - { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885 }, - { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467 }, - { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144 }, - { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217 }, - { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014 }, - { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935 }, - { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122 }, - { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143 }, - { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260 }, - { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225 }, - { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374 }, - { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391 }, - { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754 }, - { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476 }, - { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666 }, -] - -[[package]] -name = "numpy" -version = "2.3.5" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.11.*'", - "python_full_version >= '3.12'", -] -sdist = { url = "https://files.pythonhosted.org/packages/76/65/21b3bc86aac7b8f2862db1e808f1ea22b028e30a225a34a5ede9bf8678f2/numpy-2.3.5.tar.gz", hash = "sha256:784db1dcdab56bf0517743e746dfb0f885fc68d948aba86eeec2cba234bdf1c0", size = 20584950 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/43/77/84dd1d2e34d7e2792a236ba180b5e8fcc1e3e414e761ce0253f63d7f572e/numpy-2.3.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:de5672f4a7b200c15a4127042170a694d4df43c992948f5e1af57f0174beed10", size = 17034641 }, - { url = "https://files.pythonhosted.org/packages/2a/ea/25e26fa5837106cde46ae7d0b667e20f69cbbc0efd64cba8221411ab26ae/numpy-2.3.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:acfd89508504a19ed06ef963ad544ec6664518c863436306153e13e94605c218", size = 12528324 }, - { url = "https://files.pythonhosted.org/packages/4d/1a/e85f0eea4cf03d6a0228f5c0256b53f2df4bc794706e7df019fc622e47f1/numpy-2.3.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:ffe22d2b05504f786c867c8395de703937f934272eb67586817b46188b4ded6d", size = 5356872 }, - { url = "https://files.pythonhosted.org/packages/5c/bb/35ef04afd567f4c989c2060cde39211e4ac5357155c1833bcd1166055c61/numpy-2.3.5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:872a5cf366aec6bb1147336480fef14c9164b154aeb6542327de4970282cd2f5", size = 6893148 }, - { url = "https://files.pythonhosted.org/packages/f2/2b/05bbeb06e2dff5eab512dfc678b1cc5ee94d8ac5956a0885c64b6b26252b/numpy-2.3.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3095bdb8dd297e5920b010e96134ed91d852d81d490e787beca7e35ae1d89cf7", size = 14557282 }, - { url = "https://files.pythonhosted.org/packages/65/fb/2b23769462b34398d9326081fad5655198fcf18966fcb1f1e49db44fbf31/numpy-2.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8cba086a43d54ca804ce711b2a940b16e452807acebe7852ff327f1ecd49b0d4", size = 16897903 }, - { url = "https://files.pythonhosted.org/packages/ac/14/085f4cf05fc3f1e8aa95e85404e984ffca9b2275a5dc2b1aae18a67538b8/numpy-2.3.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6cf9b429b21df6b99f4dee7a1218b8b7ffbbe7df8764dc0bd60ce8a0708fed1e", size = 16341672 }, - { url = "https://files.pythonhosted.org/packages/6f/3b/1f73994904142b2aa290449b3bb99772477b5fd94d787093e4f24f5af763/numpy-2.3.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:396084a36abdb603546b119d96528c2f6263921c50df3c8fd7cb28873a237748", size = 18838896 }, - { url = "https://files.pythonhosted.org/packages/cd/b9/cf6649b2124f288309ffc353070792caf42ad69047dcc60da85ee85fea58/numpy-2.3.5-cp311-cp311-win32.whl", hash = "sha256:b0c7088a73aef3d687c4deef8452a3ac7c1be4e29ed8bf3b366c8111128ac60c", size = 6563608 }, - { url = "https://files.pythonhosted.org/packages/aa/44/9fe81ae1dcc29c531843852e2874080dc441338574ccc4306b39e2ff6e59/numpy-2.3.5-cp311-cp311-win_amd64.whl", hash = "sha256:a414504bef8945eae5f2d7cb7be2d4af77c5d1cb5e20b296c2c25b61dff2900c", size = 13078442 }, - { url = "https://files.pythonhosted.org/packages/6d/a7/f99a41553d2da82a20a2f22e93c94f928e4490bb447c9ff3c4ff230581d3/numpy-2.3.5-cp311-cp311-win_arm64.whl", hash = "sha256:0cd00b7b36e35398fa2d16af7b907b65304ef8bb4817a550e06e5012929830fa", size = 10458555 }, - { url = "https://files.pythonhosted.org/packages/44/37/e669fe6cbb2b96c62f6bbedc6a81c0f3b7362f6a59230b23caa673a85721/numpy-2.3.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:74ae7b798248fe62021dbf3c914245ad45d1a6b0cb4a29ecb4b31d0bfbc4cc3e", size = 16733873 }, - { url = "https://files.pythonhosted.org/packages/c5/65/df0db6c097892c9380851ab9e44b52d4f7ba576b833996e0080181c0c439/numpy-2.3.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769", size = 12259838 }, - { url = "https://files.pythonhosted.org/packages/5b/e1/1ee06e70eb2136797abe847d386e7c0e830b67ad1d43f364dd04fa50d338/numpy-2.3.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:612a95a17655e213502f60cfb9bf9408efdc9eb1d5f50535cc6eb365d11b42b5", size = 5088378 }, - { url = "https://files.pythonhosted.org/packages/6d/9c/1ca85fb86708724275103b81ec4cf1ac1d08f465368acfc8da7ab545bdae/numpy-2.3.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3101e5177d114a593d79dd79658650fe28b5a0d8abeb8ce6f437c0e6df5be1a4", size = 6628559 }, - { url = "https://files.pythonhosted.org/packages/74/78/fcd41e5a0ce4f3f7b003da85825acddae6d7ecb60cf25194741b036ca7d6/numpy-2.3.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b973c57ff8e184109db042c842423ff4f60446239bd585a5131cc47f06f789d", size = 14250702 }, - { url = "https://files.pythonhosted.org/packages/b6/23/2a1b231b8ff672b4c450dac27164a8b2ca7d9b7144f9c02d2396518352eb/numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28", size = 16606086 }, - { url = "https://files.pythonhosted.org/packages/a0/c5/5ad26fbfbe2012e190cc7d5003e4d874b88bb18861d0829edc140a713021/numpy-2.3.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:51c1e14eb1e154ebd80e860722f9e6ed6ec89714ad2db2d3aa33c31d7c12179b", size = 16025985 }, - { url = "https://files.pythonhosted.org/packages/d2/fa/dd48e225c46c819288148d9d060b047fd2a6fb1eb37eae25112ee4cb4453/numpy-2.3.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b46b4ec24f7293f23adcd2d146960559aaf8020213de8ad1909dba6c013bf89c", size = 18542976 }, - { url = "https://files.pythonhosted.org/packages/05/79/ccbd23a75862d95af03d28b5c6901a1b7da4803181513d52f3b86ed9446e/numpy-2.3.5-cp312-cp312-win32.whl", hash = "sha256:3997b5b3c9a771e157f9aae01dd579ee35ad7109be18db0e85dbdbe1de06e952", size = 6285274 }, - { url = "https://files.pythonhosted.org/packages/2d/57/8aeaf160312f7f489dea47ab61e430b5cb051f59a98ae68b7133ce8fa06a/numpy-2.3.5-cp312-cp312-win_amd64.whl", hash = "sha256:86945f2ee6d10cdfd67bcb4069c1662dd711f7e2a4343db5cecec06b87cf31aa", size = 12782922 }, - { url = "https://files.pythonhosted.org/packages/78/a6/aae5cc2ca78c45e64b9ef22f089141d661516856cf7c8a54ba434576900d/numpy-2.3.5-cp312-cp312-win_arm64.whl", hash = "sha256:f28620fe26bee16243be2b7b874da327312240a7cdc38b769a697578d2100013", size = 10194667 }, - { url = "https://files.pythonhosted.org/packages/db/69/9cde09f36da4b5a505341180a3f2e6fadc352fd4d2b7096ce9778db83f1a/numpy-2.3.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d0f23b44f57077c1ede8c5f26b30f706498b4862d3ff0a7298b8411dd2f043ff", size = 16728251 }, - { url = "https://files.pythonhosted.org/packages/79/fb/f505c95ceddd7027347b067689db71ca80bd5ecc926f913f1a23e65cf09b/numpy-2.3.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188", size = 12254652 }, - { url = "https://files.pythonhosted.org/packages/78/da/8c7738060ca9c31b30e9301ee0cf6c5ffdbf889d9593285a1cead337f9a5/numpy-2.3.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:ccc933afd4d20aad3c00bcef049cb40049f7f196e0397f1109dba6fed63267b0", size = 5083172 }, - { url = "https://files.pythonhosted.org/packages/a4/b4/ee5bb2537fb9430fd2ef30a616c3672b991a4129bb1c7dcc42aa0abbe5d7/numpy-2.3.5-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:afaffc4393205524af9dfa400fa250143a6c3bc646c08c9f5e25a9f4b4d6a903", size = 6622990 }, - { url = "https://files.pythonhosted.org/packages/95/03/dc0723a013c7d7c19de5ef29e932c3081df1c14ba582b8b86b5de9db7f0f/numpy-2.3.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c75442b2209b8470d6d5d8b1c25714270686f14c749028d2199c54e29f20b4d", size = 14248902 }, - { url = "https://files.pythonhosted.org/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017", size = 16597430 }, - { url = "https://files.pythonhosted.org/packages/2a/51/c1e29be863588db58175175f057286900b4b3327a1351e706d5e0f8dd679/numpy-2.3.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed89927b86296067b4f81f108a2271d8926467a8868e554eaf370fc27fa3ccaf", size = 16024551 }, - { url = "https://files.pythonhosted.org/packages/83/68/8236589d4dbb87253d28259d04d9b814ec0ecce7cb1c7fed29729f4c3a78/numpy-2.3.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51c55fe3451421f3a6ef9a9c1439e82101c57a2c9eab9feb196a62b1a10b58ce", size = 18533275 }, - { url = "https://files.pythonhosted.org/packages/40/56/2932d75b6f13465239e3b7b7e511be27f1b8161ca2510854f0b6e521c395/numpy-2.3.5-cp313-cp313-win32.whl", hash = "sha256:1978155dd49972084bd6ef388d66ab70f0c323ddee6f693d539376498720fb7e", size = 6277637 }, - { url = "https://files.pythonhosted.org/packages/0c/88/e2eaa6cffb115b85ed7c7c87775cb8bcf0816816bc98ca8dbfa2ee33fe6e/numpy-2.3.5-cp313-cp313-win_amd64.whl", hash = "sha256:00dc4e846108a382c5869e77c6ed514394bdeb3403461d25a829711041217d5b", size = 12779090 }, - { url = "https://files.pythonhosted.org/packages/8f/88/3f41e13a44ebd4034ee17baa384acac29ba6a4fcc2aca95f6f08ca0447d1/numpy-2.3.5-cp313-cp313-win_arm64.whl", hash = "sha256:0472f11f6ec23a74a906a00b48a4dcf3849209696dff7c189714511268d103ae", size = 10194710 }, - { url = "https://files.pythonhosted.org/packages/13/cb/71744144e13389d577f867f745b7df2d8489463654a918eea2eeb166dfc9/numpy-2.3.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:414802f3b97f3c1eef41e530aaba3b3c1620649871d8cb38c6eaff034c2e16bd", size = 16827292 }, - { url = "https://files.pythonhosted.org/packages/71/80/ba9dc6f2a4398e7f42b708a7fdc841bb638d353be255655498edbf9a15a8/numpy-2.3.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5ee6609ac3604fa7780e30a03e5e241a7956f8e2fcfe547d51e3afa5247ac47f", size = 12378897 }, - { url = "https://files.pythonhosted.org/packages/2e/6d/db2151b9f64264bcceccd51741aa39b50150de9b602d98ecfe7e0c4bff39/numpy-2.3.5-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:86d835afea1eaa143012a2d7a3f45a3adce2d7adc8b4961f0b362214d800846a", size = 5207391 }, - { url = "https://files.pythonhosted.org/packages/80/ae/429bacace5ccad48a14c4ae5332f6aa8ab9f69524193511d60ccdfdc65fa/numpy-2.3.5-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:30bc11310e8153ca664b14c5f1b73e94bd0503681fcf136a163de856f3a50139", size = 6721275 }, - { url = "https://files.pythonhosted.org/packages/74/5b/1919abf32d8722646a38cd527bc3771eb229a32724ee6ba340ead9b92249/numpy-2.3.5-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1062fde1dcf469571705945b0f221b73928f34a20c904ffb45db101907c3454e", size = 14306855 }, - { url = "https://files.pythonhosted.org/packages/a5/87/6831980559434973bebc30cd9c1f21e541a0f2b0c280d43d3afd909b66d0/numpy-2.3.5-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce581db493ea1a96c0556360ede6607496e8bf9b3a8efa66e06477267bc831e9", size = 16657359 }, - { url = "https://files.pythonhosted.org/packages/dd/91/c797f544491ee99fd00495f12ebb7802c440c1915811d72ac5b4479a3356/numpy-2.3.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:cc8920d2ec5fa99875b670bb86ddeb21e295cb07aa331810d9e486e0b969d946", size = 16093374 }, - { url = "https://files.pythonhosted.org/packages/74/a6/54da03253afcbe7a72785ec4da9c69fb7a17710141ff9ac5fcb2e32dbe64/numpy-2.3.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9ee2197ef8c4f0dfe405d835f3b6a14f5fee7782b5de51ba06fb65fc9b36e9f1", size = 18594587 }, - { url = "https://files.pythonhosted.org/packages/80/e9/aff53abbdd41b0ecca94285f325aff42357c6b5abc482a3fcb4994290b18/numpy-2.3.5-cp313-cp313t-win32.whl", hash = "sha256:70b37199913c1bd300ff6e2693316c6f869c7ee16378faf10e4f5e3275b299c3", size = 6405940 }, - { url = "https://files.pythonhosted.org/packages/d5/81/50613fec9d4de5480de18d4f8ef59ad7e344d497edbef3cfd80f24f98461/numpy-2.3.5-cp313-cp313t-win_amd64.whl", hash = "sha256:b501b5fa195cc9e24fe102f21ec0a44dffc231d2af79950b451e0d99cea02234", size = 12920341 }, - { url = "https://files.pythonhosted.org/packages/bb/ab/08fd63b9a74303947f34f0bd7c5903b9c5532c2d287bead5bdf4c556c486/numpy-2.3.5-cp313-cp313t-win_arm64.whl", hash = "sha256:a80afd79f45f3c4a7d341f13acbe058d1ca8ac017c165d3fa0d3de6bc1a079d7", size = 10262507 }, - { url = "https://files.pythonhosted.org/packages/ba/97/1a914559c19e32d6b2e233cf9a6a114e67c856d35b1d6babca571a3e880f/numpy-2.3.5-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:bf06bc2af43fa8d32d30fae16ad965663e966b1a3202ed407b84c989c3221e82", size = 16735706 }, - { url = "https://files.pythonhosted.org/packages/57/d4/51233b1c1b13ecd796311216ae417796b88b0616cfd8a33ae4536330748a/numpy-2.3.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:052e8c42e0c49d2575621c158934920524f6c5da05a1d3b9bab5d8e259e045f0", size = 12264507 }, - { url = "https://files.pythonhosted.org/packages/45/98/2fe46c5c2675b8306d0b4a3ec3494273e93e1226a490f766e84298576956/numpy-2.3.5-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:1ed1ec893cff7040a02c8aa1c8611b94d395590d553f6b53629a4461dc7f7b63", size = 5093049 }, - { url = "https://files.pythonhosted.org/packages/ce/0e/0698378989bb0ac5f1660c81c78ab1fe5476c1a521ca9ee9d0710ce54099/numpy-2.3.5-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:2dcd0808a421a482a080f89859a18beb0b3d1e905b81e617a188bd80422d62e9", size = 6626603 }, - { url = "https://files.pythonhosted.org/packages/5e/a6/9ca0eecc489640615642a6cbc0ca9e10df70df38c4d43f5a928ff18d8827/numpy-2.3.5-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:727fd05b57df37dc0bcf1a27767a3d9a78cbbc92822445f32cc3436ba797337b", size = 14262696 }, - { url = "https://files.pythonhosted.org/packages/c8/f6/07ec185b90ec9d7217a00eeeed7383b73d7e709dae2a9a021b051542a708/numpy-2.3.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fffe29a1ef00883599d1dc2c51aa2e5d80afe49523c261a74933df395c15c520", size = 16597350 }, - { url = "https://files.pythonhosted.org/packages/75/37/164071d1dde6a1a84c9b8e5b414fa127981bad47adf3a6b7e23917e52190/numpy-2.3.5-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8f7f0e05112916223d3f438f293abf0727e1181b5983f413dfa2fefc4098245c", size = 16040190 }, - { url = "https://files.pythonhosted.org/packages/08/3c/f18b82a406b04859eb026d204e4e1773eb41c5be58410f41ffa511d114ae/numpy-2.3.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2e2eb32ddb9ccb817d620ac1d8dae7c3f641c1e5f55f531a33e8ab97960a75b8", size = 18536749 }, - { url = "https://files.pythonhosted.org/packages/40/79/f82f572bf44cf0023a2fe8588768e23e1592585020d638999f15158609e1/numpy-2.3.5-cp314-cp314-win32.whl", hash = "sha256:66f85ce62c70b843bab1fb14a05d5737741e74e28c7b8b5a064de10142fad248", size = 6335432 }, - { url = "https://files.pythonhosted.org/packages/a3/2e/235b4d96619931192c91660805e5e49242389742a7a82c27665021db690c/numpy-2.3.5-cp314-cp314-win_amd64.whl", hash = "sha256:e6a0bc88393d65807d751a614207b7129a310ca4fe76a74e5c7da5fa5671417e", size = 12919388 }, - { url = "https://files.pythonhosted.org/packages/07/2b/29fd75ce45d22a39c61aad74f3d718e7ab67ccf839ca8b60866054eb15f8/numpy-2.3.5-cp314-cp314-win_arm64.whl", hash = "sha256:aeffcab3d4b43712bb7a60b65f6044d444e75e563ff6180af8f98dd4b905dfd2", size = 10476651 }, - { url = "https://files.pythonhosted.org/packages/17/e1/f6a721234ebd4d87084cfa68d081bcba2f5cfe1974f7de4e0e8b9b2a2ba1/numpy-2.3.5-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:17531366a2e3a9e30762c000f2c43a9aaa05728712e25c11ce1dbe700c53ad41", size = 16834503 }, - { url = "https://files.pythonhosted.org/packages/5c/1c/baf7ffdc3af9c356e1c135e57ab7cf8d247931b9554f55c467efe2c69eff/numpy-2.3.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d21644de1b609825ede2f48be98dfde4656aefc713654eeee280e37cadc4e0ad", size = 12381612 }, - { url = "https://files.pythonhosted.org/packages/74/91/f7f0295151407ddc9ba34e699013c32c3c91944f9b35fcf9281163dc1468/numpy-2.3.5-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:c804e3a5aba5460c73955c955bdbd5c08c354954e9270a2c1565f62e866bdc39", size = 5210042 }, - { url = "https://files.pythonhosted.org/packages/2e/3b/78aebf345104ec50dd50a4d06ddeb46a9ff5261c33bcc58b1c4f12f85ec2/numpy-2.3.5-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:cc0a57f895b96ec78969c34f682c602bf8da1a0270b09bc65673df2e7638ec20", size = 6724502 }, - { url = "https://files.pythonhosted.org/packages/02/c6/7c34b528740512e57ef1b7c8337ab0b4f0bddf34c723b8996c675bc2bc91/numpy-2.3.5-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:900218e456384ea676e24ea6a0417f030a3b07306d29d7ad843957b40a9d8d52", size = 14308962 }, - { url = "https://files.pythonhosted.org/packages/80/35/09d433c5262bc32d725bafc619e095b6a6651caf94027a03da624146f655/numpy-2.3.5-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:09a1bea522b25109bf8e6f3027bd810f7c1085c64a0c7ce050c1676ad0ba010b", size = 16655054 }, - { url = "https://files.pythonhosted.org/packages/7a/ab/6a7b259703c09a88804fa2430b43d6457b692378f6b74b356155283566ac/numpy-2.3.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:04822c00b5fd0323c8166d66c701dc31b7fbd252c100acd708c48f763968d6a3", size = 16091613 }, - { url = "https://files.pythonhosted.org/packages/c2/88/330da2071e8771e60d1038166ff9d73f29da37b01ec3eb43cb1427464e10/numpy-2.3.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d6889ec4ec662a1a37eb4b4fb26b6100841804dac55bd9df579e326cdc146227", size = 18591147 }, - { url = "https://files.pythonhosted.org/packages/51/41/851c4b4082402d9ea860c3626db5d5df47164a712cb23b54be028b184c1c/numpy-2.3.5-cp314-cp314t-win32.whl", hash = "sha256:93eebbcf1aafdf7e2ddd44c2923e2672e1010bddc014138b229e49725b4d6be5", size = 6479806 }, - { url = "https://files.pythonhosted.org/packages/90/30/d48bde1dfd93332fa557cff1972fbc039e055a52021fbef4c2c4b1eefd17/numpy-2.3.5-cp314-cp314t-win_amd64.whl", hash = "sha256:c8a9958e88b65c3b27e22ca2a076311636850b612d6bbfb76e8d156aacde2aaf", size = 13105760 }, - { url = "https://files.pythonhosted.org/packages/2d/fd/4b5eb0b3e888d86aee4d198c23acec7d214baaf17ea93c1adec94c9518b9/numpy-2.3.5-cp314-cp314t-win_arm64.whl", hash = "sha256:6203fdf9f3dc5bdaed7319ad8698e685c7a3be10819f41d32a0723e611733b42", size = 10545459 }, - { url = "https://files.pythonhosted.org/packages/c6/65/f9dea8e109371ade9c782b4e4756a82edf9d3366bca495d84d79859a0b79/numpy-2.3.5-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f0963b55cdd70fad460fa4c1341f12f976bb26cb66021a5580329bd498988310", size = 16910689 }, - { url = "https://files.pythonhosted.org/packages/00/4f/edb00032a8fb92ec0a679d3830368355da91a69cab6f3e9c21b64d0bb986/numpy-2.3.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:f4255143f5160d0de972d28c8f9665d882b5f61309d8362fdd3e103cf7bf010c", size = 12457053 }, - { url = "https://files.pythonhosted.org/packages/16/a4/e8a53b5abd500a63836a29ebe145fc1ab1f2eefe1cfe59276020373ae0aa/numpy-2.3.5-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:a4b9159734b326535f4dd01d947f919c6eefd2d9827466a696c44ced82dfbc18", size = 5285635 }, - { url = "https://files.pythonhosted.org/packages/a3/2f/37eeb9014d9c8b3e9c55bc599c68263ca44fdbc12a93e45a21d1d56df737/numpy-2.3.5-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:2feae0d2c91d46e59fcd62784a3a83b3fb677fead592ce51b5a6fbb4f95965ff", size = 6801770 }, - { url = "https://files.pythonhosted.org/packages/7d/e4/68d2f474df2cb671b2b6c2986a02e520671295647dad82484cde80ca427b/numpy-2.3.5-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ffac52f28a7849ad7576293c0cb7b9f08304e8f7d738a8cb8a90ec4c55a998eb", size = 14391768 }, - { url = "https://files.pythonhosted.org/packages/b8/50/94ccd8a2b141cb50651fddd4f6a48874acb3c91c8f0842b08a6afc4b0b21/numpy-2.3.5-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63c0e9e7eea69588479ebf4a8a270d5ac22763cc5854e9a7eae952a3908103f7", size = 16729263 }, - { url = "https://files.pythonhosted.org/packages/2d/ee/346fa473e666fe14c52fcdd19ec2424157290a032d4c41f98127bfb31ac7/numpy-2.3.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f16417ec91f12f814b10bafe79ef77e70113a2f5f7018640e7425ff979253425", size = 12967213 }, -] - -[[package]] -name = "nvidia-cublas-cu12" -version = "12.8.4.1" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/29/99/db44d685f0e257ff0e213ade1964fc459b4a690a73293220e98feb3307cf/nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:b86f6dd8935884615a0683b663891d43781b819ac4f2ba2b0c9604676af346d0", size = 590537124 }, - { url = "https://files.pythonhosted.org/packages/dc/61/e24b560ab2e2eaeb3c839129175fb330dfcfc29e5203196e5541a4c44682/nvidia_cublas_cu12-12.8.4.1-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:8ac4e771d5a348c551b2a426eda6193c19aa630236b418086020df5ba9667142", size = 594346921 }, -] - -[[package]] -name = "nvidia-cuda-cupti-cu12" -version = "12.8.90" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/1f/b3bd73445e5cb342727fd24fe1f7b748f690b460acadc27ea22f904502c8/nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4412396548808ddfed3f17a467b104ba7751e6b58678a4b840675c56d21cf7ed", size = 9533318 }, - { url = "https://files.pythonhosted.org/packages/f8/02/2adcaa145158bf1a8295d83591d22e4103dbfd821bcaf6f3f53151ca4ffa/nvidia_cuda_cupti_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea0cb07ebda26bb9b29ba82cda34849e73c166c18162d3913575b0c9db9a6182", size = 10248621 }, -] - -[[package]] -name = "nvidia-cuda-nvrtc-cu12" -version = "12.8.93" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/05/6b/32f747947df2da6994e999492ab306a903659555dddc0fbdeb9d71f75e52/nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:a7756528852ef889772a84c6cd89d41dfa74667e24cca16bb31f8f061e3e9994", size = 88040029 }, - { url = "https://files.pythonhosted.org/packages/eb/d1/e50d0acaab360482034b84b6e27ee83c6738f7d32182b987f9c7a4e32962/nvidia_cuda_nvrtc_cu12-12.8.93-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fc1fec1e1637854b4c0a65fb9a8346b51dd9ee69e61ebaccc82058441f15bce8", size = 43106076 }, -] - -[[package]] -name = "nvidia-cuda-runtime-cu12" -version = "12.8.90" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/75/f865a3b236e4647605ea34cc450900854ba123834a5f1598e160b9530c3a/nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:52bf7bbee900262ffefe5e9d5a2a69a30d97e2bc5bb6cc866688caa976966e3d", size = 965265 }, - { url = "https://files.pythonhosted.org/packages/0d/9b/a997b638fcd068ad6e4d53b8551a7d30fe8b404d6f1804abf1df69838932/nvidia_cuda_runtime_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adade8dcbd0edf427b7204d480d6066d33902cab2a4707dcfc48a2d0fd44ab90", size = 954765 }, -] - -[[package]] -name = "nvidia-cudnn-cu12" -version = "9.10.2.21" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "nvidia-cublas-cu12" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/fa/41/e79269ce215c857c935fd86bcfe91a451a584dfc27f1e068f568b9ad1ab7/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:c9132cc3f8958447b4910a1720036d9eff5928cc3179b0a51fb6d167c6cc87d8", size = 705026878 }, - { url = "https://files.pythonhosted.org/packages/ba/51/e123d997aa098c61d029f76663dedbfb9bc8dcf8c60cbd6adbe42f76d049/nvidia_cudnn_cu12-9.10.2.21-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:949452be657fa16687d0930933f032835951ef0892b37d2d53824d1a84dc97a8", size = 706758467 }, -] - -[[package]] -name = "nvidia-cufft-cu12" -version = "11.3.3.83" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "nvidia-nvjitlink-cu12" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/60/bc/7771846d3a0272026c416fbb7e5f4c1f146d6d80704534d0b187dd6f4800/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:848ef7224d6305cdb2a4df928759dca7b1201874787083b6e7550dd6765ce69a", size = 193109211 }, - { url = "https://files.pythonhosted.org/packages/1f/13/ee4e00f30e676b66ae65b4f08cb5bcbb8392c03f54f2d5413ea99a5d1c80/nvidia_cufft_cu12-11.3.3.83-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d2dd21ec0b88cf61b62e6b43564355e5222e4a3fb394cac0db101f2dd0d4f74", size = 193118695 }, -] - -[[package]] -name = "nvidia-cufile-cu12" -version = "1.13.1.3" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/fe/1bcba1dfbfb8d01be8d93f07bfc502c93fa23afa6fd5ab3fc7c1df71038a/nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1d069003be650e131b21c932ec3d8969c1715379251f8d23a1860554b1cb24fc", size = 1197834 }, - { url = "https://files.pythonhosted.org/packages/1e/f5/5607710447a6fe9fd9b3283956fceeee8a06cda1d2f56ce31371f595db2a/nvidia_cufile_cu12-1.13.1.3-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:4beb6d4cce47c1a0f1013d72e02b0994730359e17801d395bdcbf20cfb3bb00a", size = 1120705 }, -] - -[[package]] -name = "nvidia-curand-cu12" -version = "10.3.9.90" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/45/5e/92aa15eca622a388b80fbf8375d4760738df6285b1e92c43d37390a33a9a/nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:dfab99248034673b779bc6decafdc3404a8a6f502462201f2f31f11354204acd", size = 63625754 }, - { url = "https://files.pythonhosted.org/packages/fb/aa/6584b56dc84ebe9cf93226a5cde4d99080c8e90ab40f0c27bda7a0f29aa1/nvidia_curand_cu12-10.3.9.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:b32331d4f4df5d6eefa0554c565b626c7216f87a06a4f56fab27c3b68a830ec9", size = 63619976 }, -] - -[[package]] -name = "nvidia-cusolver-cu12" -version = "11.7.3.90" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "nvidia-cublas-cu12" }, - { name = "nvidia-cusparse-cu12" }, - { name = "nvidia-nvjitlink-cu12" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/32/f7cd6ce8a7690544d084ea21c26e910a97e077c9b7f07bf5de623ee19981/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_aarch64.whl", hash = "sha256:db9ed69dbef9715071232caa9b69c52ac7de3a95773c2db65bdba85916e4e5c0", size = 267229841 }, - { url = "https://files.pythonhosted.org/packages/85/48/9a13d2975803e8cf2777d5ed57b87a0b6ca2cc795f9a4f59796a910bfb80/nvidia_cusolver_cu12-11.7.3.90-py3-none-manylinux_2_27_x86_64.whl", hash = "sha256:4376c11ad263152bd50ea295c05370360776f8c3427b30991df774f9fb26c450", size = 267506905 }, -] - -[[package]] -name = "nvidia-cusparse-cu12" -version = "12.5.8.93" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "nvidia-nvjitlink-cu12" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/bc/f7/cd777c4109681367721b00a106f491e0d0d15cfa1fd59672ce580ce42a97/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9b6c161cb130be1a07a27ea6923df8141f3c295852f4b260c65f18f3e0a091dc", size = 288117129 }, - { url = "https://files.pythonhosted.org/packages/c2/f5/e1854cb2f2bcd4280c44736c93550cc300ff4b8c95ebe370d0aa7d2b473d/nvidia_cusparse_cu12-12.5.8.93-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ec05d76bbbd8b61b06a80e1eaf8cf4959c3d4ce8e711b65ebd0443bb0ebb13b", size = 288216466 }, -] - -[[package]] -name = "nvidia-cusparselt-cu12" -version = "0.7.1" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/73/b9/598f6ff36faaece4b3c50d26f50e38661499ff34346f00e057760b35cc9d/nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8878dce784d0fac90131b6817b607e803c36e629ba34dc5b433471382196b6a5", size = 283835557 }, - { url = "https://files.pythonhosted.org/packages/56/79/12978b96bd44274fe38b5dde5cfb660b1d114f70a65ef962bcbbed99b549/nvidia_cusparselt_cu12-0.7.1-py3-none-manylinux2014_x86_64.whl", hash = "sha256:f1bb701d6b930d5a7cea44c19ceb973311500847f81b634d802b7b539dc55623", size = 287193691 }, -] - -[[package]] -name = "nvidia-nccl-cu12" -version = "2.27.5" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bb/1c/857979db0ef194ca5e21478a0612bcdbbe59458d7694361882279947b349/nvidia_nccl_cu12-2.27.5-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:31432ad4d1fb1004eb0c56203dc9bc2178a1ba69d1d9e02d64a6938ab5e40e7a", size = 322400625 }, - { url = "https://files.pythonhosted.org/packages/6e/89/f7a07dc961b60645dbbf42e80f2bc85ade7feb9a491b11a1e973aa00071f/nvidia_nccl_cu12-2.27.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ad730cf15cb5d25fe849c6e6ca9eb5b76db16a80f13f425ac68d8e2e55624457", size = 322348229 }, -] - -[[package]] -name = "nvidia-nvjitlink-cu12" -version = "12.8.93" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f6/74/86a07f1d0f42998ca31312f998bd3b9a7eff7f52378f4f270c8679c77fb9/nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl", hash = "sha256:81ff63371a7ebd6e6451970684f916be2eab07321b73c9d244dc2b4da7f73b88", size = 39254836 }, - { url = "https://files.pythonhosted.org/packages/2a/a2/8cee5da30d13430e87bf99bb33455d2724d0a4a9cb5d7926d80ccb96d008/nvidia_nvjitlink_cu12-12.8.93-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:adccd7161ace7261e01bb91e44e88da350895c270d23f744f0820c818b7229e7", size = 38386204 }, -] - -[[package]] -name = "nvidia-nvshmem-cu12" -version = "3.3.20" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/9d/3dd98852568fb845ec1f7902c90a22b240fe1cbabda411ccedf2fd737b7b/nvidia_nvshmem_cu12-3.3.20-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b0b960da3842212758e4fa4696b94f129090b30e5122fea3c5345916545cff0", size = 124484616 }, - { url = "https://files.pythonhosted.org/packages/3b/6c/99acb2f9eb85c29fc6f3a7ac4dccfd992e22666dd08a642b303311326a97/nvidia_nvshmem_cu12-3.3.20-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d00f26d3f9b2e3c3065be895e3059d6479ea5c638a3f38c9fec49b1b9dd7c1e5", size = 124657145 }, -] - -[[package]] -name = "nvidia-nvtx-cu12" -version = "12.8.90" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/10/c0/1b303feea90d296f6176f32a2a70b5ef230f9bdeb3a72bddb0dc922dc137/nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d7ad891da111ebafbf7e015d34879f7112832fc239ff0d7d776b6cb685274615", size = 91161 }, - { url = "https://files.pythonhosted.org/packages/a2/eb/86626c1bbc2edb86323022371c39aa48df6fd8b0a1647bc274577f72e90b/nvidia_nvtx_cu12-12.8.90-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b17e2001cc0d751a5bc2c6ec6d26ad95913324a4adb86788c944f8ce9ba441f", size = 89954 }, -] - -[[package]] -name = "onnxruntime" -version = "1.22.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "coloredlogs" }, - { name = "flatbuffers" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "packaging" }, - { name = "protobuf" }, - { name = "sympy" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/67/3c/c99b21646a782b89c33cffd96fdee02a81bc43f0cb651de84d58ec11e30e/onnxruntime-1.22.0-cp310-cp310-macosx_13_0_universal2.whl", hash = "sha256:85d8826cc8054e4d6bf07f779dc742a363c39094015bdad6a08b3c18cfe0ba8c", size = 34273493 }, - { url = "https://files.pythonhosted.org/packages/54/ab/fd9a3b5285008c060618be92e475337fcfbf8689787953d37273f7b52ab0/onnxruntime-1.22.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:468c9502a12f6f49ec335c2febd22fdceecc1e4cc96dfc27e419ba237dff5aff", size = 14445346 }, - { url = "https://files.pythonhosted.org/packages/1f/ca/a5625644bc079e04e3076a5ac1fb954d1e90309b8eb987a4f800732ffee6/onnxruntime-1.22.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:681fe356d853630a898ee05f01ddb95728c9a168c9460e8361d0a240c9b7cb97", size = 16392959 }, - { url = "https://files.pythonhosted.org/packages/6d/6b/8267490476e8d4dd1883632c7e46a4634384c7ff1c35ae44edc8ab0bb7a9/onnxruntime-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:20bca6495d06925631e201f2b257cc37086752e8fe7b6c83a67c6509f4759bc9", size = 12689974 }, - { url = "https://files.pythonhosted.org/packages/7a/08/c008711d1b92ff1272f4fea0fbee57723171f161d42e5c680625535280af/onnxruntime-1.22.0-cp311-cp311-macosx_13_0_universal2.whl", hash = "sha256:8d6725c5b9a681d8fe72f2960c191a96c256367887d076b08466f52b4e0991df", size = 34282151 }, - { url = "https://files.pythonhosted.org/packages/3e/8b/22989f6b59bc4ad1324f07a945c80b9ab825f0a581ad7a6064b93716d9b7/onnxruntime-1.22.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fef17d665a917866d1f68f09edc98223b9a27e6cb167dec69da4c66484ad12fd", size = 14446302 }, - { url = "https://files.pythonhosted.org/packages/7a/d5/aa83d084d05bc8f6cf8b74b499c77431ffd6b7075c761ec48ec0c161a47f/onnxruntime-1.22.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b978aa63a9a22095479c38371a9b359d4c15173cbb164eaad5f2cd27d666aa65", size = 16393496 }, - { url = "https://files.pythonhosted.org/packages/89/a5/1c6c10322201566015183b52ef011dfa932f5dd1b278de8d75c3b948411d/onnxruntime-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:03d3ef7fb11adf154149d6e767e21057e0e577b947dd3f66190b212528e1db31", size = 12691517 }, - { url = "https://files.pythonhosted.org/packages/4d/de/9162872c6e502e9ac8c99a98a8738b2fab408123d11de55022ac4f92562a/onnxruntime-1.22.0-cp312-cp312-macosx_13_0_universal2.whl", hash = "sha256:f3c0380f53c1e72a41b3f4d6af2ccc01df2c17844072233442c3a7e74851ab97", size = 34298046 }, - { url = "https://files.pythonhosted.org/packages/03/79/36f910cd9fc96b444b0e728bba14607016079786adf032dae61f7c63b4aa/onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8601128eaef79b636152aea76ae6981b7c9fc81a618f584c15d78d42b310f1c", size = 14443220 }, - { url = "https://files.pythonhosted.org/packages/8c/60/16d219b8868cc8e8e51a68519873bdb9f5f24af080b62e917a13fff9989b/onnxruntime-1.22.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6964a975731afc19dc3418fad8d4e08c48920144ff590149429a5ebe0d15fb3c", size = 16406377 }, - { url = "https://files.pythonhosted.org/packages/36/b4/3f1c71ce1d3d21078a6a74c5483bfa2b07e41a8d2b8fb1e9993e6a26d8d3/onnxruntime-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0d534a43d1264d1273c2d4f00a5a588fa98d21117a3345b7104fa0bbcaadb9a", size = 12692233 }, - { url = "https://files.pythonhosted.org/packages/a9/65/5cb5018d5b0b7cba820d2c4a1d1b02d40df538d49138ba36a509457e4df6/onnxruntime-1.22.0-cp313-cp313-macosx_13_0_universal2.whl", hash = "sha256:fe7c051236aae16d8e2e9ffbfc1e115a0cc2450e873a9c4cb75c0cc96c1dae07", size = 34298715 }, - { url = "https://files.pythonhosted.org/packages/e1/89/1dfe1b368831d1256b90b95cb8d11da8ab769febd5c8833ec85ec1f79d21/onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a6bbed10bc5e770c04d422893d3045b81acbbadc9fb759a2cd1ca00993da919", size = 14443266 }, - { url = "https://files.pythonhosted.org/packages/1e/70/342514ade3a33ad9dd505dcee96ff1f0e7be6d0e6e9c911fe0f1505abf42/onnxruntime-1.22.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe45ee3e756300fccfd8d61b91129a121d3d80e9d38e01f03ff1295badc32b8", size = 16406707 }, - { url = "https://files.pythonhosted.org/packages/3e/89/2f64e250945fa87140fb917ba377d6d0e9122e029c8512f389a9b7f953f4/onnxruntime-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:5a31d84ef82b4b05d794a4ce8ba37b0d9deb768fd580e36e17b39e0b4840253b", size = 12691777 }, - { url = "https://files.pythonhosted.org/packages/9f/48/d61d5f1ed098161edd88c56cbac49207d7b7b149e613d2cd7e33176c63b3/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a2ac5bd9205d831541db4e508e586e764a74f14efdd3f89af7fd20e1bf4a1ed", size = 14454003 }, - { url = "https://files.pythonhosted.org/packages/c3/16/873b955beda7bada5b0d798d3a601b2ff210e44ad5169f6d405b93892103/onnxruntime-1.22.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64845709f9e8a2809e8e009bc4c8f73b788cee9c6619b7d9930344eae4c9cd36", size = 16427482 }, -] - -[[package]] -name = "overrides" -version = "7.7.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/36/86/b585f53236dec60aba864e050778b25045f857e17f6e5ea0ae95fe80edd2/overrides-7.7.0.tar.gz", hash = "sha256:55158fa3d93b98cc75299b1e67078ad9003ca27945c76162c1c0766d6f91820a", size = 22812 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/ab/fc8290c6a4c722e5514d80f62b2dc4c4df1a68a41d1364e625c35990fcf3/overrides-7.7.0-py3-none-any.whl", hash = "sha256:c7ed9d062f78b8e4c1a7b70bd8796b35ead4d9f510227ef9c5dc7626c60d7e49", size = 17832 }, -] - -[[package]] -name = "packaging" -version = "25.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469 }, -] - -[[package]] -name = "pandas" -version = "2.3.3" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "python-dateutil" }, - { name = "pytz" }, - { name = "tzdata" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c", size = 11555763 }, - { url = "https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a", size = 10801217 }, - { url = "https://files.pythonhosted.org/packages/1d/03/3fc4a529a7710f890a239cc496fc6d50ad4a0995657dccc1d64695adb9f4/pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1", size = 12148791 }, - { url = "https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838", size = 12769373 }, - { url = "https://files.pythonhosted.org/packages/df/91/82cc5169b6b25440a7fc0ef3a694582418d875c8e3ebf796a6d6470aa578/pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250", size = 13200444 }, - { url = "https://files.pythonhosted.org/packages/10/ae/89b3283800ab58f7af2952704078555fa60c807fff764395bb57ea0b0dbd/pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4", size = 13858459 }, - { url = "https://files.pythonhosted.org/packages/85/72/530900610650f54a35a19476eca5104f38555afccda1aa11a92ee14cb21d/pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826", size = 11346086 }, - { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790 }, - { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831 }, - { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267 }, - { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281 }, - { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453 }, - { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361 }, - { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702 }, - { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846 }, - { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618 }, - { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212 }, - { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693 }, - { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002 }, - { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971 }, - { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722 }, - { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671 }, - { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807 }, - { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872 }, - { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371 }, - { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333 }, - { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120 }, - { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991 }, - { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227 }, - { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056 }, - { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189 }, - { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912 }, - { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160 }, - { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233 }, - { url = "https://files.pythonhosted.org/packages/04/fd/74903979833db8390b73b3a8a7d30d146d710bd32703724dd9083950386f/pandas-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ee15f284898e7b246df8087fc82b87b01686f98ee67d85a17b7ab44143a3a9a0", size = 11540635 }, - { url = "https://files.pythonhosted.org/packages/21/00/266d6b357ad5e6d3ad55093a7e8efc7dd245f5a842b584db9f30b0f0a287/pandas-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1611aedd912e1ff81ff41c745822980c49ce4a7907537be8692c8dbc31924593", size = 10759079 }, - { url = "https://files.pythonhosted.org/packages/ca/05/d01ef80a7a3a12b2f8bbf16daba1e17c98a2f039cbc8e2f77a2c5a63d382/pandas-2.3.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d2cefc361461662ac48810cb14365a365ce864afe85ef1f447ff5a1e99ea81c", size = 11814049 }, - { url = "https://files.pythonhosted.org/packages/15/b2/0e62f78c0c5ba7e3d2c5945a82456f4fac76c480940f805e0b97fcbc2f65/pandas-2.3.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ee67acbbf05014ea6c763beb097e03cd629961c8a632075eeb34247120abcb4b", size = 12332638 }, - { url = "https://files.pythonhosted.org/packages/c5/33/dd70400631b62b9b29c3c93d2feee1d0964dc2bae2e5ad7a6c73a7f25325/pandas-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c46467899aaa4da076d5abc11084634e2d197e9460643dd455ac3db5856b24d6", size = 12886834 }, - { url = "https://files.pythonhosted.org/packages/d3/18/b5d48f55821228d0d2692b34fd5034bb185e854bdb592e9c640f6290e012/pandas-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6253c72c6a1d990a410bc7de641d34053364ef8bcd3126f7e7450125887dffe3", size = 13409925 }, - { url = "https://files.pythonhosted.org/packages/a6/3d/124ac75fcd0ecc09b8fdccb0246ef65e35b012030defb0e0eba2cbbbe948/pandas-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:1b07204a219b3b7350abaae088f451860223a52cfb8a6c53358e7948735158e5", size = 11109071 }, - { url = "https://files.pythonhosted.org/packages/89/9c/0e21c895c38a157e0faa1fb64587a9226d6dd46452cac4532d80c3c4a244/pandas-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2462b1a365b6109d275250baaae7b760fd25c726aaca0054649286bcfbb3e8ec", size = 12048504 }, - { url = "https://files.pythonhosted.org/packages/d7/82/b69a1c95df796858777b68fbe6a81d37443a33319761d7c652ce77797475/pandas-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0242fe9a49aa8b4d78a4fa03acb397a58833ef6199e9aa40a95f027bb3a1b6e7", size = 11410702 }, - { url = "https://files.pythonhosted.org/packages/f9/88/702bde3ba0a94b8c73a0181e05144b10f13f29ebfc2150c3a79062a8195d/pandas-2.3.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a21d830e78df0a515db2b3d2f5570610f5e6bd2e27749770e8bb7b524b89b450", size = 11634535 }, - { url = "https://files.pythonhosted.org/packages/a4/1e/1bac1a839d12e6a82ec6cb40cda2edde64a2013a66963293696bbf31fbbb/pandas-2.3.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e3ebdb170b5ef78f19bfb71b0dc5dc58775032361fa188e814959b74d726dd5", size = 12121582 }, - { url = "https://files.pythonhosted.org/packages/44/91/483de934193e12a3b1d6ae7c8645d083ff88dec75f46e827562f1e4b4da6/pandas-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:d051c0e065b94b7a3cea50eb1ec32e912cd96dba41647eb24104b6c6c14c5788", size = 12699963 }, - { url = "https://files.pythonhosted.org/packages/70/44/5191d2e4026f86a2a109053e194d3ba7a31a2d10a9c2348368c63ed4e85a/pandas-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3869faf4bd07b3b66a9f462417d0ca3a9df29a9f6abd5d0d0dbab15dac7abe87", size = 13202175 }, -] - -[[package]] -name = "pillow" -version = "12.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/cace85a1b0c9775a9f8f5d5423c8261c858760e2466c79b2dd184638b056/pillow-12.0.0.tar.gz", hash = "sha256:87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353", size = 47008828 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/08/26e68b6b5da219c2a2cb7b563af008b53bb8e6b6fcb3fa40715fcdb2523a/pillow-12.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:3adfb466bbc544b926d50fe8f4a4e6abd8c6bffd28a26177594e6e9b2b76572b", size = 5289809 }, - { url = "https://files.pythonhosted.org/packages/cb/e9/4e58fb097fb74c7b4758a680aacd558810a417d1edaa7000142976ef9d2f/pillow-12.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1ac11e8ea4f611c3c0147424eae514028b5e9077dd99ab91e1bd7bc33ff145e1", size = 4650606 }, - { url = "https://files.pythonhosted.org/packages/4b/e0/1fa492aa9f77b3bc6d471c468e62bfea1823056bf7e5e4f1914d7ab2565e/pillow-12.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d49e2314c373f4c2b39446fb1a45ed333c850e09d0c59ac79b72eb3b95397363", size = 6221023 }, - { url = "https://files.pythonhosted.org/packages/c1/09/4de7cd03e33734ccd0c876f0251401f1314e819cbfd89a0fcb6e77927cc6/pillow-12.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c7b2a63fd6d5246349f3d3f37b14430d73ee7e8173154461785e43036ffa96ca", size = 8024937 }, - { url = "https://files.pythonhosted.org/packages/2e/69/0688e7c1390666592876d9d474f5e135abb4acb39dcb583c4dc5490f1aff/pillow-12.0.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d64317d2587c70324b79861babb9c09f71fbb780bad212018874b2c013d8600e", size = 6334139 }, - { url = "https://files.pythonhosted.org/packages/ed/1c/880921e98f525b9b44ce747ad1ea8f73fd7e992bafe3ca5e5644bf433dea/pillow-12.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d77153e14b709fd8b8af6f66a3afbb9ed6e9fc5ccf0b6b7e1ced7b036a228782", size = 7026074 }, - { url = "https://files.pythonhosted.org/packages/28/03/96f718331b19b355610ef4ebdbbde3557c726513030665071fd025745671/pillow-12.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:32ed80ea8a90ee3e6fa08c21e2e091bba6eda8eccc83dbc34c95169507a91f10", size = 6448852 }, - { url = "https://files.pythonhosted.org/packages/3a/a0/6a193b3f0cc9437b122978d2c5cbce59510ccf9a5b48825096ed7472da2f/pillow-12.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c828a1ae702fc712978bda0320ba1b9893d99be0badf2647f693cc01cf0f04fa", size = 7117058 }, - { url = "https://files.pythonhosted.org/packages/a7/c4/043192375eaa4463254e8e61f0e2ec9a846b983929a8d0a7122e0a6d6fff/pillow-12.0.0-cp310-cp310-win32.whl", hash = "sha256:bd87e140e45399c818fac4247880b9ce719e4783d767e030a883a970be632275", size = 6295431 }, - { url = "https://files.pythonhosted.org/packages/92/c6/c2f2fc7e56301c21827e689bb8b0b465f1b52878b57471a070678c0c33cd/pillow-12.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:455247ac8a4cfb7b9bc45b7e432d10421aea9fc2e74d285ba4072688a74c2e9d", size = 7000412 }, - { url = "https://files.pythonhosted.org/packages/b2/d2/5f675067ba82da7a1c238a73b32e3fd78d67f9d9f80fbadd33a40b9c0481/pillow-12.0.0-cp310-cp310-win_arm64.whl", hash = "sha256:6ace95230bfb7cd79ef66caa064bbe2f2a1e63d93471c3a2e1f1348d9f22d6b7", size = 2435903 }, - { url = "https://files.pythonhosted.org/packages/0e/5a/a2f6773b64edb921a756eb0729068acad9fc5208a53f4a349396e9436721/pillow-12.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:0fd00cac9c03256c8b2ff58f162ebcd2587ad3e1f2e397eab718c47e24d231cc", size = 5289798 }, - { url = "https://files.pythonhosted.org/packages/2e/05/069b1f8a2e4b5a37493da6c5868531c3f77b85e716ad7a590ef87d58730d/pillow-12.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3475b96f5908b3b16c47533daaa87380c491357d197564e0ba34ae75c0f3257", size = 4650589 }, - { url = "https://files.pythonhosted.org/packages/61/e3/2c820d6e9a36432503ead175ae294f96861b07600a7156154a086ba7111a/pillow-12.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:110486b79f2d112cf6add83b28b627e369219388f64ef2f960fef9ebaf54c642", size = 6230472 }, - { url = "https://files.pythonhosted.org/packages/4f/89/63427f51c64209c5e23d4d52071c8d0f21024d3a8a487737caaf614a5795/pillow-12.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5269cc1caeedb67e6f7269a42014f381f45e2e7cd42d834ede3c703a1d915fe3", size = 8033887 }, - { url = "https://files.pythonhosted.org/packages/f6/1b/c9711318d4901093c15840f268ad649459cd81984c9ec9887756cca049a5/pillow-12.0.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa5129de4e174daccbc59d0a3b6d20eaf24417d59851c07ebb37aeb02947987c", size = 6343964 }, - { url = "https://files.pythonhosted.org/packages/41/1e/db9470f2d030b4995083044cd8738cdd1bf773106819f6d8ba12597d5352/pillow-12.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bee2a6db3a7242ea309aa7ee8e2780726fed67ff4e5b40169f2c940e7eb09227", size = 7034756 }, - { url = "https://files.pythonhosted.org/packages/cc/b0/6177a8bdd5ee4ed87cba2de5a3cc1db55ffbbec6176784ce5bb75aa96798/pillow-12.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:90387104ee8400a7b4598253b4c406f8958f59fcf983a6cea2b50d59f7d63d0b", size = 6458075 }, - { url = "https://files.pythonhosted.org/packages/bc/5e/61537aa6fa977922c6a03253a0e727e6e4a72381a80d63ad8eec350684f2/pillow-12.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bc91a56697869546d1b8f0a3ff35224557ae7f881050e99f615e0119bf934b4e", size = 7125955 }, - { url = "https://files.pythonhosted.org/packages/1f/3d/d5033539344ee3cbd9a4d69e12e63ca3a44a739eb2d4c8da350a3d38edd7/pillow-12.0.0-cp311-cp311-win32.whl", hash = "sha256:27f95b12453d165099c84f8a8bfdfd46b9e4bda9e0e4b65f0635430027f55739", size = 6298440 }, - { url = "https://files.pythonhosted.org/packages/4d/42/aaca386de5cc8bd8a0254516957c1f265e3521c91515b16e286c662854c4/pillow-12.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:b583dc9070312190192631373c6c8ed277254aa6e6084b74bdd0a6d3b221608e", size = 6999256 }, - { url = "https://files.pythonhosted.org/packages/ba/f1/9197c9c2d5708b785f631a6dfbfa8eb3fb9672837cb92ae9af812c13b4ed/pillow-12.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:759de84a33be3b178a64c8ba28ad5c135900359e85fb662bc6e403ad4407791d", size = 2436025 }, - { url = "https://files.pythonhosted.org/packages/2c/90/4fcce2c22caf044e660a198d740e7fbc14395619e3cb1abad12192c0826c/pillow-12.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:53561a4ddc36facb432fae7a9d8afbfaf94795414f5cdc5fc52f28c1dca90371", size = 5249377 }, - { url = "https://files.pythonhosted.org/packages/fd/e0/ed960067543d080691d47d6938ebccbf3976a931c9567ab2fbfab983a5dd/pillow-12.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71db6b4c1653045dacc1585c1b0d184004f0d7e694c7b34ac165ca70c0838082", size = 4650343 }, - { url = "https://files.pythonhosted.org/packages/e7/a1/f81fdeddcb99c044bf7d6faa47e12850f13cee0849537a7d27eeab5534d4/pillow-12.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2fa5f0b6716fc88f11380b88b31fe591a06c6315e955c096c35715788b339e3f", size = 6232981 }, - { url = "https://files.pythonhosted.org/packages/88/e1/9098d3ce341a8750b55b0e00c03f1630d6178f38ac191c81c97a3b047b44/pillow-12.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82240051c6ca513c616f7f9da06e871f61bfd7805f566275841af15015b8f98d", size = 8041399 }, - { url = "https://files.pythonhosted.org/packages/a7/62/a22e8d3b602ae8cc01446d0c57a54e982737f44b6f2e1e019a925143771d/pillow-12.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55f818bd74fe2f11d4d7cbc65880a843c4075e0ac7226bc1a23261dbea531953", size = 6347740 }, - { url = "https://files.pythonhosted.org/packages/4f/87/424511bdcd02c8d7acf9f65caa09f291a519b16bd83c3fb3374b3d4ae951/pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b87843e225e74576437fd5b6a4c2205d422754f84a06942cfaf1dc32243e45a8", size = 7040201 }, - { url = "https://files.pythonhosted.org/packages/dc/4d/435c8ac688c54d11755aedfdd9f29c9eeddf68d150fe42d1d3dbd2365149/pillow-12.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c607c90ba67533e1b2355b821fef6764d1dd2cbe26b8c1005ae84f7aea25ff79", size = 6462334 }, - { url = "https://files.pythonhosted.org/packages/2b/f2/ad34167a8059a59b8ad10bc5c72d4d9b35acc6b7c0877af8ac885b5f2044/pillow-12.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:21f241bdd5080a15bc86d3466a9f6074a9c2c2b314100dd896ac81ee6db2f1ba", size = 7134162 }, - { url = "https://files.pythonhosted.org/packages/0c/b1/a7391df6adacf0a5c2cf6ac1cf1fcc1369e7d439d28f637a847f8803beb3/pillow-12.0.0-cp312-cp312-win32.whl", hash = "sha256:dd333073e0cacdc3089525c7df7d39b211bcdf31fc2824e49d01c6b6187b07d0", size = 6298769 }, - { url = "https://files.pythonhosted.org/packages/a2/0b/d87733741526541c909bbf159e338dcace4f982daac6e5a8d6be225ca32d/pillow-12.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe611163f6303d1619bbcb653540a4d60f9e55e622d60a3108be0d5b441017a", size = 7001107 }, - { url = "https://files.pythonhosted.org/packages/bc/96/aaa61ce33cc98421fb6088af2a03be4157b1e7e0e87087c888e2370a7f45/pillow-12.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:7dfb439562f234f7d57b1ac6bc8fe7f838a4bd49c79230e0f6a1da93e82f1fad", size = 2436012 }, - { url = "https://files.pythonhosted.org/packages/62/f2/de993bb2d21b33a98d031ecf6a978e4b61da207bef02f7b43093774c480d/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0869154a2d0546545cde61d1789a6524319fc1897d9ee31218eae7a60ccc5643", size = 4045493 }, - { url = "https://files.pythonhosted.org/packages/0e/b6/bc8d0c4c9f6f111a783d045310945deb769b806d7574764234ffd50bc5ea/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a7921c5a6d31b3d756ec980f2f47c0cfdbce0fc48c22a39347a895f41f4a6ea4", size = 4120461 }, - { url = "https://files.pythonhosted.org/packages/5d/57/d60d343709366a353dc56adb4ee1e7d8a2cc34e3fbc22905f4167cfec119/pillow-12.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1ee80a59f6ce048ae13cda1abf7fbd2a34ab9ee7d401c46be3ca685d1999a399", size = 3576912 }, - { url = "https://files.pythonhosted.org/packages/a4/a4/a0a31467e3f83b94d37568294b01d22b43ae3c5d85f2811769b9c66389dd/pillow-12.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c50f36a62a22d350c96e49ad02d0da41dbd17ddc2e29750dbdba4323f85eb4a5", size = 5249132 }, - { url = "https://files.pythonhosted.org/packages/83/06/48eab21dd561de2914242711434c0c0eb992ed08ff3f6107a5f44527f5e9/pillow-12.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5193fde9a5f23c331ea26d0cf171fbf67e3f247585f50c08b3e205c7aeb4589b", size = 4650099 }, - { url = "https://files.pythonhosted.org/packages/fc/bd/69ed99fd46a8dba7c1887156d3572fe4484e3f031405fcc5a92e31c04035/pillow-12.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bde737cff1a975b70652b62d626f7785e0480918dece11e8fef3c0cf057351c3", size = 6230808 }, - { url = "https://files.pythonhosted.org/packages/ea/94/8fad659bcdbf86ed70099cb60ae40be6acca434bbc8c4c0d4ef356d7e0de/pillow-12.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6597ff2b61d121172f5844b53f21467f7082f5fb385a9a29c01414463f93b07", size = 8037804 }, - { url = "https://files.pythonhosted.org/packages/20/39/c685d05c06deecfd4e2d1950e9a908aa2ca8bc4e6c3b12d93b9cafbd7837/pillow-12.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b817e7035ea7f6b942c13aa03bb554fc44fea70838ea21f8eb31c638326584e", size = 6345553 }, - { url = "https://files.pythonhosted.org/packages/38/57/755dbd06530a27a5ed74f8cb0a7a44a21722ebf318edbe67ddbd7fb28f88/pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4f1231b7dec408e8670264ce63e9c71409d9583dd21d32c163e25213ee2a344", size = 7037729 }, - { url = "https://files.pythonhosted.org/packages/ca/b6/7e94f4c41d238615674d06ed677c14883103dce1c52e4af16f000338cfd7/pillow-12.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e51b71417049ad6ab14c49608b4a24d8fb3fe605e5dfabfe523b58064dc3d27", size = 6459789 }, - { url = "https://files.pythonhosted.org/packages/9c/14/4448bb0b5e0f22dd865290536d20ec8a23b64e2d04280b89139f09a36bb6/pillow-12.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d120c38a42c234dc9a8c5de7ceaaf899cf33561956acb4941653f8bdc657aa79", size = 7130917 }, - { url = "https://files.pythonhosted.org/packages/dd/ca/16c6926cc1c015845745d5c16c9358e24282f1e588237a4c36d2b30f182f/pillow-12.0.0-cp313-cp313-win32.whl", hash = "sha256:4cc6b3b2efff105c6a1656cfe59da4fdde2cda9af1c5e0b58529b24525d0a098", size = 6302391 }, - { url = "https://files.pythonhosted.org/packages/6d/2a/dd43dcfd6dae9b6a49ee28a8eedb98c7d5ff2de94a5d834565164667b97b/pillow-12.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:4cf7fed4b4580601c4345ceb5d4cbf5a980d030fd5ad07c4d2ec589f95f09905", size = 7007477 }, - { url = "https://files.pythonhosted.org/packages/77/f0/72ea067f4b5ae5ead653053212af05ce3705807906ba3f3e8f58ddf617e6/pillow-12.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:9f0b04c6b8584c2c193babcccc908b38ed29524b29dd464bc8801bf10d746a3a", size = 2435918 }, - { url = "https://files.pythonhosted.org/packages/f5/5e/9046b423735c21f0487ea6cb5b10f89ea8f8dfbe32576fe052b5ba9d4e5b/pillow-12.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7fa22993bac7b77b78cae22bad1e2a987ddf0d9015c63358032f84a53f23cdc3", size = 5251406 }, - { url = "https://files.pythonhosted.org/packages/12/66/982ceebcdb13c97270ef7a56c3969635b4ee7cd45227fa707c94719229c5/pillow-12.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f135c702ac42262573fe9714dfe99c944b4ba307af5eb507abef1667e2cbbced", size = 4653218 }, - { url = "https://files.pythonhosted.org/packages/16/b3/81e625524688c31859450119bf12674619429cab3119eec0e30a7a1029cb/pillow-12.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c85de1136429c524e55cfa4e033b4a7940ac5c8ee4d9401cc2d1bf48154bbc7b", size = 6266564 }, - { url = "https://files.pythonhosted.org/packages/98/59/dfb38f2a41240d2408096e1a76c671d0a105a4a8471b1871c6902719450c/pillow-12.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38df9b4bfd3db902c9c2bd369bcacaf9d935b2fff73709429d95cc41554f7b3d", size = 8069260 }, - { url = "https://files.pythonhosted.org/packages/dc/3d/378dbea5cd1874b94c312425ca77b0f47776c78e0df2df751b820c8c1d6c/pillow-12.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d87ef5795da03d742bf49439f9ca4d027cde49c82c5371ba52464aee266699a", size = 6379248 }, - { url = "https://files.pythonhosted.org/packages/84/b0/d525ef47d71590f1621510327acec75ae58c721dc071b17d8d652ca494d8/pillow-12.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aff9e4d82d082ff9513bdd6acd4f5bd359f5b2c870907d2b0a9c5e10d40c88fe", size = 7066043 }, - { url = "https://files.pythonhosted.org/packages/61/2c/aced60e9cf9d0cde341d54bf7932c9ffc33ddb4a1595798b3a5150c7ec4e/pillow-12.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d8ca2b210ada074d57fcee40c30446c9562e542fc46aedc19baf758a93532ee", size = 6490915 }, - { url = "https://files.pythonhosted.org/packages/ef/26/69dcb9b91f4e59f8f34b2332a4a0a951b44f547c4ed39d3e4dcfcff48f89/pillow-12.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:99a7f72fb6249302aa62245680754862a44179b545ded638cf1fef59befb57ef", size = 7157998 }, - { url = "https://files.pythonhosted.org/packages/61/2b/726235842220ca95fa441ddf55dd2382b52ab5b8d9c0596fe6b3f23dafe8/pillow-12.0.0-cp313-cp313t-win32.whl", hash = "sha256:4078242472387600b2ce8d93ade8899c12bf33fa89e55ec89fe126e9d6d5d9e9", size = 6306201 }, - { url = "https://files.pythonhosted.org/packages/c0/3d/2afaf4e840b2df71344ababf2f8edd75a705ce500e5dc1e7227808312ae1/pillow-12.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2c54c1a783d6d60595d3514f0efe9b37c8808746a66920315bfd34a938d7994b", size = 7013165 }, - { url = "https://files.pythonhosted.org/packages/6f/75/3fa09aa5cf6ed04bee3fa575798ddf1ce0bace8edb47249c798077a81f7f/pillow-12.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:26d9f7d2b604cd23aba3e9faf795787456ac25634d82cd060556998e39c6fa47", size = 2437834 }, - { url = "https://files.pythonhosted.org/packages/54/2a/9a8c6ba2c2c07b71bec92cf63e03370ca5e5f5c5b119b742bcc0cde3f9c5/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:beeae3f27f62308f1ddbcfb0690bf44b10732f2ef43758f169d5e9303165d3f9", size = 4045531 }, - { url = "https://files.pythonhosted.org/packages/84/54/836fdbf1bfb3d66a59f0189ff0b9f5f666cee09c6188309300df04ad71fa/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d4827615da15cd59784ce39d3388275ec093ae3ee8d7f0c089b76fa87af756c2", size = 4120554 }, - { url = "https://files.pythonhosted.org/packages/0d/cd/16aec9f0da4793e98e6b54778a5fbce4f375c6646fe662e80600b8797379/pillow-12.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:3e42edad50b6909089750e65c91aa09aaf1e0a71310d383f11321b27c224ed8a", size = 3576812 }, - { url = "https://files.pythonhosted.org/packages/f6/b7/13957fda356dc46339298b351cae0d327704986337c3c69bb54628c88155/pillow-12.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e5d8efac84c9afcb40914ab49ba063d94f5dbdf5066db4482c66a992f47a3a3b", size = 5252689 }, - { url = "https://files.pythonhosted.org/packages/fc/f5/eae31a306341d8f331f43edb2e9122c7661b975433de5e447939ae61c5da/pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:266cd5f2b63ff316d5a1bba46268e603c9caf5606d44f38c2873c380950576ad", size = 4650186 }, - { url = "https://files.pythonhosted.org/packages/86/62/2a88339aa40c4c77e79108facbd307d6091e2c0eb5b8d3cf4977cfca2fe6/pillow-12.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58eea5ebe51504057dd95c5b77d21700b77615ab0243d8152793dc00eb4faf01", size = 6230308 }, - { url = "https://files.pythonhosted.org/packages/c7/33/5425a8992bcb32d1cb9fa3dd39a89e613d09a22f2c8083b7bf43c455f760/pillow-12.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f13711b1a5ba512d647a0e4ba79280d3a9a045aaf7e0cc6fbe96b91d4cdf6b0c", size = 8039222 }, - { url = "https://files.pythonhosted.org/packages/d8/61/3f5d3b35c5728f37953d3eec5b5f3e77111949523bd2dd7f31a851e50690/pillow-12.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6846bd2d116ff42cba6b646edf5bf61d37e5cbd256425fa089fee4ff5c07a99e", size = 6346657 }, - { url = "https://files.pythonhosted.org/packages/3a/be/ee90a3d79271227e0f0a33c453531efd6ed14b2e708596ba5dd9be948da3/pillow-12.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c98fa880d695de164b4135a52fd2e9cd7b7c90a9d8ac5e9e443a24a95ef9248e", size = 7038482 }, - { url = "https://files.pythonhosted.org/packages/44/34/a16b6a4d1ad727de390e9bd9f19f5f669e079e5826ec0f329010ddea492f/pillow-12.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa3ed2a29a9e9d2d488b4da81dcb54720ac3104a20bf0bd273f1e4648aff5af9", size = 6461416 }, - { url = "https://files.pythonhosted.org/packages/b6/39/1aa5850d2ade7d7ba9f54e4e4c17077244ff7a2d9e25998c38a29749eb3f/pillow-12.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d034140032870024e6b9892c692fe2968493790dd57208b2c37e3fb35f6df3ab", size = 7131584 }, - { url = "https://files.pythonhosted.org/packages/bf/db/4fae862f8fad0167073a7733973bfa955f47e2cac3dc3e3e6257d10fab4a/pillow-12.0.0-cp314-cp314-win32.whl", hash = "sha256:1b1b133e6e16105f524a8dec491e0586d072948ce15c9b914e41cdadd209052b", size = 6400621 }, - { url = "https://files.pythonhosted.org/packages/2b/24/b350c31543fb0107ab2599464d7e28e6f856027aadda995022e695313d94/pillow-12.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:8dc232e39d409036af549c86f24aed8273a40ffa459981146829a324e0848b4b", size = 7142916 }, - { url = "https://files.pythonhosted.org/packages/0f/9b/0ba5a6fd9351793996ef7487c4fdbde8d3f5f75dbedc093bb598648fddf0/pillow-12.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:d52610d51e265a51518692045e372a4c363056130d922a7351429ac9f27e70b0", size = 2523836 }, - { url = "https://files.pythonhosted.org/packages/f5/7a/ceee0840aebc579af529b523d530840338ecf63992395842e54edc805987/pillow-12.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1979f4566bb96c1e50a62d9831e2ea2d1211761e5662afc545fa766f996632f6", size = 5255092 }, - { url = "https://files.pythonhosted.org/packages/44/76/20776057b4bfd1aef4eeca992ebde0f53a4dce874f3ae693d0ec90a4f79b/pillow-12.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2e4b27a6e15b04832fe9bf292b94b5ca156016bbc1ea9c2c20098a0320d6cf6", size = 4653158 }, - { url = "https://files.pythonhosted.org/packages/82/3f/d9ff92ace07be8836b4e7e87e6a4c7a8318d47c2f1463ffcf121fc57d9cb/pillow-12.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb3096c30df99fd01c7bf8e544f392103d0795b9f98ba71a8054bcbf56b255f1", size = 6267882 }, - { url = "https://files.pythonhosted.org/packages/9f/7a/4f7ff87f00d3ad33ba21af78bfcd2f032107710baf8280e3722ceec28cda/pillow-12.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7438839e9e053ef79f7112c881cef684013855016f928b168b81ed5835f3e75e", size = 8071001 }, - { url = "https://files.pythonhosted.org/packages/75/87/fcea108944a52dad8cca0715ae6247e271eb80459364a98518f1e4f480c1/pillow-12.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d5c411a8eaa2299322b647cd932586b1427367fd3184ffbb8f7a219ea2041ca", size = 6380146 }, - { url = "https://files.pythonhosted.org/packages/91/52/0d31b5e571ef5fd111d2978b84603fce26aba1b6092f28e941cb46570745/pillow-12.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e091d464ac59d2c7ad8e7e08105eaf9dafbc3883fd7265ffccc2baad6ac925", size = 7067344 }, - { url = "https://files.pythonhosted.org/packages/7b/f4/2dd3d721f875f928d48e83bb30a434dee75a2531bca839bb996bb0aa5a91/pillow-12.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:792a2c0be4dcc18af9d4a2dfd8a11a17d5e25274a1062b0ec1c2d79c76f3e7f8", size = 6491864 }, - { url = "https://files.pythonhosted.org/packages/30/4b/667dfcf3d61fc309ba5a15b141845cece5915e39b99c1ceab0f34bf1d124/pillow-12.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:afbefa430092f71a9593a99ab6a4e7538bc9eabbf7bf94f91510d3503943edc4", size = 7158911 }, - { url = "https://files.pythonhosted.org/packages/a2/2f/16cabcc6426c32218ace36bf0d55955e813f2958afddbf1d391849fee9d1/pillow-12.0.0-cp314-cp314t-win32.whl", hash = "sha256:3830c769decf88f1289680a59d4f4c46c72573446352e2befec9a8512104fa52", size = 6408045 }, - { url = "https://files.pythonhosted.org/packages/35/73/e29aa0c9c666cf787628d3f0dcf379f4791fba79f4936d02f8b37165bdf8/pillow-12.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:905b0365b210c73afb0ebe9101a32572152dfd1c144c7e28968a331b9217b94a", size = 7148282 }, - { url = "https://files.pythonhosted.org/packages/c1/70/6b41bdcddf541b437bbb9f47f94d2db5d9ddef6c37ccab8c9107743748a4/pillow-12.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:99353a06902c2e43b43e8ff74ee65a7d90307d82370604746738a1e0661ccca7", size = 2525630 }, - { url = "https://files.pythonhosted.org/packages/1d/b3/582327e6c9f86d037b63beebe981425d6811104cb443e8193824ef1a2f27/pillow-12.0.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b22bd8c974942477156be55a768f7aa37c46904c175be4e158b6a86e3a6b7ca8", size = 5215068 }, - { url = "https://files.pythonhosted.org/packages/fd/d6/67748211d119f3b6540baf90f92fae73ae51d5217b171b0e8b5f7e5d558f/pillow-12.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:805ebf596939e48dbb2e4922a1d3852cfc25c38160751ce02da93058b48d252a", size = 4614994 }, - { url = "https://files.pythonhosted.org/packages/2d/e1/f8281e5d844c41872b273b9f2c34a4bf64ca08905668c8ae730eedc7c9fa/pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cae81479f77420d217def5f54b5b9d279804d17e982e0f2fa19b1d1e14ab5197", size = 5246639 }, - { url = "https://files.pythonhosted.org/packages/94/5a/0d8ab8ffe8a102ff5df60d0de5af309015163bf710c7bb3e8311dd3b3ad0/pillow-12.0.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aeaefa96c768fc66818730b952a862235d68825c178f1b3ffd4efd7ad2edcb7c", size = 6986839 }, - { url = "https://files.pythonhosted.org/packages/20/2e/3434380e8110b76cd9eb00a363c484b050f949b4bbe84ba770bb8508a02c/pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f2d0abef9e4e2f349305a4f8cc784a8a6c2f58a8c4892eea13b10a943bd26e", size = 5313505 }, - { url = "https://files.pythonhosted.org/packages/57/ca/5a9d38900d9d74785141d6580950fe705de68af735ff6e727cb911b64740/pillow-12.0.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdee52571a343d721fb2eb3b090a82d959ff37fc631e3f70422e0c2e029f3e76", size = 5963654 }, - { url = "https://files.pythonhosted.org/packages/95/7e/f896623c3c635a90537ac093c6a618ebe1a90d87206e42309cb5d98a1b9e/pillow-12.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:b290fd8aa38422444d4b50d579de197557f182ef1068b75f5aa8558638b8d0a5", size = 6997850 }, -] - -[[package]] -name = "pluggy" -version = "1.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, -] - -[[package]] -name = "propcache" -version = "0.4.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/0e/934b541323035566a9af292dba85a195f7b78179114f2c6ebb24551118a9/propcache-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db", size = 79534 }, - { url = "https://files.pythonhosted.org/packages/a1/6b/db0d03d96726d995dc7171286c6ba9d8d14251f37433890f88368951a44e/propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8", size = 45526 }, - { url = "https://files.pythonhosted.org/packages/e4/c3/82728404aea669e1600f304f2609cde9e665c18df5a11cdd57ed73c1dceb/propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925", size = 47263 }, - { url = "https://files.pythonhosted.org/packages/df/1b/39313ddad2bf9187a1432654c38249bab4562ef535ef07f5eb6eb04d0b1b/propcache-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21", size = 201012 }, - { url = "https://files.pythonhosted.org/packages/5b/01/f1d0b57d136f294a142acf97f4ed58c8e5b974c21e543000968357115011/propcache-0.4.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5", size = 209491 }, - { url = "https://files.pythonhosted.org/packages/a1/c8/038d909c61c5bb039070b3fb02ad5cccdb1dde0d714792e251cdb17c9c05/propcache-0.4.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db", size = 215319 }, - { url = "https://files.pythonhosted.org/packages/08/57/8c87e93142b2c1fa2408e45695205a7ba05fb5db458c0bf5c06ba0e09ea6/propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7", size = 196856 }, - { url = "https://files.pythonhosted.org/packages/42/df/5615fec76aa561987a534759b3686008a288e73107faa49a8ae5795a9f7a/propcache-0.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4", size = 193241 }, - { url = "https://files.pythonhosted.org/packages/d5/21/62949eb3a7a54afe8327011c90aca7e03547787a88fb8bd9726806482fea/propcache-0.4.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60", size = 190552 }, - { url = "https://files.pythonhosted.org/packages/30/ee/ab4d727dd70806e5b4de96a798ae7ac6e4d42516f030ee60522474b6b332/propcache-0.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f", size = 200113 }, - { url = "https://files.pythonhosted.org/packages/8a/0b/38b46208e6711b016aa8966a3ac793eee0d05c7159d8342aa27fc0bc365e/propcache-0.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900", size = 200778 }, - { url = "https://files.pythonhosted.org/packages/cf/81/5abec54355ed344476bee711e9f04815d4b00a311ab0535599204eecc257/propcache-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c", size = 193047 }, - { url = "https://files.pythonhosted.org/packages/ec/b6/1f237c04e32063cb034acd5f6ef34ef3a394f75502e72703545631ab1ef6/propcache-0.4.1-cp310-cp310-win32.whl", hash = "sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb", size = 38093 }, - { url = "https://files.pythonhosted.org/packages/a6/67/354aac4e0603a15f76439caf0427781bcd6797f370377f75a642133bc954/propcache-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37", size = 41638 }, - { url = "https://files.pythonhosted.org/packages/e0/e1/74e55b9fd1a4c209ff1a9a824bf6c8b3d1fc5a1ac3eabe23462637466785/propcache-0.4.1-cp310-cp310-win_arm64.whl", hash = "sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581", size = 38229 }, - { url = "https://files.pythonhosted.org/packages/8c/d4/4e2c9aaf7ac2242b9358f98dccd8f90f2605402f5afeff6c578682c2c491/propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf", size = 80208 }, - { url = "https://files.pythonhosted.org/packages/c2/21/d7b68e911f9c8e18e4ae43bdbc1e1e9bbd971f8866eb81608947b6f585ff/propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5", size = 45777 }, - { url = "https://files.pythonhosted.org/packages/d3/1d/11605e99ac8ea9435651ee71ab4cb4bf03f0949586246476a25aadfec54a/propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e", size = 47647 }, - { url = "https://files.pythonhosted.org/packages/58/1a/3c62c127a8466c9c843bccb503d40a273e5cc69838805f322e2826509e0d/propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566", size = 214929 }, - { url = "https://files.pythonhosted.org/packages/56/b9/8fa98f850960b367c4b8fe0592e7fc341daa7a9462e925228f10a60cf74f/propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165", size = 221778 }, - { url = "https://files.pythonhosted.org/packages/46/a6/0ab4f660eb59649d14b3d3d65c439421cf2f87fe5dd68591cbe3c1e78a89/propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc", size = 228144 }, - { url = "https://files.pythonhosted.org/packages/52/6a/57f43e054fb3d3a56ac9fc532bc684fc6169a26c75c353e65425b3e56eef/propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48", size = 210030 }, - { url = "https://files.pythonhosted.org/packages/40/e2/27e6feebb5f6b8408fa29f5efbb765cd54c153ac77314d27e457a3e993b7/propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570", size = 208252 }, - { url = "https://files.pythonhosted.org/packages/9e/f8/91c27b22ccda1dbc7967f921c42825564fa5336a01ecd72eb78a9f4f53c2/propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85", size = 202064 }, - { url = "https://files.pythonhosted.org/packages/f2/26/7f00bd6bd1adba5aafe5f4a66390f243acab58eab24ff1a08bebb2ef9d40/propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e", size = 212429 }, - { url = "https://files.pythonhosted.org/packages/84/89/fd108ba7815c1117ddca79c228f3f8a15fc82a73bca8b142eb5de13b2785/propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757", size = 216727 }, - { url = "https://files.pythonhosted.org/packages/79/37/3ec3f7e3173e73f1d600495d8b545b53802cbf35506e5732dd8578db3724/propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f", size = 205097 }, - { url = "https://files.pythonhosted.org/packages/61/b0/b2631c19793f869d35f47d5a3a56fb19e9160d3c119f15ac7344fc3ccae7/propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1", size = 38084 }, - { url = "https://files.pythonhosted.org/packages/f4/78/6cce448e2098e9f3bfc91bb877f06aa24b6ccace872e39c53b2f707c4648/propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6", size = 41637 }, - { url = "https://files.pythonhosted.org/packages/9c/e9/754f180cccd7f51a39913782c74717c581b9cc8177ad0e949f4d51812383/propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239", size = 38064 }, - { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061 }, - { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037 }, - { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324 }, - { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505 }, - { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242 }, - { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474 }, - { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575 }, - { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736 }, - { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019 }, - { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376 }, - { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988 }, - { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615 }, - { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066 }, - { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655 }, - { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789 }, - { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750 }, - { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780 }, - { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308 }, - { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182 }, - { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215 }, - { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112 }, - { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442 }, - { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398 }, - { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920 }, - { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748 }, - { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877 }, - { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437 }, - { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586 }, - { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790 }, - { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158 }, - { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451 }, - { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374 }, - { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396 }, - { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950 }, - { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856 }, - { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420 }, - { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254 }, - { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205 }, - { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873 }, - { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739 }, - { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514 }, - { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781 }, - { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396 }, - { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897 }, - { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789 }, - { url = "https://files.pythonhosted.org/packages/8e/5c/bca52d654a896f831b8256683457ceddd490ec18d9ec50e97dfd8fc726a8/propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12", size = 78152 }, - { url = "https://files.pythonhosted.org/packages/65/9b/03b04e7d82a5f54fb16113d839f5ea1ede58a61e90edf515f6577c66fa8f/propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c", size = 44869 }, - { url = "https://files.pythonhosted.org/packages/b2/fa/89a8ef0468d5833a23fff277b143d0573897cf75bd56670a6d28126c7d68/propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded", size = 46596 }, - { url = "https://files.pythonhosted.org/packages/86/bd/47816020d337f4a746edc42fe8d53669965138f39ee117414c7d7a340cfe/propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641", size = 206981 }, - { url = "https://files.pythonhosted.org/packages/df/f6/c5fa1357cc9748510ee55f37173eb31bfde6d94e98ccd9e6f033f2fc06e1/propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4", size = 211490 }, - { url = "https://files.pythonhosted.org/packages/80/1e/e5889652a7c4a3846683401a48f0f2e5083ce0ec1a8a5221d8058fbd1adf/propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44", size = 215371 }, - { url = "https://files.pythonhosted.org/packages/b2/f2/889ad4b2408f72fe1a4f6a19491177b30ea7bf1a0fd5f17050ca08cfc882/propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d", size = 201424 }, - { url = "https://files.pythonhosted.org/packages/27/73/033d63069b57b0812c8bd19f311faebeceb6ba31b8f32b73432d12a0b826/propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b", size = 197566 }, - { url = "https://files.pythonhosted.org/packages/dc/89/ce24f3dc182630b4e07aa6d15f0ff4b14ed4b9955fae95a0b54c58d66c05/propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e", size = 193130 }, - { url = "https://files.pythonhosted.org/packages/a9/24/ef0d5fd1a811fb5c609278d0209c9f10c35f20581fcc16f818da959fc5b4/propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f", size = 202625 }, - { url = "https://files.pythonhosted.org/packages/f5/02/98ec20ff5546f68d673df2f7a69e8c0d076b5abd05ca882dc7ee3a83653d/propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49", size = 204209 }, - { url = "https://files.pythonhosted.org/packages/a0/87/492694f76759b15f0467a2a93ab68d32859672b646aa8a04ce4864e7932d/propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144", size = 197797 }, - { url = "https://files.pythonhosted.org/packages/ee/36/66367de3575db1d2d3f3d177432bd14ee577a39d3f5d1b3d5df8afe3b6e2/propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f", size = 38140 }, - { url = "https://files.pythonhosted.org/packages/0c/2a/a758b47de253636e1b8aef181c0b4f4f204bf0dd964914fb2af90a95b49b/propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153", size = 41257 }, - { url = "https://files.pythonhosted.org/packages/34/5e/63bd5896c3fec12edcbd6f12508d4890d23c265df28c74b175e1ef9f4f3b/propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992", size = 38097 }, - { url = "https://files.pythonhosted.org/packages/99/85/9ff785d787ccf9bbb3f3106f79884a130951436f58392000231b4c737c80/propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f", size = 81455 }, - { url = "https://files.pythonhosted.org/packages/90/85/2431c10c8e7ddb1445c1f7c4b54d886e8ad20e3c6307e7218f05922cad67/propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393", size = 46372 }, - { url = "https://files.pythonhosted.org/packages/01/20/b0972d902472da9bcb683fa595099911f4d2e86e5683bcc45de60dd05dc3/propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0", size = 48411 }, - { url = "https://files.pythonhosted.org/packages/e2/e3/7dc89f4f21e8f99bad3d5ddb3a3389afcf9da4ac69e3deb2dcdc96e74169/propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a", size = 275712 }, - { url = "https://files.pythonhosted.org/packages/20/67/89800c8352489b21a8047c773067644e3897f02ecbbd610f4d46b7f08612/propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be", size = 273557 }, - { url = "https://files.pythonhosted.org/packages/e2/a1/b52b055c766a54ce6d9c16d9aca0cad8059acd9637cdf8aa0222f4a026ef/propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc", size = 280015 }, - { url = "https://files.pythonhosted.org/packages/48/c8/33cee30bd890672c63743049f3c9e4be087e6780906bfc3ec58528be59c1/propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a", size = 262880 }, - { url = "https://files.pythonhosted.org/packages/0c/b1/8f08a143b204b418285c88b83d00edbd61afbc2c6415ffafc8905da7038b/propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89", size = 260938 }, - { url = "https://files.pythonhosted.org/packages/cf/12/96e4664c82ca2f31e1c8dff86afb867348979eb78d3cb8546a680287a1e9/propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726", size = 247641 }, - { url = "https://files.pythonhosted.org/packages/18/ed/e7a9cfca28133386ba52278136d42209d3125db08d0a6395f0cba0c0285c/propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367", size = 262510 }, - { url = "https://files.pythonhosted.org/packages/f5/76/16d8bf65e8845dd62b4e2b57444ab81f07f40caa5652b8969b87ddcf2ef6/propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36", size = 263161 }, - { url = "https://files.pythonhosted.org/packages/e7/70/c99e9edb5d91d5ad8a49fa3c1e8285ba64f1476782fed10ab251ff413ba1/propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455", size = 257393 }, - { url = "https://files.pythonhosted.org/packages/08/02/87b25304249a35c0915d236575bc3574a323f60b47939a2262b77632a3ee/propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85", size = 42546 }, - { url = "https://files.pythonhosted.org/packages/cb/ef/3c6ecf8b317aa982f309835e8f96987466123c6e596646d4e6a1dfcd080f/propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1", size = 46259 }, - { url = "https://files.pythonhosted.org/packages/c4/2d/346e946d4951f37eca1e4f55be0f0174c52cd70720f84029b02f296f4a38/propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9", size = 40428 }, - { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305 }, -] - -[[package]] -name = "protobuf" -version = "6.33.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0a/03/a1440979a3f74f16cab3b75b0da1a1a7f922d56a8ddea96092391998edc0/protobuf-6.33.1.tar.gz", hash = "sha256:97f65757e8d09870de6fd973aeddb92f85435607235d20b2dfed93405d00c85b", size = 443432 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/06/f1/446a9bbd2c60772ca36556bac8bfde40eceb28d9cc7838755bc41e001d8f/protobuf-6.33.1-cp310-abi3-win32.whl", hash = "sha256:f8d3fdbc966aaab1d05046d0240dd94d40f2a8c62856d41eaa141ff64a79de6b", size = 425593 }, - { url = "https://files.pythonhosted.org/packages/a6/79/8780a378c650e3df849b73de8b13cf5412f521ca2ff9b78a45c247029440/protobuf-6.33.1-cp310-abi3-win_amd64.whl", hash = "sha256:923aa6d27a92bf44394f6abf7ea0500f38769d4b07f4be41cb52bd8b1123b9ed", size = 436883 }, - { url = "https://files.pythonhosted.org/packages/cd/93/26213ff72b103ae55bb0d73e7fb91ea570ef407c3ab4fd2f1f27cac16044/protobuf-6.33.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:fe34575f2bdde76ac429ec7b570235bf0c788883e70aee90068e9981806f2490", size = 427522 }, - { url = "https://files.pythonhosted.org/packages/c2/32/df4a35247923393aa6b887c3b3244a8c941c32a25681775f96e2b418f90e/protobuf-6.33.1-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:f8adba2e44cde2d7618996b3fc02341f03f5bc3f2748be72dc7b063319276178", size = 324445 }, - { url = "https://files.pythonhosted.org/packages/8e/d0/d796e419e2ec93d2f3fa44888861c3f88f722cde02b7c3488fcc6a166820/protobuf-6.33.1-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:0f4cf01222c0d959c2b399142deb526de420be8236f22c71356e2a544e153c53", size = 339161 }, - { url = "https://files.pythonhosted.org/packages/1d/2a/3c5f05a4af06649547027d288747f68525755de692a26a7720dced3652c0/protobuf-6.33.1-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:8fd7d5e0eb08cd5b87fd3df49bc193f5cfd778701f47e11d127d0afc6c39f1d1", size = 323171 }, - { url = "https://files.pythonhosted.org/packages/08/b4/46310463b4f6ceef310f8348786f3cff181cea671578e3d9743ba61a459e/protobuf-6.33.1-py3-none-any.whl", hash = "sha256:d595a9fd694fdeb061a62fbe10eb039cc1e444df81ec9bb70c7fc59ebcb1eafa", size = 170477 }, -] - -[[package]] -name = "pyarrow" -version = "22.0.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/53/04a7fdc63e6056116c9ddc8b43bc28c12cdd181b85cbeadb79278475f3ae/pyarrow-22.0.0.tar.gz", hash = "sha256:3d600dc583260d845c7d8a6db540339dd883081925da2bd1c5cb808f720b3cd9", size = 1151151 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/9b/cb3f7e0a345353def531ca879053e9ef6b9f38ed91aebcf68b09ba54dec0/pyarrow-22.0.0-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:77718810bd3066158db1e95a63c160ad7ce08c6b0710bc656055033e39cdad88", size = 34223968 }, - { url = "https://files.pythonhosted.org/packages/6c/41/3184b8192a120306270c5307f105b70320fdaa592c99843c5ef78aaefdcf/pyarrow-22.0.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:44d2d26cda26d18f7af7db71453b7b783788322d756e81730acb98f24eb90ace", size = 35942085 }, - { url = "https://files.pythonhosted.org/packages/d9/3d/a1eab2f6f08001f9fb714b8ed5cfb045e2fe3e3e3c0c221f2c9ed1e6d67d/pyarrow-22.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:b9d71701ce97c95480fecb0039ec5bb889e75f110da72005743451339262f4ce", size = 44964613 }, - { url = "https://files.pythonhosted.org/packages/46/46/a1d9c24baf21cfd9ce994ac820a24608decf2710521b29223d4334985127/pyarrow-22.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:710624ab925dc2b05a6229d47f6f0dac1c1155e6ed559be7109f684eba048a48", size = 47627059 }, - { url = "https://files.pythonhosted.org/packages/3a/4c/f711acb13075c1391fd54bc17e078587672c575f8de2a6e62509af026dcf/pyarrow-22.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f963ba8c3b0199f9d6b794c90ec77545e05eadc83973897a4523c9e8d84e9340", size = 47947043 }, - { url = "https://files.pythonhosted.org/packages/4e/70/1f3180dd7c2eab35c2aca2b29ace6c519f827dcd4cfeb8e0dca41612cf7a/pyarrow-22.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bd0d42297ace400d8febe55f13fdf46e86754842b860c978dfec16f081e5c653", size = 50206505 }, - { url = "https://files.pythonhosted.org/packages/80/07/fea6578112c8c60ffde55883a571e4c4c6bc7049f119d6b09333b5cc6f73/pyarrow-22.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:00626d9dc0f5ef3a75fe63fd68b9c7c8302d2b5bbc7f74ecaedba83447a24f84", size = 28101641 }, - { url = "https://files.pythonhosted.org/packages/2e/b7/18f611a8cdc43417f9394a3ccd3eace2f32183c08b9eddc3d17681819f37/pyarrow-22.0.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:3e294c5eadfb93d78b0763e859a0c16d4051fc1c5231ae8956d61cb0b5666f5a", size = 34272022 }, - { url = "https://files.pythonhosted.org/packages/26/5c/f259e2526c67eb4b9e511741b19870a02363a47a35edbebc55c3178db22d/pyarrow-22.0.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:69763ab2445f632d90b504a815a2a033f74332997052b721002298ed6de40f2e", size = 35995834 }, - { url = "https://files.pythonhosted.org/packages/50/8d/281f0f9b9376d4b7f146913b26fac0aa2829cd1ee7e997f53a27411bbb92/pyarrow-22.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:b41f37cabfe2463232684de44bad753d6be08a7a072f6a83447eeaf0e4d2a215", size = 45030348 }, - { url = "https://files.pythonhosted.org/packages/f5/e5/53c0a1c428f0976bf22f513d79c73000926cb00b9c138d8e02daf2102e18/pyarrow-22.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:35ad0f0378c9359b3f297299c3309778bb03b8612f987399a0333a560b43862d", size = 47699480 }, - { url = "https://files.pythonhosted.org/packages/95/e1/9dbe4c465c3365959d183e6345d0a8d1dc5b02ca3f8db4760b3bc834cf25/pyarrow-22.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8382ad21458075c2e66a82a29d650f963ce51c7708c7c0ff313a8c206c4fd5e8", size = 48011148 }, - { url = "https://files.pythonhosted.org/packages/c5/b4/7caf5d21930061444c3cf4fa7535c82faf5263e22ce43af7c2759ceb5b8b/pyarrow-22.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1a812a5b727bc09c3d7ea072c4eebf657c2f7066155506ba31ebf4792f88f016", size = 50276964 }, - { url = "https://files.pythonhosted.org/packages/ae/f3/cec89bd99fa3abf826f14d4e53d3d11340ce6f6af4d14bdcd54cd83b6576/pyarrow-22.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:ec5d40dd494882704fb876c16fa7261a69791e784ae34e6b5992e977bd2e238c", size = 28106517 }, - { url = "https://files.pythonhosted.org/packages/af/63/ba23862d69652f85b615ca14ad14f3bcfc5bf1b99ef3f0cd04ff93fdad5a/pyarrow-22.0.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:bea79263d55c24a32b0d79c00a1c58bb2ee5f0757ed95656b01c0fb310c5af3d", size = 34211578 }, - { url = "https://files.pythonhosted.org/packages/b1/d0/f9ad86fe809efd2bcc8be32032fa72e8b0d112b01ae56a053006376c5930/pyarrow-22.0.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:12fe549c9b10ac98c91cf791d2945e878875d95508e1a5d14091a7aaa66d9cf8", size = 35989906 }, - { url = "https://files.pythonhosted.org/packages/b4/a8/f910afcb14630e64d673f15904ec27dd31f1e009b77033c365c84e8c1e1d/pyarrow-22.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:334f900ff08ce0423407af97e6c26ad5d4e3b0763645559ece6fbf3747d6a8f5", size = 45021677 }, - { url = "https://files.pythonhosted.org/packages/13/95/aec81f781c75cd10554dc17a25849c720d54feafb6f7847690478dcf5ef8/pyarrow-22.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:c6c791b09c57ed76a18b03f2631753a4960eefbbca80f846da8baefc6491fcfe", size = 47726315 }, - { url = "https://files.pythonhosted.org/packages/bb/d4/74ac9f7a54cfde12ee42734ea25d5a3c9a45db78f9def949307a92720d37/pyarrow-22.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c3200cb41cdbc65156e5f8c908d739b0dfed57e890329413da2748d1a2cd1a4e", size = 47990906 }, - { url = "https://files.pythonhosted.org/packages/2e/71/fedf2499bf7a95062eafc989ace56572f3343432570e1c54e6599d5b88da/pyarrow-22.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ac93252226cf288753d8b46280f4edf3433bf9508b6977f8dd8526b521a1bbb9", size = 50306783 }, - { url = "https://files.pythonhosted.org/packages/68/ed/b202abd5a5b78f519722f3d29063dda03c114711093c1995a33b8e2e0f4b/pyarrow-22.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:44729980b6c50a5f2bfcc2668d36c569ce17f8b17bccaf470c4313dcbbf13c9d", size = 27972883 }, - { url = "https://files.pythonhosted.org/packages/a6/d6/d0fac16a2963002fc22c8fa75180a838737203d558f0ed3b564c4a54eef5/pyarrow-22.0.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:e6e95176209257803a8b3d0394f21604e796dadb643d2f7ca21b66c9c0b30c9a", size = 34204629 }, - { url = "https://files.pythonhosted.org/packages/c6/9c/1d6357347fbae062ad3f17082f9ebc29cc733321e892c0d2085f42a2212b/pyarrow-22.0.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:001ea83a58024818826a9e3f89bf9310a114f7e26dfe404a4c32686f97bd7901", size = 35985783 }, - { url = "https://files.pythonhosted.org/packages/ff/c0/782344c2ce58afbea010150df07e3a2f5fdad299cd631697ae7bd3bac6e3/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:ce20fe000754f477c8a9125543f1936ea5b8867c5406757c224d745ed033e691", size = 45020999 }, - { url = "https://files.pythonhosted.org/packages/1b/8b/5362443737a5307a7b67c1017c42cd104213189b4970bf607e05faf9c525/pyarrow-22.0.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:e0a15757fccb38c410947df156f9749ae4a3c89b2393741a50521f39a8cf202a", size = 47724601 }, - { url = "https://files.pythonhosted.org/packages/69/4d/76e567a4fc2e190ee6072967cb4672b7d9249ac59ae65af2d7e3047afa3b/pyarrow-22.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cedb9dd9358e4ea1d9bce3665ce0797f6adf97ff142c8e25b46ba9cdd508e9b6", size = 48001050 }, - { url = "https://files.pythonhosted.org/packages/01/5e/5653f0535d2a1aef8223cee9d92944cb6bccfee5cf1cd3f462d7cb022790/pyarrow-22.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:252be4a05f9d9185bb8c18e83764ebcfea7185076c07a7a662253af3a8c07941", size = 50307877 }, - { url = "https://files.pythonhosted.org/packages/2d/f8/1d0bd75bf9328a3b826e24a16e5517cd7f9fbf8d34a3184a4566ef5a7f29/pyarrow-22.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:a4893d31e5ef780b6edcaf63122df0f8d321088bb0dee4c8c06eccb1ca28d145", size = 27977099 }, - { url = "https://files.pythonhosted.org/packages/90/81/db56870c997805bf2b0f6eeeb2d68458bf4654652dccdcf1bf7a42d80903/pyarrow-22.0.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:f7fe3dbe871294ba70d789be16b6e7e52b418311e166e0e3cba9522f0f437fb1", size = 34336685 }, - { url = "https://files.pythonhosted.org/packages/1c/98/0727947f199aba8a120f47dfc229eeb05df15bcd7a6f1b669e9f882afc58/pyarrow-22.0.0-cp313-cp313t-macosx_12_0_x86_64.whl", hash = "sha256:ba95112d15fd4f1105fb2402c4eab9068f0554435e9b7085924bcfaac2cc306f", size = 36032158 }, - { url = "https://files.pythonhosted.org/packages/96/b4/9babdef9c01720a0785945c7cf550e4acd0ebcd7bdd2e6f0aa7981fa85e2/pyarrow-22.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:c064e28361c05d72eed8e744c9605cbd6d2bb7481a511c74071fd9b24bc65d7d", size = 44892060 }, - { url = "https://files.pythonhosted.org/packages/f8/ca/2f8804edd6279f78a37062d813de3f16f29183874447ef6d1aadbb4efa0f/pyarrow-22.0.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:6f9762274496c244d951c819348afbcf212714902742225f649cf02823a6a10f", size = 47504395 }, - { url = "https://files.pythonhosted.org/packages/b9/f0/77aa5198fd3943682b2e4faaf179a674f0edea0d55d326d83cb2277d9363/pyarrow-22.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a9d9ffdc2ab696f6b15b4d1f7cec6658e1d788124418cb30030afbae31c64746", size = 48066216 }, - { url = "https://files.pythonhosted.org/packages/79/87/a1937b6e78b2aff18b706d738c9e46ade5bfcf11b294e39c87706a0089ac/pyarrow-22.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ec1a15968a9d80da01e1d30349b2b0d7cc91e96588ee324ce1b5228175043e95", size = 50288552 }, - { url = "https://files.pythonhosted.org/packages/60/ae/b5a5811e11f25788ccfdaa8f26b6791c9807119dffcf80514505527c384c/pyarrow-22.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:bba208d9c7decf9961998edf5c65e3ea4355d5818dd6cd0f6809bec1afb951cc", size = 28262504 }, - { url = "https://files.pythonhosted.org/packages/bd/b0/0fa4d28a8edb42b0a7144edd20befd04173ac79819547216f8a9f36f9e50/pyarrow-22.0.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:9bddc2cade6561f6820d4cd73f99a0243532ad506bc510a75a5a65a522b2d74d", size = 34224062 }, - { url = "https://files.pythonhosted.org/packages/0f/a8/7a719076b3c1be0acef56a07220c586f25cd24de0e3f3102b438d18ae5df/pyarrow-22.0.0-cp314-cp314-macosx_12_0_x86_64.whl", hash = "sha256:e70ff90c64419709d38c8932ea9fe1cc98415c4f87ea8da81719e43f02534bc9", size = 35990057 }, - { url = "https://files.pythonhosted.org/packages/89/3c/359ed54c93b47fb6fe30ed16cdf50e3f0e8b9ccfb11b86218c3619ae50a8/pyarrow-22.0.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:92843c305330aa94a36e706c16209cd4df274693e777ca47112617db7d0ef3d7", size = 45068002 }, - { url = "https://files.pythonhosted.org/packages/55/fc/4945896cc8638536ee787a3bd6ce7cec8ec9acf452d78ec39ab328efa0a1/pyarrow-22.0.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:6dda1ddac033d27421c20d7a7943eec60be44e0db4e079f33cc5af3b8280ccde", size = 47737765 }, - { url = "https://files.pythonhosted.org/packages/cd/5e/7cb7edeb2abfaa1f79b5d5eb89432356155c8426f75d3753cbcb9592c0fd/pyarrow-22.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:84378110dd9a6c06323b41b56e129c504d157d1a983ce8f5443761eb5256bafc", size = 48048139 }, - { url = "https://files.pythonhosted.org/packages/88/c6/546baa7c48185f5e9d6e59277c4b19f30f48c94d9dd938c2a80d4d6b067c/pyarrow-22.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:854794239111d2b88b40b6ef92aa478024d1e5074f364033e73e21e3f76b25e0", size = 50314244 }, - { url = "https://files.pythonhosted.org/packages/3c/79/755ff2d145aafec8d347bf18f95e4e81c00127f06d080135dfc86aea417c/pyarrow-22.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:b883fe6fd85adad7932b3271c38ac289c65b7337c2c132e9569f9d3940620730", size = 28757501 }, - { url = "https://files.pythonhosted.org/packages/0e/d2/237d75ac28ced3147912954e3c1a174df43a95f4f88e467809118a8165e0/pyarrow-22.0.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7a820d8ae11facf32585507c11f04e3f38343c1e784c9b5a8b1da5c930547fe2", size = 34355506 }, - { url = "https://files.pythonhosted.org/packages/1e/2c/733dfffe6d3069740f98e57ff81007809067d68626c5faef293434d11bd6/pyarrow-22.0.0-cp314-cp314t-macosx_12_0_x86_64.whl", hash = "sha256:c6ec3675d98915bf1ec8b3c7986422682f7232ea76cad276f4c8abd5b7319b70", size = 36047312 }, - { url = "https://files.pythonhosted.org/packages/7c/2b/29d6e3782dc1f299727462c1543af357a0f2c1d3c160ce199950d9ca51eb/pyarrow-22.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:3e739edd001b04f654b166204fc7a9de896cf6007eaff33409ee9e50ceaff754", size = 45081609 }, - { url = "https://files.pythonhosted.org/packages/8d/42/aa9355ecc05997915af1b7b947a7f66c02dcaa927f3203b87871c114ba10/pyarrow-22.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:7388ac685cab5b279a41dfe0a6ccd99e4dbf322edfb63e02fc0443bf24134e91", size = 47703663 }, - { url = "https://files.pythonhosted.org/packages/ee/62/45abedde480168e83a1de005b7b7043fd553321c1e8c5a9a114425f64842/pyarrow-22.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f633074f36dbc33d5c05b5dc75371e5660f1dbf9c8b1d95669def05e5425989c", size = 48066543 }, - { url = "https://files.pythonhosted.org/packages/84/e9/7878940a5b072e4f3bf998770acafeae13b267f9893af5f6d4ab3904b67e/pyarrow-22.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4c19236ae2402a8663a2c8f21f1870a03cc57f0bef7e4b6eb3238cc82944de80", size = 50288838 }, - { url = "https://files.pythonhosted.org/packages/7b/03/f335d6c52b4a4761bcc83499789a1e2e16d9d201a58c327a9b5cc9a41bd9/pyarrow-22.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0c34fe18094686194f204a3b1787a27456897d8a2d62caf84b61e8dfbc0252ae", size = 29185594 }, -] - -[[package]] -name = "pydantic" -version = "2.12.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "annotated-types" }, - { name = "pydantic-core" }, - { name = "typing-extensions" }, - { name = "typing-inspection" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580 }, -] - -[[package]] -name = "pydantic-core" -version = "2.41.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298 }, - { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475 }, - { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815 }, - { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567 }, - { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442 }, - { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956 }, - { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253 }, - { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050 }, - { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178 }, - { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833 }, - { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156 }, - { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378 }, - { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622 }, - { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873 }, - { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826 }, - { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869 }, - { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890 }, - { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740 }, - { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021 }, - { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378 }, - { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761 }, - { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303 }, - { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355 }, - { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875 }, - { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549 }, - { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305 }, - { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902 }, - { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990 }, - { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003 }, - { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200 }, - { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578 }, - { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504 }, - { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816 }, - { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366 }, - { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698 }, - { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603 }, - { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591 }, - { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068 }, - { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908 }, - { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145 }, - { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179 }, - { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403 }, - { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206 }, - { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307 }, - { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258 }, - { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917 }, - { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186 }, - { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164 }, - { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146 }, - { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788 }, - { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133 }, - { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852 }, - { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679 }, - { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766 }, - { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005 }, - { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622 }, - { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725 }, - { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040 }, - { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691 }, - { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897 }, - { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302 }, - { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877 }, - { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680 }, - { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960 }, - { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102 }, - { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039 }, - { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126 }, - { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489 }, - { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288 }, - { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255 }, - { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760 }, - { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092 }, - { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385 }, - { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832 }, - { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585 }, - { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078 }, - { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914 }, - { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560 }, - { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244 }, - { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955 }, - { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906 }, - { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607 }, - { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769 }, - { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441 }, - { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291 }, - { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632 }, - { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905 }, - { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495 }, - { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388 }, - { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879 }, - { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017 }, - { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351 }, - { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363 }, - { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615 }, - { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369 }, - { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218 }, - { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951 }, - { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428 }, - { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009 }, - { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980 }, - { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865 }, - { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256 }, - { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762 }, - { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141 }, - { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317 }, - { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992 }, - { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302 }, -] - -[[package]] -name = "pygments" -version = "2.19.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217 }, -] - -[[package]] -name = "pynndescent" -version = "0.5.13" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "joblib" }, - { name = "llvmlite" }, - { name = "numba" }, - { name = "scikit-learn" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "scipy", version = "1.16.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/7e/58/560a4db5eb3794d922fe55804b10326534ded3d971e1933c1eef91193f5e/pynndescent-0.5.13.tar.gz", hash = "sha256:d74254c0ee0a1eeec84597d5fe89fedcf778593eeabe32c2f97412934a9800fb", size = 2975955 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/53/d23a97e0a2c690d40b165d1062e2c4ccc796be458a1ce59f6ba030434663/pynndescent-0.5.13-py3-none-any.whl", hash = "sha256:69aabb8f394bc631b6ac475a1c7f3994c54adf3f51cd63b2730fefba5771b949", size = 56850 }, -] - -[[package]] -name = "pyreadline3" -version = "3.5.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0f/49/4cea918a08f02817aabae639e3d0ac046fef9f9180518a3ad394e22da148/pyreadline3-3.5.4.tar.gz", hash = "sha256:8d57d53039a1c75adba8e50dd3d992b28143480816187ea5efbd5c78e6c885b7", size = 99839 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/dc/491b7661614ab97483abf2056be1deee4dc2490ecbf7bff9ab5cdbac86e1/pyreadline3-3.5.4-py3-none-any.whl", hash = "sha256:eaf8e6cc3c49bcccf145fc6067ba8643d1df34d604a1ec0eccbf7a18e6d3fae6", size = 83178 }, -] - -[[package]] -name = "pytest" -version = "9.0.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, - { name = "iniconfig" }, - { name = "packaging" }, - { name = "pluggy" }, - { name = "pygments" }, - { name = "tomli", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/07/56/f013048ac4bc4c1d9be45afd4ab209ea62822fb1598f40687e6bf45dcea4/pytest-9.0.1.tar.gz", hash = "sha256:3e9c069ea73583e255c3b21cf46b8d3c56f6e3a1a8f6da94ccb0fcf57b9d73c8", size = 1564125 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/8b/6300fb80f858cda1c51ffa17075df5d846757081d11ab4aa35cef9e6258b/pytest-9.0.1-py3-none-any.whl", hash = "sha256:67be0030d194df2dfa7b556f2e56fb3c3315bd5c8822c6951162b92b32ce7dad", size = 373668 }, -] - -[[package]] -name = "pytest-asyncio" -version = "1.3.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "backports-asyncio-runner", marker = "python_full_version < '3.11'" }, - { name = "pytest" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/90/2c/8af215c0f776415f3590cac4f9086ccefd6fd463befeae41cd4d3f193e5a/pytest_asyncio-1.3.0.tar.gz", hash = "sha256:d7f52f36d231b80ee124cd216ffb19369aa168fc10095013c6b014a34d3ee9e5", size = 50087 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/35/f8b19922b6a25bc0880171a2f1a003eaeb93657475193ab516fd87cac9da/pytest_asyncio-1.3.0-py3-none-any.whl", hash = "sha256:611e26147c7f77640e6d0a92a38ed17c3e9848063698d5c93d5aa7aa11cebff5", size = 15075 }, -] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "six" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892 }, -] - -[[package]] -name = "python-dotenv" -version = "1.2.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230 }, -] - -[[package]] -name = "pytz" -version = "2025.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225 }, -] - -[[package]] -name = "pyyaml" -version = "6.0.3" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227 }, - { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019 }, - { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646 }, - { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793 }, - { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293 }, - { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872 }, - { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828 }, - { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415 }, - { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561 }, - { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826 }, - { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577 }, - { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556 }, - { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114 }, - { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638 }, - { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463 }, - { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986 }, - { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543 }, - { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763 }, - { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063 }, - { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973 }, - { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116 }, - { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011 }, - { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870 }, - { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089 }, - { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181 }, - { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658 }, - { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003 }, - { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344 }, - { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669 }, - { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252 }, - { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081 }, - { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159 }, - { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626 }, - { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613 }, - { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115 }, - { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427 }, - { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090 }, - { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246 }, - { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814 }, - { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809 }, - { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454 }, - { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355 }, - { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175 }, - { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228 }, - { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194 }, - { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429 }, - { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912 }, - { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108 }, - { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641 }, - { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901 }, - { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132 }, - { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261 }, - { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272 }, - { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923 }, - { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062 }, - { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341 }, -] - -[[package]] -name = "requests" -version = "2.32.5" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "certifi" }, - { name = "charset-normalizer" }, - { name = "idna" }, - { name = "urllib3" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738 }, -] - -[[package]] -name = "ruff" -version = "0.14.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ed/d9/f7a0c4b3a2bf2556cd5d99b05372c29980249ef71e8e32669ba77428c82c/ruff-0.14.8.tar.gz", hash = "sha256:774ed0dd87d6ce925e3b8496feb3a00ac564bea52b9feb551ecd17e0a23d1eed", size = 5765385 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/48/b8/9537b52010134b1d2b72870cc3f92d5fb759394094741b09ceccae183fbe/ruff-0.14.8-py3-none-linux_armv6l.whl", hash = "sha256:ec071e9c82eca417f6111fd39f7043acb53cd3fde9b1f95bbed745962e345afb", size = 13441540 }, - { url = "https://files.pythonhosted.org/packages/24/00/99031684efb025829713682012b6dd37279b1f695ed1b01725f85fd94b38/ruff-0.14.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:8cdb162a7159f4ca36ce980a18c43d8f036966e7f73f866ac8f493b75e0c27e9", size = 13669384 }, - { url = "https://files.pythonhosted.org/packages/72/64/3eb5949169fc19c50c04f28ece2c189d3b6edd57e5b533649dae6ca484fe/ruff-0.14.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2e2fcbefe91f9fad0916850edf0854530c15bd1926b6b779de47e9ab619ea38f", size = 12806917 }, - { url = "https://files.pythonhosted.org/packages/c4/08/5250babb0b1b11910f470370ec0cbc67470231f7cdc033cee57d4976f941/ruff-0.14.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9d70721066a296f45786ec31916dc287b44040f553da21564de0ab4d45a869b", size = 13256112 }, - { url = "https://files.pythonhosted.org/packages/78/4c/6c588e97a8e8c2d4b522c31a579e1df2b4d003eddfbe23d1f262b1a431ff/ruff-0.14.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2c87e09b3cd9d126fc67a9ecd3b5b1d3ded2b9c7fce3f16e315346b9d05cfb52", size = 13227559 }, - { url = "https://files.pythonhosted.org/packages/23/ce/5f78cea13eda8eceac71b5f6fa6e9223df9b87bb2c1891c166d1f0dce9f1/ruff-0.14.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d62cb310c4fbcb9ee4ac023fe17f984ae1e12b8a4a02e3d21489f9a2a5f730c", size = 13896379 }, - { url = "https://files.pythonhosted.org/packages/cf/79/13de4517c4dadce9218a20035b21212a4c180e009507731f0d3b3f5df85a/ruff-0.14.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:1af35c2d62633d4da0521178e8a2641c636d2a7153da0bac1b30cfd4ccd91344", size = 15372786 }, - { url = "https://files.pythonhosted.org/packages/00/06/33df72b3bb42be8a1c3815fd4fae83fa2945fc725a25d87ba3e42d1cc108/ruff-0.14.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25add4575ffecc53d60eed3f24b1e934493631b48ebbc6ebaf9d8517924aca4b", size = 14990029 }, - { url = "https://files.pythonhosted.org/packages/64/61/0f34927bd90925880394de0e081ce1afab66d7b3525336f5771dcf0cb46c/ruff-0.14.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c943d847b7f02f7db4201a0600ea7d244d8a404fbb639b439e987edcf2baf9a", size = 14407037 }, - { url = "https://files.pythonhosted.org/packages/96/bc/058fe0aefc0fbf0d19614cb6d1a3e2c048f7dc77ca64957f33b12cfdc5ef/ruff-0.14.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb6e8bf7b4f627548daa1b69283dac5a296bfe9ce856703b03130732e20ddfe2", size = 14102390 }, - { url = "https://files.pythonhosted.org/packages/af/a4/e4f77b02b804546f4c17e8b37a524c27012dd6ff05855d2243b49a7d3cb9/ruff-0.14.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:7aaf2974f378e6b01d1e257c6948207aec6a9b5ba53fab23d0182efb887a0e4a", size = 14230793 }, - { url = "https://files.pythonhosted.org/packages/3f/52/bb8c02373f79552e8d087cedaffad76b8892033d2876c2498a2582f09dcf/ruff-0.14.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e5758ca513c43ad8a4ef13f0f081f80f08008f410790f3611a21a92421ab045b", size = 13160039 }, - { url = "https://files.pythonhosted.org/packages/1f/ad/b69d6962e477842e25c0b11622548df746290cc6d76f9e0f4ed7456c2c31/ruff-0.14.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f74f7ba163b6e85a8d81a590363bf71618847e5078d90827749bfda1d88c9cdf", size = 13205158 }, - { url = "https://files.pythonhosted.org/packages/06/63/54f23da1315c0b3dfc1bc03fbc34e10378918a20c0b0f086418734e57e74/ruff-0.14.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:eed28f6fafcc9591994c42254f5a5c5ca40e69a30721d2ab18bb0bb3baac3ab6", size = 13469550 }, - { url = "https://files.pythonhosted.org/packages/70/7d/a4d7b1961e4903bc37fffb7ddcfaa7beb250f67d97cfd1ee1d5cddb1ec90/ruff-0.14.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:21d48fa744c9d1cb8d71eb0a740c4dd02751a5de9db9a730a8ef75ca34cf138e", size = 14211332 }, - { url = "https://files.pythonhosted.org/packages/5d/93/2a5063341fa17054e5c86582136e9895db773e3c2ffb770dde50a09f35f0/ruff-0.14.8-py3-none-win32.whl", hash = "sha256:15f04cb45c051159baebb0f0037f404f1dc2f15a927418f29730f411a79bc4e7", size = 13151890 }, - { url = "https://files.pythonhosted.org/packages/02/1c/65c61a0859c0add13a3e1cbb6024b42de587456a43006ca2d4fd3d1618fe/ruff-0.14.8-py3-none-win_amd64.whl", hash = "sha256:9eeb0b24242b5bbff3011409a739929f497f3fb5fe3b5698aba5e77e8c833097", size = 14537826 }, - { url = "https://files.pythonhosted.org/packages/6d/63/8b41cea3afd7f58eb64ac9251668ee0073789a3bc9ac6f816c8c6fef986d/ruff-0.14.8-py3-none-win_arm64.whl", hash = "sha256:965a582c93c63fe715fd3e3f8aa37c4b776777203d8e1d8aa3cc0c14424a4b99", size = 13634522 }, -] - -[[package]] -name = "scikit-learn" -version = "1.7.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "joblib" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "scipy", version = "1.16.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "threadpoolctl" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/98/c2/a7855e41c9d285dfe86dc50b250978105dce513d6e459ea66a6aeb0e1e0c/scikit_learn-1.7.2.tar.gz", hash = "sha256:20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda", size = 7193136 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/3e/daed796fd69cce768b8788401cc464ea90b306fb196ae1ffed0b98182859/scikit_learn-1.7.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b33579c10a3081d076ab403df4a4190da4f4432d443521674637677dc91e61f", size = 9336221 }, - { url = "https://files.pythonhosted.org/packages/1c/ce/af9d99533b24c55ff4e18d9b7b4d9919bbc6cd8f22fe7a7be01519a347d5/scikit_learn-1.7.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:36749fb62b3d961b1ce4fedf08fa57a1986cd409eff2d783bca5d4b9b5fce51c", size = 8653834 }, - { url = "https://files.pythonhosted.org/packages/58/0e/8c2a03d518fb6bd0b6b0d4b114c63d5f1db01ff0f9925d8eb10960d01c01/scikit_learn-1.7.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7a58814265dfc52b3295b1900cfb5701589d30a8bb026c7540f1e9d3499d5ec8", size = 9660938 }, - { url = "https://files.pythonhosted.org/packages/2b/75/4311605069b5d220e7cf5adabb38535bd96f0079313cdbb04b291479b22a/scikit_learn-1.7.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a847fea807e278f821a0406ca01e387f97653e284ecbd9750e3ee7c90347f18", size = 9477818 }, - { url = "https://files.pythonhosted.org/packages/7f/9b/87961813c34adbca21a6b3f6b2bea344c43b30217a6d24cc437c6147f3e8/scikit_learn-1.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:ca250e6836d10e6f402436d6463d6c0e4d8e0234cfb6a9a47835bd392b852ce5", size = 8886969 }, - { url = "https://files.pythonhosted.org/packages/43/83/564e141eef908a5863a54da8ca342a137f45a0bfb71d1d79704c9894c9d1/scikit_learn-1.7.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7509693451651cd7361d30ce4e86a1347493554f172b1c72a39300fa2aea79e", size = 9331967 }, - { url = "https://files.pythonhosted.org/packages/18/d6/ba863a4171ac9d7314c4d3fc251f015704a2caeee41ced89f321c049ed83/scikit_learn-1.7.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:0486c8f827c2e7b64837c731c8feff72c0bd2b998067a8a9cbc10643c31f0fe1", size = 8648645 }, - { url = "https://files.pythonhosted.org/packages/ef/0e/97dbca66347b8cf0ea8b529e6bb9367e337ba2e8be0ef5c1a545232abfde/scikit_learn-1.7.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:89877e19a80c7b11a2891a27c21c4894fb18e2c2e077815bcade10d34287b20d", size = 9715424 }, - { url = "https://files.pythonhosted.org/packages/f7/32/1f3b22e3207e1d2c883a7e09abb956362e7d1bd2f14458c7de258a26ac15/scikit_learn-1.7.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8da8bf89d4d79aaec192d2bda62f9b56ae4e5b4ef93b6a56b5de4977e375c1f1", size = 9509234 }, - { url = "https://files.pythonhosted.org/packages/9f/71/34ddbd21f1da67c7a768146968b4d0220ee6831e4bcbad3e03dd3eae88b6/scikit_learn-1.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:9b7ed8d58725030568523e937c43e56bc01cadb478fc43c042a9aca1dacb3ba1", size = 8894244 }, - { url = "https://files.pythonhosted.org/packages/a7/aa/3996e2196075689afb9fce0410ebdb4a09099d7964d061d7213700204409/scikit_learn-1.7.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8d91a97fa2b706943822398ab943cde71858a50245e31bc71dba62aab1d60a96", size = 9259818 }, - { url = "https://files.pythonhosted.org/packages/43/5d/779320063e88af9c4a7c2cf463ff11c21ac9c8bd730c4a294b0000b666c9/scikit_learn-1.7.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:acbc0f5fd2edd3432a22c69bed78e837c70cf896cd7993d71d51ba6708507476", size = 8636997 }, - { url = "https://files.pythonhosted.org/packages/5c/d0/0c577d9325b05594fdd33aa970bf53fb673f051a45496842caee13cfd7fe/scikit_learn-1.7.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e5bf3d930aee75a65478df91ac1225ff89cd28e9ac7bd1196853a9229b6adb0b", size = 9478381 }, - { url = "https://files.pythonhosted.org/packages/82/70/8bf44b933837ba8494ca0fc9a9ab60f1c13b062ad0197f60a56e2fc4c43e/scikit_learn-1.7.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4d6e9deed1a47aca9fe2f267ab8e8fe82ee20b4526b2c0cd9e135cea10feb44", size = 9300296 }, - { url = "https://files.pythonhosted.org/packages/c6/99/ed35197a158f1fdc2fe7c3680e9c70d0128f662e1fee4ed495f4b5e13db0/scikit_learn-1.7.2-cp312-cp312-win_amd64.whl", hash = "sha256:6088aa475f0785e01bcf8529f55280a3d7d298679f50c0bb70a2364a82d0b290", size = 8731256 }, - { url = "https://files.pythonhosted.org/packages/ae/93/a3038cb0293037fd335f77f31fe053b89c72f17b1c8908c576c29d953e84/scikit_learn-1.7.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b7dacaa05e5d76759fb071558a8b5130f4845166d88654a0f9bdf3eb57851b7", size = 9212382 }, - { url = "https://files.pythonhosted.org/packages/40/dd/9a88879b0c1104259136146e4742026b52df8540c39fec21a6383f8292c7/scikit_learn-1.7.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:abebbd61ad9e1deed54cca45caea8ad5f79e1b93173dece40bb8e0c658dbe6fe", size = 8592042 }, - { url = "https://files.pythonhosted.org/packages/46/af/c5e286471b7d10871b811b72ae794ac5fe2989c0a2df07f0ec723030f5f5/scikit_learn-1.7.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:502c18e39849c0ea1a5d681af1dbcf15f6cce601aebb657aabbfe84133c1907f", size = 9434180 }, - { url = "https://files.pythonhosted.org/packages/f1/fd/df59faa53312d585023b2da27e866524ffb8faf87a68516c23896c718320/scikit_learn-1.7.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a4c328a71785382fe3fe676a9ecf2c86189249beff90bf85e22bdb7efaf9ae0", size = 9283660 }, - { url = "https://files.pythonhosted.org/packages/a7/c7/03000262759d7b6f38c836ff9d512f438a70d8a8ddae68ee80de72dcfb63/scikit_learn-1.7.2-cp313-cp313-win_amd64.whl", hash = "sha256:63a9afd6f7b229aad94618c01c252ce9e6fa97918c5ca19c9a17a087d819440c", size = 8702057 }, - { url = "https://files.pythonhosted.org/packages/55/87/ef5eb1f267084532c8e4aef98a28b6ffe7425acbfd64b5e2f2e066bc29b3/scikit_learn-1.7.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9acb6c5e867447b4e1390930e3944a005e2cb115922e693c08a323421a6966e8", size = 9558731 }, - { url = "https://files.pythonhosted.org/packages/93/f8/6c1e3fc14b10118068d7938878a9f3f4e6d7b74a8ddb1e5bed65159ccda8/scikit_learn-1.7.2-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:2a41e2a0ef45063e654152ec9d8bcfc39f7afce35b08902bfe290c2498a67a6a", size = 9038852 }, - { url = "https://files.pythonhosted.org/packages/83/87/066cafc896ee540c34becf95d30375fe5cbe93c3b75a0ee9aa852cd60021/scikit_learn-1.7.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:98335fb98509b73385b3ab2bd0639b1f610541d3988ee675c670371d6a87aa7c", size = 9527094 }, - { url = "https://files.pythonhosted.org/packages/9c/2b/4903e1ccafa1f6453b1ab78413938c8800633988c838aa0be386cbb33072/scikit_learn-1.7.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:191e5550980d45449126e23ed1d5e9e24b2c68329ee1f691a3987476e115e09c", size = 9367436 }, - { url = "https://files.pythonhosted.org/packages/b5/aa/8444be3cfb10451617ff9d177b3c190288f4563e6c50ff02728be67ad094/scikit_learn-1.7.2-cp313-cp313t-win_amd64.whl", hash = "sha256:57dc4deb1d3762c75d685507fbd0bc17160144b2f2ba4ccea5dc285ab0d0e973", size = 9275749 }, - { url = "https://files.pythonhosted.org/packages/d9/82/dee5acf66837852e8e68df6d8d3a6cb22d3df997b733b032f513d95205b7/scikit_learn-1.7.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fa8f63940e29c82d1e67a45d5297bdebbcb585f5a5a50c4914cc2e852ab77f33", size = 9208906 }, - { url = "https://files.pythonhosted.org/packages/3c/30/9029e54e17b87cb7d50d51a5926429c683d5b4c1732f0507a6c3bed9bf65/scikit_learn-1.7.2-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:f95dc55b7902b91331fa4e5845dd5bde0580c9cd9612b1b2791b7e80c3d32615", size = 8627836 }, - { url = "https://files.pythonhosted.org/packages/60/18/4a52c635c71b536879f4b971c2cedf32c35ee78f48367885ed8025d1f7ee/scikit_learn-1.7.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9656e4a53e54578ad10a434dc1f993330568cfee176dff07112b8785fb413106", size = 9426236 }, - { url = "https://files.pythonhosted.org/packages/99/7e/290362f6ab582128c53445458a5befd471ed1ea37953d5bcf80604619250/scikit_learn-1.7.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96dc05a854add0e50d3f47a1ef21a10a595016da5b007c7d9cd9d0bffd1fcc61", size = 9312593 }, - { url = "https://files.pythonhosted.org/packages/8e/87/24f541b6d62b1794939ae6422f8023703bbf6900378b2b34e0b4384dfefd/scikit_learn-1.7.2-cp314-cp314-win_amd64.whl", hash = "sha256:bb24510ed3f9f61476181e4db51ce801e2ba37541def12dc9333b946fc7a9cf8", size = 8820007 }, -] - -[[package]] -name = "scipy" -version = "1.15.3" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.11'", -] -dependencies = [ - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770 }, - { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511 }, - { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151 }, - { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732 }, - { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617 }, - { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964 }, - { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749 }, - { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383 }, - { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201 }, - { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255 }, - { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035 }, - { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499 }, - { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602 }, - { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415 }, - { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622 }, - { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796 }, - { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684 }, - { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504 }, - { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735 }, - { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284 }, - { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958 }, - { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454 }, - { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199 }, - { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455 }, - { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140 }, - { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549 }, - { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184 }, - { url = "https://files.pythonhosted.org/packages/73/18/ec27848c9baae6e0d6573eda6e01a602e5649ee72c27c3a8aad673ebecfd/scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759", size = 38728256 }, - { url = "https://files.pythonhosted.org/packages/74/cd/1aef2184948728b4b6e21267d53b3339762c285a46a274ebb7863c9e4742/scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62", size = 30109540 }, - { url = "https://files.pythonhosted.org/packages/5b/d8/59e452c0a255ec352bd0a833537a3bc1bfb679944c4938ab375b0a6b3a3e/scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb", size = 22383115 }, - { url = "https://files.pythonhosted.org/packages/08/f5/456f56bbbfccf696263b47095291040655e3cbaf05d063bdc7c7517f32ac/scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730", size = 25163884 }, - { url = "https://files.pythonhosted.org/packages/a2/66/a9618b6a435a0f0c0b8a6d0a2efb32d4ec5a85f023c2b79d39512040355b/scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825", size = 35174018 }, - { url = "https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7", size = 37269716 }, - { url = "https://files.pythonhosted.org/packages/77/0a/eac00ff741f23bcabd352731ed9b8995a0a60ef57f5fd788d611d43d69a1/scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11", size = 36872342 }, - { url = "https://files.pythonhosted.org/packages/fe/54/4379be86dd74b6ad81551689107360d9a3e18f24d20767a2d5b9253a3f0a/scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126", size = 39670869 }, - { url = "https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163", size = 40988851 }, - { url = "https://files.pythonhosted.org/packages/1b/e9/7a879c137f7e55b30d75d90ce3eb468197646bc7b443ac036ae3fe109055/scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8", size = 38863011 }, - { url = "https://files.pythonhosted.org/packages/51/d1/226a806bbd69f62ce5ef5f3ffadc35286e9fbc802f606a07eb83bf2359de/scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5", size = 30266407 }, - { url = "https://files.pythonhosted.org/packages/e5/9b/f32d1d6093ab9eeabbd839b0f7619c62e46cc4b7b6dbf05b6e615bbd4400/scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e", size = 22540030 }, - { url = "https://files.pythonhosted.org/packages/e7/29/c278f699b095c1a884f29fda126340fcc201461ee8bfea5c8bdb1c7c958b/scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb", size = 25218709 }, - { url = "https://files.pythonhosted.org/packages/24/18/9e5374b617aba742a990581373cd6b68a2945d65cc588482749ef2e64467/scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723", size = 34809045 }, - { url = "https://files.pythonhosted.org/packages/e1/fe/9c4361e7ba2927074360856db6135ef4904d505e9b3afbbcb073c4008328/scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb", size = 36703062 }, - { url = "https://files.pythonhosted.org/packages/b7/8e/038ccfe29d272b30086b25a4960f757f97122cb2ec42e62b460d02fe98e9/scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4", size = 36393132 }, - { url = "https://files.pythonhosted.org/packages/10/7e/5c12285452970be5bdbe8352c619250b97ebf7917d7a9a9e96b8a8140f17/scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5", size = 38979503 }, - { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097 }, -] - -[[package]] -name = "scipy" -version = "1.16.3" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.11.*'", - "python_full_version >= '3.12'", -] -dependencies = [ - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0a/ca/d8ace4f98322d01abcd52d381134344bf7b431eba7ed8b42bdea5a3c2ac9/scipy-1.16.3.tar.gz", hash = "sha256:01e87659402762f43bd2fee13370553a17ada367d42e7487800bf2916535aecb", size = 30597883 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/5f/6f37d7439de1455ce9c5a556b8d1db0979f03a796c030bafdf08d35b7bf9/scipy-1.16.3-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:40be6cf99e68b6c4321e9f8782e7d5ff8265af28ef2cd56e9c9b2638fa08ad97", size = 36630881 }, - { url = "https://files.pythonhosted.org/packages/7c/89/d70e9f628749b7e4db2aa4cd89735502ff3f08f7b9b27d2e799485987cd9/scipy-1.16.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:8be1ca9170fcb6223cc7c27f4305d680ded114a1567c0bd2bfcbf947d1b17511", size = 28941012 }, - { url = "https://files.pythonhosted.org/packages/a8/a8/0e7a9a6872a923505dbdf6bb93451edcac120363131c19013044a1e7cb0c/scipy-1.16.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:bea0a62734d20d67608660f69dcda23e7f90fb4ca20974ab80b6ed40df87a005", size = 20931935 }, - { url = "https://files.pythonhosted.org/packages/bd/c7/020fb72bd79ad798e4dbe53938543ecb96b3a9ac3fe274b7189e23e27353/scipy-1.16.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:2a207a6ce9c24f1951241f4693ede2d393f59c07abc159b2cb2be980820e01fb", size = 23534466 }, - { url = "https://files.pythonhosted.org/packages/be/a0/668c4609ce6dbf2f948e167836ccaf897f95fb63fa231c87da7558a374cd/scipy-1.16.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:532fb5ad6a87e9e9cd9c959b106b73145a03f04c7d57ea3e6f6bb60b86ab0876", size = 33593618 }, - { url = "https://files.pythonhosted.org/packages/ca/6e/8942461cf2636cdae083e3eb72622a7fbbfa5cf559c7d13ab250a5dbdc01/scipy-1.16.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0151a0749efeaaab78711c78422d413c583b8cdd2011a3c1d6c794938ee9fdb2", size = 35899798 }, - { url = "https://files.pythonhosted.org/packages/79/e8/d0f33590364cdbd67f28ce79368b373889faa4ee959588beddf6daef9abe/scipy-1.16.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b7180967113560cca57418a7bc719e30366b47959dd845a93206fbed693c867e", size = 36226154 }, - { url = "https://files.pythonhosted.org/packages/39/c1/1903de608c0c924a1749c590064e65810f8046e437aba6be365abc4f7557/scipy-1.16.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:deb3841c925eeddb6afc1e4e4a45e418d19ec7b87c5df177695224078e8ec733", size = 38878540 }, - { url = "https://files.pythonhosted.org/packages/f1/d0/22ec7036ba0b0a35bccb7f25ab407382ed34af0b111475eb301c16f8a2e5/scipy-1.16.3-cp311-cp311-win_amd64.whl", hash = "sha256:53c3844d527213631e886621df5695d35e4f6a75f620dca412bcd292f6b87d78", size = 38722107 }, - { url = "https://files.pythonhosted.org/packages/7b/60/8a00e5a524bb3bf8898db1650d350f50e6cffb9d7a491c561dc9826c7515/scipy-1.16.3-cp311-cp311-win_arm64.whl", hash = "sha256:9452781bd879b14b6f055b26643703551320aa8d79ae064a71df55c00286a184", size = 25506272 }, - { url = "https://files.pythonhosted.org/packages/40/41/5bf55c3f386b1643812f3a5674edf74b26184378ef0f3e7c7a09a7e2ca7f/scipy-1.16.3-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:81fc5827606858cf71446a5e98715ba0e11f0dbc83d71c7409d05486592a45d6", size = 36659043 }, - { url = "https://files.pythonhosted.org/packages/1e/0f/65582071948cfc45d43e9870bf7ca5f0e0684e165d7c9ef4e50d783073eb/scipy-1.16.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:c97176013d404c7346bf57874eaac5187d969293bf40497140b0a2b2b7482e07", size = 28898986 }, - { url = "https://files.pythonhosted.org/packages/96/5e/36bf3f0ac298187d1ceadde9051177d6a4fe4d507e8f59067dc9dd39e650/scipy-1.16.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2b71d93c8a9936046866acebc915e2af2e292b883ed6e2cbe5c34beb094b82d9", size = 20889814 }, - { url = "https://files.pythonhosted.org/packages/80/35/178d9d0c35394d5d5211bbff7ac4f2986c5488b59506fef9e1de13ea28d3/scipy-1.16.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:3d4a07a8e785d80289dfe66b7c27d8634a773020742ec7187b85ccc4b0e7b686", size = 23565795 }, - { url = "https://files.pythonhosted.org/packages/fa/46/d1146ff536d034d02f83c8afc3c4bab2eddb634624d6529a8512f3afc9da/scipy-1.16.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0553371015692a898e1aa858fed67a3576c34edefa6b7ebdb4e9dde49ce5c203", size = 33349476 }, - { url = "https://files.pythonhosted.org/packages/79/2e/415119c9ab3e62249e18c2b082c07aff907a273741b3f8160414b0e9193c/scipy-1.16.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:72d1717fd3b5e6ec747327ce9bda32d5463f472c9dce9f54499e81fbd50245a1", size = 35676692 }, - { url = "https://files.pythonhosted.org/packages/27/82/df26e44da78bf8d2aeaf7566082260cfa15955a5a6e96e6a29935b64132f/scipy-1.16.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1fb2472e72e24d1530debe6ae078db70fb1605350c88a3d14bc401d6306dbffe", size = 36019345 }, - { url = "https://files.pythonhosted.org/packages/82/31/006cbb4b648ba379a95c87262c2855cd0d09453e500937f78b30f02fa1cd/scipy-1.16.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c5192722cffe15f9329a3948c4b1db789fbb1f05c97899187dcf009b283aea70", size = 38678975 }, - { url = "https://files.pythonhosted.org/packages/c2/7f/acbd28c97e990b421af7d6d6cd416358c9c293fc958b8529e0bd5d2a2a19/scipy-1.16.3-cp312-cp312-win_amd64.whl", hash = "sha256:56edc65510d1331dae01ef9b658d428e33ed48b4f77b1d51caf479a0253f96dc", size = 38555926 }, - { url = "https://files.pythonhosted.org/packages/ce/69/c5c7807fd007dad4f48e0a5f2153038dc96e8725d3345b9ee31b2b7bed46/scipy-1.16.3-cp312-cp312-win_arm64.whl", hash = "sha256:a8a26c78ef223d3e30920ef759e25625a0ecdd0d60e5a8818b7513c3e5384cf2", size = 25463014 }, - { url = "https://files.pythonhosted.org/packages/72/f1/57e8327ab1508272029e27eeef34f2302ffc156b69e7e233e906c2a5c379/scipy-1.16.3-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:d2ec56337675e61b312179a1ad124f5f570c00f920cc75e1000025451b88241c", size = 36617856 }, - { url = "https://files.pythonhosted.org/packages/44/13/7e63cfba8a7452eb756306aa2fd9b37a29a323b672b964b4fdeded9a3f21/scipy-1.16.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:16b8bc35a4cc24db80a0ec836a9286d0e31b2503cb2fd7ff7fb0e0374a97081d", size = 28874306 }, - { url = "https://files.pythonhosted.org/packages/15/65/3a9400efd0228a176e6ec3454b1fa998fbbb5a8defa1672c3f65706987db/scipy-1.16.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:5803c5fadd29de0cf27fa08ccbfe7a9e5d741bf63e4ab1085437266f12460ff9", size = 20865371 }, - { url = "https://files.pythonhosted.org/packages/33/d7/eda09adf009a9fb81827194d4dd02d2e4bc752cef16737cc4ef065234031/scipy-1.16.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:b81c27fc41954319a943d43b20e07c40bdcd3ff7cf013f4fb86286faefe546c4", size = 23524877 }, - { url = "https://files.pythonhosted.org/packages/7d/6b/3f911e1ebc364cb81320223a3422aab7d26c9c7973109a9cd0f27c64c6c0/scipy-1.16.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0c3b4dd3d9b08dbce0f3440032c52e9e2ab9f96ade2d3943313dfe51a7056959", size = 33342103 }, - { url = "https://files.pythonhosted.org/packages/21/f6/4bfb5695d8941e5c570a04d9fcd0d36bce7511b7d78e6e75c8f9791f82d0/scipy-1.16.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7dc1360c06535ea6116a2220f760ae572db9f661aba2d88074fe30ec2aa1ff88", size = 35697297 }, - { url = "https://files.pythonhosted.org/packages/04/e1/6496dadbc80d8d896ff72511ecfe2316b50313bfc3ebf07a3f580f08bd8c/scipy-1.16.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:663b8d66a8748051c3ee9c96465fb417509315b99c71550fda2591d7dd634234", size = 36021756 }, - { url = "https://files.pythonhosted.org/packages/fe/bd/a8c7799e0136b987bda3e1b23d155bcb31aec68a4a472554df5f0937eef7/scipy-1.16.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eab43fae33a0c39006a88096cd7b4f4ef545ea0447d250d5ac18202d40b6611d", size = 38696566 }, - { url = "https://files.pythonhosted.org/packages/cd/01/1204382461fcbfeb05b6161b594f4007e78b6eba9b375382f79153172b4d/scipy-1.16.3-cp313-cp313-win_amd64.whl", hash = "sha256:062246acacbe9f8210de8e751b16fc37458213f124bef161a5a02c7a39284304", size = 38529877 }, - { url = "https://files.pythonhosted.org/packages/7f/14/9d9fbcaa1260a94f4bb5b64ba9213ceb5d03cd88841fe9fd1ffd47a45b73/scipy-1.16.3-cp313-cp313-win_arm64.whl", hash = "sha256:50a3dbf286dbc7d84f176f9a1574c705f277cb6565069f88f60db9eafdbe3ee2", size = 25455366 }, - { url = "https://files.pythonhosted.org/packages/e2/a3/9ec205bd49f42d45d77f1730dbad9ccf146244c1647605cf834b3a8c4f36/scipy-1.16.3-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:fb4b29f4cf8cc5a8d628bc8d8e26d12d7278cd1f219f22698a378c3d67db5e4b", size = 37027931 }, - { url = "https://files.pythonhosted.org/packages/25/06/ca9fd1f3a4589cbd825b1447e5db3a8ebb969c1eaf22c8579bd286f51b6d/scipy-1.16.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:8d09d72dc92742988b0e7750bddb8060b0c7079606c0d24a8cc8e9c9c11f9079", size = 29400081 }, - { url = "https://files.pythonhosted.org/packages/6a/56/933e68210d92657d93fb0e381683bc0e53a965048d7358ff5fbf9e6a1b17/scipy-1.16.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:03192a35e661470197556de24e7cb1330d84b35b94ead65c46ad6f16f6b28f2a", size = 21391244 }, - { url = "https://files.pythonhosted.org/packages/a8/7e/779845db03dc1418e215726329674b40576879b91814568757ff0014ad65/scipy-1.16.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:57d01cb6f85e34f0946b33caa66e892aae072b64b034183f3d87c4025802a119", size = 23929753 }, - { url = "https://files.pythonhosted.org/packages/4c/4b/f756cf8161d5365dcdef9e5f460ab226c068211030a175d2fc7f3f41ca64/scipy-1.16.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:96491a6a54e995f00a28a3c3badfff58fd093bf26cd5fb34a2188c8c756a3a2c", size = 33496912 }, - { url = "https://files.pythonhosted.org/packages/09/b5/222b1e49a58668f23839ca1542a6322bb095ab8d6590d4f71723869a6c2c/scipy-1.16.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cd13e354df9938598af2be05822c323e97132d5e6306b83a3b4ee6724c6e522e", size = 35802371 }, - { url = "https://files.pythonhosted.org/packages/c1/8d/5964ef68bb31829bde27611f8c9deeac13764589fe74a75390242b64ca44/scipy-1.16.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:63d3cdacb8a824a295191a723ee5e4ea7768ca5ca5f2838532d9f2e2b3ce2135", size = 36190477 }, - { url = "https://files.pythonhosted.org/packages/ab/f2/b31d75cb9b5fa4dd39a0a931ee9b33e7f6f36f23be5ef560bf72e0f92f32/scipy-1.16.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:e7efa2681ea410b10dde31a52b18b0154d66f2485328830e45fdf183af5aefc6", size = 38796678 }, - { url = "https://files.pythonhosted.org/packages/b4/1e/b3723d8ff64ab548c38d87055483714fefe6ee20e0189b62352b5e015bb1/scipy-1.16.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2d1ae2cf0c350e7705168ff2429962a89ad90c2d49d1dd300686d8b2a5af22fc", size = 38640178 }, - { url = "https://files.pythonhosted.org/packages/8e/f3/d854ff38789aca9b0cc23008d607ced9de4f7ab14fa1ca4329f86b3758ca/scipy-1.16.3-cp313-cp313t-win_arm64.whl", hash = "sha256:0c623a54f7b79dd88ef56da19bc2873afec9673a48f3b85b18e4d402bdd29a5a", size = 25803246 }, - { url = "https://files.pythonhosted.org/packages/99/f6/99b10fd70f2d864c1e29a28bbcaa0c6340f9d8518396542d9ea3b4aaae15/scipy-1.16.3-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:875555ce62743e1d54f06cdf22c1e0bc47b91130ac40fe5d783b6dfa114beeb6", size = 36606469 }, - { url = "https://files.pythonhosted.org/packages/4d/74/043b54f2319f48ea940dd025779fa28ee360e6b95acb7cd188fad4391c6b/scipy-1.16.3-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:bb61878c18a470021fb515a843dc7a76961a8daceaaaa8bad1332f1bf4b54657", size = 28872043 }, - { url = "https://files.pythonhosted.org/packages/4d/e1/24b7e50cc1c4ee6ffbcb1f27fe9f4c8b40e7911675f6d2d20955f41c6348/scipy-1.16.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f2622206f5559784fa5c4b53a950c3c7c1cf3e84ca1b9c4b6c03f062f289ca26", size = 20862952 }, - { url = "https://files.pythonhosted.org/packages/dd/3a/3e8c01a4d742b730df368e063787c6808597ccb38636ed821d10b39ca51b/scipy-1.16.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:7f68154688c515cdb541a31ef8eb66d8cd1050605be9dcd74199cbd22ac739bc", size = 23508512 }, - { url = "https://files.pythonhosted.org/packages/1f/60/c45a12b98ad591536bfe5330cb3cfe1850d7570259303563b1721564d458/scipy-1.16.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8b3c820ddb80029fe9f43d61b81d8b488d3ef8ca010d15122b152db77dc94c22", size = 33413639 }, - { url = "https://files.pythonhosted.org/packages/71/bc/35957d88645476307e4839712642896689df442f3e53b0fa016ecf8a3357/scipy-1.16.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d3837938ae715fc0fe3c39c0202de3a8853aff22ca66781ddc2ade7554b7e2cc", size = 35704729 }, - { url = "https://files.pythonhosted.org/packages/3b/15/89105e659041b1ca11c386e9995aefacd513a78493656e57789f9d9eab61/scipy-1.16.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:aadd23f98f9cb069b3bd64ddc900c4d277778242e961751f77a8cb5c4b946fb0", size = 36086251 }, - { url = "https://files.pythonhosted.org/packages/1a/87/c0ea673ac9c6cc50b3da2196d860273bc7389aa69b64efa8493bdd25b093/scipy-1.16.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b7c5f1bda1354d6a19bc6af73a649f8285ca63ac6b52e64e658a5a11d4d69800", size = 38716681 }, - { url = "https://files.pythonhosted.org/packages/91/06/837893227b043fb9b0d13e4bd7586982d8136cb249ffb3492930dab905b8/scipy-1.16.3-cp314-cp314-win_amd64.whl", hash = "sha256:e5d42a9472e7579e473879a1990327830493a7047506d58d73fc429b84c1d49d", size = 39358423 }, - { url = "https://files.pythonhosted.org/packages/95/03/28bce0355e4d34a7c034727505a02d19548549e190bedd13a721e35380b7/scipy-1.16.3-cp314-cp314-win_arm64.whl", hash = "sha256:6020470b9d00245926f2d5bb93b119ca0340f0d564eb6fbaad843eaebf9d690f", size = 26135027 }, - { url = "https://files.pythonhosted.org/packages/b2/6f/69f1e2b682efe9de8fe9f91040f0cd32f13cfccba690512ba4c582b0bc29/scipy-1.16.3-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:e1d27cbcb4602680a49d787d90664fa4974063ac9d4134813332a8c53dbe667c", size = 37028379 }, - { url = "https://files.pythonhosted.org/packages/7c/2d/e826f31624a5ebbab1cd93d30fd74349914753076ed0593e1d56a98c4fb4/scipy-1.16.3-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:9b9c9c07b6d56a35777a1b4cc8966118fb16cfd8daf6743867d17d36cfad2d40", size = 29400052 }, - { url = "https://files.pythonhosted.org/packages/69/27/d24feb80155f41fd1f156bf144e7e049b4e2b9dd06261a242905e3bc7a03/scipy-1.16.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:3a4c460301fb2cffb7f88528f30b3127742cff583603aa7dc964a52c463b385d", size = 21391183 }, - { url = "https://files.pythonhosted.org/packages/f8/d3/1b229e433074c5738a24277eca520a2319aac7465eea7310ea6ae0e98ae2/scipy-1.16.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:f667a4542cc8917af1db06366d3f78a5c8e83badd56409f94d1eac8d8d9133fa", size = 23930174 }, - { url = "https://files.pythonhosted.org/packages/16/9d/d9e148b0ec680c0f042581a2be79a28a7ab66c0c4946697f9e7553ead337/scipy-1.16.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f379b54b77a597aa7ee5e697df0d66903e41b9c85a6dd7946159e356319158e8", size = 33497852 }, - { url = "https://files.pythonhosted.org/packages/2f/22/4e5f7561e4f98b7bea63cf3fd7934bff1e3182e9f1626b089a679914d5c8/scipy-1.16.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4aff59800a3b7f786b70bfd6ab551001cb553244988d7d6b8299cb1ea653b353", size = 35798595 }, - { url = "https://files.pythonhosted.org/packages/83/42/6644d714c179429fc7196857866f219fef25238319b650bb32dde7bf7a48/scipy-1.16.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:da7763f55885045036fabcebd80144b757d3db06ab0861415d1c3b7c69042146", size = 36186269 }, - { url = "https://files.pythonhosted.org/packages/ac/70/64b4d7ca92f9cf2e6fc6aaa2eecf80bb9b6b985043a9583f32f8177ea122/scipy-1.16.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ffa6eea95283b2b8079b821dc11f50a17d0571c92b43e2b5b12764dc5f9b285d", size = 38802779 }, - { url = "https://files.pythonhosted.org/packages/61/82/8d0e39f62764cce5ffd5284131e109f07cf8955aef9ab8ed4e3aa5e30539/scipy-1.16.3-cp314-cp314t-win_amd64.whl", hash = "sha256:d9f48cafc7ce94cf9b15c6bffdc443a81a27bf7075cf2dcd5c8b40f85d10c4e7", size = 39471128 }, - { url = "https://files.pythonhosted.org/packages/64/47/a494741db7280eae6dc033510c319e34d42dd41b7ac0c7ead39354d1a2b5/scipy-1.16.3-cp314-cp314t-win_arm64.whl", hash = "sha256:21d9d6b197227a12dcbf9633320a4e34c6b0e51c57268df255a0942983bac562", size = 26464127 }, -] - -[[package]] -name = "setuptools" -version = "80.9.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/18/5d/3bf57dcd21979b887f014ea83c24ae194cfcd12b9e0fda66b957c69d1fca/setuptools-80.9.0.tar.gz", hash = "sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c", size = 1319958 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486 }, -] - -[[package]] -name = "shellingham" -version = "1.5.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 }, -] - -[[package]] -name = "six" -version = "1.17.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050 }, -] - -[[package]] -name = "starlette" -version = "0.50.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/ba/b8/73a0e6a6e079a9d9cfa64113d771e421640b6f679a52eeb9b32f72d871a1/starlette-0.50.0.tar.gz", hash = "sha256:a2a17b22203254bcbc2e1f926d2d55f3f9497f769416b3190768befe598fa3ca", size = 2646985 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/52/1064f510b141bd54025f9b55105e26d1fa970b9be67ad766380a3c9b74b0/starlette-0.50.0-py3-none-any.whl", hash = "sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca", size = 74033 }, -] - -[[package]] -name = "sympy" -version = "1.14.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "mpmath" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353 }, -] - -[[package]] -name = "threadpoolctl" -version = "3.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638 }, -] - -[[package]] -name = "tomli" -version = "2.3.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236 }, - { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084 }, - { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832 }, - { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052 }, - { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555 }, - { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128 }, - { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445 }, - { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165 }, - { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891 }, - { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796 }, - { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121 }, - { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070 }, - { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859 }, - { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296 }, - { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124 }, - { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698 }, - { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819 }, - { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766 }, - { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771 }, - { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586 }, - { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792 }, - { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909 }, - { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946 }, - { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705 }, - { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244 }, - { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637 }, - { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925 }, - { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045 }, - { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835 }, - { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109 }, - { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930 }, - { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964 }, - { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065 }, - { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088 }, - { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193 }, - { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488 }, - { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669 }, - { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709 }, - { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563 }, - { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756 }, - { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408 }, -] - -[[package]] -name = "torch" -version = "2.9.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "filelock" }, - { name = "fsspec" }, - { name = "jinja2" }, - { name = "networkx", version = "3.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "networkx", version = "3.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "nvidia-cublas-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cuda-cupti-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cuda-nvrtc-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cuda-runtime-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cudnn-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cufft-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cufile-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-curand-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cusolver-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cusparse-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-cusparselt-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-nccl-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-nvjitlink-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-nvshmem-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "nvidia-nvtx-cu12", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "setuptools", marker = "python_full_version >= '3.12'" }, - { name = "sympy" }, - { name = "triton", marker = "platform_machine == 'x86_64' and platform_system == 'Linux'" }, - { name = "typing-extensions" }, -] -wheels = [ - { url = "https://files.pythonhosted.org/packages/5f/56/9577683b23072075ed2e40d725c52c2019d71a972fab8e083763da8e707e/torch-2.9.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:1cc208435f6c379f9b8fdfd5ceb5be1e3b72a6bdf1cb46c0d2812aa73472db9e", size = 104207681 }, - { url = "https://files.pythonhosted.org/packages/38/45/be5a74f221df8f4b609b78ff79dc789b0cc9017624544ac4dd1c03973150/torch-2.9.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:9fd35c68b3679378c11f5eb73220fdcb4e6f4592295277fbb657d31fd053237c", size = 899794036 }, - { url = "https://files.pythonhosted.org/packages/67/95/a581e8a382596b69385a44bab2733f1273d45c842f5d4a504c0edc3133b6/torch-2.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:2af70e3be4a13becba4655d6cc07dcfec7ae844db6ac38d6c1dafeb245d17d65", size = 110969861 }, - { url = "https://files.pythonhosted.org/packages/ad/51/1756dc128d2bf6ea4e0a915cb89ea5e730315ff33d60c1ff56fd626ba3eb/torch-2.9.1-cp310-none-macosx_11_0_arm64.whl", hash = "sha256:a83b0e84cc375e3318a808d032510dde99d696a85fe9473fc8575612b63ae951", size = 74452222 }, - { url = "https://files.pythonhosted.org/packages/15/db/c064112ac0089af3d2f7a2b5bfbabf4aa407a78b74f87889e524b91c5402/torch-2.9.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:62b3fd888277946918cba4478cf849303da5359f0fb4e3bfb86b0533ba2eaf8d", size = 104220430 }, - { url = "https://files.pythonhosted.org/packages/56/be/76eaa36c9cd032d3b01b001e2c5a05943df75f26211f68fae79e62f87734/torch-2.9.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d033ff0ac3f5400df862a51bdde9bad83561f3739ea0046e68f5401ebfa67c1b", size = 899821446 }, - { url = "https://files.pythonhosted.org/packages/47/cc/7a2949e38dfe3244c4df21f0e1c27bce8aedd6c604a587dd44fc21017cb4/torch-2.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:0d06b30a9207b7c3516a9e0102114024755a07045f0c1d2f2a56b1819ac06bcb", size = 110973074 }, - { url = "https://files.pythonhosted.org/packages/1e/ce/7d251155a783fb2c1bb6837b2b7023c622a2070a0a72726ca1df47e7ea34/torch-2.9.1-cp311-none-macosx_11_0_arm64.whl", hash = "sha256:52347912d868653e1528b47cafaf79b285b98be3f4f35d5955389b1b95224475", size = 74463887 }, - { url = "https://files.pythonhosted.org/packages/0f/27/07c645c7673e73e53ded71705045d6cb5bae94c4b021b03aa8d03eee90ab/torch-2.9.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:da5f6f4d7f4940a173e5572791af238cb0b9e21b1aab592bd8b26da4c99f1cd6", size = 104126592 }, - { url = "https://files.pythonhosted.org/packages/19/17/e377a460603132b00760511299fceba4102bd95db1a0ee788da21298ccff/torch-2.9.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:27331cd902fb4322252657f3902adf1c4f6acad9dcad81d8df3ae14c7c4f07c4", size = 899742281 }, - { url = "https://files.pythonhosted.org/packages/b1/1a/64f5769025db846a82567fa5b7d21dba4558a7234ee631712ee4771c436c/torch-2.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:81a285002d7b8cfd3fdf1b98aa8df138d41f1a8334fd9ea37511517cedf43083", size = 110940568 }, - { url = "https://files.pythonhosted.org/packages/6e/ab/07739fd776618e5882661d04c43f5b5586323e2f6a2d7d84aac20d8f20bd/torch-2.9.1-cp312-none-macosx_11_0_arm64.whl", hash = "sha256:c0d25d1d8e531b8343bea0ed811d5d528958f1dcbd37e7245bc686273177ad7e", size = 74479191 }, - { url = "https://files.pythonhosted.org/packages/20/60/8fc5e828d050bddfab469b3fe78e5ab9a7e53dda9c3bdc6a43d17ce99e63/torch-2.9.1-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c29455d2b910b98738131990394da3e50eea8291dfeb4b12de71ecf1fdeb21cb", size = 104135743 }, - { url = "https://files.pythonhosted.org/packages/f2/b7/6d3f80e6918213babddb2a37b46dbb14c15b14c5f473e347869a51f40e1f/torch-2.9.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:524de44cd13931208ba2c4bde9ec7741fd4ae6bfd06409a604fc32f6520c2bc9", size = 899749493 }, - { url = "https://files.pythonhosted.org/packages/a6/47/c7843d69d6de8938c1cbb1eba426b1d48ddf375f101473d3e31a5fc52b74/torch-2.9.1-cp313-cp313-win_amd64.whl", hash = "sha256:545844cc16b3f91e08ce3b40e9c2d77012dd33a48d505aed34b7740ed627a1b2", size = 110944162 }, - { url = "https://files.pythonhosted.org/packages/28/0e/2a37247957e72c12151b33a01e4df651d9d155dd74d8cfcbfad15a79b44a/torch-2.9.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5be4bf7496f1e3ffb1dd44b672adb1ac3f081f204c5ca81eba6442f5f634df8e", size = 74830751 }, - { url = "https://files.pythonhosted.org/packages/4b/f7/7a18745edcd7b9ca2381aa03353647bca8aace91683c4975f19ac233809d/torch-2.9.1-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:30a3e170a84894f3652434b56d59a64a2c11366b0ed5776fab33c2439396bf9a", size = 104142929 }, - { url = "https://files.pythonhosted.org/packages/f4/dd/f1c0d879f2863ef209e18823a988dc7a1bf40470750e3ebe927efdb9407f/torch-2.9.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8301a7b431e51764629208d0edaa4f9e4c33e6df0f2f90b90e261d623df6a4e2", size = 899748978 }, - { url = "https://files.pythonhosted.org/packages/1f/9f/6986b83a53b4d043e36f3f898b798ab51f7f20fdf1a9b01a2720f445043d/torch-2.9.1-cp313-cp313t-win_amd64.whl", hash = "sha256:2e1c42c0ae92bf803a4b2409fdfed85e30f9027a66887f5e7dcdbc014c7531db", size = 111176995 }, - { url = "https://files.pythonhosted.org/packages/40/60/71c698b466dd01e65d0e9514b5405faae200c52a76901baf6906856f17e4/torch-2.9.1-cp313-none-macosx_11_0_arm64.whl", hash = "sha256:2c14b3da5df416cf9cb5efab83aa3056f5b8cd8620b8fde81b4987ecab730587", size = 74480347 }, - { url = "https://files.pythonhosted.org/packages/48/50/c4b5112546d0d13cc9eaa1c732b823d676a9f49ae8b6f97772f795874a03/torch-2.9.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1edee27a7c9897f4e0b7c14cfc2f3008c571921134522d5b9b5ec4ebbc69041a", size = 74433245 }, - { url = "https://files.pythonhosted.org/packages/81/c9/2628f408f0518b3bae49c95f5af3728b6ab498c8624ab1e03a43dd53d650/torch-2.9.1-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:19d144d6b3e29921f1fc70503e9f2fc572cde6a5115c0c0de2f7ca8b1483e8b6", size = 104134804 }, - { url = "https://files.pythonhosted.org/packages/28/fc/5bc91d6d831ae41bf6e9e6da6468f25330522e92347c9156eb3f1cb95956/torch-2.9.1-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:c432d04376f6d9767a9852ea0def7b47a7bbc8e7af3b16ac9cf9ce02b12851c9", size = 899747132 }, - { url = "https://files.pythonhosted.org/packages/63/5d/e8d4e009e52b6b2cf1684bde2a6be157b96fb873732542fb2a9a99e85a83/torch-2.9.1-cp314-cp314-win_amd64.whl", hash = "sha256:d187566a2cdc726fc80138c3cdb260970fab1c27e99f85452721f7759bbd554d", size = 110934845 }, - { url = "https://files.pythonhosted.org/packages/bd/b2/2d15a52516b2ea3f414643b8de68fa4cb220d3877ac8b1028c83dc8ca1c4/torch-2.9.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:cb10896a1f7fedaddbccc2017ce6ca9ecaaf990f0973bdfcf405439750118d2c", size = 74823558 }, - { url = "https://files.pythonhosted.org/packages/86/5c/5b2e5d84f5b9850cd1e71af07524d8cbb74cba19379800f1f9f7c997fc70/torch-2.9.1-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:0a2bd769944991c74acf0c4ef23603b9c777fdf7637f115605a4b2d8023110c7", size = 104145788 }, - { url = "https://files.pythonhosted.org/packages/a9/8c/3da60787bcf70add986c4ad485993026ac0ca74f2fc21410bc4eb1bb7695/torch-2.9.1-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:07c8a9660bc9414c39cac530ac83b1fb1b679d7155824144a40a54f4a47bfa73", size = 899735500 }, - { url = "https://files.pythonhosted.org/packages/db/2b/f7818f6ec88758dfd21da46b6cd46af9d1b3433e53ddbb19ad1e0da17f9b/torch-2.9.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c88d3299ddeb2b35dcc31753305612db485ab6f1823e37fb29451c8b2732b87e", size = 111163659 }, -] - -[[package]] -name = "tqdm" -version = "4.67.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/a8/4b/29b4ef32e036bb34e4ab51796dd745cdba7ed47ad142a9f4a1eb8e0c744d/tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2", size = 169737 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2", size = 78540 }, -] - -[[package]] -name = "triton" -version = "3.5.1" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/2e/f95e673222afa2c7f0c687d8913e98fcf2589ef0b1405de76894e37fe18f/triton-3.5.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f63e34dcb32d7bd3a1d0195f60f30d2aee8b08a69a0424189b71017e23dfc3d2", size = 159821655 }, - { url = "https://files.pythonhosted.org/packages/fd/6e/676ab5019b4dde8b9b7bab71245102fc02778ef3df48218b298686b9ffd6/triton-3.5.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5fc53d849f879911ea13f4a877243afc513187bc7ee92d1f2c0f1ba3169e3c94", size = 170320692 }, - { url = "https://files.pythonhosted.org/packages/dc/dc/6ce44d055f2fc2403c4ec6b3cfd3a9b25f57b7d95efadccdea91497f8e81/triton-3.5.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da47169e30a779bade679ce78df4810fca6d78a955843d2ddb11f226adc517dc", size = 159928005 }, - { url = "https://files.pythonhosted.org/packages/b0/72/ec90c3519eaf168f22cb1757ad412f3a2add4782ad3a92861c9ad135d886/triton-3.5.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:61413522a48add32302353fdbaaf92daaaab06f6b5e3229940d21b5207f47579", size = 170425802 }, - { url = "https://files.pythonhosted.org/packages/db/53/2bcc46879910991f09c063eea07627baef2bc62fe725302ba8f46a2c1ae5/triton-3.5.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:275a045b6ed670dd1bd005c3e6c2d61846c74c66f4512d6f33cc027b11de8fd4", size = 159940689 }, - { url = "https://files.pythonhosted.org/packages/f2/50/9a8358d3ef58162c0a415d173cfb45b67de60176e1024f71fbc4d24c0b6d/triton-3.5.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d2c6b915a03888ab931a9fd3e55ba36785e1fe70cbea0b40c6ef93b20fc85232", size = 170470207 }, - { url = "https://files.pythonhosted.org/packages/f1/ba/805684a992ee32d486b7948d36aed2f5e3c643fc63883bf8bdca1c3f3980/triton-3.5.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56765ffe12c554cd560698398b8a268db1f616c120007bfd8829d27139abd24a", size = 159955460 }, - { url = "https://files.pythonhosted.org/packages/27/46/8c3bbb5b0a19313f50edcaa363b599e5a1a5ac9683ead82b9b80fe497c8d/triton-3.5.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3f4346b6ebbd4fad18773f5ba839114f4826037c9f2f34e0148894cd5dd3dba", size = 170470410 }, - { url = "https://files.pythonhosted.org/packages/84/1e/7df59baef41931e21159371c481c31a517ff4c2517343b62503d0cd2be99/triton-3.5.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:02c770856f5e407d24d28ddc66e33cf026e6f4d360dcb8b2fabe6ea1fc758621", size = 160072799 }, - { url = "https://files.pythonhosted.org/packages/37/92/e97fcc6b2c27cdb87ce5ee063d77f8f26f19f06916aa680464c8104ef0f6/triton-3.5.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0b4d2c70127fca6a23e247f9348b8adde979d2e7a20391bfbabaac6aebc7e6a8", size = 170579924 }, - { url = "https://files.pythonhosted.org/packages/14/f9/0430e879c1e63a1016cb843261528fd3187c872c3a9539132efc39514753/triton-3.5.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f617aa7925f9ea9968ec2e1adaf93e87864ff51549c8f04ce658f29bbdb71e2d", size = 159956163 }, - { url = "https://files.pythonhosted.org/packages/a4/e6/c595c35e5c50c4bc56a7bac96493dad321e9e29b953b526bbbe20f9911d0/triton-3.5.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0637b1efb1db599a8e9dc960d53ab6e4637db7d4ab6630a0974705d77b14b60", size = 170480488 }, - { url = "https://files.pythonhosted.org/packages/41/1e/63d367c576c75919e268e4fbc33c1cb33b6dc12bb85e8bfe531c2a8bd5d3/triton-3.5.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8932391d7f93698dfe5bc9bead77c47a24f97329e9f20c10786bb230a9083f56", size = 160073620 }, - { url = "https://files.pythonhosted.org/packages/16/b5/b0d3d8b901b6a04ca38df5e24c27e53afb15b93624d7fd7d658c7cd9352a/triton-3.5.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bac7f7d959ad0f48c0e97d6643a1cc0fd5786fe61cb1f83b537c6b2d54776478", size = 170582192 }, -] - -[[package]] -name = "typer-slim" -version = "0.20.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8e/45/81b94a52caed434b94da65729c03ad0fb7665fab0f7db9ee54c94e541403/typer_slim-0.20.0.tar.gz", hash = "sha256:9fc6607b3c6c20f5c33ea9590cbeb17848667c51feee27d9e314a579ab07d1a3", size = 106561 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5e/dd/5cbf31f402f1cc0ab087c94d4669cfa55bd1e818688b910631e131d74e75/typer_slim-0.20.0-py3-none-any.whl", hash = "sha256:f42a9b7571a12b97dddf364745d29f12221865acef7a2680065f9bb29c7dc89d", size = 47087 }, -] - -[[package]] -name = "typing-extensions" -version = "4.15.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614 }, -] - -[[package]] -name = "typing-inspection" -version = "0.4.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611 }, -] - -[[package]] -name = "tzdata" -version = "2025.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839 }, -] - -[[package]] -name = "umap-learn" -version = "0.5.9.post2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "numba" }, - { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "numpy", version = "2.3.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "pynndescent" }, - { name = "scikit-learn" }, - { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, - { name = "scipy", version = "1.16.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, - { name = "tqdm" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5f/ee/6bc65bd375c812026a7af63fe9d09d409382120aff25f2152f1ba12af5ec/umap_learn-0.5.9.post2.tar.gz", hash = "sha256:bdf60462d779bd074ce177a0714ced17e6d161285590fa487f3f9548dd3c31c9", size = 95441 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6b/b1/c24deeda9baf1fd491aaad941ed89e0fed6c583a117fd7b79e0a33a1e6c0/umap_learn-0.5.9.post2-py3-none-any.whl", hash = "sha256:fbe51166561e0e7fab00ef3d516ac2621243b8d15cf4bef9f656d701736b16a0", size = 90146 }, -] - -[[package]] -name = "urllib3" -version = "2.5.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795 }, -] - -[[package]] -name = "uvicorn" -version = "0.38.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "click" }, - { name = "h11" }, - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/cb/ce/f06b84e2697fef4688ca63bdb2fdf113ca0a3be33f94488f2cadb690b0cf/uvicorn-0.38.0.tar.gz", hash = "sha256:fd97093bdd120a2609fc0d3afe931d4d4ad688b6e75f0f929fde1bc36fe0e91d", size = 80605 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/d9/d88e73ca598f4f6ff671fb5fde8a32925c2e08a637303a1d12883c7305fa/uvicorn-0.38.0-py3-none-any.whl", hash = "sha256:48c0afd214ceb59340075b4a052ea1ee91c16fbc2a9b1469cca0e54566977b02", size = 68109 }, -] - -[package.optional-dependencies] -standard = [ - { name = "colorama", marker = "sys_platform == 'win32'" }, - { name = "httptools" }, - { name = "python-dotenv" }, - { name = "pyyaml" }, - { name = "uvloop", marker = "platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'" }, - { name = "watchfiles" }, - { name = "websockets" }, -] - -[[package]] -name = "uvloop" -version = "0.22.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/06/f0/18d39dbd1971d6d62c4629cc7fa67f74821b0dc1f5a77af43719de7936a7/uvloop-0.22.1.tar.gz", hash = "sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f", size = 2443250 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/14/ecceb239b65adaaf7fde510aa8bd534075695d1e5f8dadfa32b5723d9cfb/uvloop-0.22.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c", size = 1343335 }, - { url = "https://files.pythonhosted.org/packages/ba/ae/6f6f9af7f590b319c94532b9567409ba11f4fa71af1148cab1bf48a07048/uvloop-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7cd375a12b71d33d46af85a3343b35d98e8116134ba404bd657b3b1d15988792", size = 742903 }, - { url = "https://files.pythonhosted.org/packages/09/bd/3667151ad0702282a1f4d5d29288fce8a13c8b6858bf0978c219cd52b231/uvloop-0.22.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac33ed96229b7790eb729702751c0e93ac5bc3bcf52ae9eccbff30da09194b86", size = 3648499 }, - { url = "https://files.pythonhosted.org/packages/b3/f6/21657bb3beb5f8c57ce8be3b83f653dd7933c2fd00545ed1b092d464799a/uvloop-0.22.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:481c990a7abe2c6f4fc3d98781cc9426ebd7f03a9aaa7eb03d3bfc68ac2a46bd", size = 3700133 }, - { url = "https://files.pythonhosted.org/packages/09/e0/604f61d004ded805f24974c87ddd8374ef675644f476f01f1df90e4cdf72/uvloop-0.22.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a592b043a47ad17911add5fbd087c76716d7c9ccc1d64ec9249ceafd735f03c2", size = 3512681 }, - { url = "https://files.pythonhosted.org/packages/bb/ce/8491fd370b0230deb5eac69c7aae35b3be527e25a911c0acdffb922dc1cd/uvloop-0.22.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1489cf791aa7b6e8c8be1c5a080bae3a672791fcb4e9e12249b05862a2ca9cec", size = 3615261 }, - { url = "https://files.pythonhosted.org/packages/c7/d5/69900f7883235562f1f50d8184bb7dd84a2fb61e9ec63f3782546fdbd057/uvloop-0.22.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c60ebcd36f7b240b30788554b6f0782454826a0ed765d8430652621b5de674b9", size = 1352420 }, - { url = "https://files.pythonhosted.org/packages/a8/73/c4e271b3bce59724e291465cc936c37758886a4868787da0278b3b56b905/uvloop-0.22.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b7f102bf3cb1995cfeaee9321105e8f5da76fdb104cdad8986f85461a1b7b77", size = 748677 }, - { url = "https://files.pythonhosted.org/packages/86/94/9fb7fad2f824d25f8ecac0d70b94d0d48107ad5ece03769a9c543444f78a/uvloop-0.22.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53c85520781d84a4b8b230e24a5af5b0778efdb39142b424990ff1ef7c48ba21", size = 3753819 }, - { url = "https://files.pythonhosted.org/packages/74/4f/256aca690709e9b008b7108bc85fba619a2bc37c6d80743d18abad16ee09/uvloop-0.22.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56a2d1fae65fd82197cb8c53c367310b3eabe1bbb9fb5a04d28e3e3520e4f702", size = 3804529 }, - { url = "https://files.pythonhosted.org/packages/7f/74/03c05ae4737e871923d21a76fe28b6aad57f5c03b6e6bfcfa5ad616013e4/uvloop-0.22.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40631b049d5972c6755b06d0bfe8233b1bd9a8a6392d9d1c45c10b6f9e9b2733", size = 3621267 }, - { url = "https://files.pythonhosted.org/packages/75/be/f8e590fe61d18b4a92070905497aec4c0e64ae1761498cad09023f3f4b3e/uvloop-0.22.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:535cc37b3a04f6cd2c1ef65fa1d370c9a35b6695df735fcff5427323f2cd5473", size = 3723105 }, - { url = "https://files.pythonhosted.org/packages/3d/ff/7f72e8170be527b4977b033239a83a68d5c881cc4775fca255c677f7ac5d/uvloop-0.22.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42", size = 1359936 }, - { url = "https://files.pythonhosted.org/packages/c3/c6/e5d433f88fd54d81ef4be58b2b7b0cea13c442454a1db703a1eea0db1a59/uvloop-0.22.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6", size = 752769 }, - { url = "https://files.pythonhosted.org/packages/24/68/a6ac446820273e71aa762fa21cdcc09861edd3536ff47c5cd3b7afb10eeb/uvloop-0.22.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370", size = 4317413 }, - { url = "https://files.pythonhosted.org/packages/5f/6f/e62b4dfc7ad6518e7eff2516f680d02a0f6eb62c0c212e152ca708a0085e/uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4", size = 4426307 }, - { url = "https://files.pythonhosted.org/packages/90/60/97362554ac21e20e81bcef1150cb2a7e4ffdaf8ea1e5b2e8bf7a053caa18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2", size = 4131970 }, - { url = "https://files.pythonhosted.org/packages/99/39/6b3f7d234ba3964c428a6e40006340f53ba37993f46ed6e111c6e9141d18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0", size = 4296343 }, - { url = "https://files.pythonhosted.org/packages/89/8c/182a2a593195bfd39842ea68ebc084e20c850806117213f5a299dfc513d9/uvloop-0.22.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705", size = 1358611 }, - { url = "https://files.pythonhosted.org/packages/d2/14/e301ee96a6dc95224b6f1162cd3312f6d1217be3907b79173b06785f2fe7/uvloop-0.22.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8", size = 751811 }, - { url = "https://files.pythonhosted.org/packages/b7/02/654426ce265ac19e2980bfd9ea6590ca96a56f10c76e63801a2df01c0486/uvloop-0.22.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d", size = 4288562 }, - { url = "https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e", size = 4366890 }, - { url = "https://files.pythonhosted.org/packages/d2/53/8369e5219a5855869bcee5f4d317f6da0e2c669aecf0ef7d371e3d084449/uvloop-0.22.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e", size = 4119472 }, - { url = "https://files.pythonhosted.org/packages/f8/ba/d69adbe699b768f6b29a5eec7b47dd610bd17a69de51b251126a801369ea/uvloop-0.22.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad", size = 4239051 }, - { url = "https://files.pythonhosted.org/packages/90/cd/b62bdeaa429758aee8de8b00ac0dd26593a9de93d302bff3d21439e9791d/uvloop-0.22.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3879b88423ec7e97cd4eba2a443aa26ed4e59b45e6b76aabf13fe2f27023a142", size = 1362067 }, - { url = "https://files.pythonhosted.org/packages/0d/f8/a132124dfda0777e489ca86732e85e69afcd1ff7686647000050ba670689/uvloop-0.22.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4baa86acedf1d62115c1dc6ad1e17134476688f08c6efd8a2ab076e815665c74", size = 752423 }, - { url = "https://files.pythonhosted.org/packages/a3/94/94af78c156f88da4b3a733773ad5ba0b164393e357cc4bd0ab2e2677a7d6/uvloop-0.22.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:297c27d8003520596236bdb2335e6b3f649480bd09e00d1e3a99144b691d2a35", size = 4272437 }, - { url = "https://files.pythonhosted.org/packages/b5/35/60249e9fd07b32c665192cec7af29e06c7cd96fa1d08b84f012a56a0b38e/uvloop-0.22.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c1955d5a1dd43198244d47664a5858082a3239766a839b2102a269aaff7a4e25", size = 4292101 }, - { url = "https://files.pythonhosted.org/packages/02/62/67d382dfcb25d0a98ce73c11ed1a6fba5037a1a1d533dcbb7cab033a2636/uvloop-0.22.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b31dc2fccbd42adc73bc4e7cdbae4fc5086cf378979e53ca5d0301838c5682c6", size = 4114158 }, - { url = "https://files.pythonhosted.org/packages/f0/7a/f1171b4a882a5d13c8b7576f348acfe6074d72eaf52cccef752f748d4a9f/uvloop-0.22.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:93f617675b2d03af4e72a5333ef89450dfaa5321303ede6e67ba9c9d26878079", size = 4177360 }, - { url = "https://files.pythonhosted.org/packages/79/7b/b01414f31546caf0919da80ad57cbfe24c56b151d12af68cee1b04922ca8/uvloop-0.22.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:37554f70528f60cad66945b885eb01f1bb514f132d92b6eeed1c90fd54ed6289", size = 1454790 }, - { url = "https://files.pythonhosted.org/packages/d4/31/0bb232318dd838cad3fa8fb0c68c8b40e1145b32025581975e18b11fab40/uvloop-0.22.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b76324e2dc033a0b2f435f33eb88ff9913c156ef78e153fb210e03c13da746b3", size = 796783 }, - { url = "https://files.pythonhosted.org/packages/42/38/c9b09f3271a7a723a5de69f8e237ab8e7803183131bc57c890db0b6bb872/uvloop-0.22.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:badb4d8e58ee08dad957002027830d5c3b06aea446a6a3744483c2b3b745345c", size = 4647548 }, - { url = "https://files.pythonhosted.org/packages/c1/37/945b4ca0ac27e3dc4952642d4c900edd030b3da6c9634875af6e13ae80e5/uvloop-0.22.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b91328c72635f6f9e0282e4a57da7470c7350ab1c9f48546c0f2866205349d21", size = 4467065 }, - { url = "https://files.pythonhosted.org/packages/97/cc/48d232f33d60e2e2e0b42f4e73455b146b76ebe216487e862700457fbf3c/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:daf620c2995d193449393d6c62131b3fbd40a63bf7b307a1527856ace637fe88", size = 4328384 }, - { url = "https://files.pythonhosted.org/packages/e4/16/c1fd27e9549f3c4baf1dc9c20c456cd2f822dbf8de9f463824b0c0357e06/uvloop-0.22.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6cde23eeda1a25c75b2e07d39970f3374105d5eafbaab2a4482be82f272d5a5e", size = 4296730 }, -] - -[[package]] -name = "watchfiles" -version = "1.1.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "anyio" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c2/c9/8869df9b2a2d6c59d79220a4db37679e74f807c559ffe5265e08b227a210/watchfiles-1.1.1.tar.gz", hash = "sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2", size = 94440 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c", size = 407318 }, - { url = "https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43", size = 394478 }, - { url = "https://files.pythonhosted.org/packages/b1/04/9cc0ba88697b34b755371f5ace8d3a4d9a15719c07bdc7bd13d7d8c6a341/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31", size = 449894 }, - { url = "https://files.pythonhosted.org/packages/d2/9c/eda4615863cd8621e89aed4df680d8c3ec3da6a4cf1da113c17decd87c7f/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac", size = 459065 }, - { url = "https://files.pythonhosted.org/packages/84/13/f28b3f340157d03cbc8197629bc109d1098764abe1e60874622a0be5c112/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d", size = 488377 }, - { url = "https://files.pythonhosted.org/packages/86/93/cfa597fa9389e122488f7ffdbd6db505b3b915ca7435ecd7542e855898c2/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d", size = 595837 }, - { url = "https://files.pythonhosted.org/packages/57/1e/68c1ed5652b48d89fc24d6af905d88ee4f82fa8bc491e2666004e307ded1/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863", size = 473456 }, - { url = "https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab", size = 455614 }, - { url = "https://files.pythonhosted.org/packages/61/a5/3d782a666512e01eaa6541a72ebac1d3aae191ff4a31274a66b8dd85760c/watchfiles-1.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82", size = 630690 }, - { url = "https://files.pythonhosted.org/packages/9b/73/bb5f38590e34687b2a9c47a244aa4dd50c56a825969c92c9c5fc7387cea1/watchfiles-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4", size = 622459 }, - { url = "https://files.pythonhosted.org/packages/f1/ac/c9bb0ec696e07a20bd58af5399aeadaef195fb2c73d26baf55180fe4a942/watchfiles-1.1.1-cp310-cp310-win32.whl", hash = "sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844", size = 272663 }, - { url = "https://files.pythonhosted.org/packages/11/a0/a60c5a7c2ec59fa062d9a9c61d02e3b6abd94d32aac2d8344c4bdd033326/watchfiles-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e", size = 287453 }, - { url = "https://files.pythonhosted.org/packages/1f/f8/2c5f479fb531ce2f0564eda479faecf253d886b1ab3630a39b7bf7362d46/watchfiles-1.1.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5", size = 406529 }, - { url = "https://files.pythonhosted.org/packages/fe/cd/f515660b1f32f65df671ddf6f85bfaca621aee177712874dc30a97397977/watchfiles-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741", size = 394384 }, - { url = "https://files.pythonhosted.org/packages/7b/c3/28b7dc99733eab43fca2d10f55c86e03bd6ab11ca31b802abac26b23d161/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6", size = 448789 }, - { url = "https://files.pythonhosted.org/packages/4a/24/33e71113b320030011c8e4316ccca04194bf0cbbaeee207f00cbc7d6b9f5/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b", size = 460521 }, - { url = "https://files.pythonhosted.org/packages/f4/c3/3c9a55f255aa57b91579ae9e98c88704955fa9dac3e5614fb378291155df/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14", size = 488722 }, - { url = "https://files.pythonhosted.org/packages/49/36/506447b73eb46c120169dc1717fe2eff07c234bb3232a7200b5f5bd816e9/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d", size = 596088 }, - { url = "https://files.pythonhosted.org/packages/82/ab/5f39e752a9838ec4d52e9b87c1e80f1ee3ccdbe92e183c15b6577ab9de16/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff", size = 472923 }, - { url = "https://files.pythonhosted.org/packages/af/b9/a419292f05e302dea372fa7e6fda5178a92998411f8581b9830d28fb9edb/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606", size = 456080 }, - { url = "https://files.pythonhosted.org/packages/b0/c3/d5932fd62bde1a30c36e10c409dc5d54506726f08cb3e1d8d0ba5e2bc8db/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701", size = 629432 }, - { url = "https://files.pythonhosted.org/packages/f7/77/16bddd9779fafb795f1a94319dc965209c5641db5bf1edbbccace6d1b3c0/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10", size = 623046 }, - { url = "https://files.pythonhosted.org/packages/46/ef/f2ecb9a0f342b4bfad13a2787155c6ee7ce792140eac63a34676a2feeef2/watchfiles-1.1.1-cp311-cp311-win32.whl", hash = "sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849", size = 271473 }, - { url = "https://files.pythonhosted.org/packages/94/bc/f42d71125f19731ea435c3948cad148d31a64fccde3867e5ba4edee901f9/watchfiles-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4", size = 287598 }, - { url = "https://files.pythonhosted.org/packages/57/c9/a30f897351f95bbbfb6abcadafbaca711ce1162f4db95fc908c98a9165f3/watchfiles-1.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e", size = 277210 }, - { url = "https://files.pythonhosted.org/packages/74/d5/f039e7e3c639d9b1d09b07ea412a6806d38123f0508e5f9b48a87b0a76cc/watchfiles-1.1.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d", size = 404745 }, - { url = "https://files.pythonhosted.org/packages/a5/96/a881a13aa1349827490dab2d363c8039527060cfcc2c92cc6d13d1b1049e/watchfiles-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610", size = 391769 }, - { url = "https://files.pythonhosted.org/packages/4b/5b/d3b460364aeb8da471c1989238ea0e56bec24b6042a68046adf3d9ddb01c/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af", size = 449374 }, - { url = "https://files.pythonhosted.org/packages/b9/44/5769cb62d4ed055cb17417c0a109a92f007114a4e07f30812a73a4efdb11/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6", size = 459485 }, - { url = "https://files.pythonhosted.org/packages/19/0c/286b6301ded2eccd4ffd0041a1b726afda999926cf720aab63adb68a1e36/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce", size = 488813 }, - { url = "https://files.pythonhosted.org/packages/c7/2b/8530ed41112dd4a22f4dcfdb5ccf6a1baad1ff6eed8dc5a5f09e7e8c41c7/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa", size = 594816 }, - { url = "https://files.pythonhosted.org/packages/ce/d2/f5f9fb49489f184f18470d4f99f4e862a4b3e9ac2865688eb2099e3d837a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb", size = 475186 }, - { url = "https://files.pythonhosted.org/packages/cf/68/5707da262a119fb06fbe214d82dd1fe4a6f4af32d2d14de368d0349eb52a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803", size = 456812 }, - { url = "https://files.pythonhosted.org/packages/66/ab/3cbb8756323e8f9b6f9acb9ef4ec26d42b2109bce830cc1f3468df20511d/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94", size = 630196 }, - { url = "https://files.pythonhosted.org/packages/78/46/7152ec29b8335f80167928944a94955015a345440f524d2dfe63fc2f437b/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43", size = 622657 }, - { url = "https://files.pythonhosted.org/packages/0a/bf/95895e78dd75efe9a7f31733607f384b42eb5feb54bd2eb6ed57cc2e94f4/watchfiles-1.1.1-cp312-cp312-win32.whl", hash = "sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9", size = 272042 }, - { url = "https://files.pythonhosted.org/packages/87/0a/90eb755f568de2688cb220171c4191df932232c20946966c27a59c400850/watchfiles-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9", size = 288410 }, - { url = "https://files.pythonhosted.org/packages/36/76/f322701530586922fbd6723c4f91ace21364924822a8772c549483abed13/watchfiles-1.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404", size = 278209 }, - { url = "https://files.pythonhosted.org/packages/bb/f4/f750b29225fe77139f7ae5de89d4949f5a99f934c65a1f1c0b248f26f747/watchfiles-1.1.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18", size = 404321 }, - { url = "https://files.pythonhosted.org/packages/2b/f9/f07a295cde762644aa4c4bb0f88921d2d141af45e735b965fb2e87858328/watchfiles-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a", size = 391783 }, - { url = "https://files.pythonhosted.org/packages/bc/11/fc2502457e0bea39a5c958d86d2cb69e407a4d00b85735ca724bfa6e0d1a/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219", size = 449279 }, - { url = "https://files.pythonhosted.org/packages/e3/1f/d66bc15ea0b728df3ed96a539c777acfcad0eb78555ad9efcaa1274688f0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428", size = 459405 }, - { url = "https://files.pythonhosted.org/packages/be/90/9f4a65c0aec3ccf032703e6db02d89a157462fbb2cf20dd415128251cac0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0", size = 488976 }, - { url = "https://files.pythonhosted.org/packages/37/57/ee347af605d867f712be7029bb94c8c071732a4b44792e3176fa3c612d39/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150", size = 595506 }, - { url = "https://files.pythonhosted.org/packages/a8/78/cc5ab0b86c122047f75e8fc471c67a04dee395daf847d3e59381996c8707/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae", size = 474936 }, - { url = "https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d", size = 456147 }, - { url = "https://files.pythonhosted.org/packages/57/99/da6573ba71166e82d288d4df0839128004c67d2778d3b566c138695f5c0b/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b", size = 630007 }, - { url = "https://files.pythonhosted.org/packages/a8/51/7439c4dd39511368849eb1e53279cd3454b4a4dbace80bab88feeb83c6b5/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374", size = 622280 }, - { url = "https://files.pythonhosted.org/packages/95/9c/8ed97d4bba5db6fdcdb2b298d3898f2dd5c20f6b73aee04eabe56c59677e/watchfiles-1.1.1-cp313-cp313-win32.whl", hash = "sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0", size = 272056 }, - { url = "https://files.pythonhosted.org/packages/1f/f3/c14e28429f744a260d8ceae18bf58c1d5fa56b50d006a7a9f80e1882cb0d/watchfiles-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42", size = 288162 }, - { url = "https://files.pythonhosted.org/packages/dc/61/fe0e56c40d5cd29523e398d31153218718c5786b5e636d9ae8ae79453d27/watchfiles-1.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18", size = 277909 }, - { url = "https://files.pythonhosted.org/packages/79/42/e0a7d749626f1e28c7108a99fb9bf524b501bbbeb9b261ceecde644d5a07/watchfiles-1.1.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da", size = 403389 }, - { url = "https://files.pythonhosted.org/packages/15/49/08732f90ce0fbbc13913f9f215c689cfc9ced345fb1bcd8829a50007cc8d/watchfiles-1.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051", size = 389964 }, - { url = "https://files.pythonhosted.org/packages/27/0d/7c315d4bd5f2538910491a0393c56bf70d333d51bc5b34bee8e68e8cea19/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e", size = 448114 }, - { url = "https://files.pythonhosted.org/packages/c3/24/9e096de47a4d11bc4df41e9d1e61776393eac4cb6eb11b3e23315b78b2cc/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70", size = 460264 }, - { url = "https://files.pythonhosted.org/packages/cc/0f/e8dea6375f1d3ba5fcb0b3583e2b493e77379834c74fd5a22d66d85d6540/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261", size = 487877 }, - { url = "https://files.pythonhosted.org/packages/ac/5b/df24cfc6424a12deb41503b64d42fbea6b8cb357ec62ca84a5a3476f654a/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620", size = 595176 }, - { url = "https://files.pythonhosted.org/packages/8f/b5/853b6757f7347de4e9b37e8cc3289283fb983cba1ab4d2d7144694871d9c/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04", size = 473577 }, - { url = "https://files.pythonhosted.org/packages/e1/f7/0a4467be0a56e80447c8529c9fce5b38eab4f513cb3d9bf82e7392a5696b/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77", size = 455425 }, - { url = "https://files.pythonhosted.org/packages/8e/e0/82583485ea00137ddf69bc84a2db88bd92ab4a6e3c405e5fb878ead8d0e7/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef", size = 628826 }, - { url = "https://files.pythonhosted.org/packages/28/9a/a785356fccf9fae84c0cc90570f11702ae9571036fb25932f1242c82191c/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf", size = 622208 }, - { url = "https://files.pythonhosted.org/packages/c3/f4/0872229324ef69b2c3edec35e84bd57a1289e7d3fe74588048ed8947a323/watchfiles-1.1.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:d1715143123baeeaeadec0528bb7441103979a1d5f6fd0e1f915383fea7ea6d5", size = 404315 }, - { url = "https://files.pythonhosted.org/packages/7b/22/16d5331eaed1cb107b873f6ae1b69e9ced582fcf0c59a50cd84f403b1c32/watchfiles-1.1.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:39574d6370c4579d7f5d0ad940ce5b20db0e4117444e39b6d8f99db5676c52fd", size = 390869 }, - { url = "https://files.pythonhosted.org/packages/b2/7e/5643bfff5acb6539b18483128fdc0ef2cccc94a5b8fbda130c823e8ed636/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7365b92c2e69ee952902e8f70f3ba6360d0d596d9299d55d7d386df84b6941fb", size = 449919 }, - { url = "https://files.pythonhosted.org/packages/51/2e/c410993ba5025a9f9357c376f48976ef0e1b1aefb73b97a5ae01a5972755/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bfff9740c69c0e4ed32416f013f3c45e2ae42ccedd1167ef2d805c000b6c71a5", size = 460845 }, - { url = "https://files.pythonhosted.org/packages/8e/a4/2df3b404469122e8680f0fcd06079317e48db58a2da2950fb45020947734/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b27cf2eb1dda37b2089e3907d8ea92922b673c0c427886d4edc6b94d8dfe5db3", size = 489027 }, - { url = "https://files.pythonhosted.org/packages/ea/84/4587ba5b1f267167ee715b7f66e6382cca6938e0a4b870adad93e44747e6/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:526e86aced14a65a5b0ec50827c745597c782ff46b571dbfe46192ab9e0b3c33", size = 595615 }, - { url = "https://files.pythonhosted.org/packages/6a/0f/c6988c91d06e93cd0bb3d4a808bcf32375ca1904609835c3031799e3ecae/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04e78dd0b6352db95507fd8cb46f39d185cf8c74e4cf1e4fbad1d3df96faf510", size = 474836 }, - { url = "https://files.pythonhosted.org/packages/b4/36/ded8aebea91919485b7bbabbd14f5f359326cb5ec218cd67074d1e426d74/watchfiles-1.1.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c85794a4cfa094714fb9c08d4a218375b2b95b8ed1666e8677c349906246c05", size = 455099 }, - { url = "https://files.pythonhosted.org/packages/98/e0/8c9bdba88af756a2fce230dd365fab2baf927ba42cd47521ee7498fd5211/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:74d5012b7630714b66be7b7b7a78855ef7ad58e8650c73afc4c076a1f480a8d6", size = 630626 }, - { url = "https://files.pythonhosted.org/packages/2a/84/a95db05354bf2d19e438520d92a8ca475e578c647f78f53197f5a2f17aaf/watchfiles-1.1.1-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:8fbe85cb3201c7d380d3d0b90e63d520f15d6afe217165d7f98c9c649654db81", size = 622519 }, - { url = "https://files.pythonhosted.org/packages/1d/ce/d8acdc8de545de995c339be67711e474c77d643555a9bb74a9334252bd55/watchfiles-1.1.1-cp314-cp314-win32.whl", hash = "sha256:3fa0b59c92278b5a7800d3ee7733da9d096d4aabcfabb9a928918bd276ef9b9b", size = 272078 }, - { url = "https://files.pythonhosted.org/packages/c4/c9/a74487f72d0451524be827e8edec251da0cc1fcf111646a511ae752e1a3d/watchfiles-1.1.1-cp314-cp314-win_amd64.whl", hash = "sha256:c2047d0b6cea13b3316bdbafbfa0c4228ae593d995030fda39089d36e64fc03a", size = 287664 }, - { url = "https://files.pythonhosted.org/packages/df/b8/8ac000702cdd496cdce998c6f4ee0ca1f15977bba51bdf07d872ebdfc34c/watchfiles-1.1.1-cp314-cp314-win_arm64.whl", hash = "sha256:842178b126593addc05acf6fce960d28bc5fae7afbaa2c6c1b3a7b9460e5be02", size = 277154 }, - { url = "https://files.pythonhosted.org/packages/47/a8/e3af2184707c29f0f14b1963c0aace6529f9d1b8582d5b99f31bbf42f59e/watchfiles-1.1.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:88863fbbc1a7312972f1c511f202eb30866370ebb8493aef2812b9ff28156a21", size = 403820 }, - { url = "https://files.pythonhosted.org/packages/c0/ec/e47e307c2f4bd75f9f9e8afbe3876679b18e1bcec449beca132a1c5ffb2d/watchfiles-1.1.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:55c7475190662e202c08c6c0f4d9e345a29367438cf8e8037f3155e10a88d5a5", size = 390510 }, - { url = "https://files.pythonhosted.org/packages/d5/a0/ad235642118090f66e7b2f18fd5c42082418404a79205cdfca50b6309c13/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f53fa183d53a1d7a8852277c92b967ae99c2d4dcee2bfacff8868e6e30b15f7", size = 448408 }, - { url = "https://files.pythonhosted.org/packages/df/85/97fa10fd5ff3332ae17e7e40e20784e419e28521549780869f1413742e9d/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6aae418a8b323732fa89721d86f39ec8f092fc2af67f4217a2b07fd3e93c6101", size = 458968 }, - { url = "https://files.pythonhosted.org/packages/47/c2/9059c2e8966ea5ce678166617a7f75ecba6164375f3b288e50a40dc6d489/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f096076119da54a6080e8920cbdaac3dbee667eb91dcc5e5b78840b87415bd44", size = 488096 }, - { url = "https://files.pythonhosted.org/packages/94/44/d90a9ec8ac309bc26db808a13e7bfc0e4e78b6fc051078a554e132e80160/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00485f441d183717038ed2e887a7c868154f216877653121068107b227a2f64c", size = 596040 }, - { url = "https://files.pythonhosted.org/packages/95/68/4e3479b20ca305cfc561db3ed207a8a1c745ee32bf24f2026a129d0ddb6e/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a55f3e9e493158d7bfdb60a1165035f1cf7d320914e7b7ea83fe22c6023b58fc", size = 473847 }, - { url = "https://files.pythonhosted.org/packages/4f/55/2af26693fd15165c4ff7857e38330e1b61ab8c37d15dc79118cdba115b7a/watchfiles-1.1.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c91ed27800188c2ae96d16e3149f199d62f86c7af5f5f4d2c61a3ed8cd3666c", size = 455072 }, - { url = "https://files.pythonhosted.org/packages/66/1d/d0d200b10c9311ec25d2273f8aad8c3ef7cc7ea11808022501811208a750/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:311ff15a0bae3714ffb603e6ba6dbfba4065ab60865d15a6ec544133bdb21099", size = 629104 }, - { url = "https://files.pythonhosted.org/packages/e3/bd/fa9bb053192491b3867ba07d2343d9f2252e00811567d30ae8d0f78136fe/watchfiles-1.1.1-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:a916a2932da8f8ab582f242c065f5c81bed3462849ca79ee357dd9551b0e9b01", size = 622112 }, - { url = "https://files.pythonhosted.org/packages/ba/4c/a888c91e2e326872fa4705095d64acd8aa2fb9c1f7b9bd0588f33850516c/watchfiles-1.1.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3", size = 409611 }, - { url = "https://files.pythonhosted.org/packages/1e/c7/5420d1943c8e3ce1a21c0a9330bcf7edafb6aa65d26b21dbb3267c9e8112/watchfiles-1.1.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2", size = 396889 }, - { url = "https://files.pythonhosted.org/packages/0c/e5/0072cef3804ce8d3aaddbfe7788aadff6b3d3f98a286fdbee9fd74ca59a7/watchfiles-1.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d", size = 451616 }, - { url = "https://files.pythonhosted.org/packages/83/4e/b87b71cbdfad81ad7e83358b3e447fedd281b880a03d64a760fe0a11fc2e/watchfiles-1.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b", size = 458413 }, - { url = "https://files.pythonhosted.org/packages/d3/8e/e500f8b0b77be4ff753ac94dc06b33d8f0d839377fee1b78e8c8d8f031bf/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88", size = 408250 }, - { url = "https://files.pythonhosted.org/packages/bd/95/615e72cd27b85b61eec764a5ca51bd94d40b5adea5ff47567d9ebc4d275a/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336", size = 396117 }, - { url = "https://files.pythonhosted.org/packages/c9/81/e7fe958ce8a7fb5c73cc9fb07f5aeaf755e6aa72498c57d760af760c91f8/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24", size = 450493 }, - { url = "https://files.pythonhosted.org/packages/6e/d4/ed38dd3b1767193de971e694aa544356e63353c33a85d948166b5ff58b9e/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49", size = 457546 }, -] - -[[package]] -name = "websockets" -version = "15.0.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/da/6462a9f510c0c49837bbc9345aca92d767a56c1fb2939e1579df1e1cdcf7/websockets-15.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b", size = 175423 }, - { url = "https://files.pythonhosted.org/packages/1c/9f/9d11c1a4eb046a9e106483b9ff69bce7ac880443f00e5ce64261b47b07e7/websockets-15.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205", size = 173080 }, - { url = "https://files.pythonhosted.org/packages/d5/4f/b462242432d93ea45f297b6179c7333dd0402b855a912a04e7fc61c0d71f/websockets-15.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a", size = 173329 }, - { url = "https://files.pythonhosted.org/packages/6e/0c/6afa1f4644d7ed50284ac59cc70ef8abd44ccf7d45850d989ea7310538d0/websockets-15.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e", size = 182312 }, - { url = "https://files.pythonhosted.org/packages/dd/d4/ffc8bd1350b229ca7a4db2a3e1c482cf87cea1baccd0ef3e72bc720caeec/websockets-15.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf", size = 181319 }, - { url = "https://files.pythonhosted.org/packages/97/3a/5323a6bb94917af13bbb34009fac01e55c51dfde354f63692bf2533ffbc2/websockets-15.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb", size = 181631 }, - { url = "https://files.pythonhosted.org/packages/a6/cc/1aeb0f7cee59ef065724041bb7ed667b6ab1eeffe5141696cccec2687b66/websockets-15.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d", size = 182016 }, - { url = "https://files.pythonhosted.org/packages/79/f9/c86f8f7af208e4161a7f7e02774e9d0a81c632ae76db2ff22549e1718a51/websockets-15.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9", size = 181426 }, - { url = "https://files.pythonhosted.org/packages/c7/b9/828b0bc6753db905b91df6ae477c0b14a141090df64fb17f8a9d7e3516cf/websockets-15.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c", size = 181360 }, - { url = "https://files.pythonhosted.org/packages/89/fb/250f5533ec468ba6327055b7d98b9df056fb1ce623b8b6aaafb30b55d02e/websockets-15.0.1-cp310-cp310-win32.whl", hash = "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256", size = 176388 }, - { url = "https://files.pythonhosted.org/packages/1c/46/aca7082012768bb98e5608f01658ff3ac8437e563eca41cf068bd5849a5e/websockets-15.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41", size = 176830 }, - { url = "https://files.pythonhosted.org/packages/9f/32/18fcd5919c293a398db67443acd33fde142f283853076049824fc58e6f75/websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", size = 175423 }, - { url = "https://files.pythonhosted.org/packages/76/70/ba1ad96b07869275ef42e2ce21f07a5b0148936688c2baf7e4a1f60d5058/websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", size = 173082 }, - { url = "https://files.pythonhosted.org/packages/86/f2/10b55821dd40eb696ce4704a87d57774696f9451108cff0d2824c97e0f97/websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", size = 173330 }, - { url = "https://files.pythonhosted.org/packages/a5/90/1c37ae8b8a113d3daf1065222b6af61cc44102da95388ac0018fcb7d93d9/websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", size = 182878 }, - { url = "https://files.pythonhosted.org/packages/8e/8d/96e8e288b2a41dffafb78e8904ea7367ee4f891dafc2ab8d87e2124cb3d3/websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", size = 181883 }, - { url = "https://files.pythonhosted.org/packages/93/1f/5d6dbf551766308f6f50f8baf8e9860be6182911e8106da7a7f73785f4c4/websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", size = 182252 }, - { url = "https://files.pythonhosted.org/packages/d4/78/2d4fed9123e6620cbf1706c0de8a1632e1a28e7774d94346d7de1bba2ca3/websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", size = 182521 }, - { url = "https://files.pythonhosted.org/packages/e7/3b/66d4c1b444dd1a9823c4a81f50231b921bab54eee2f69e70319b4e21f1ca/websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", size = 181958 }, - { url = "https://files.pythonhosted.org/packages/08/ff/e9eed2ee5fed6f76fdd6032ca5cd38c57ca9661430bb3d5fb2872dc8703c/websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", size = 181918 }, - { url = "https://files.pythonhosted.org/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388 }, - { url = "https://files.pythonhosted.org/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828 }, - { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437 }, - { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096 }, - { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332 }, - { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152 }, - { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096 }, - { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523 }, - { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790 }, - { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165 }, - { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160 }, - { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395 }, - { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841 }, - { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440 }, - { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098 }, - { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329 }, - { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111 }, - { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054 }, - { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496 }, - { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829 }, - { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217 }, - { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195 }, - { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393 }, - { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837 }, - { url = "https://files.pythonhosted.org/packages/02/9e/d40f779fa16f74d3468357197af8d6ad07e7c5a27ea1ca74ceb38986f77a/websockets-15.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3", size = 173109 }, - { url = "https://files.pythonhosted.org/packages/bc/cd/5b887b8585a593073fd92f7c23ecd3985cd2c3175025a91b0d69b0551372/websockets-15.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1", size = 173343 }, - { url = "https://files.pythonhosted.org/packages/fe/ae/d34f7556890341e900a95acf4886833646306269f899d58ad62f588bf410/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475", size = 174599 }, - { url = "https://files.pythonhosted.org/packages/71/e6/5fd43993a87db364ec60fc1d608273a1a465c0caba69176dd160e197ce42/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9", size = 174207 }, - { url = "https://files.pythonhosted.org/packages/2b/fb/c492d6daa5ec067c2988ac80c61359ace5c4c674c532985ac5a123436cec/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04", size = 174155 }, - { url = "https://files.pythonhosted.org/packages/68/a1/dcb68430b1d00b698ae7a7e0194433bce4f07ded185f0ee5fb21e2a2e91e/websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122", size = 176884 }, - { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 }, -] - -[[package]] -name = "xxhash" -version = "3.6.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/34/ee/f9f1d656ad168681bb0f6b092372c1e533c4416b8069b1896a175c46e484/xxhash-3.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:87ff03d7e35c61435976554477a7f4cd1704c3596a89a8300d5ce7fc83874a71", size = 32845 }, - { url = "https://files.pythonhosted.org/packages/a3/b1/93508d9460b292c74a09b83d16750c52a0ead89c51eea9951cb97a60d959/xxhash-3.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f572dfd3d0e2eb1a57511831cf6341242f5a9f8298a45862d085f5b93394a27d", size = 30807 }, - { url = "https://files.pythonhosted.org/packages/07/55/28c93a3662f2d200c70704efe74aab9640e824f8ce330d8d3943bf7c9b3c/xxhash-3.6.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:89952ea539566b9fed2bbd94e589672794b4286f342254fad28b149f9615fef8", size = 193786 }, - { url = "https://files.pythonhosted.org/packages/c1/96/fec0be9bb4b8f5d9c57d76380a366f31a1781fb802f76fc7cda6c84893c7/xxhash-3.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48e6f2ffb07a50b52465a1032c3cf1f4a5683f944acaca8a134a2f23674c2058", size = 212830 }, - { url = "https://files.pythonhosted.org/packages/c4/a0/c706845ba77b9611f81fd2e93fad9859346b026e8445e76f8c6fd057cc6d/xxhash-3.6.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b5b848ad6c16d308c3ac7ad4ba6bede80ed5df2ba8ed382f8932df63158dd4b2", size = 211606 }, - { url = "https://files.pythonhosted.org/packages/67/1e/164126a2999e5045f04a69257eea946c0dc3e86541b400d4385d646b53d7/xxhash-3.6.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a034590a727b44dd8ac5914236a7b8504144447a9682586c3327e935f33ec8cc", size = 444872 }, - { url = "https://files.pythonhosted.org/packages/2d/4b/55ab404c56cd70a2cf5ecfe484838865d0fea5627365c6c8ca156bd09c8f/xxhash-3.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a8f1972e75ebdd161d7896743122834fe87378160c20e97f8b09166213bf8cc", size = 193217 }, - { url = "https://files.pythonhosted.org/packages/45/e6/52abf06bac316db33aa269091ae7311bd53cfc6f4b120ae77bac1b348091/xxhash-3.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ee34327b187f002a596d7b167ebc59a1b729e963ce645964bbc050d2f1b73d07", size = 210139 }, - { url = "https://files.pythonhosted.org/packages/34/37/db94d490b8691236d356bc249c08819cbcef9273a1a30acf1254ff9ce157/xxhash-3.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:339f518c3c7a850dd033ab416ea25a692759dc7478a71131fe8869010d2b75e4", size = 197669 }, - { url = "https://files.pythonhosted.org/packages/b7/36/c4f219ef4a17a4f7a64ed3569bc2b5a9c8311abdb22249ac96093625b1a4/xxhash-3.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:bf48889c9630542d4709192578aebbd836177c9f7a4a2778a7d6340107c65f06", size = 210018 }, - { url = "https://files.pythonhosted.org/packages/fd/06/bfac889a374fc2fc439a69223d1750eed2e18a7db8514737ab630534fa08/xxhash-3.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5576b002a56207f640636056b4160a378fe36a58db73ae5c27a7ec8db35f71d4", size = 413058 }, - { url = "https://files.pythonhosted.org/packages/c9/d1/555d8447e0dd32ad0930a249a522bb2e289f0d08b6b16204cfa42c1f5a0c/xxhash-3.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af1f3278bd02814d6dedc5dec397993b549d6f16c19379721e5a1d31e132c49b", size = 190628 }, - { url = "https://files.pythonhosted.org/packages/d1/15/8751330b5186cedc4ed4b597989882ea05e0408b53fa47bcb46a6125bfc6/xxhash-3.6.0-cp310-cp310-win32.whl", hash = "sha256:aed058764db109dc9052720da65fafe84873b05eb8b07e5e653597951af57c3b", size = 30577 }, - { url = "https://files.pythonhosted.org/packages/bb/cc/53f87e8b5871a6eb2ff7e89c48c66093bda2be52315a8161ddc54ea550c4/xxhash-3.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:e82da5670f2d0d98950317f82a0e4a0197150ff19a6df2ba40399c2a3b9ae5fb", size = 31487 }, - { url = "https://files.pythonhosted.org/packages/9f/00/60f9ea3bb697667a14314d7269956f58bf56bb73864f8f8d52a3c2535e9a/xxhash-3.6.0-cp310-cp310-win_arm64.whl", hash = "sha256:4a082ffff8c6ac07707fb6b671caf7c6e020c75226c561830b73d862060f281d", size = 27863 }, - { url = "https://files.pythonhosted.org/packages/17/d4/cc2f0400e9154df4b9964249da78ebd72f318e35ccc425e9f403c392f22a/xxhash-3.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b47bbd8cf2d72797f3c2772eaaac0ded3d3af26481a26d7d7d41dc2d3c46b04a", size = 32844 }, - { url = "https://files.pythonhosted.org/packages/5e/ec/1cc11cd13e26ea8bc3cb4af4eaadd8d46d5014aebb67be3f71fb0b68802a/xxhash-3.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2b6821e94346f96db75abaa6e255706fb06ebd530899ed76d32cd99f20dc52fa", size = 30809 }, - { url = "https://files.pythonhosted.org/packages/04/5f/19fe357ea348d98ca22f456f75a30ac0916b51c753e1f8b2e0e6fb884cce/xxhash-3.6.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d0a9751f71a1a65ce3584e9cae4467651c7e70c9d31017fa57574583a4540248", size = 194665 }, - { url = "https://files.pythonhosted.org/packages/90/3b/d1f1a8f5442a5fd8beedae110c5af7604dc37349a8e16519c13c19a9a2de/xxhash-3.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b29ee68625ab37b04c0b40c3fafdf24d2f75ccd778333cfb698f65f6c463f62", size = 213550 }, - { url = "https://files.pythonhosted.org/packages/c4/ef/3a9b05eb527457d5db13a135a2ae1a26c80fecd624d20f3e8dcc4cb170f3/xxhash-3.6.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6812c25fe0d6c36a46ccb002f40f27ac903bf18af9f6dd8f9669cb4d176ab18f", size = 212384 }, - { url = "https://files.pythonhosted.org/packages/0f/18/ccc194ee698c6c623acbf0f8c2969811a8a4b6185af5e824cd27b9e4fd3e/xxhash-3.6.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4ccbff013972390b51a18ef1255ef5ac125c92dc9143b2d1909f59abc765540e", size = 445749 }, - { url = "https://files.pythonhosted.org/packages/a5/86/cf2c0321dc3940a7aa73076f4fd677a0fb3e405cb297ead7d864fd90847e/xxhash-3.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:297b7fbf86c82c550e12e8fb71968b3f033d27b874276ba3624ea868c11165a8", size = 193880 }, - { url = "https://files.pythonhosted.org/packages/82/fb/96213c8560e6f948a1ecc9a7613f8032b19ee45f747f4fca4eb31bb6d6ed/xxhash-3.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dea26ae1eb293db089798d3973a5fc928a18fdd97cc8801226fae705b02b14b0", size = 210912 }, - { url = "https://files.pythonhosted.org/packages/40/aa/4395e669b0606a096d6788f40dbdf2b819d6773aa290c19e6e83cbfc312f/xxhash-3.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7a0b169aafb98f4284f73635a8e93f0735f9cbde17bd5ec332480484241aaa77", size = 198654 }, - { url = "https://files.pythonhosted.org/packages/67/74/b044fcd6b3d89e9b1b665924d85d3f400636c23590226feb1eb09e1176ce/xxhash-3.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:08d45aef063a4531b785cd72de4887766d01dc8f362a515693df349fdb825e0c", size = 210867 }, - { url = "https://files.pythonhosted.org/packages/bc/fd/3ce73bf753b08cb19daee1eb14aa0d7fe331f8da9c02dd95316ddfe5275e/xxhash-3.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:929142361a48ee07f09121fe9e96a84950e8d4df3bb298ca5d88061969f34d7b", size = 414012 }, - { url = "https://files.pythonhosted.org/packages/ba/b3/5a4241309217c5c876f156b10778f3ab3af7ba7e3259e6d5f5c7d0129eb2/xxhash-3.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:51312c768403d8540487dbbfb557454cfc55589bbde6424456951f7fcd4facb3", size = 191409 }, - { url = "https://files.pythonhosted.org/packages/c0/01/99bfbc15fb9abb9a72b088c1d95219fc4782b7d01fc835bd5744d66dd0b8/xxhash-3.6.0-cp311-cp311-win32.whl", hash = "sha256:d1927a69feddc24c987b337ce81ac15c4720955b667fe9b588e02254b80446fd", size = 30574 }, - { url = "https://files.pythonhosted.org/packages/65/79/9d24d7f53819fe301b231044ea362ce64e86c74f6e8c8e51320de248b3e5/xxhash-3.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:26734cdc2d4ffe449b41d186bbeac416f704a482ed835d375a5c0cb02bc63fef", size = 31481 }, - { url = "https://files.pythonhosted.org/packages/30/4e/15cd0e3e8772071344eab2961ce83f6e485111fed8beb491a3f1ce100270/xxhash-3.6.0-cp311-cp311-win_arm64.whl", hash = "sha256:d72f67ef8bf36e05f5b6c65e8524f265bd61071471cd4cf1d36743ebeeeb06b7", size = 27861 }, - { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744 }, - { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816 }, - { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035 }, - { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914 }, - { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163 }, - { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411 }, - { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883 }, - { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392 }, - { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898 }, - { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655 }, - { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001 }, - { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431 }, - { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617 }, - { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534 }, - { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876 }, - { url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738 }, - { url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821 }, - { url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127 }, - { url = "https://files.pythonhosted.org/packages/ba/0c/71435dcb99874b09a43b8d7c54071e600a7481e42b3e3ce1eb5226a5711a/xxhash-3.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:858dc935963a33bc33490128edc1c12b0c14d9c7ebaa4e387a7869ecc4f3e263", size = 212975 }, - { url = "https://files.pythonhosted.org/packages/84/7a/c2b3d071e4bb4a90b7057228a99b10d51744878f4a8a6dd643c8bd897620/xxhash-3.6.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba284920194615cb8edf73bf52236ce2e1664ccd4a38fdb543506413529cc546", size = 212241 }, - { url = "https://files.pythonhosted.org/packages/81/5f/640b6eac0128e215f177df99eadcd0f1b7c42c274ab6a394a05059694c5a/xxhash-3.6.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b54219177f6c6674d5378bd862c6aedf64725f70dd29c472eaae154df1a2e89", size = 445471 }, - { url = "https://files.pythonhosted.org/packages/5e/1e/3c3d3ef071b051cc3abbe3721ffb8365033a172613c04af2da89d5548a87/xxhash-3.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42c36dd7dbad2f5238950c377fcbf6811b1cdb1c444fab447960030cea60504d", size = 193936 }, - { url = "https://files.pythonhosted.org/packages/2c/bd/4a5f68381939219abfe1c22a9e3a5854a4f6f6f3c4983a87d255f21f2e5d/xxhash-3.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f22927652cba98c44639ffdc7aaf35828dccf679b10b31c4ad72a5b530a18eb7", size = 210440 }, - { url = "https://files.pythonhosted.org/packages/eb/37/b80fe3d5cfb9faff01a02121a0f4d565eb7237e9e5fc66e73017e74dcd36/xxhash-3.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b45fad44d9c5c119e9c6fbf2e1c656a46dc68e280275007bbfd3d572b21426db", size = 197990 }, - { url = "https://files.pythonhosted.org/packages/d7/fd/2c0a00c97b9e18f72e1f240ad4e8f8a90fd9d408289ba9c7c495ed7dc05c/xxhash-3.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6f2580ffab1a8b68ef2b901cde7e55fa8da5e4be0977c68f78fc80f3c143de42", size = 210689 }, - { url = "https://files.pythonhosted.org/packages/93/86/5dd8076a926b9a95db3206aba20d89a7fc14dd5aac16e5c4de4b56033140/xxhash-3.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40c391dd3cd041ebc3ffe6f2c862f402e306eb571422e0aa918d8070ba31da11", size = 414068 }, - { url = "https://files.pythonhosted.org/packages/af/3c/0bb129170ee8f3650f08e993baee550a09593462a5cddd8e44d0011102b1/xxhash-3.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f205badabde7aafd1a31e8ca2a3e5a763107a71c397c4481d6a804eb5063d8bd", size = 191495 }, - { url = "https://files.pythonhosted.org/packages/e9/3a/6797e0114c21d1725e2577508e24006fd7ff1d8c0c502d3b52e45c1771d8/xxhash-3.6.0-cp313-cp313-win32.whl", hash = "sha256:2577b276e060b73b73a53042ea5bd5203d3e6347ce0d09f98500f418a9fcf799", size = 30620 }, - { url = "https://files.pythonhosted.org/packages/86/15/9bc32671e9a38b413a76d24722a2bf8784a132c043063a8f5152d390b0f9/xxhash-3.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:757320d45d2fbcce8f30c42a6b2f47862967aea7bf458b9625b4bbe7ee390392", size = 31542 }, - { url = "https://files.pythonhosted.org/packages/39/c5/cc01e4f6188656e56112d6a8e0dfe298a16934b8c47a247236549a3f7695/xxhash-3.6.0-cp313-cp313-win_arm64.whl", hash = "sha256:457b8f85dec5825eed7b69c11ae86834a018b8e3df5e77783c999663da2f96d6", size = 27880 }, - { url = "https://files.pythonhosted.org/packages/f3/30/25e5321c8732759e930c555176d37e24ab84365482d257c3b16362235212/xxhash-3.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a42e633d75cdad6d625434e3468126c73f13f7584545a9cf34e883aa1710e702", size = 32956 }, - { url = "https://files.pythonhosted.org/packages/9f/3c/0573299560d7d9f8ab1838f1efc021a280b5ae5ae2e849034ef3dee18810/xxhash-3.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:568a6d743219e717b07b4e03b0a828ce593833e498c3b64752e0f5df6bfe84db", size = 31072 }, - { url = "https://files.pythonhosted.org/packages/7a/1c/52d83a06e417cd9d4137722693424885cc9878249beb3a7c829e74bf7ce9/xxhash-3.6.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bec91b562d8012dae276af8025a55811b875baace6af510412a5e58e3121bc54", size = 196409 }, - { url = "https://files.pythonhosted.org/packages/e3/8e/c6d158d12a79bbd0b878f8355432075fc82759e356ab5a111463422a239b/xxhash-3.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78e7f2f4c521c30ad5e786fdd6bae89d47a32672a80195467b5de0480aa97b1f", size = 215736 }, - { url = "https://files.pythonhosted.org/packages/bc/68/c4c80614716345d55071a396cf03d06e34b5f4917a467faf43083c995155/xxhash-3.6.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3ed0df1b11a79856df5ffcab572cbd6b9627034c1c748c5566fa79df9048a7c5", size = 214833 }, - { url = "https://files.pythonhosted.org/packages/7e/e9/ae27c8ffec8b953efa84c7c4a6c6802c263d587b9fc0d6e7cea64e08c3af/xxhash-3.6.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0e4edbfc7d420925b0dd5e792478ed393d6e75ff8fc219a6546fb446b6a417b1", size = 448348 }, - { url = "https://files.pythonhosted.org/packages/d7/6b/33e21afb1b5b3f46b74b6bd1913639066af218d704cc0941404ca717fc57/xxhash-3.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fba27a198363a7ef87f8c0f6b171ec36b674fe9053742c58dd7e3201c1ab30ee", size = 196070 }, - { url = "https://files.pythonhosted.org/packages/96/b6/fcabd337bc5fa624e7203aa0fa7d0c49eed22f72e93229431752bddc83d9/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:794fe9145fe60191c6532fa95063765529770edcdd67b3d537793e8004cabbfd", size = 212907 }, - { url = "https://files.pythonhosted.org/packages/4b/d3/9ee6160e644d660fcf176c5825e61411c7f62648728f69c79ba237250143/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:6105ef7e62b5ac73a837778efc331a591d8442f8ef5c7e102376506cb4ae2729", size = 200839 }, - { url = "https://files.pythonhosted.org/packages/0d/98/e8de5baa5109394baf5118f5e72ab21a86387c4f89b0e77ef3e2f6b0327b/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f01375c0e55395b814a679b3eea205db7919ac2af213f4a6682e01220e5fe292", size = 213304 }, - { url = "https://files.pythonhosted.org/packages/7b/1d/71056535dec5c3177eeb53e38e3d367dd1d16e024e63b1cee208d572a033/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:d706dca2d24d834a4661619dcacf51a75c16d65985718d6a7d73c1eeeb903ddf", size = 416930 }, - { url = "https://files.pythonhosted.org/packages/dc/6c/5cbde9de2cd967c322e651c65c543700b19e7ae3e0aae8ece3469bf9683d/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f059d9faeacd49c0215d66f4056e1326c80503f51a1532ca336a385edadd033", size = 193787 }, - { url = "https://files.pythonhosted.org/packages/19/fa/0172e350361d61febcea941b0cc541d6e6c8d65d153e85f850a7b256ff8a/xxhash-3.6.0-cp313-cp313t-win32.whl", hash = "sha256:1244460adc3a9be84731d72b8e80625788e5815b68da3da8b83f78115a40a7ec", size = 30916 }, - { url = "https://files.pythonhosted.org/packages/ad/e6/e8cf858a2b19d6d45820f072eff1bea413910592ff17157cabc5f1227a16/xxhash-3.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b1e420ef35c503869c4064f4a2f2b08ad6431ab7b229a05cce39d74268bca6b8", size = 31799 }, - { url = "https://files.pythonhosted.org/packages/56/15/064b197e855bfb7b343210e82490ae672f8bc7cdf3ddb02e92f64304ee8a/xxhash-3.6.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ec44b73a4220623235f67a996c862049f375df3b1052d9899f40a6382c32d746", size = 28044 }, - { url = "https://files.pythonhosted.org/packages/7e/5e/0138bc4484ea9b897864d59fce9be9086030825bc778b76cb5a33a906d37/xxhash-3.6.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:a40a3d35b204b7cc7643cbcf8c9976d818cb47befcfac8bbefec8038ac363f3e", size = 32754 }, - { url = "https://files.pythonhosted.org/packages/18/d7/5dac2eb2ec75fd771957a13e5dda560efb2176d5203f39502a5fc571f899/xxhash-3.6.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a54844be970d3fc22630b32d515e79a90d0a3ddb2644d8d7402e3c4c8da61405", size = 30846 }, - { url = "https://files.pythonhosted.org/packages/fe/71/8bc5be2bb00deb5682e92e8da955ebe5fa982da13a69da5a40a4c8db12fb/xxhash-3.6.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:016e9190af8f0a4e3741343777710e3d5717427f175adfdc3e72508f59e2a7f3", size = 194343 }, - { url = "https://files.pythonhosted.org/packages/e7/3b/52badfb2aecec2c377ddf1ae75f55db3ba2d321c5e164f14461c90837ef3/xxhash-3.6.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f6f72232f849eb9d0141e2ebe2677ece15adfd0fa599bc058aad83c714bb2c6", size = 213074 }, - { url = "https://files.pythonhosted.org/packages/a2/2b/ae46b4e9b92e537fa30d03dbc19cdae57ed407e9c26d163895e968e3de85/xxhash-3.6.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:63275a8aba7865e44b1813d2177e0f5ea7eadad3dd063a21f7cf9afdc7054063", size = 212388 }, - { url = "https://files.pythonhosted.org/packages/f5/80/49f88d3afc724b4ac7fbd664c8452d6db51b49915be48c6982659e0e7942/xxhash-3.6.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cd01fa2aa00d8b017c97eb46b9a794fbdca53fc14f845f5a328c71254b0abb7", size = 445614 }, - { url = "https://files.pythonhosted.org/packages/ed/ba/603ce3961e339413543d8cd44f21f2c80e2a7c5cfe692a7b1f2cccf58f3c/xxhash-3.6.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0226aa89035b62b6a86d3c68df4d7c1f47a342b8683da2b60cedcddb46c4d95b", size = 194024 }, - { url = "https://files.pythonhosted.org/packages/78/d1/8e225ff7113bf81545cfdcd79eef124a7b7064a0bba53605ff39590b95c2/xxhash-3.6.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c6e193e9f56e4ca4923c61238cdaced324f0feac782544eb4c6d55ad5cc99ddd", size = 210541 }, - { url = "https://files.pythonhosted.org/packages/6f/58/0f89d149f0bad89def1a8dd38feb50ccdeb643d9797ec84707091d4cb494/xxhash-3.6.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:9176dcaddf4ca963d4deb93866d739a343c01c969231dbe21680e13a5d1a5bf0", size = 198305 }, - { url = "https://files.pythonhosted.org/packages/11/38/5eab81580703c4df93feb5f32ff8fa7fe1e2c51c1f183ee4e48d4bb9d3d7/xxhash-3.6.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:c1ce4009c97a752e682b897aa99aef84191077a9433eb237774689f14f8ec152", size = 210848 }, - { url = "https://files.pythonhosted.org/packages/5e/6b/953dc4b05c3ce678abca756416e4c130d2382f877a9c30a20d08ee6a77c0/xxhash-3.6.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:8cb2f4f679b01513b7adbb9b1b2f0f9cdc31b70007eaf9d59d0878809f385b11", size = 414142 }, - { url = "https://files.pythonhosted.org/packages/08/a9/238ec0d4e81a10eb5026d4a6972677cbc898ba6c8b9dbaec12ae001b1b35/xxhash-3.6.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:653a91d7c2ab54a92c19ccf43508b6a555440b9be1bc8be553376778be7f20b5", size = 191547 }, - { url = "https://files.pythonhosted.org/packages/f1/ee/3cf8589e06c2164ac77c3bf0aa127012801128f1feebf2a079272da5737c/xxhash-3.6.0-cp314-cp314-win32.whl", hash = "sha256:a756fe893389483ee8c394d06b5ab765d96e68fbbfe6fde7aa17e11f5720559f", size = 31214 }, - { url = "https://files.pythonhosted.org/packages/02/5d/a19552fbc6ad4cb54ff953c3908bbc095f4a921bc569433d791f755186f1/xxhash-3.6.0-cp314-cp314-win_amd64.whl", hash = "sha256:39be8e4e142550ef69629c9cd71b88c90e9a5db703fecbcf265546d9536ca4ad", size = 32290 }, - { url = "https://files.pythonhosted.org/packages/b1/11/dafa0643bc30442c887b55baf8e73353a344ee89c1901b5a5c54a6c17d39/xxhash-3.6.0-cp314-cp314-win_arm64.whl", hash = "sha256:25915e6000338999236f1eb68a02a32c3275ac338628a7eaa5a269c401995679", size = 28795 }, - { url = "https://files.pythonhosted.org/packages/2c/db/0e99732ed7f64182aef4a6fb145e1a295558deec2a746265dcdec12d191e/xxhash-3.6.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c5294f596a9017ca5a3e3f8884c00b91ab2ad2933cf288f4923c3fd4346cf3d4", size = 32955 }, - { url = "https://files.pythonhosted.org/packages/55/f4/2a7c3c68e564a099becfa44bb3d398810cc0ff6749b0d3cb8ccb93f23c14/xxhash-3.6.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1cf9dcc4ab9cff01dfbba78544297a3a01dafd60f3bde4e2bfd016cf7e4ddc67", size = 31072 }, - { url = "https://files.pythonhosted.org/packages/c6/d9/72a29cddc7250e8a5819dad5d466facb5dc4c802ce120645630149127e73/xxhash-3.6.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:01262da8798422d0685f7cef03b2bd3f4f46511b02830861df548d7def4402ad", size = 196579 }, - { url = "https://files.pythonhosted.org/packages/63/93/b21590e1e381040e2ca305a884d89e1c345b347404f7780f07f2cdd47ef4/xxhash-3.6.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51a73fb7cb3a3ead9f7a8b583ffd9b8038e277cdb8cb87cf890e88b3456afa0b", size = 215854 }, - { url = "https://files.pythonhosted.org/packages/ce/b8/edab8a7d4fa14e924b29be877d54155dcbd8b80be85ea00d2be3413a9ed4/xxhash-3.6.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b9c6df83594f7df8f7f708ce5ebeacfc69f72c9fbaaababf6cf4758eaada0c9b", size = 214965 }, - { url = "https://files.pythonhosted.org/packages/27/67/dfa980ac7f0d509d54ea0d5a486d2bb4b80c3f1bb22b66e6a05d3efaf6c0/xxhash-3.6.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:627f0af069b0ea56f312fd5189001c24578868643203bca1abbc2c52d3a6f3ca", size = 448484 }, - { url = "https://files.pythonhosted.org/packages/8c/63/8ffc2cc97e811c0ca5d00ab36604b3ea6f4254f20b7bc658ca825ce6c954/xxhash-3.6.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aa912c62f842dfd013c5f21a642c9c10cd9f4c4e943e0af83618b4a404d9091a", size = 196162 }, - { url = "https://files.pythonhosted.org/packages/4b/77/07f0e7a3edd11a6097e990f6e5b815b6592459cb16dae990d967693e6ea9/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b465afd7909db30168ab62afe40b2fcf79eedc0b89a6c0ab3123515dc0df8b99", size = 213007 }, - { url = "https://files.pythonhosted.org/packages/ae/d8/bc5fa0d152837117eb0bef6f83f956c509332ce133c91c63ce07ee7c4873/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:a881851cf38b0a70e7c4d3ce81fc7afd86fbc2a024f4cfb2a97cf49ce04b75d3", size = 200956 }, - { url = "https://files.pythonhosted.org/packages/26/a5/d749334130de9411783873e9b98ecc46688dad5db64ca6e04b02acc8b473/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9b3222c686a919a0f3253cfc12bb118b8b103506612253b5baeaac10d8027cf6", size = 213401 }, - { url = "https://files.pythonhosted.org/packages/89/72/abed959c956a4bfc72b58c0384bb7940663c678127538634d896b1195c10/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:c5aa639bc113e9286137cec8fadc20e9cd732b2cc385c0b7fa673b84fc1f2a93", size = 417083 }, - { url = "https://files.pythonhosted.org/packages/0c/b3/62fd2b586283b7d7d665fb98e266decadf31f058f1cf6c478741f68af0cb/xxhash-3.6.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5c1343d49ac102799905e115aee590183c3921d475356cb24b4de29a4bc56518", size = 193913 }, - { url = "https://files.pythonhosted.org/packages/9a/9a/c19c42c5b3f5a4aad748a6d5b4f23df3bed7ee5445accc65a0fb3ff03953/xxhash-3.6.0-cp314-cp314t-win32.whl", hash = "sha256:5851f033c3030dd95c086b4a36a2683c2ff4a799b23af60977188b057e467119", size = 31586 }, - { url = "https://files.pythonhosted.org/packages/03/d6/4cc450345be9924fd5dc8c590ceda1db5b43a0a889587b0ae81a95511360/xxhash-3.6.0-cp314-cp314t-win_amd64.whl", hash = "sha256:0444e7967dac37569052d2409b00a8860c2135cff05502df4da80267d384849f", size = 32526 }, - { url = "https://files.pythonhosted.org/packages/0f/c9/7243eb3f9eaabd1a88a5a5acadf06df2d83b100c62684b7425c6a11bcaa8/xxhash-3.6.0-cp314-cp314t-win_arm64.whl", hash = "sha256:bb79b1e63f6fd84ec778a4b1916dfe0a7c3fdb986c06addd5db3a0d413819d95", size = 28898 }, - { url = "https://files.pythonhosted.org/packages/93/1e/8aec23647a34a249f62e2398c42955acd9b4c6ed5cf08cbea94dc46f78d2/xxhash-3.6.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0f7b7e2ec26c1666ad5fc9dbfa426a6a3367ceaf79db5dd76264659d509d73b0", size = 30662 }, - { url = "https://files.pythonhosted.org/packages/b8/0b/b14510b38ba91caf43006209db846a696ceea6a847a0c9ba0a5b1adc53d6/xxhash-3.6.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5dc1e14d14fa0f5789ec29a7062004b5933964bb9b02aae6622b8f530dc40296", size = 41056 }, - { url = "https://files.pythonhosted.org/packages/50/55/15a7b8a56590e66ccd374bbfa3f9ffc45b810886c8c3b614e3f90bd2367c/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:881b47fc47e051b37d94d13e7455131054b56749b91b508b0907eb07900d1c13", size = 36251 }, - { url = "https://files.pythonhosted.org/packages/62/b2/5ac99a041a29e58e95f907876b04f7067a0242cb85b5f39e726153981503/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6dc31591899f5e5666f04cc2e529e69b4072827085c1ef15294d91a004bc1bd", size = 32481 }, - { url = "https://files.pythonhosted.org/packages/7b/d9/8d95e906764a386a3d3b596f3c68bb63687dfca806373509f51ce8eea81f/xxhash-3.6.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:15e0dac10eb9309508bfc41f7f9deaa7755c69e35af835db9cb10751adebc35d", size = 31565 }, -] - -[[package]] -name = "yarl" -version = "1.22.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "idna" }, - { name = "multidict" }, - { name = "propcache" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/43/a2204825342f37c337f5edb6637040fa14e365b2fcc2346960201d457579/yarl-1.22.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c7bd6683587567e5a49ee6e336e0612bec8329be1b7d4c8af5687dcdeb67ee1e", size = 140517 }, - { url = "https://files.pythonhosted.org/packages/44/6f/674f3e6f02266428c56f704cd2501c22f78e8b2eeb23f153117cc86fb28a/yarl-1.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cdac20da754f3a723cceea5b3448e1a2074866406adeb4ef35b469d089adb8f", size = 93495 }, - { url = "https://files.pythonhosted.org/packages/b8/12/5b274d8a0f30c07b91b2f02cba69152600b47830fcfb465c108880fcee9c/yarl-1.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07a524d84df0c10f41e3ee918846e1974aba4ec017f990dc735aad487a0bdfdf", size = 94400 }, - { url = "https://files.pythonhosted.org/packages/e2/7f/df1b6949b1fa1aa9ff6de6e2631876ad4b73c4437822026e85d8acb56bb1/yarl-1.22.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b329cb8146d7b736677a2440e422eadd775d1806a81db2d4cded80a48efc1a", size = 347545 }, - { url = "https://files.pythonhosted.org/packages/84/09/f92ed93bd6cd77872ab6c3462df45ca45cd058d8f1d0c9b4f54c1704429f/yarl-1.22.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75976c6945d85dbb9ee6308cd7ff7b1fb9409380c82d6119bd778d8fcfe2931c", size = 319598 }, - { url = "https://files.pythonhosted.org/packages/c3/97/ac3f3feae7d522cf7ccec3d340bb0b2b61c56cb9767923df62a135092c6b/yarl-1.22.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:80ddf7a5f8c86cb3eb4bc9028b07bbbf1f08a96c5c0bc1244be5e8fefcb94147", size = 363893 }, - { url = "https://files.pythonhosted.org/packages/06/49/f3219097403b9c84a4d079b1d7bda62dd9b86d0d6e4428c02d46ab2c77fc/yarl-1.22.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d332fc2e3c94dad927f2112395772a4e4fedbcf8f80efc21ed7cdfae4d574fdb", size = 371240 }, - { url = "https://files.pythonhosted.org/packages/35/9f/06b765d45c0e44e8ecf0fe15c9eacbbde342bb5b7561c46944f107bfb6c3/yarl-1.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0cf71bf877efeac18b38d3930594c0948c82b64547c1cf420ba48722fe5509f6", size = 346965 }, - { url = "https://files.pythonhosted.org/packages/c5/69/599e7cea8d0fcb1694323b0db0dda317fa3162f7b90166faddecf532166f/yarl-1.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:663e1cadaddae26be034a6ab6072449a8426ddb03d500f43daf952b74553bba0", size = 342026 }, - { url = "https://files.pythonhosted.org/packages/95/6f/9dfd12c8bc90fea9eab39832ee32ea48f8e53d1256252a77b710c065c89f/yarl-1.22.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6dcbb0829c671f305be48a7227918cfcd11276c2d637a8033a99a02b67bf9eda", size = 335637 }, - { url = "https://files.pythonhosted.org/packages/57/2e/34c5b4eb9b07e16e873db5b182c71e5f06f9b5af388cdaa97736d79dd9a6/yarl-1.22.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f0d97c18dfd9a9af4490631905a3f131a8e4c9e80a39353919e2cfed8f00aedc", size = 359082 }, - { url = "https://files.pythonhosted.org/packages/31/71/fa7e10fb772d273aa1f096ecb8ab8594117822f683bab7d2c5a89914c92a/yarl-1.22.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:437840083abe022c978470b942ff832c3940b2ad3734d424b7eaffcd07f76737", size = 357811 }, - { url = "https://files.pythonhosted.org/packages/26/da/11374c04e8e1184a6a03cf9c8f5688d3e5cec83ed6f31ad3481b3207f709/yarl-1.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a899cbd98dce6f5d8de1aad31cb712ec0a530abc0a86bd6edaa47c1090138467", size = 351223 }, - { url = "https://files.pythonhosted.org/packages/82/8f/e2d01f161b0c034a30410e375e191a5d27608c1f8693bab1a08b089ca096/yarl-1.22.0-cp310-cp310-win32.whl", hash = "sha256:595697f68bd1f0c1c159fcb97b661fc9c3f5db46498043555d04805430e79bea", size = 82118 }, - { url = "https://files.pythonhosted.org/packages/62/46/94c76196642dbeae634c7a61ba3da88cd77bed875bf6e4a8bed037505aa6/yarl-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:cb95a9b1adaa48e41815a55ae740cfda005758104049a640a398120bf02515ca", size = 86852 }, - { url = "https://files.pythonhosted.org/packages/af/af/7df4f179d3b1a6dcb9a4bd2ffbc67642746fcafdb62580e66876ce83fff4/yarl-1.22.0-cp310-cp310-win_arm64.whl", hash = "sha256:b85b982afde6df99ecc996990d4ad7ccbdbb70e2a4ba4de0aecde5922ba98a0b", size = 82012 }, - { url = "https://files.pythonhosted.org/packages/4d/27/5ab13fc84c76a0250afd3d26d5936349a35be56ce5785447d6c423b26d92/yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511", size = 141607 }, - { url = "https://files.pythonhosted.org/packages/6a/a1/d065d51d02dc02ce81501d476b9ed2229d9a990818332242a882d5d60340/yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6", size = 94027 }, - { url = "https://files.pythonhosted.org/packages/c1/da/8da9f6a53f67b5106ffe902c6fa0164e10398d4e150d85838b82f424072a/yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028", size = 94963 }, - { url = "https://files.pythonhosted.org/packages/68/fe/2c1f674960c376e29cb0bec1249b117d11738db92a6ccc4a530b972648db/yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d", size = 368406 }, - { url = "https://files.pythonhosted.org/packages/95/26/812a540e1c3c6418fec60e9bbd38e871eaba9545e94fa5eff8f4a8e28e1e/yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503", size = 336581 }, - { url = "https://files.pythonhosted.org/packages/0b/f5/5777b19e26fdf98563985e481f8be3d8a39f8734147a6ebf459d0dab5a6b/yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65", size = 388924 }, - { url = "https://files.pythonhosted.org/packages/86/08/24bd2477bd59c0bbd994fe1d93b126e0472e4e3df5a96a277b0a55309e89/yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e", size = 392890 }, - { url = "https://files.pythonhosted.org/packages/46/00/71b90ed48e895667ecfb1eaab27c1523ee2fa217433ed77a73b13205ca4b/yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d", size = 365819 }, - { url = "https://files.pythonhosted.org/packages/30/2d/f715501cae832651d3282387c6a9236cd26bd00d0ff1e404b3dc52447884/yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7", size = 363601 }, - { url = "https://files.pythonhosted.org/packages/f8/f9/a678c992d78e394e7126ee0b0e4e71bd2775e4334d00a9278c06a6cce96a/yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967", size = 358072 }, - { url = "https://files.pythonhosted.org/packages/2c/d1/b49454411a60edb6fefdcad4f8e6dbba7d8019e3a508a1c5836cba6d0781/yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed", size = 385311 }, - { url = "https://files.pythonhosted.org/packages/87/e5/40d7a94debb8448c7771a916d1861d6609dddf7958dc381117e7ba36d9e8/yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6", size = 381094 }, - { url = "https://files.pythonhosted.org/packages/35/d8/611cc282502381ad855448643e1ad0538957fc82ae83dfe7762c14069e14/yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e", size = 370944 }, - { url = "https://files.pythonhosted.org/packages/2d/df/fadd00fb1c90e1a5a8bd731fa3d3de2e165e5a3666a095b04e31b04d9cb6/yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca", size = 81804 }, - { url = "https://files.pythonhosted.org/packages/b5/f7/149bb6f45f267cb5c074ac40c01c6b3ea6d8a620d34b337f6321928a1b4d/yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b", size = 86858 }, - { url = "https://files.pythonhosted.org/packages/2b/13/88b78b93ad3f2f0b78e13bfaaa24d11cbc746e93fe76d8c06bf139615646/yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376", size = 81637 }, - { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000 }, - { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338 }, - { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909 }, - { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940 }, - { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825 }, - { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705 }, - { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518 }, - { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267 }, - { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797 }, - { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535 }, - { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324 }, - { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803 }, - { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220 }, - { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589 }, - { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213 }, - { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330 }, - { url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980 }, - { url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424 }, - { url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821 }, - { url = "https://files.pythonhosted.org/packages/61/3a/caf4e25036db0f2da4ca22a353dfeb3c9d3c95d2761ebe9b14df8fc16eb0/yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601", size = 373243 }, - { url = "https://files.pythonhosted.org/packages/6e/9e/51a77ac7516e8e7803b06e01f74e78649c24ee1021eca3d6a739cb6ea49c/yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a", size = 342361 }, - { url = "https://files.pythonhosted.org/packages/d4/f8/33b92454789dde8407f156c00303e9a891f1f51a0330b0fad7c909f87692/yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df", size = 387036 }, - { url = "https://files.pythonhosted.org/packages/d9/9a/c5db84ea024f76838220280f732970aa4ee154015d7f5c1bfb60a267af6f/yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2", size = 397671 }, - { url = "https://files.pythonhosted.org/packages/11/c9/cd8538dc2e7727095e0c1d867bad1e40c98f37763e6d995c1939f5fdc7b1/yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b", size = 377059 }, - { url = "https://files.pythonhosted.org/packages/a1/b9/ab437b261702ced75122ed78a876a6dec0a1b0f5e17a4ac7a9a2482d8abe/yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273", size = 365356 }, - { url = "https://files.pythonhosted.org/packages/b2/9d/8e1ae6d1d008a9567877b08f0ce4077a29974c04c062dabdb923ed98e6fe/yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a", size = 361331 }, - { url = "https://files.pythonhosted.org/packages/ca/5a/09b7be3905962f145b73beb468cdd53db8aa171cf18c80400a54c5b82846/yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d", size = 382590 }, - { url = "https://files.pythonhosted.org/packages/aa/7f/59ec509abf90eda5048b0bc3e2d7b5099dffdb3e6b127019895ab9d5ef44/yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02", size = 385316 }, - { url = "https://files.pythonhosted.org/packages/e5/84/891158426bc8036bfdfd862fabd0e0fa25df4176ec793e447f4b85cf1be4/yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67", size = 374431 }, - { url = "https://files.pythonhosted.org/packages/bb/49/03da1580665baa8bef5e8ed34c6df2c2aca0a2f28bf397ed238cc1bbc6f2/yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95", size = 81555 }, - { url = "https://files.pythonhosted.org/packages/9a/ee/450914ae11b419eadd067c6183ae08381cfdfcb9798b90b2b713bbebddda/yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d", size = 86965 }, - { url = "https://files.pythonhosted.org/packages/98/4d/264a01eae03b6cf629ad69bae94e3b0e5344741e929073678e84bf7a3e3b/yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b", size = 81205 }, - { url = "https://files.pythonhosted.org/packages/88/fc/6908f062a2f77b5f9f6d69cecb1747260831ff206adcbc5b510aff88df91/yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10", size = 146209 }, - { url = "https://files.pythonhosted.org/packages/65/47/76594ae8eab26210b4867be6f49129861ad33da1f1ebdf7051e98492bf62/yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3", size = 95966 }, - { url = "https://files.pythonhosted.org/packages/ab/ce/05e9828a49271ba6b5b038b15b3934e996980dd78abdfeb52a04cfb9467e/yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9", size = 97312 }, - { url = "https://files.pythonhosted.org/packages/d1/c5/7dffad5e4f2265b29c9d7ec869c369e4223166e4f9206fc2243ee9eea727/yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f", size = 361967 }, - { url = "https://files.pythonhosted.org/packages/50/b2/375b933c93a54bff7fc041e1a6ad2c0f6f733ffb0c6e642ce56ee3b39970/yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0", size = 323949 }, - { url = "https://files.pythonhosted.org/packages/66/50/bfc2a29a1d78644c5a7220ce2f304f38248dc94124a326794e677634b6cf/yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e", size = 361818 }, - { url = "https://files.pythonhosted.org/packages/46/96/f3941a46af7d5d0f0498f86d71275696800ddcdd20426298e572b19b91ff/yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708", size = 372626 }, - { url = "https://files.pythonhosted.org/packages/c1/42/8b27c83bb875cd89448e42cd627e0fb971fa1675c9ec546393d18826cb50/yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f", size = 341129 }, - { url = "https://files.pythonhosted.org/packages/49/36/99ca3122201b382a3cf7cc937b95235b0ac944f7e9f2d5331d50821ed352/yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d", size = 346776 }, - { url = "https://files.pythonhosted.org/packages/85/b4/47328bf996acd01a4c16ef9dcd2f59c969f495073616586f78cd5f2efb99/yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8", size = 334879 }, - { url = "https://files.pythonhosted.org/packages/c2/ad/b77d7b3f14a4283bffb8e92c6026496f6de49751c2f97d4352242bba3990/yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5", size = 350996 }, - { url = "https://files.pythonhosted.org/packages/81/c8/06e1d69295792ba54d556f06686cbd6a7ce39c22307100e3fb4a2c0b0a1d/yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f", size = 356047 }, - { url = "https://files.pythonhosted.org/packages/4b/b8/4c0e9e9f597074b208d18cef227d83aac36184bfbc6eab204ea55783dbc5/yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62", size = 342947 }, - { url = "https://files.pythonhosted.org/packages/e0/e5/11f140a58bf4c6ad7aca69a892bff0ee638c31bea4206748fc0df4ebcb3a/yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03", size = 86943 }, - { url = "https://files.pythonhosted.org/packages/31/74/8b74bae38ed7fe6793d0c15a0c8207bbb819cf287788459e5ed230996cdd/yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249", size = 93715 }, - { url = "https://files.pythonhosted.org/packages/69/66/991858aa4b5892d57aef7ee1ba6b4d01ec3b7eb3060795d34090a3ca3278/yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b", size = 83857 }, - { url = "https://files.pythonhosted.org/packages/46/b3/e20ef504049f1a1c54a814b4b9bed96d1ac0e0610c3b4da178f87209db05/yarl-1.22.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:34b36c2c57124530884d89d50ed2c1478697ad7473efd59cfd479945c95650e4", size = 140520 }, - { url = "https://files.pythonhosted.org/packages/e4/04/3532d990fdbab02e5ede063676b5c4260e7f3abea2151099c2aa745acc4c/yarl-1.22.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:0dd9a702591ca2e543631c2a017e4a547e38a5c0f29eece37d9097e04a7ac683", size = 93504 }, - { url = "https://files.pythonhosted.org/packages/11/63/ff458113c5c2dac9a9719ac68ee7c947cb621432bcf28c9972b1c0e83938/yarl-1.22.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:594fcab1032e2d2cc3321bb2e51271e7cd2b516c7d9aee780ece81b07ff8244b", size = 94282 }, - { url = "https://files.pythonhosted.org/packages/a7/bc/315a56aca762d44a6aaaf7ad253f04d996cb6b27bad34410f82d76ea8038/yarl-1.22.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d7a87a78d46a2e3d5b72587ac14b4c16952dd0887dbb051451eceac774411e", size = 372080 }, - { url = "https://files.pythonhosted.org/packages/3f/3f/08e9b826ec2e099ea6e7c69a61272f4f6da62cb5b1b63590bb80ca2e4a40/yarl-1.22.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:852863707010316c973162e703bddabec35e8757e67fcb8ad58829de1ebc8590", size = 338696 }, - { url = "https://files.pythonhosted.org/packages/e3/9f/90360108e3b32bd76789088e99538febfea24a102380ae73827f62073543/yarl-1.22.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:131a085a53bfe839a477c0845acf21efc77457ba2bcf5899618136d64f3303a2", size = 387121 }, - { url = "https://files.pythonhosted.org/packages/98/92/ab8d4657bd5b46a38094cfaea498f18bb70ce6b63508fd7e909bd1f93066/yarl-1.22.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:078a8aefd263f4d4f923a9677b942b445a2be970ca24548a8102689a3a8ab8da", size = 394080 }, - { url = "https://files.pythonhosted.org/packages/f5/e7/d8c5a7752fef68205296201f8ec2bf718f5c805a7a7e9880576c67600658/yarl-1.22.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca03b91c323036913993ff5c738d0842fc9c60c4648e5c8d98331526df89784", size = 372661 }, - { url = "https://files.pythonhosted.org/packages/b6/2e/f4d26183c8db0bb82d491b072f3127fb8c381a6206a3a56332714b79b751/yarl-1.22.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:68986a61557d37bb90d3051a45b91fa3d5c516d177dfc6dd6f2f436a07ff2b6b", size = 364645 }, - { url = "https://files.pythonhosted.org/packages/80/7c/428e5812e6b87cd00ee8e898328a62c95825bf37c7fa87f0b6bb2ad31304/yarl-1.22.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4792b262d585ff0dff6bcb787f8492e40698443ec982a3568c2096433660c694", size = 355361 }, - { url = "https://files.pythonhosted.org/packages/ec/2a/249405fd26776f8b13c067378ef4d7dd49c9098d1b6457cdd152a99e96a9/yarl-1.22.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ebd4549b108d732dba1d4ace67614b9545b21ece30937a63a65dd34efa19732d", size = 381451 }, - { url = "https://files.pythonhosted.org/packages/67/a8/fb6b1adbe98cf1e2dd9fad71003d3a63a1bc22459c6e15f5714eb9323b93/yarl-1.22.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f87ac53513d22240c7d59203f25cc3beac1e574c6cd681bbfd321987b69f95fd", size = 383814 }, - { url = "https://files.pythonhosted.org/packages/d9/f9/3aa2c0e480fb73e872ae2814c43bc1e734740bb0d54e8cb2a95925f98131/yarl-1.22.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:22b029f2881599e2f1b06f8f1db2ee63bd309e2293ba2d566e008ba12778b8da", size = 370799 }, - { url = "https://files.pythonhosted.org/packages/50/3c/af9dba3b8b5eeb302f36f16f92791f3ea62e3f47763406abf6d5a4a3333b/yarl-1.22.0-cp314-cp314-win32.whl", hash = "sha256:6a635ea45ba4ea8238463b4f7d0e721bad669f80878b7bfd1f89266e2ae63da2", size = 82990 }, - { url = "https://files.pythonhosted.org/packages/ac/30/ac3a0c5bdc1d6efd1b41fa24d4897a4329b3b1e98de9449679dd327af4f0/yarl-1.22.0-cp314-cp314-win_amd64.whl", hash = "sha256:0d6e6885777af0f110b0e5d7e5dda8b704efed3894da26220b7f3d887b839a79", size = 88292 }, - { url = "https://files.pythonhosted.org/packages/df/0a/227ab4ff5b998a1b7410abc7b46c9b7a26b0ca9e86c34ba4b8d8bc7c63d5/yarl-1.22.0-cp314-cp314-win_arm64.whl", hash = "sha256:8218f4e98d3c10d683584cb40f0424f4b9fd6e95610232dd75e13743b070ee33", size = 82888 }, - { url = "https://files.pythonhosted.org/packages/06/5e/a15eb13db90abd87dfbefb9760c0f3f257ac42a5cac7e75dbc23bed97a9f/yarl-1.22.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:45c2842ff0e0d1b35a6bf1cd6c690939dacb617a70827f715232b2e0494d55d1", size = 146223 }, - { url = "https://files.pythonhosted.org/packages/18/82/9665c61910d4d84f41a5bf6837597c89e665fa88aa4941080704645932a9/yarl-1.22.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d947071e6ebcf2e2bee8fce76e10faca8f7a14808ca36a910263acaacef08eca", size = 95981 }, - { url = "https://files.pythonhosted.org/packages/5d/9a/2f65743589809af4d0a6d3aa749343c4b5f4c380cc24a8e94a3c6625a808/yarl-1.22.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:334b8721303e61b00019474cc103bdac3d7b1f65e91f0bfedeec2d56dfe74b53", size = 97303 }, - { url = "https://files.pythonhosted.org/packages/b0/ab/5b13d3e157505c43c3b43b5a776cbf7b24a02bc4cccc40314771197e3508/yarl-1.22.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e7ce67c34138a058fd092f67d07a72b8e31ff0c9236e751957465a24b28910c", size = 361820 }, - { url = "https://files.pythonhosted.org/packages/fb/76/242a5ef4677615cf95330cfc1b4610e78184400699bdda0acb897ef5e49a/yarl-1.22.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d77e1b2c6d04711478cb1c4ab90db07f1609ccf06a287d5607fcd90dc9863acf", size = 323203 }, - { url = "https://files.pythonhosted.org/packages/8c/96/475509110d3f0153b43d06164cf4195c64d16999e0c7e2d8a099adcd6907/yarl-1.22.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4647674b6150d2cae088fc07de2738a84b8bcedebef29802cf0b0a82ab6face", size = 363173 }, - { url = "https://files.pythonhosted.org/packages/c9/66/59db471aecfbd559a1fd48aedd954435558cd98c7d0da8b03cc6c140a32c/yarl-1.22.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efb07073be061c8f79d03d04139a80ba33cbd390ca8f0297aae9cce6411e4c6b", size = 373562 }, - { url = "https://files.pythonhosted.org/packages/03/1f/c5d94abc91557384719da10ff166b916107c1b45e4d0423a88457071dd88/yarl-1.22.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51ac5435758ba97ad69617e13233da53908beccc6cfcd6c34bbed8dcbede486", size = 339828 }, - { url = "https://files.pythonhosted.org/packages/5f/97/aa6a143d3afba17b6465733681c70cf175af89f76ec8d9286e08437a7454/yarl-1.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33e32a0dd0c8205efa8e83d04fc9f19313772b78522d1bdc7d9aed706bfd6138", size = 347551 }, - { url = "https://files.pythonhosted.org/packages/43/3c/45a2b6d80195959239a7b2a8810506d4eea5487dce61c2a3393e7fc3c52e/yarl-1.22.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:bf4a21e58b9cde0e401e683ebd00f6ed30a06d14e93f7c8fd059f8b6e8f87b6a", size = 334512 }, - { url = "https://files.pythonhosted.org/packages/86/a0/c2ab48d74599c7c84cb104ebd799c5813de252bea0f360ffc29d270c2caa/yarl-1.22.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:e4b582bab49ac33c8deb97e058cd67c2c50dac0dd134874106d9c774fd272529", size = 352400 }, - { url = "https://files.pythonhosted.org/packages/32/75/f8919b2eafc929567d3d8411f72bdb1a2109c01caaab4ebfa5f8ffadc15b/yarl-1.22.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0b5bcc1a9c4839e7e30b7b30dd47fe5e7e44fb7054ec29b5bb8d526aa1041093", size = 357140 }, - { url = "https://files.pythonhosted.org/packages/cf/72/6a85bba382f22cf78add705d8c3731748397d986e197e53ecc7835e76de7/yarl-1.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c0232bce2170103ec23c454e54a57008a9a72b5d1c3105dc2496750da8cfa47c", size = 341473 }, - { url = "https://files.pythonhosted.org/packages/35/18/55e6011f7c044dc80b98893060773cefcfdbf60dfefb8cb2f58b9bacbd83/yarl-1.22.0-cp314-cp314t-win32.whl", hash = "sha256:8009b3173bcd637be650922ac455946197d858b3630b6d8787aa9e5c4564533e", size = 89056 }, - { url = "https://files.pythonhosted.org/packages/f9/86/0f0dccb6e59a9e7f122c5afd43568b1d31b8ab7dda5f1b01fb5c7025c9a9/yarl-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9fb17ea16e972c63d25d4a97f016d235c78dd2344820eb35bc034bc32012ee27", size = 96292 }, - { url = "https://files.pythonhosted.org/packages/48/b7/503c98092fb3b344a179579f55814b613c1fbb1c23b3ec14a7b008a66a6e/yarl-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9f6d73c1436b934e3f01df1e1b21ff765cd1d28c77dfb9ace207f746d4610ee1", size = 85171 }, - { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814 }, -] From ebe133cb1c9243033f17c0bf53b71661849c95b2 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 17 Jan 2026 00:20:18 +0100 Subject: [PATCH 26/75] chore: update dependencies and fix Colab installation command --- .gitignore | 1 + notebooks/colab_smoke_test.ipynb | 3 ++- pyproject.toml | 32 ++++++++++++++++---------------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 2961cdd..ce6b733 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ __pycache__/ env/ venv/ .venv/ +/uv.lock *.egg-info/ .pytest_cache/ .coverage diff --git a/notebooks/colab_smoke_test.ipynb b/notebooks/colab_smoke_test.ipynb index 27597eb..b60a470 100644 --- a/notebooks/colab_smoke_test.ipynb +++ b/notebooks/colab_smoke_test.ipynb @@ -37,7 +37,7 @@ } ], "source": [ - "!pip install -q git+https://github.com/HackerRoomAI/HyperView.git@colab-fix" + "%pip install -q git+https://github.com/HackerRoomAI/HyperView.git@hyperview-base" ] }, { @@ -48,6 +48,7 @@ "outputs": [], "source": [ "import numpy as np\n", + "\n", "import hyperview as hv\n", "from hyperview.core.sample import SampleFromArray\n", "\n", diff --git a/pyproject.toml b/pyproject.toml index 3ba8546..6633051 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,28 +23,28 @@ classifiers = [ ] dependencies = [ - "fastapi>=0.115.0", - "uvicorn[standard]>=0.32.0", - "embed-anything>=0.3.0", - "numpy>=1.26.0", - "umap-learn>=0.5.6", - "pillow>=10.0.0", - "pydantic>=2.0.0", - "aiofiles>=24.0.0", - "datasets>=3.0.0", - "lancedb>=0.5.0", - "pyarrow>=14.0.0", + "fastapi>=0.128.0", + "uvicorn[standard]>=0.40.0", + "embed-anything>=0.7.0", + "numpy>=1.26.4,<2.4", + "umap-learn>=0.5.11", + "pillow>=12.1.0", + "pydantic>=2.12.5", + "aiofiles>=25.1.0", + "datasets>=4.5.0", + "lancedb>=0.26.1", + "pyarrow>=22.0.0", ] [project.optional-dependencies] dev = [ - "pytest>=8.0.0", - "pytest-asyncio>=0.24.0", - "httpx>=0.27.0", - "ruff>=0.7.0", + "pytest>=9.0.2", + "pytest-asyncio>=1.3.0", + "httpx>=0.28.1", + "ruff>=0.14.13", ] hyperbolic = [ - "torch>=2.0.0", + "torch>=2.9.1", "geoopt>=0.5.1", ] From 3c587849e366d97ed56b428207c03650d0913f7c Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 17 Jan 2026 13:18:28 +0100 Subject: [PATCH 27/75] Compute projections at launch Automatically compute 2D projections when embeddings exist but visualization fields are missing, preventing /api/embeddings from failing on first load. --- src/hyperview/api.py | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/src/hyperview/api.py b/src/hyperview/api.py index 8481c72..4dfab73 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -23,6 +23,8 @@ class _HealthResponse: name: str | None session_id: str | None + dataset: str | None + pid: int | None def _can_connect(host: str, port: int, timeout_s: float) -> bool: @@ -48,6 +50,8 @@ def _read_health(url: str, timeout_s: float) -> _HealthResponse: return _HealthResponse( name=data.get("name"), session_id=data.get("session_id"), + dataset=data.get("dataset"), + pid=data.get("pid") if isinstance(data.get("pid"), int) else None, ) @@ -219,9 +223,15 @@ def launch( open_browser: bool = True, notebook: bool | None = None, height: int = 800, + reuse_server: bool = False, ) -> Session: """Launch the HyperView visualization server. + Note: + HyperView's UI requires 2D projections (`embedding_2d` and + `embedding_2d_hyperbolic`). If they are missing but high-dimensional + embeddings exist, this function will compute them automatically. + Args: dataset: The dataset to visualize. port: Port to run the server on. @@ -229,6 +239,10 @@ def launch( open_browser: Whether to open a browser window. notebook: Whether to display in a notebook. If None, auto-detects. height: Height of the iframe in the notebook. + reuse_server: If True, and the requested port is already serving HyperView, + attach to the existing server instead of starting a new one. For safety, + this will only attach when the existing server reports the same dataset + name (via `/__hyperview__/health`). Returns: A Session object. @@ -250,6 +264,81 @@ def launch( # to all interfaces. host = "0.0.0.0" + # Preflight: avoid doing expensive work if the port is already in use. + # If it's already serving HyperView and reuse_server=True, we can safely attach. + connect_host = "127.0.0.1" if host == "0.0.0.0" else host + health_url = f"http://{connect_host}:{port}/__hyperview__/health" + + if _can_connect(connect_host, port, timeout_s=0.2): + health = _try_read_health(health_url, timeout_s=0.2) + if health is not None and health.name == "hyperview": + if not reuse_server: + raise RuntimeError( + "HyperView failed to start because the port is already serving " + f"HyperView (port={port}, dataset={health.dataset}, " + f"session_id={health.session_id}, pid={health.pid}). " + "Choose a different port, stop the existing server, or pass " + "reuse_server=True to attach." + ) + + if health.dataset is not None and health.dataset != dataset.name: + raise RuntimeError( + "HyperView refused to attach to the existing server because it is " + f"serving a different dataset (port={port}, dataset={health.dataset}). " + f"Requested dataset={dataset.name}. Stop the existing server or " + "choose a different port." + ) + + session = Session(dataset, host, port) + if health.session_id is not None: + session.session_id = health.session_id + + if notebook: + if _is_colab(): + print( + f"\nHyperView is already running (Colab, port={session.port}). " + "Use the link below to open it." + ) + else: + print( + f"\nHyperView is already running at {session.url} (port={session.port}). " + "Opening a new tab..." + ) + session.show(height=height) + else: + print(f"\nHyperView is already running at {session.url} (port={session.port}).") + if open_browser: + session.open_browser() + + return session + + raise RuntimeError( + "HyperView failed to start because the port is already in use " + f"by a non-HyperView service (port={port}). Choose a different " + "port or stop the process listening on that port." + ) + + # The frontend requires both euclidean + hyperbolic 2D coords from /api/embeddings. + # If they're missing, proactively compute them so the first page load doesn't fail. + try: + ids, _, _, _ = dataset._storage.get_visualization_embeddings() + except Exception: + ids = [] + + if not ids: + has_any_embeddings = any(s.embedding is not None for s in dataset._storage) + if has_any_embeddings: + print("No 2D projections found. Computing visualizations...") + dataset.compute_visualization() + else: + raise ValueError( + "HyperView launch requires 2D projections for the UI. " + "No projections were found, and no high-dimensional embeddings are present. " + "Call `dataset.compute_embeddings()` and `dataset.compute_visualization()` " + "before `hv.launch()`, or prepopulate both `embedding_2d` and " + "`embedding_2d_hyperbolic` on your samples." + ) + session = Session(dataset, host, port) if notebook: From ebe3c56a7c9a2a94f2f22ae1833938db296f84d3 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 17 Jan 2026 13:24:01 +0100 Subject: [PATCH 28/75] feat: add --reuse-server option to demo and serve commands --- src/hyperview/cli.py | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/src/hyperview/cli.py b/src/hyperview/cli.py index 78c7d53..dc9c1fc 100644 --- a/src/hyperview/cli.py +++ b/src/hyperview/cli.py @@ -39,6 +39,14 @@ def main(): action="store_true", help="Do not open a browser window automatically", ) + demo_parser.add_argument( + "--reuse-server", + action="store_true", + help=( + "If the port is already serving HyperView, attach instead of failing. " + "For safety, this only attaches when the existing server reports the same dataset name." + ), + ) # Serve command serve_parser = subparsers.add_parser("serve", help="Serve a saved dataset") @@ -60,13 +68,33 @@ def main(): action="store_true", help="Do not open a browser window automatically", ) + serve_parser.add_argument( + "--reuse-server", + action="store_true", + help=( + "If the port is already serving HyperView, attach instead of failing. " + "For safety, this only attaches when the existing server reports the same dataset name." + ), + ) args = parser.parse_args() if args.command == "demo": - run_demo(args.samples, args.port, host=args.host, open_browser=not args.no_browser) + run_demo( + args.samples, + args.port, + host=args.host, + open_browser=not args.no_browser, + reuse_server=args.reuse_server, + ) elif args.command == "serve": - serve_dataset(args.dataset, args.port, host=args.host, open_browser=not args.no_browser) + serve_dataset( + args.dataset, + args.port, + host=args.host, + open_browser=not args.no_browser, + reuse_server=args.reuse_server, + ) else: parser.print_help() sys.exit(1) @@ -78,6 +106,7 @@ def run_demo( *, host: str = "127.0.0.1", open_browser: bool = True, + reuse_server: bool = False, ): """Run a demo with CIFAR-100 data.""" print("Loading CIFAR-100 dataset...") @@ -108,7 +137,7 @@ def run_demo( dataset.compute_visualization() print("Visualizations ready") - launch(dataset, port=port, host=host, open_browser=open_browser) + launch(dataset, port=port, host=host, open_browser=open_browser, reuse_server=reuse_server) def serve_dataset( @@ -117,6 +146,7 @@ def serve_dataset( *, host: str = "127.0.0.1", open_browser: bool = True, + reuse_server: bool = False, ): """Serve a saved dataset.""" from hyperview import Dataset, launch @@ -125,7 +155,7 @@ def serve_dataset( dataset = Dataset.load(filepath) print(f"Loaded {len(dataset)} samples") - launch(dataset, port=port, host=host, open_browser=open_browser) + launch(dataset, port=port, host=host, open_browser=open_browser, reuse_server=reuse_server) if __name__ == "__main__": From 02a06cd71e828b46863771f76f0d3c1b135a4d99 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Mon, 19 Jan 2026 11:52:24 +0100 Subject: [PATCH 29/75] Update project description in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d964d7..9fef293 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # HyperView -> **Open-source dataset curation with hyperbolic embeddings visualization - a FiftyOne alternative.** +> **Open-source dataset curation with hyperbolic embeddings visualization** [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/HackerRoomAI/HyperView) From b8c9d3bde6bed0f5cba2e58d372504ff722511b7 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Tue, 20 Jan 2026 00:06:42 +0100 Subject: [PATCH 30/75] Refactor MemoryBackend to support embedding spaces and layouts - Introduced a spaces registry to manage embedding spaces and their metadata. - Added methods for adding, retrieving, and deleting embeddings and layouts. - Updated the schema definitions to include spaces and layouts. - Removed embedding-related fields from the sample schema, focusing on metadata. - Enhanced similarity search methods to work with specified embedding spaces. - Improved error handling and validation for embedding and layout operations. --- frontend/src/app/page.tsx | 73 +- frontend/src/components/ImageGrid.tsx | 18 +- frontend/src/components/ScatterPanel.tsx | 92 +- frontend/src/components/icons.tsx | 27 + frontend/src/components/useHyperScatter.ts | 142 ++- frontend/src/lib/api.ts | 15 +- frontend/src/lib/layouts.ts | 29 + frontend/src/store/useStore.ts | 56 +- frontend/src/types/index.ts | 19 +- scripts/demo.py | 22 +- src/hyperview/api.py | 41 +- src/hyperview/cli.py | 4 +- src/hyperview/core/dataset.py | 245 +++-- src/hyperview/core/sample.py | 15 +- src/hyperview/embeddings/projection.py | 6 + src/hyperview/server/app.py | 99 +- src/hyperview/server/static/404.html | 2 +- src/hyperview/server/static/404/index.html | 2 +- .../server/static/__next.__PAGE__.txt | 4 +- src/hyperview/server/static/__next._full.txt | 6 +- src/hyperview/server/static/__next._head.txt | 2 +- src/hyperview/server/static/__next._index.txt | 4 +- src/hyperview/server/static/__next._tree.txt | 4 +- .../_buildManifest.js | 0 .../_clientMiddlewareManifest.json | 0 .../_ssgManifest.js | 0 ...99ca86fb297c98a.js => 490c8071909f9d06.js} | 6 +- .../_next/static/chunks/61d99a6d918f5559.css | 1 - .../_next/static/chunks/d6d93a0a04227147.css | 1 + .../server/static/_not-found/__next._full.txt | 4 +- .../server/static/_not-found/__next._head.txt | 2 +- .../static/_not-found/__next._index.txt | 4 +- .../_not-found/__next._not-found.__PAGE__.txt | 2 +- .../static/_not-found/__next._not-found.txt | 2 +- .../server/static/_not-found/__next._tree.txt | 4 +- .../server/static/_not-found/index.html | 2 +- .../server/static/_not-found/index.txt | 4 +- src/hyperview/server/static/index.html | 2 +- src/hyperview/server/static/index.txt | 6 +- src/hyperview/storage/__init__.py | 4 +- src/hyperview/storage/backend.py | 172 ++- src/hyperview/storage/config.py | 24 +- src/hyperview/storage/lancedb_backend.py | 993 +++++++++++------- src/hyperview/storage/memory_backend.py | 381 +++++-- src/hyperview/storage/schema.py | 203 +++- 45 files changed, 1893 insertions(+), 851 deletions(-) create mode 100644 frontend/src/lib/layouts.ts rename src/hyperview/server/static/_next/static/{6WlEYFpQs-g9pqMRTk8sU => FkYHqh8bg2HXVZYl26MHt}/_buildManifest.js (100%) rename src/hyperview/server/static/_next/static/{6WlEYFpQs-g9pqMRTk8sU => FkYHqh8bg2HXVZYl26MHt}/_clientMiddlewareManifest.json (100%) rename src/hyperview/server/static/_next/static/{6WlEYFpQs-g9pqMRTk8sU => FkYHqh8bg2HXVZYl26MHt}/_ssgManifest.js (100%) rename src/hyperview/server/static/_next/static/chunks/{799ca86fb297c98a.js => 490c8071909f9d06.js} (50%) delete mode 100644 src/hyperview/server/static/_next/static/chunks/61d99a6d918f5559.css create mode 100644 src/hyperview/server/static/_next/static/chunks/d6d93a0a04227147.css diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index 81a2504..59dc2f6 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { useEffect, useCallback, useState } from "react"; +import { useEffect, useCallback, useMemo, useState } from "react"; import { ResizablePanelGroup, ResizablePanel, @@ -8,6 +8,7 @@ import { } from "@/components/ui/resizable"; import { Header, ImageGrid, ScatterPanel } from "@/components"; import { useStore } from "@/store/useStore"; +import type { Sample } from "@/types"; import { fetchDataset, fetchSamples, @@ -15,13 +16,16 @@ import { fetchSamplesBatch, fetchLassoSelection, } from "@/lib/api"; +import { getLayoutGeometry } from "@/lib/layouts"; const SAMPLES_PER_PAGE = 100; export default function Home() { const { + datasetInfo, samples, totalSamples, + samplesLoaded, setSamples, appendSamples, addSamplesIfMissing, @@ -33,14 +37,17 @@ export default function Home() { setError, selectedIds, isLassoSelection, + selectionSource, lassoQuery, lassoSamples, lassoTotal, lassoIsLoading, setLassoResults, + geometry, } = useStore(); const [loadingMore, setLoadingMore] = useState(false); + const [geometryLoading, setGeometryLoading] = useState(false); // Initial data load - runs once on mount // Store setters are stable and don't need to be in deps @@ -72,6 +79,33 @@ export default function Home() { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + // Fetch new embeddings when geometry changes + useEffect(() => { + if (!datasetInfo) return; + + // Find layout key for current geometry + const targetLayout = datasetInfo.layouts.find((l) => getLayoutGeometry(l) === geometry); + if (!targetLayout) return; + + // Skip if already showing this layout + const currentLayout = useStore.getState().currentLayoutKey; + if (currentLayout === targetLayout) return; + + const loadGeometry = async () => { + setGeometryLoading(true); + try { + const embeddingsData = await fetchEmbeddings(targetLayout); + setEmbeddings(embeddingsData); + } catch (err) { + console.error("Failed to load geometry:", err); + } finally { + setGeometryLoading(false); + } + }; + + loadGeometry(); + }, [geometry, datasetInfo, setEmbeddings]); + // Fetch selected samples that aren't already loaded useEffect(() => { const fetchSelectedSamples = async () => { @@ -106,7 +140,7 @@ export default function Home() { const run = async () => { try { const res = await fetchLassoSelection({ - viewMode: lassoQuery.viewMode, + layoutKey: lassoQuery.layoutKey, polygon: lassoQuery.polygon, offset: 0, limit: SAMPLES_PER_PAGE, @@ -139,7 +173,7 @@ export default function Home() { setLoadingMore(true); try { const res = await fetchLassoSelection({ - viewMode: lassoQuery.viewMode, + layoutKey: lassoQuery.layoutKey, polygon: lassoQuery.polygon, offset: lassoSamples.length, limit: SAMPLES_PER_PAGE, @@ -153,11 +187,11 @@ export default function Home() { return; } - if (samples.length >= totalSamples) return; + if (samplesLoaded >= totalSamples) return; setLoadingMore(true); try { - const res = await fetchSamples(samples.length, SAMPLES_PER_PAGE); + const res = await fetchSamples(samplesLoaded, SAMPLES_PER_PAGE); appendSamples(res.samples); } catch (err) { console.error("Failed to load more samples:", err); @@ -172,14 +206,37 @@ export default function Home() { lassoQuery, lassoSamples.length, lassoTotal, - samples.length, + samplesLoaded, totalSamples, setLassoResults, ]); - const displayedSamples = isLassoSelection ? lassoSamples : samples; + const displayedSamples = useMemo(() => { + if (isLassoSelection) return lassoSamples; + + // When a selection comes from the scatter plot, bring selected samples to the top + // so the user immediately sees what they clicked. + if (selectionSource === "scatter" && selectedIds.size > 0) { + const byId = new Map(); + for (const s of samples) byId.set(s.id, s); + + const pinned: Sample[] = []; + for (const id of selectedIds) { + const s = byId.get(id); + if (s) pinned.push(s); + } + + if (pinned.length > 0) { + const rest = samples.filter((s) => !selectedIds.has(s.id)); + return [...pinned, ...rest]; + } + } + + return samples; + }, [isLassoSelection, lassoSamples, samples, selectedIds, selectionSource]); + const displayedTotal = isLassoSelection ? lassoTotal : totalSamples; - const displayedHasMore = displayedSamples.length < displayedTotal; + const displayedHasMore = isLassoSelection ? displayedSamples.length < displayedTotal : samplesLoaded < totalSamples; if (error) { return ( diff --git a/frontend/src/components/ImageGrid.tsx b/frontend/src/components/ImageGrid.tsx index 6a59523..8a01399 100644 --- a/frontend/src/components/ImageGrid.tsx +++ b/frontend/src/components/ImageGrid.tsx @@ -23,6 +23,7 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { const { selectedIds, isLassoSelection, + selectionSource, lassoTotal, toggleSelection, addToSelection, @@ -96,6 +97,21 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { virtualizer.measure(); }, [selectedIds, isLassoSelection, virtualizer]); + // If a selection was made in the scatter plot, jump the image grid to the top + // so the selected sample(s) are immediately visible. + useEffect(() => { + if (isLassoSelection) return; + if (selectionSource !== "scatter") return; + if (selectedIds.size === 0) return; + + try { + virtualizer.scrollToIndex(0, { align: "start" }); + } catch { + // Fallback if the virtualizer isn't ready yet. + containerRef.current?.scrollTo({ top: 0 }); + } + }, [isLassoSelection, selectedIds, selectionSource, virtualizer]); + const handleClick = useCallback( (sample: Sample, event: React.MouseEvent) => { if (event.metaKey || event.ctrlKey) { @@ -118,7 +134,7 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { // Single select const newSet = new Set(); newSet.add(sample.id); - useStore.getState().setSelectedIds(newSet); + useStore.getState().setSelectedIds(newSet, "grid"); } }, [samples, selectedIds, toggleSelection, addToSelection] diff --git a/frontend/src/components/ScatterPanel.tsx b/frontend/src/components/ScatterPanel.tsx index 0eb1e1f..7702228 100644 --- a/frontend/src/components/ScatterPanel.tsx +++ b/frontend/src/components/ScatterPanel.tsx @@ -4,9 +4,11 @@ import { useMemo } from "react"; import { useStore } from "@/store/useStore"; import { Panel, PanelFooter } from "./Panel"; import { PanelHeader } from "./PanelHeader"; -import { ScatterIcon } from "./icons"; -import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; +import { EuclideanIcon, PoincareIcon, ScatterIcon } from "./icons"; import { type ScatterLabelsInfo, useHyperScatter } from "./useHyperScatter"; +import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; +import type { Geometry } from "@/types"; +import { getLayoutSpaceKey, listAvailableGeometries } from "@/lib/layouts"; interface ScatterPanelProps { className?: string; @@ -14,16 +16,35 @@ interface ScatterPanelProps { export function ScatterPanel({ className = "" }: ScatterPanelProps) { const { + datasetInfo, embeddings, - viewMode, - setViewMode, selectedIds, setSelectedIds, beginLassoSelection, hoveredId, setHoveredId, + geometry, + setGeometry, } = useStore(); + // Check which geometries are available + const availableGeometries = useMemo(() => { + return listAvailableGeometries(datasetInfo?.layouts ?? []); + }, [datasetInfo?.layouts]); + + const embeddingModelName = useMemo(() => { + if (!embeddings) return null; + + const layoutKey = embeddings.layout_key; + const spaceKey = getLayoutSpaceKey(layoutKey); + + const space = + datasetInfo?.spaces.find((s) => s.space_key === spaceKey) ?? + datasetInfo?.spaces.find((s) => layoutKey.startsWith(`${s.space_key}__`)); + + return space?.model_id ?? space?.space_key ?? spaceKey; + }, [datasetInfo?.spaces, embeddings]); + const labelsInfo = useMemo(() => { if (!embeddings) return null; @@ -58,9 +79,9 @@ export function ScatterPanel({ className = "" }: ScatterPanelProps) { handlePointerUp, handlePointerLeave, handleDoubleClick, + rendererError, } = useHyperScatter({ embeddings, - viewMode, labelsInfo, selectedIds, hoveredId, @@ -76,24 +97,36 @@ export function ScatterPanel({ className = "" }: ScatterPanelProps) { } title="Embeddings" - subtitle={embeddings ? `${embeddings.ids.length} points` : "Loading..."} + subtitle={embeddings ? embeddingModelName ?? "" : "Loading..."} > - {/* View mode toggle using shadcn ToggleGroup */} - val && setViewMode(val as "euclidean" | "hyperbolic")} - variant="outline" - size="sm" - className="h-6" - > - - Euclidean - - - Hyperbolic - - + {/* Geometry toggle */} + {availableGeometries.length > 1 && ( + value && setGeometry(value as Geometry)} + size="sm" + variant="outline" + className="bg-muted/50 rounded-md p-0.5 gap-0.5" + > + + + Euclidean + + + + Poincaré + + + )} {/* Main content area */} @@ -120,10 +153,19 @@ export function ScatterPanel({ className = "" }: ScatterPanelProps) { /> {/* Loading overlay */} - {!embeddings && ( -
-
Loading embeddings...
+ {rendererError ? ( +
+
+
Browser not supported
+
{rendererError}
+
+ ) : ( + !embeddings && ( +
+
Loading embeddings...
+
+ ) )}
diff --git a/frontend/src/components/icons.tsx b/frontend/src/components/icons.tsx index aa2758a..20a4634 100644 --- a/frontend/src/components/icons.tsx +++ b/frontend/src/components/icons.tsx @@ -37,3 +37,30 @@ export const CheckIcon = () => ( ); + +/** Euclidean geometry icon - flat grid */ +export const EuclideanIcon = () => ( + + + + + +); + +/** Poincaré disk icon - hyperbolic geometry */ +export const PoincareIcon = () => ( + + + + + +); + +/** Spherical geometry icon - for future use */ +export const SphericalIcon = () => ( + + + + + +); diff --git a/frontend/src/components/useHyperScatter.ts b/frontend/src/components/useHyperScatter.ts index 131b829..a9f1a8c 100644 --- a/frontend/src/components/useHyperScatter.ts +++ b/frontend/src/components/useHyperScatter.ts @@ -1,7 +1,8 @@ import type React from "react"; -import { useCallback, useEffect, useMemo, useRef } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; -import type { EmbeddingsData, ViewMode } from "@/types"; +import type { EmbeddingsData } from "@/types"; +import { getLayoutGeometry } from "@/lib/layouts"; import type { Dataset, GeometryMode, Modifiers, Renderer } from "hyper-scatter"; type HyperScatterModule = typeof import("hyper-scatter"); @@ -14,6 +15,16 @@ export interface ScatterLabelsInfo { const MAX_LASSO_VERTS = 512; +function supportsWebGL2(): boolean { + try { + if (typeof document === "undefined") return false; + const canvas = document.createElement("canvas"); + return !!canvas.getContext("webgl2"); + } catch { + return false; + } +} + function capInterleavedXY(points: ArrayLike, maxVerts: number): number[] { const n = Math.floor(points.length / 2); if (n <= maxVerts) return Array.from(points as ArrayLike); @@ -27,14 +38,14 @@ function capInterleavedXY(points: ArrayLike, maxVerts: number): number[] return out; } + interface UseHyperScatterArgs { embeddings: EmbeddingsData | null; - viewMode: ViewMode; labelsInfo: ScatterLabelsInfo | null; selectedIds: Set; hoveredId: string | null; - setSelectedIds: (ids: Set, isLasso?: boolean) => void; - beginLassoSelection: (query: { viewMode: ViewMode; polygon: number[] }) => void; + setSelectedIds: (ids: Set, source?: "scatter" | "grid") => void; + beginLassoSelection: (query: { layoutKey: string; polygon: number[] }) => void; setHoveredId: (id: string | null) => void; } @@ -79,13 +90,8 @@ function drawLassoOverlay(canvas: HTMLCanvasElement | null, points: number[]): v ctx.restore(); } -function viewModeToGeometry(mode: ViewMode): GeometryMode { - return mode === "euclidean" ? "euclidean" : "poincare"; -} - export function useHyperScatter({ embeddings, - viewMode, labelsInfo, selectedIds, hoveredId, @@ -99,11 +105,15 @@ export function useHyperScatter({ const rendererRef = useRef(null); + const [rendererError, setRendererError] = useState(null); + const rafPendingRef = useRef(false); // Interaction state (refs to avoid rerender churn) const isPanningRef = useRef(false); const isLassoingRef = useRef(false); + const pointerDownXRef = useRef(0); + const pointerDownYRef = useRef(0); const lastPointerXRef = useRef(0); const lastPointerYRef = useRef(0); const lassoPointsRef = useRef([]); @@ -128,7 +138,23 @@ export function useHyperScatter({ const renderer = rendererRef.current; if (!renderer) return; - renderer.render(); + try { + renderer.render(); + } catch (err) { + // Avoid an exception storm that would permanently prevent the UI from updating. + console.error("hyper-scatter renderer.render() failed:", err); + try { + renderer.destroy(); + } catch { + // ignore + } + rendererRef.current = null; + setRendererError( + "This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox." + ); + clearOverlay(overlayCanvasRef.current); + return; + } if (isLassoingRef.current) { drawLassoOverlay(overlayCanvasRef.current, lassoPointsRef.current); @@ -153,7 +179,7 @@ export function useHyperScatter({ clearOverlay(overlayCanvasRef.current); }, []); - // Initialize renderer when embeddings/viewMode change. + // Initialize renderer when embeddings change. useEffect(() => { if (!embeddings || !labelsInfo) return; if (!canvasRef.current || !containerRef.current) return; @@ -161,6 +187,16 @@ export function useHyperScatter({ let cancelled = false; const init = async () => { + // Clear any previous renderer errors when we attempt to re-init. + setRendererError(null); + + if (!supportsWebGL2()) { + setRendererError( + "This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox." + ); + return; + } + try { const viz = (await import("hyper-scatter")) as HyperScatterModule; if (cancelled) return; @@ -186,40 +222,61 @@ export function useHyperScatter({ clearOverlay(overlayCanvasRef.current); } - const coords = viewMode === "euclidean" ? embeddings.euclidean : embeddings.hyperbolic; + // Use coords from embeddings response directly + const coords = embeddings.coords; const positions = new Float32Array(coords.length * 2); for (let i = 0; i < coords.length; i++) { positions[i * 2] = coords[i][0]; positions[i * 2 + 1] = coords[i][1]; } - const geometry = viewModeToGeometry(viewMode); + // Determine geometry from layout key + const geometry = (getLayoutGeometry(embeddings.layout_key) ?? "euclidean") as GeometryMode; const dataset: Dataset = viz.createDataset(geometry, positions, labelsInfo.categories); - const renderer: Renderer = - viewMode === "euclidean" ? new viz.EuclideanWebGLCandidate() : new viz.HyperbolicWebGLCandidate(); - - // Match HyperView theme: --card is #161b22 - const backgroundColor = "#161b22"; - - renderer.init(canvas, { + const opts = { width, height, devicePixelRatio: window.devicePixelRatio, pointRadius: 4, colors: labelsInfo.palette, - backgroundColor, - }); + backgroundColor: "#161b22", // Match HyperView theme: --card is #161b22 + }; + + const renderer: Renderer = + geometry === "euclidean" ? new viz.EuclideanWebGLCandidate() : new viz.HyperbolicWebGLCandidate(); + + renderer.init(canvas, opts); renderer.setDataset(dataset); rendererRef.current = renderer; + // Force a first render to surface WebGL2 context creation failures early. + try { + renderer.render(); + } catch (err) { + console.error("hyper-scatter initial render failed:", err); + rendererRef.current = null; + try { + renderer.destroy(); + } catch { + // ignore + } + setRendererError( + "This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox." + ); + return; + } + hoveredIndexRef.current = -1; renderer.setHovered(-1); requestRender(); } catch (err) { console.error("Failed to initialize hyper-scatter renderer:", err); + setRendererError( + "Failed to initialize the scatter renderer in this browser. Please use Chrome/Edge/Firefox." + ); } }; @@ -233,7 +290,7 @@ export function useHyperScatter({ rendererRef.current = null; } }; - }, [embeddings, labelsInfo, requestRender, stopInteraction, viewMode]); + }, [embeddings, labelsInfo, requestRender, stopInteraction]); // Store -> renderer sync useEffect(() => { @@ -317,6 +374,8 @@ export function useHyperScatter({ if (typeof e.button === "number" && e.button !== 0) return; const pos = getCanvasPos(e); + pointerDownXRef.current = pos.x; + pointerDownYRef.current = pos.y; lastPointerXRef.current = pos.x; lastPointerYRef.current = pos.y; @@ -396,7 +455,7 @@ export function useHyperScatter({ ); const handlePointerUp = useCallback( - async (_e: React.PointerEvent) => { + async (e: React.PointerEvent) => { const renderer = rendererRef.current; if (!renderer || !embeddings) { stopInteraction(); @@ -424,7 +483,7 @@ export function useHyperScatter({ const polygon = capInterleavedXY(dataCoords, MAX_LASSO_VERTS); if (polygon.length < 6) return; - beginLassoSelection({ viewMode, polygon }); + beginLassoSelection({ layoutKey: embeddings.layout_key, polygon }); } catch (err) { console.error("Lasso selection failed:", err); } @@ -434,10 +493,36 @@ export function useHyperScatter({ return; } + // Click-to-select (scatter -> image grid) + // Only treat as a click if the pointer didn't move much (otherwise it's a pan). + const pos = getCanvasPos(e); + const dx = pos.x - pointerDownXRef.current; + const dy = pos.y - pointerDownYRef.current; + const CLICK_MAX_DIST_SQ = 36; // ~6px + const isClick = dx * dx + dy * dy <= CLICK_MAX_DIST_SQ; + + if (isClick) { + const hit = renderer.hitTest(pos.x, pos.y); + const idx = hit ? hit.index : -1; + + if (idx >= 0 && idx < embeddings.ids.length) { + const id = embeddings.ids[idx]; + + if (e.metaKey || e.ctrlKey) { + const next = new Set(selectedIds); + if (next.has(id)) next.delete(id); + else next.add(id); + setSelectedIds(next, "scatter"); + } else { + setSelectedIds(new Set([id]), "scatter"); + } + } + } + stopInteraction(); requestRender(); }, - [beginLassoSelection, embeddings, requestRender, stopInteraction, viewMode] + [beginLassoSelection, embeddings, getCanvasPos, requestRender, selectedIds, setSelectedIds, stopInteraction] ); const handlePointerLeave = useCallback( @@ -461,7 +546,7 @@ export function useHyperScatter({ stopInteraction(); renderer.setSelection(new Set()); - setSelectedIds(new Set()); + setSelectedIds(new Set(), "scatter"); requestRender(); }, @@ -477,5 +562,6 @@ export function useHyperScatter({ handlePointerUp, handlePointerLeave, handleDoubleClick, + rendererError, }; } diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index f0ed658..e340b00 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1,4 +1,4 @@ -import type { DatasetInfo, EmbeddingsData, Sample, SamplesResponse, ViewMode } from "@/types"; +import type { DatasetInfo, EmbeddingsData, Sample, SamplesResponse } from "@/types"; const API_BASE = process.env.NODE_ENV === "development" ? "http://127.0.0.1:6262" : ""; @@ -30,8 +30,13 @@ export async function fetchSamples( return res.json(); } -export async function fetchEmbeddings(): Promise { - const res = await fetch(`${API_BASE}/api/embeddings`); +export async function fetchEmbeddings(layoutKey?: string): Promise { + const params = new URLSearchParams(); + if (layoutKey) { + params.set("layout_key", layoutKey); + } + const query = params.toString(); + const res = await fetch(`${API_BASE}/api/embeddings${query ? `?${query}` : ""}`); if (!res.ok) { throw new Error(`Failed to fetch embeddings: ${res.statusText}`); } @@ -70,7 +75,7 @@ export interface LassoSelectionResponse { } export async function fetchLassoSelection(args: { - viewMode: ViewMode; + layoutKey: string; polygon: ArrayLike; offset?: number; limit?: number; @@ -83,7 +88,7 @@ export async function fetchLassoSelection(args: { "Content-Type": "application/json", }, body: JSON.stringify({ - space: args.viewMode === "euclidean" ? "euclidean" : "hyperbolic", + layout_key: args.layoutKey, polygon: Array.from(args.polygon), offset: args.offset ?? 0, limit: args.limit ?? 100, diff --git a/frontend/src/lib/layouts.ts b/frontend/src/lib/layouts.ts new file mode 100644 index 0000000..f9fd644 --- /dev/null +++ b/frontend/src/lib/layouts.ts @@ -0,0 +1,29 @@ +import type { Geometry } from "@/types"; + +export function getLayoutSpaceKey(layoutKey: string): string { + return layoutKey.split("__")[0] || layoutKey; +} + +export function getLayoutGeometry(layoutKey: string): Geometry | null { + const parts = layoutKey.split("__"); + if (parts.length < 2) { + const legacy = layoutKey.toLowerCase(); + if (legacy === "poincare" || legacy === "hyperbolic") return "poincare"; + if (legacy === "euclidean") return "euclidean"; + return null; + } + + const token = parts[1]?.split("_")[0]?.toLowerCase(); + if (token === "poincare" || token === "hyperbolic") return "poincare"; + if (token === "euclidean") return "euclidean"; + return null; +} + +export function listAvailableGeometries(layouts: string[]): Geometry[] { + const geometries = new Set(); + for (const layoutKey of layouts) { + const geometry = getLayoutGeometry(layoutKey); + if (geometry) geometries.add(geometry); + } + return Array.from(geometries); +} diff --git a/frontend/src/store/useStore.ts b/frontend/src/store/useStore.ts index 4549b9c..9d74299 100644 --- a/frontend/src/store/useStore.ts +++ b/frontend/src/store/useStore.ts @@ -1,5 +1,5 @@ import { create } from "zustand"; -import type { DatasetInfo, EmbeddingsData, Sample, ViewMode } from "@/types"; +import type { DatasetInfo, EmbeddingsData, Geometry, Sample } from "@/types"; interface AppState { // Dataset info @@ -9,6 +9,8 @@ interface AppState { // Samples samples: Sample[]; totalSamples: number; + // Number of samples loaded via offset/limit pagination (excludes ad-hoc fetched samples) + samplesLoaded: number; setSamples: (samples: Sample[], total: number) => void; appendSamples: (samples: Sample[]) => void; addSamplesIfMissing: (samples: Sample[]) => void; @@ -17,24 +19,28 @@ interface AppState { embeddings: EmbeddingsData | null; setEmbeddings: (data: EmbeddingsData) => void; - // View mode (euclidean or hyperbolic) - viewMode: ViewMode; - setViewMode: (mode: ViewMode) => void; + // Current layout key (from embeddings) + currentLayoutKey: string | null; + + // Geometry mode + geometry: Geometry; + setGeometry: (geometry: Geometry) => void; // Selection selectedIds: Set; isLassoSelection: boolean; - setSelectedIds: (ids: Set) => void; + selectionSource: "scatter" | "grid" | "lasso" | null; + setSelectedIds: (ids: Set, source?: "scatter" | "grid") => void; toggleSelection: (id: string) => void; addToSelection: (ids: string[]) => void; clearSelection: () => void; // Lasso selection (server-driven) - lassoQuery: { viewMode: ViewMode; polygon: number[] } | null; + lassoQuery: { layoutKey: string; polygon: number[] } | null; lassoSamples: Sample[]; lassoTotal: number; lassoIsLoading: boolean; - beginLassoSelection: (query: { viewMode: ViewMode; polygon: number[] }) => void; + beginLassoSelection: (query: { layoutKey: string; polygon: number[] }) => void; setLassoResults: (samples: Sample[], total: number, append?: boolean) => void; clearLassoSelection: () => void; @@ -59,11 +65,19 @@ export const useStore = create((set, get) => ({ // Samples samples: [], totalSamples: 0, - setSamples: (samples, total) => set({ samples, totalSamples: total }), + samplesLoaded: 0, + setSamples: (samples, total) => set({ samples, totalSamples: total, samplesLoaded: samples.length }), appendSamples: (newSamples) => - set((state) => ({ - samples: [...state.samples, ...newSamples], - })), + set((state) => { + const existingIds = new Set(state.samples.map((s) => s.id)); + const toAdd = newSamples.filter((s) => !existingIds.has(s.id)); + + // Advance pagination cursor by what the API returned (even if some IDs were prefetched). + const samplesLoaded = state.samplesLoaded + newSamples.length; + + if (toAdd.length === 0) return { samplesLoaded }; + return { samples: [...state.samples, ...toAdd], samplesLoaded }; + }), addSamplesIfMissing: (newSamples) => set((state) => { const existingIds = new Set(state.samples.map((s) => s.id)); @@ -74,18 +88,23 @@ export const useStore = create((set, get) => ({ // Embeddings embeddings: null, - setEmbeddings: (data) => set({ embeddings: data }), + setEmbeddings: (data) => set({ embeddings: data, currentLayoutKey: data?.layout_key ?? null }), + + // Current layout key + currentLayoutKey: null, - // View mode - viewMode: "hyperbolic", - setViewMode: (mode) => set({ viewMode: mode }), + // Geometry mode + geometry: "euclidean", + setGeometry: (geometry) => set({ geometry }), // Selection selectedIds: new Set(), isLassoSelection: false, - setSelectedIds: (ids) => + selectionSource: null, + setSelectedIds: (ids, source = "grid") => set({ selectedIds: ids, + selectionSource: ids.size > 0 ? source : null, isLassoSelection: false, lassoQuery: null, lassoSamples: [], @@ -103,6 +122,7 @@ export const useStore = create((set, get) => ({ // Manual selection from image grid, not lasso return { selectedIds: newSet, + selectionSource: newSet.size > 0 ? "grid" : null, isLassoSelection: false, lassoQuery: null, lassoSamples: [], @@ -117,6 +137,7 @@ export const useStore = create((set, get) => ({ // Manual selection from image grid, not lasso return { selectedIds: newSet, + selectionSource: newSet.size > 0 ? "grid" : null, isLassoSelection: false, lassoQuery: null, lassoSamples: [], @@ -127,6 +148,7 @@ export const useStore = create((set, get) => ({ clearSelection: () => set({ selectedIds: new Set(), + selectionSource: null, isLassoSelection: false, lassoQuery: null, lassoSamples: [], @@ -143,6 +165,7 @@ export const useStore = create((set, get) => ({ set({ isLassoSelection: true, selectedIds: new Set(), + selectionSource: "lasso", lassoQuery: query, lassoSamples: [], lassoTotal: 0, @@ -157,6 +180,7 @@ export const useStore = create((set, get) => ({ clearLassoSelection: () => set({ isLassoSelection: false, + selectionSource: null, lassoQuery: null, lassoSamples: [], lassoTotal: 0, diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index bfb2616..e055a89 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -5,8 +5,15 @@ export interface Sample { label: string | null; thumbnail: string | null; metadata: Record; - embedding_2d?: [number, number]; - embedding_2d_hyperbolic?: [number, number]; +} + +export type Geometry = "euclidean" | "poincare"; + +export interface SpaceInfo { + space_key: string; + model_id: string; + dim: number; + count: number; } export interface DatasetInfo { @@ -14,13 +21,15 @@ export interface DatasetInfo { num_samples: number; labels: string[]; label_colors: Record; + spaces: SpaceInfo[]; + layouts: string[]; } export interface EmbeddingsData { + layout_key: string; ids: string[]; labels: (string | null)[]; - euclidean: [number, number][]; - hyperbolic: [number, number][]; + coords: [number, number][]; label_colors: Record; } @@ -30,5 +39,3 @@ export interface SamplesResponse { limit: number; samples: Sample[]; } - -export type ViewMode = "euclidean" | "hyperbolic"; diff --git a/scripts/demo.py b/scripts/demo.py index 778f6f2..5347088 100644 --- a/scripts/demo.py +++ b/scripts/demo.py @@ -31,10 +31,20 @@ def main(): "--no-persist", action="store_true", help="Don't persist to database (use in-memory)" ) parser.add_argument( + "--model", + type=str, + default="openai/clip-vit-base-patch32", + help=( + "Embedding model_id to use (default: openai/clip-vit-base-patch32). " + "This is passed to Dataset.compute_embeddings(model=...)." + ), + ) + parser.add_argument( + "--datasets-dir", "--database-dir", type=str, default=None, - help="Override persistence directory (sets HYPERVIEW_DATABASE_DIR)", + help="Override persistence directory (sets HYPERVIEW_DATASETS_DIR)", ) parser.add_argument( "--no-server", @@ -43,8 +53,8 @@ def main(): ) args = parser.parse_args() - if args.database_dir: - os.environ["HYPERVIEW_DATABASE_DIR"] = args.database_dir + if args.datasets_dir: + os.environ["HYPERVIEW_DATASETS_DIR"] = args.datasets_dir import hyperview as hv @@ -58,9 +68,11 @@ def main(): max_samples=args.samples, ) - dataset.compute_embeddings(show_progress=True) + dataset.compute_embeddings(model=args.model, show_progress=True) - dataset.compute_visualization() + # Compute both euclidean and poincare layouts + dataset.compute_visualization(geometry="euclidean") + dataset.compute_visualization(geometry="poincare") if args.no_server: return diff --git a/src/hyperview/api.py b/src/hyperview/api.py index 4dfab73..0ca9516 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -228,9 +228,9 @@ def launch( """Launch the HyperView visualization server. Note: - HyperView's UI requires 2D projections (`embedding_2d` and - `embedding_2d_hyperbolic`). If they are missing but high-dimensional - embeddings exist, this function will compute them automatically. + HyperView's UI requires 2D layouts (Euclidean + Poincare). If they are + missing but high-dimensional embeddings exist, this function will compute + them automatically. Args: dataset: The dataset to visualize. @@ -318,26 +318,23 @@ def launch( "port or stop the process listening on that port." ) - # The frontend requires both euclidean + hyperbolic 2D coords from /api/embeddings. - # If they're missing, proactively compute them so the first page load doesn't fail. - try: - ids, _, _, _ = dataset._storage.get_visualization_embeddings() - except Exception: - ids = [] + # The frontend requires 2D coords from /api/embeddings. + # Ensure at least one layout exists; do not auto-generate optional geometries. + layouts = dataset.list_layouts() + spaces = dataset.list_spaces() + + if not spaces: + raise ValueError( + "HyperView launch requires 2D projections for the UI. " + "No projections or embedding spaces were found. " + "Call `dataset.compute_embeddings()` and `dataset.compute_visualization()` " + "before `hv.launch()`." + ) - if not ids: - has_any_embeddings = any(s.embedding is not None for s in dataset._storage) - if has_any_embeddings: - print("No 2D projections found. Computing visualizations...") - dataset.compute_visualization() - else: - raise ValueError( - "HyperView launch requires 2D projections for the UI. " - "No projections were found, and no high-dimensional embeddings are present. " - "Call `dataset.compute_embeddings()` and `dataset.compute_visualization()` " - "before `hv.launch()`, or prepopulate both `embedding_2d` and " - "`embedding_2d_hyperbolic` on your samples." - ) + if not layouts: + default_space_key = spaces[0].space_key + print("No layouts found. Computing euclidean visualization...") + dataset.compute_visualization(space_key=default_space_key, geometry="euclidean") session = Session(dataset, host, port) diff --git a/src/hyperview/cli.py b/src/hyperview/cli.py index dc9c1fc..4df7c0f 100644 --- a/src/hyperview/cli.py +++ b/src/hyperview/cli.py @@ -134,7 +134,9 @@ def run_demo( print("Embeddings computed") print("Computing visualizations...") - dataset.compute_visualization() + # Compute both euclidean and poincare layouts + dataset.compute_visualization(geometry="euclidean") + dataset.compute_visualization(geometry="poincare") print("Visualizations ready") launch(dataset, port=port, host=host, open_browser=open_browser, reuse_server=reuse_server) diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 15afa58..bd69347 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -13,6 +13,7 @@ from hyperview.core.sample import Sample, SampleFromArray from hyperview.storage.backend import StorageBackend +from hyperview.storage.schema import make_layout_key, make_space_key class Dataset: @@ -23,6 +24,9 @@ class Dataset: - Vector similarity search - Efficient storage and retrieval + Embeddings are stored separately from samples, keyed by model_id. + Layouts (2D projections) are stored per layout_key (space + method). + Examples: # Create a new dataset (auto-persisted) dataset = hv.Dataset("my_dataset") @@ -40,7 +44,6 @@ def __init__( name: str | None = None, persist: bool = True, storage: StorageBackend | None = None, - embedding_dim: int = 512, ): """Initialize a new dataset. @@ -49,10 +52,8 @@ def __init__( persist: If True (default), use LanceDB for persistence. If False, use in-memory storage. storage: Optional custom storage backend. If provided, persist is ignored. - embedding_dim: Dimension of embeddings (default 512 for CLIP). """ self.name = name or f"dataset_{uuid.uuid4().hex[:8]}" - self._embedding_dim = embedding_dim self._embedding_computer = None self._projection_engine = None @@ -62,7 +63,7 @@ def __init__( elif persist: from hyperview.storage import LanceDBBackend, StorageConfig - config = StorageConfig.default(embedding_dim=embedding_dim) + config = StorageConfig.default() self._storage = LanceDBBackend(self.name, config) else: from hyperview.storage import MemoryBackend @@ -373,40 +374,46 @@ def compute_embeddings( model: str = "openai/clip-vit-base-patch32", batch_size: int = 32, show_progress: bool = True, - ) -> None: + ) -> str: """Compute embeddings for samples that don't have them yet. + Embeddings are stored in a dedicated space keyed by model_id. + Args: model: EmbedAnything HuggingFace `model_id` to use. batch_size: Batch size for processing. show_progress: Whether to show progress bar. + + Returns: + space_key for the embedding space. """ from hyperview.embeddings.compute import EmbeddingComputer + if self._embedding_computer is None or self._embedding_computer.model_id != model: + self._embedding_computer = EmbeddingComputer(model=model) + + # Get embedding dimension from a test computation all_samples = self._storage.get_all_samples() + if not all_samples: + raise ValueError("No samples in dataset") - if self._embedding_computer is None: - self._embedding_computer = EmbeddingComputer(model=model) - else: - existing_model_id = getattr(self._embedding_computer, "model_id", None) - if existing_model_id and existing_model_id != model: - if any(s.embedding is not None for s in all_samples): - raise ValueError( - "Embeddings already exist for this dataset, but " - "compute_embeddings() was called with a different model_id. " - f"Existing model_id={existing_model_id!r}, requested model_id={model!r}. " - "Create a new Dataset or clear existing embeddings before recomputing." - ) - - # No existing embeddings yet: allow switching models. - self._embedding_computer = EmbeddingComputer(model=model) - # Only compute for samples without embeddings - samples_needing_embeddings = [s for s in all_samples if s.embedding is None] - - if not samples_needing_embeddings: + # Compute one embedding to get dimension + test_embedding = self._embedding_computer.compute_single(all_samples[0]) + dim = len(test_embedding) + + # Ensure space exists + space_key = make_space_key(model) + self._storage.ensure_space(model, dim) + + # Find samples needing embeddings + missing_ids = self._storage.get_missing_embedding_ids(space_key) + + if not missing_ids: if show_progress: - print(f"All {len(all_samples)} samples already have embeddings") - return + print(f"All {len(all_samples)} samples already have embeddings in space '{space_key}'") + return space_key + + samples_needing_embeddings = self._storage.get_samples_by_ids(missing_ids) if show_progress: skipped = len(all_samples) - len(samples_needing_embeddings) @@ -417,119 +424,142 @@ def compute_embeddings( samples_needing_embeddings, batch_size=batch_size, show_progress=show_progress ) - # Update samples with embeddings - for sample, embedding in zip(samples_needing_embeddings, embeddings): - sample.embedding = embedding.tolist() + # Store embeddings + ids = [s.id for s in samples_needing_embeddings] + vectors = np.array(embeddings, dtype=np.float32) + self._storage.add_embeddings(space_key, ids, vectors) - # Batch update in storage - self._storage.update_samples_batch(samples_needing_embeddings) + return space_key def compute_visualization( self, + space_key: str | None = None, method: str = "umap", + geometry: str = "euclidean", n_neighbors: int = 15, min_dist: float = 0.1, metric: str = "cosine", force: bool = False, - ) -> None: + ) -> str: """Compute 2D projections for visualization. Args: + space_key: Embedding space to project. If None, uses the first available. method: Projection method ('umap' supported). + geometry: Geometry type ('euclidean' or 'poincare'). n_neighbors: Number of neighbors for UMAP. min_dist: Minimum distance for UMAP. metric: Distance metric for UMAP. - force: Force recomputation even if projections exist. + force: Force recomputation even if layout exists. + + Returns: + layout_key for the computed layout. """ from hyperview.embeddings.projection import ProjectionEngine + if geometry not in ("euclidean", "poincare"): + raise ValueError(f"Invalid geometry: {geometry}. Must be 'euclidean' or 'poincare'.") + if self._projection_engine is None: self._projection_engine = ProjectionEngine() - samples_with_embeddings = [s for s in self._storage if s.embedding is not None] - if not samples_with_embeddings: - raise ValueError("No embeddings computed. Call compute_embeddings() first.") - - # Check if projections already exist (unless forced) - if not force: - samples_needing_projection = [ - s for s in samples_with_embeddings if s.embedding_2d is None - ] - if not samples_needing_projection: - print(f"All {len(samples_with_embeddings)} samples already have projections") - return - # UMAP needs consistent projections, so if any samples need it, recompute all - # (can't mix old and new UMAP projections) - if len(samples_needing_projection) < len(samples_with_embeddings): - print( - f"Some samples missing projections - recomputing all " - f"({len(samples_needing_projection)} new, " - f"{len(samples_with_embeddings) - len(samples_needing_projection)} existing)" - ) + # Get space + if space_key is None: + spaces = self._storage.list_spaces() + if not spaces: + raise ValueError("No embedding spaces. Call compute_embeddings() first.") + space_key = spaces[0].space_key + + space = self._storage.get_space(space_key) + if space is None: + raise ValueError(f"Space not found: {space_key}") + + # Get all embeddings from this space + ids, vectors = self._storage.get_embeddings(space_key) + if len(ids) == 0: + raise ValueError(f"No embeddings in space '{space_key}'. Call compute_embeddings() first.") + + # Generate layout key (includes geometry) + layout_key = make_layout_key(space_key, method, geometry) + + # Check if layout exists + if not force and layout_key in self._storage.list_layouts(): + existing_ids, _ = self._storage.get_layout_coords(layout_key) + if set(existing_ids) == set(ids): + print(f"Layout '{layout_key}' already exists with {len(ids)} points") + return layout_key + else: + print(f"Layout exists but has different samples, recomputing...") - samples = samples_with_embeddings - embeddings = np.array([s.embedding for s in samples]) + if len(ids) < 3: + raise ValueError(f"Need at least 3 samples for visualization, have {len(ids)}") - # Compute Euclidean 2D projection - coords_euclidean = self._projection_engine.project_umap( - embeddings, - n_neighbors=n_neighbors, - min_dist=min_dist, - metric=metric, - ) + print(f"Computing {geometry} {method} layout for {len(ids)} samples...") - # Compute Hyperbolic (Poincaré) 2D projection - coords_hyperbolic = self._projection_engine.project_to_poincare( - embeddings, - n_neighbors=n_neighbors, - min_dist=min_dist, - ) + # Compute projection based on geometry + if geometry == "poincare": + coords = self._projection_engine.project_to_poincare( + vectors, + n_neighbors=n_neighbors, + min_dist=min_dist, + metric=metric, + ) + else: + coords = self._projection_engine.project_umap( + vectors, + n_neighbors=n_neighbors, + min_dist=min_dist, + metric=metric, + ) + + # Store layout + self._storage.add_layout_coords(layout_key, ids, coords) - for sample, coord_e, coord_h in zip(samples, coords_euclidean, coords_hyperbolic): - sample.embedding_2d = coord_e.tolist() - sample.embedding_2d_hyperbolic = coord_h.tolist() + return layout_key - # Batch update in storage - self._storage.update_samples_batch(samples) + def list_spaces(self) -> list[Any]: + """List all embedding spaces in this dataset.""" + return self._storage.list_spaces() + + def list_layouts(self) -> list[str]: + """List all layouts in this dataset.""" + return self._storage.list_layouts() def find_similar( self, sample_id: str, k: int = 10, - use_hyperbolic: bool = False, + space_key: str | None = None, ) -> list[tuple[Sample, float]]: """Find k most similar samples to a given sample. Args: sample_id: ID of the query sample. k: Number of neighbors to return. - use_hyperbolic: If True, search in hyperbolic embedding space. - If False (default), search in high-dimensional embedding space. + space_key: Embedding space to search in. If None, uses first available. Returns: List of (sample, distance) tuples, sorted by distance ascending. """ - vector_column = "embedding_2d_hyperbolic" if use_hyperbolic else "embedding" - return self._storage.find_similar(sample_id, k, vector_column) + return self._storage.find_similar(sample_id, k, space_key) def find_similar_by_vector( self, vector: list[float], k: int = 10, - use_hyperbolic: bool = False, + space_key: str | None = None, ) -> list[tuple[Sample, float]]: """Find k most similar samples to a given vector. Args: vector: Query vector. k: Number of neighbors to return. - use_hyperbolic: If True, search in hyperbolic embedding space. + space_key: Embedding space to search in. If None, uses first available. Returns: List of (sample, distance) tuples, sorted by distance ascending. """ - vector_column = "embedding_2d_hyperbolic" if use_hyperbolic else "embedding" - return self._storage.find_similar_by_vector(vector, k, vector_column) + return self._storage.find_similar_by_vector(vector, k, space_key) def _assign_label_color(self, label: str, colors: dict[str, str]) -> None: """Assign a color to a label.""" @@ -546,6 +576,46 @@ def get_label_colors(self) -> dict[str, str]: """Get the color mapping for labels.""" return self._storage.label_colors.copy() + def set_coords( + self, + geometry: str, + ids: list[str], + coords: np.ndarray | list[list[float]], + ) -> str: + """Set precomputed 2D coordinates for visualization. + + Use this when you have precomputed 2D projections and want to skip + embedding computation. Useful for smoke tests or external projections. + + Args: + geometry: "euclidean" or "poincare". + ids: List of sample IDs. + coords: (N, 2) array of coordinates. + + Returns: + The layout_key for the stored coordinates. + + Example: + >>> dataset.set_coords("euclidean", ["s0", "s1"], [[0.1, 0.2], [0.3, 0.4]]) + >>> dataset.set_coords("poincare", ["s0", "s1"], [[0.1, 0.2], [0.3, 0.4]]) + >>> hv.launch(dataset) + """ + if geometry not in ("euclidean", "poincare"): + raise ValueError(f"geometry must be 'euclidean' or 'poincare', got '{geometry}'") + + coords_arr = np.asarray(coords, dtype=np.float32) + if coords_arr.ndim != 2 or coords_arr.shape[1] != 2: + raise ValueError(f"coords must be (N, 2), got shape {coords_arr.shape}") + + # Ensure a synthetic space exists (required by launch()) + space_key = "precomputed" + if not any(s.space_key == space_key for s in self._storage.list_spaces()): + self._storage.ensure_space(space_key, dim=2) + + layout_key = make_layout_key(space_key, method="precomputed", geometry=geometry) + self._storage.add_layout_coords(layout_key, list(ids), coords_arr) + return layout_key + @property def samples(self) -> list[Sample]: """Get all samples as a list.""" @@ -595,9 +665,6 @@ def save(self, filepath: str, include_thumbnails: bool = True) -> None: "filepath": s.filepath, "label": s.label, "metadata": s.metadata, - "embedding": s.embedding, - "embedding_2d": s.embedding_2d, - "embedding_2d_hyperbolic": s.embedding_2d_hyperbolic, "thumbnail_base64": s.thumbnail_base64 if include_thumbnails else None, } for s in samples @@ -635,9 +702,6 @@ def load(cls, filepath: str, persist: bool = False) -> "Dataset": filepath=s_data["filepath"], label=s_data.get("label"), metadata=s_data.get("metadata", {}), - embedding=s_data.get("embedding"), - embedding_2d=s_data.get("embedding_2d"), - embedding_2d_hyperbolic=s_data.get("embedding_2d_hyperbolic"), thumbnail_base64=s_data.get("thumbnail_base64"), ) samples.append(sample) @@ -646,12 +710,11 @@ def load(cls, filepath: str, persist: bool = False) -> "Dataset": return dataset @classmethod - def open(cls, name: str, embedding_dim: int = 512) -> "Dataset": + def open(cls, name: str) -> "Dataset": """Open an existing persistent dataset. Args: name: Name of the dataset to open. - embedding_dim: Embedding dimension (must match original). Returns: Dataset instance connected to existing data. @@ -667,7 +730,7 @@ def open(cls, name: str, embedding_dim: int = 512) -> "Dataset": f"Available datasets: {cls.list_datasets()}" ) - return cls(name=name, persist=True, embedding_dim=embedding_dim) + return cls(name=name, persist=True) @classmethod def list_datasets(cls) -> list[str]: diff --git a/src/hyperview/core/sample.py b/src/hyperview/core/sample.py index 2052c85..cd4c84e 100644 --- a/src/hyperview/core/sample.py +++ b/src/hyperview/core/sample.py @@ -11,17 +11,16 @@ class Sample(BaseModel): - """A single sample in a HyperView dataset.""" + """A single sample in a HyperView dataset. + + Samples are pure metadata containers. Embeddings and layouts are stored + separately in dedicated tables (per embedding space / per layout). + """ id: str = Field(..., description="Unique identifier for the sample") filepath: str = Field(..., description="Path to the image file") label: str | None = Field(default=None, description="Label for the sample") metadata: dict[str, Any] = Field(default_factory=dict, description="Additional metadata") - embedding: list[float] | None = Field(default=None, description="High-dimensional embedding") - embedding_2d: list[float] | None = Field(default=None, description="2D projected embedding") - embedding_2d_hyperbolic: list[float] | None = Field( - default=None, description="2D hyperbolic (Poincaré) embedding" - ) thumbnail_base64: str | None = Field(default=None, description="Cached thumbnail as base64") model_config = {"arbitrary_types_allowed": True} @@ -76,10 +75,6 @@ def to_api_dict(self, include_thumbnail: bool = True) -> dict[str, Any]: } if include_thumbnail: data["thumbnail"] = self.get_thumbnail_base64() - if self.embedding_2d: - data["embedding_2d"] = self.embedding_2d - if self.embedding_2d_hyperbolic: - data["embedding_2d_hyperbolic"] = self.embedding_2d_hyperbolic return data diff --git a/src/hyperview/embeddings/projection.py b/src/hyperview/embeddings/projection.py index ccf8749..2ed5e3d 100644 --- a/src/hyperview/embeddings/projection.py +++ b/src/hyperview/embeddings/projection.py @@ -38,12 +38,15 @@ def project_umap( if n_neighbors < 2: n_neighbors = 2 + n_jobs = 1 if random_state is not None else -1 + reducer = umap.UMAP( n_neighbors=n_neighbors, min_dist=min_dist, n_components=n_components, metric=metric, random_state=random_state, + n_jobs=n_jobs, ) coords = reducer.fit_transform(embeddings) @@ -81,6 +84,8 @@ def project_to_poincare( n_neighbors = min(n_neighbors, len(embeddings) - 1) if n_neighbors < 2: n_neighbors = 2 + + n_jobs = 1 if random_state is not None else -1 # The time-like coordinate t is implicit: t = sqrt(1 + x^2 + y^2). reducer = umap.UMAP( n_neighbors=n_neighbors, @@ -89,6 +94,7 @@ def project_to_poincare( metric=metric, output_metric="hyperboloid", random_state=random_state, + n_jobs=n_jobs, ) # These are spatial coordinates (x, y) in the Hyperboloid model diff --git a/src/hyperview/server/app.py b/src/hyperview/server/app.py index 21c3655..d06cf08 100644 --- a/src/hyperview/server/app.py +++ b/src/hyperview/server/app.py @@ -2,6 +2,7 @@ import os from pathlib import Path +from typing import Any from fastapi import FastAPI, HTTPException, Query from fastapi.middleware.cors import CORSMiddleware @@ -28,7 +29,7 @@ class SelectionRequest(BaseModel): class LassoSelectionRequest(BaseModel): """Request model for lasso selection queries.""" - space: str + layout_key: str # e.g., "openai_clip-vit-base-patch32__umap" # Polygon vertices in data space, interleaved: [x0, y0, x1, y1, ...] polygon: list[float] offset: int = 0 @@ -45,8 +46,6 @@ class SampleResponse(BaseModel): label: str | None thumbnail: str | None metadata: dict - embedding_2d: list[float] | None = None - embedding_2d_hyperbolic: list[float] | None = None class DatasetResponse(BaseModel): @@ -56,18 +55,29 @@ class DatasetResponse(BaseModel): num_samples: int labels: list[str] label_colors: dict[str, str] + spaces: list[dict[str, Any]] + layouts: list[str] class EmbeddingsResponse(BaseModel): - """Response model for embeddings data.""" + """Response model for embeddings data (for scatter plot).""" + layout_key: str ids: list[str] labels: list[str | None] - euclidean: list[list[float]] - hyperbolic: list[list[float]] + coords: list[list[float]] # [[x, y], ...] label_colors: dict[str, str] +class SpaceInfo(BaseModel): + """Response model for embedding space info.""" + + space_key: str + model_id: str + dim: int + count: int + + class SimilarSampleResponse(BaseModel): """Response model for a similar sample with distance.""" @@ -78,8 +88,6 @@ class SimilarSampleResponse(BaseModel): thumbnail: str | None distance: float metadata: dict - embedding_2d: list[float] | None = None - embedding_2d_hyperbolic: list[float] | None = None class SimilaritySearchResponse(BaseModel): @@ -136,11 +144,24 @@ async def get_dataset_info(): if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") + spaces = _current_dataset.list_spaces() + space_dicts = [ + { + "space_key": s.space_key, + "model_id": s.model_id, + "dim": s.dim, + "count": s.count, + } + for s in spaces + ] + return DatasetResponse( name=_current_dataset.name, num_samples=len(_current_dataset), labels=_current_dataset.labels, label_colors=_current_dataset.get_label_colors(), + spaces=space_dicts, + layouts=_current_dataset.list_layouts(), ) @app.get("/api/samples") @@ -188,25 +209,66 @@ async def get_samples_batch(request: SelectionRequest): return {"samples": [s.to_api_dict(include_thumbnail=True) for s in samples]} @app.get("/api/embeddings", response_model=EmbeddingsResponse) - async def get_embeddings(): - """Get all embeddings for visualization.""" + async def get_embeddings(layout_key: str | None = None): + """Get embedding coordinates for visualization.""" if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") - ids, labels, euclidean, hyperbolic = _current_dataset._storage.get_visualization_embeddings() + # Get available layouts + layouts = _current_dataset.list_layouts() + if not layouts: + raise HTTPException( + status_code=400, detail="No layouts computed. Call compute_visualization() first." + ) + + # Use specified layout or first available + if layout_key is None: + layout_key = layouts[0] + elif layout_key not in layouts: + raise HTTPException(status_code=404, detail=f"Layout not found: {layout_key}") + + ids, labels, coords = _current_dataset._storage.get_visualization_data(layout_key) + if not ids: raise HTTPException( - status_code=400, detail="No embeddings computed. Call compute_visualization() first." + status_code=400, detail=f"No data in layout '{layout_key}'." ) return EmbeddingsResponse( + layout_key=layout_key, ids=ids, labels=labels, - euclidean=euclidean, - hyperbolic=hyperbolic, + coords=coords.tolist(), label_colors=_current_dataset.get_label_colors(), ) + @app.get("/api/spaces") + async def get_spaces(): + """Get all embedding spaces.""" + if _current_dataset is None: + raise HTTPException(status_code=404, detail="No dataset loaded") + + spaces = _current_dataset.list_spaces() + return { + "spaces": [ + { + "space_key": s.space_key, + "model_id": s.model_id, + "dim": s.dim, + "count": s.count, + } + for s in spaces + ] + } + + @app.get("/api/layouts") + async def get_layouts(): + """Get all available layouts.""" + if _current_dataset is None: + raise HTTPException(status_code=404, detail="No dataset loaded") + + return {"layouts": _current_dataset.list_layouts()} + @app.post("/api/selection") async def sync_selection(request: SelectionRequest): """Sync selection state (for future use).""" @@ -247,10 +309,9 @@ async def lasso_selection(request: LassoSelectionRequest): y_min = float(np.min(poly[:, 1])) y_max = float(np.max(poly[:, 1])) - try: candidate_ids, candidate_coords = _current_dataset._storage.get_lasso_candidates_aabb( - space=request.space, + layout_key=request.layout_key, x_min=x_min, x_max=x_max, y_min=y_min, @@ -288,7 +349,7 @@ async def lasso_selection(request: LassoSelectionRequest): async def search_similar( sample_id: str, k: int = Query(10, ge=1, le=100), - use_hyperbolic: bool = Query(False), + space_key: str | None = None, ): """Return k nearest neighbors for a given sample.""" if _current_dataset is None: @@ -296,7 +357,7 @@ async def search_similar( try: similar = _current_dataset.find_similar( - sample_id, k=k, use_hyperbolic=use_hyperbolic + sample_id, k=k, space_key=space_key ) except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) @@ -319,8 +380,6 @@ async def search_similar( thumbnail=thumbnail, distance=distance, metadata=sample.metadata, - embedding_2d=sample.embedding_2d, - embedding_2d_hyperbolic=sample.embedding_2d_hyperbolic, ) ) diff --git a/src/hyperview/server/static/404.html b/src/hyperview/server/static/404.html index 61eb8b7..dcdfe7a 100644 --- a/src/hyperview/server/static/404.html +++ b/src/hyperview/server/static/404.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/404/index.html b/src/hyperview/server/static/404/index.html index 61eb8b7..dcdfe7a 100644 --- a/src/hyperview/server/static/404/index.html +++ b/src/hyperview/server/static/404/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/__next.__PAGE__.txt b/src/hyperview/server/static/__next.__PAGE__.txt index 8e426ac..d8f4f90 100644 --- a/src/hyperview/server/static/__next.__PAGE__.txt +++ b/src/hyperview/server/static/__next.__PAGE__.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" 2:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/799ca86fb297c98a.js"],"default"] +3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/490c8071909f9d06.js"],"default"] 6:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 7:"$Sreact.suspense" -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/799ca86fb297c98a.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/490c8071909f9d06.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 8:null diff --git a/src/hyperview/server/static/__next._full.txt b/src/hyperview/server/static/__next._full.txt index 2c13d29..edf9586 100644 --- a/src/hyperview/server/static/__next._full.txt +++ b/src/hyperview/server/static/__next._full.txt @@ -2,14 +2,14 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] 4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/799ca86fb297c98a.js"],"default"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/490c8071909f9d06.js"],"default"] 8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"P":null,"b":"6WlEYFpQs-g9pqMRTk8sU","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/799ca86fb297c98a.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] +0:{"P":null,"b":"FkYHqh8bg2HXVZYl26MHt","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/490c8071909f9d06.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] diff --git a/src/hyperview/server/static/__next._head.txt b/src/hyperview/server/static/__next._head.txt index bfb6559..f0b1c5a 100644 --- a/src/hyperview/server/static/__next._head.txt +++ b/src/hyperview/server/static/__next._head.txt @@ -2,6 +2,6 @@ 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/__next._index.txt b/src/hyperview/server/static/__next._index.txt index 0a92701..1d78b73 100644 --- a/src/hyperview/server/static/__next._index.txt +++ b/src/hyperview/server/static/__next._index.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/__next._tree.txt b/src/hyperview/server/static/__next._tree.txt index abc662a..9129800 100644 --- a/src/hyperview/server/static/__next._tree.txt +++ b/src/hyperview/server/static/__next._tree.txt @@ -1,2 +1,2 @@ -:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_buildManifest.js b/src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_buildManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_buildManifest.js rename to src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_buildManifest.js diff --git a/src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_clientMiddlewareManifest.json b/src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_clientMiddlewareManifest.json similarity index 100% rename from src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_clientMiddlewareManifest.json rename to src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_clientMiddlewareManifest.json diff --git a/src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_ssgManifest.js b/src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_ssgManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/6WlEYFpQs-g9pqMRTk8sU/_ssgManifest.js rename to src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_ssgManifest.js diff --git a/src/hyperview/server/static/_next/static/chunks/799ca86fb297c98a.js b/src/hyperview/server/static/_next/static/chunks/490c8071909f9d06.js similarity index 50% rename from src/hyperview/server/static/_next/static/chunks/799ca86fb297c98a.js rename to src/hyperview/server/static/_next/static/chunks/490c8071909f9d06.js index 621fb40..40c41bb 100644 --- a/src/hyperview/server/static/_next/static/chunks/799ca86fb297c98a.js +++ b/src/hyperview/server/static/_next/static/chunks/490c8071909f9d06.js @@ -1,9 +1,9 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50912,e=>{"use strict";let t,r,n,o,l,i;var s,a,d=e.i(48277),u=e.i(30668);let c=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},f=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var p={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,u.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:i,...s},a)=>(0,u.createElement)("svg",{ref:a,...p,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:f("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(s)&&{"aria-hidden":"true"},...s},[...i.map(([e,t])=>(0,u.createElement)(e,t)),...Array.isArray(l)?l:[l]])),m=(s="grip-vertical",a=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],(r=(0,u.forwardRef)(({className:e,...t},r)=>(0,u.createElement)(h,{ref:r,iconNode:a,className:f(`lucide-${c(s).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${s}`,e),...t}))).displayName=c(s),r);function g(e,t="Assertion error"){if(!e)throw Error(t)}function b({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function y(e,t){return t.sort("horizontal"===e?v:x)}function v(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function x(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function w(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function k(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function S(e){let{element:t,orientation:r,panels:n,separators:o}=e,l=y(r,Array.from(t.children).filter(w).map(e=>({element:e}))).map(({element:e})=>e),i=[],s=!1,a,d=[];for(let t of l)if(t.hasAttribute("data-panel")){let o=n.find(e=>e.element===t);if(o){if(a){let n,l=a.element.getBoundingClientRect(),u=t.getBoundingClientRect();if(s){let e="horizontal"===r?new DOMRect(l.right,l.top,0,l.height):new DOMRect(l.left,l.bottom,l.width,0),t="horizontal"===r?new DOMRect(u.left,u.top,0,u.height):new DOMRect(u.left,u.top,u.width,0);switch(d.length){case 0:n=[e,t];break;case 1:{let o=d[0],i=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},o,l=Number.MAX_VALUE;for(let r of t){let{x:t,y:i}=k(n,r),s="horizontal"===e?t:i;se.element===t);e?d.push(e):(a=void 0,d=[])}else s=!0;return i}function z({groupSize:e,panelElement:t,styleProp:r}){let n,[o,l]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(l){case"%":n=o/100*e;break;case"px":n=o;break;case"rem":n=o*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=o*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=o/100*window.innerHeight;break;case"vw":n=o/100*window.innerWidth}return n}function j(e){return parseFloat(e.toFixed(3))}function C(e){let{panels:t}=e,r=b({group:e});return 0===r?t.map(e=>({collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:o}=e,l=0;void 0!==o.collapsedSize&&(l=j(z({groupSize:r,panelElement:n,styleProp:o.collapsedSize})/r*100)),void 0!==o.defaultSize&&(t=j(z({groupSize:r,panelElement:n,styleProp:o.defaultSize})/r*100));let i=0;void 0!==o.minSize&&(i=j(z({groupSize:r,panelElement:n,styleProp:o.minSize})/r*100));let s=100;return void 0!==o.maxSize&&(s=j(z({groupSize:r,panelElement:n,styleProp:o.maxSize})/r*100)),{collapsedSize:l,collapsible:!0===o.collapsible,defaultSize:t,minSize:i,maxSize:s,panelId:e.id}})}function E(e,t,r=0){return Math.abs(j(e)-j(t))<=r}let M={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map},R=new class{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,o=Array.from(r);for(let r=0;r=0&&r.splice(e,1)}}};function N(e){let t="function"==typeof e?e(M):e;if(M===t)return M;let r=M;return M={...M,...t},void 0!==t.cursorFlags&&R.emit("cursorFlagsChange",M.cursorFlags),void 0!==t.interactionState&&R.emit("interactionStateChange",M.interactionState),void 0!==t.mountedGroups&&(M.mountedGroups.forEach((e,t)=>{e.derivedPanelConstraints.forEach(n=>{if(n.collapsible){let{layout:o}=r.mountedGroups.get(t)??{};if(o){let r=E(n.collapsedSize,e.layout[n.panelId]),l=E(n.collapsedSize,o[n.panelId]);r&&!l&&(t.inMemoryLastExpandedPanelSizes[n.panelId]=o[n.panelId])}}})}),R.emit("mountedGroupsChange",M.mountedGroups)),M}function I(e,t){return E(e,t)?0:e>t?1:-1}function L({panelConstraints:e,size:t}){let{collapsedSize:r=0,collapsible:n,maxSize:o=100,minSize:l=0}=e;return 0>I(t,l)&&(t=n&&0>I(t,(r+l)/2)?r:l),j(t=Math.min(o,t))}function P({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:o,trigger:l}){if(E(e,0))return t;let i=Object.values(t),s=Object.values(o),a=[...i],[d,u]=n;g(null!=d,"Invalid first pivot index"),g(null!=u,"Invalid second pivot index");let c=0;if("keyboard"===l){{let t=e<0?u:d,n=r[t];g(n,`Panel constraints not found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:s=0}=n;if(l){let r=i[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,o)){let t=s-r;I(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?d:u,n=r[t];g(n,`No panel constraints found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:s=0}=n;if(l){let r=i[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,s)){let t=r-o;I(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let t=e<0?1:-1,n=e<0?u:d,o=0;for(;;){let e=i[n];if(g(null!=e,`Previous layout not found for panel index ${n}`),o+=L({panelConstraints:r[n],size:100})-e,(n+=t)<0||n>=r.length)break}let l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let t=e<0?d:u;for(;t>=0&&t=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r=0&&n0?n--:n++}}}if(!E(Object.values(a).reduce((e,t)=>t+e,0),100,.1))return o;let f=Object.keys(o);return a.reduce((e,t,r)=>(e[f[r]]=t,e),{})}function O(e){let{mountedGroups:t}=M;for(let[r]of t)if(r.separators.some(t=>t.element===e))return r;throw Error("Could not find parent Group for separator element")}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==I(e[r],t[r]))return!1;return!0}function A({layout:e,panelConstraints:t}){let r=[...Object.values(e)],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!E(n,100)&&r.length>0)for(let e=0;e(e[l[r]]=t,e),{})}function D({groupId:e}){let t=()=>{let{mountedGroups:t}=M;for(let[r,n]of t)if(r.id===e)return{group:r,...n};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:o,layout:l,separatorToPanels:i}=t(),s=A({layout:e,panelConstraints:n});return r?l:(T(l,s)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(o,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:s,separatorToPanels:i})})),s)}}}function $(e){let{mountedGroups:t}=M,r=t.get(e);return g(r,`Mounted Group ${e.id} not found`),r}function F(e,t){let r=O(e),n=$(r),o=r.separators.find(t=>t.element===e);g(o,"Matching separator not found");let l=n.separatorToPanels.get(o);g(l,"Matching panels not found");let i=l.map(e=>r.panels.indexOf(e)),s=D({groupId:r.id}).getLayout(),a=A({layout:P({delta:t,initialLayout:s,panelConstraints:n.derivedPanelConstraints,pivotIndices:i,prevLayout:s,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(s,a)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,layout:a,separatorToPanels:n.separatorToPanels})}))}function G(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=O(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&F(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&F(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&F(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&F(t,-5);break;case"End":e.preventDefault(),F(t,100);break;case"Enter":{e.preventDefault();let r=O(t),{derivedPanelConstraints:n,layout:o,separatorToPanels:l}=$(r),i=r.separators.find(e=>e.element===t);g(i,"Matching separator not found");let s=l.get(i);g(s,"Matching panels not found");let a=s[0],d=n.find(e=>e.panelId===a.id);if(g(d,"Panel metadata not found"),d.collapsible){let e=o[a.id];F(t,(d.collapsedSize===e?r.inMemoryLastExpandedPanelSizes[a.id]??d.minSize:d.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=O(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);g(null!==n,"Index not found");let o=e.shiftKey?n>0?n-1:r.length-1:n+1e,W=()=>{},V=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function B(e){let t=e.length;for(;t--;){let r=e[t];if(g(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(U(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||V.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function H(e){return e&&Number(getComputedStyle(e).zIndex)||0}function K(e){let t=[];for(;e;)t.push(e),e=U(e);return t}function U(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function q(e,r){let n=[];return r.forEach((r,o)=>{if(o.disabled)return;let l=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?10:5,i=S(o),s=function(e,t,r){let n,o={x:1/0,y:1/0};for(let l of t){let t=k(r,l.rect);switch(e){case"horizontal":t.x<=o.x&&(n=l,o=t);break;case"vertical":t.y<=o.y&&(n=l,o=t)}}return n?{distance:o,hitRegion:n}:void 0}(o.orientation,i,{x:e.clientX,y:e.clientY});s&&s.distance.x<=l&&s.distance.y<=l&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!w(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:K(e),b:K(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;g(r,"Stacking order can only be calculated for elements with a common ancestor");let o={a:H(B(n.a)),b:H(B(n.b))};if(o.a===o.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},o=e.length;for(;o--;){let r=e[o];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(o.a-o.b)}(r,e)>0){let o=r;for(;o;){var n;if(o.contains(e))break;if(n=o.getBoundingClientRect(),n.xt.x&&n.yt.y)return!1;o=o.parentElement}}return!0}({groupElement:o.element,hitRegion:s.hitRegion.rect,pointerEventTarget:e.target})&&n.push(s.hitRegion)}),n}function Y(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{mountedGroups:t}=M,r=q(e,t),n=new Set,o=new Set,l=new Set,i=new Map,s=!1;r.forEach(e=>{n.add(e.group),e.panels.forEach(e=>{o.add(e)}),e.separator&&(l.add(e.separator),s||(s=!0,e.separator.element.focus()));let r=t.get(e.group);r&&i.set(e.group,r.layout)}),N({interactionState:{hitRegions:r,initialLayoutMap:i,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),r.length&&e.preventDefault()}let Q=new WeakMap;function X(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=Q.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[r]);let{cursorFlags:n,interactionState:o}=M;switch(o.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,o=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":o++}})}if(0===n&&0===o)return null;if("active"===r){let t=(4&e)!=0,r=(8&e)!=0;if(e){if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}}return n>0&&o>0?"move":n>0?"ew-resize":"ns-resize"}({cursorFlags:n,groups:o.hitRegions.map(e=>e.group),state:o.state}),l=`*{cursor: ${e} !important; ${"active"===o.state?"touch-action: none;":""} }`;if(t===l)return;t=l,e?0===r.cssRules.length?r.insertRule(l):r.replaceSync(l):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}Q.set(e,{prevStyle:t,styleSheet:r})}function Z({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:l}){let i=0,s=new Map(o);r.forEach(e=>{let{group:r,groupSize:a}=e,{disableCursor:d,orientation:u,panels:c}=r,f=0;f=l?"horizontal"===u?(t.clientX-l.x)/a*100:(t.clientY-l.y)/a*100:"horizontal"===u?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:g,separatorToPanels:b}=o.get(r)??{defaultLayoutDeferred:!1};if(m&&p&&g&&b){let t=P({delta:f,initialLayout:p,panelConstraints:m,pivotIndices:e.panels.map(e=>c.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==f&&!d)switch(u){case"horizontal":i|=f<0?1:2;break;case"vertical":i|=f<0?4:8}}else{s.set(e.group,{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:t,separatorToPanels:b});let r=e.group.panels.map(({id:e})=>e).join(",");e.group.inMemoryLayouts[r]=t}}}),N({cursorFlags:i,mountedGroups:s}),X(e)}function J(e){let{interactionState:t,mountedGroups:r}=M;"active"===t.state&&Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r})}function ee(e){if(e.defaultPrevented)return;let{interactionState:t,mountedGroups:r}=M;if("active"===t.state){if(0===e.buttons){N(e=>"inactive"===e.interactionState.state?e:{cursorFlags:0,interactionState:{state:"inactive"}}),N(e=>({mountedGroups:new Map(e.mountedGroups)}));return}Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint})}else{let n=q(e,r);0===n.length?"inactive"!==t.state&&N({interactionState:{state:"inactive"}}):N({interactionState:{hitRegions:n,state:"hover"}}),X(e.currentTarget)}}function et(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{interactionState:t}=M;"active"===t.state&&(N({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(X(e.currentTarget),N(e=>({mountedGroups:new Map(e.mountedGroups)})),e.preventDefault()))}function er(e){let t=0,r=0,n={};for(let o of e)if(void 0!==o.defaultSize){t++;let e=j(o.defaultSize);r+=e,n[o.panelId]=e}else n[o.panelId]=void 0;let o=e.length-t;if(0!==o){let t=j((100-r)/o);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let en=new Map;function eo(){let[e,t]=(0,u.useState)({});return[e,(0,u.useCallback)(()=>t({}),[])]}function el(e){let t=(0,u.useId)();return`${e??t}`}let ei="u">typeof window?u.useLayoutEffect:u.useEffect;function es(e){let t=(0,u.useRef)(e);return ei(()=>{t.current=e},[e]),(0,u.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return es(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}let ed=(0,u.createContext)(null);function eu({children:e,className:t,defaultLayout:r,disableCursor:n,disabled:o,elementRef:l,groupRef:i,id:s,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",style:p,...h}){var m;let v,x,w=(0,u.useRef)({onLayoutChange:{},onLayoutChanged:{}}),k=es(e=>{T(w.current.onLayoutChange,e)||(w.current.onLayoutChange=e,a?.(e))}),z=es(e=>{T(w.current.onLayoutChanged,e)||(w.current.onLayoutChanged=e,c?.(e))}),E=el(s),I=(0,u.useRef)(null),[L,P]=eo(),O=(0,u.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),$=ea(I,l);v=(0,u.useRef)({getLayout:()=>({}),setLayout:_}),(0,u.useImperativeHandle)(i,()=>v.current,[]),ei(()=>{Object.assign(v.current,D({groupId:E}))});let F=es((e,t)=>{let{interactionState:n,mountedGroups:o}=M;for(let r of o.keys())if(r.id===e){let e=o.get(r);if(e){let o=!1;return"active"===n.state&&(o=n.hitRegions.some(e=>e.group===r)),{flexGrow:e.layout[t]??1,pointerEvents:o?"none":void 0}}}return{flexGrow:r?.[t]??1}}),W=(0,u.useMemo)(()=>({getPanelStyles:F,id:E,orientation:f,registerPanel:e=>{let t=O.current;return t.panels=y(f,[...t.panels,e]),P(),()=>{t.panels=t.panels.filter(t=>t!==e),P()}},registerSeparator:e=>{let t=O.current;return t.separators=y(f,[...t.separators,e]),P(),()=>{t.separators=t.separators.filter(t=>t!==e),P()}}}),[F,E,P,f]),V=(m={defaultLayout:r,disableCursor:n},x=(0,u.useRef)({...m}),ei(()=>{for(let e in m)x.current[e]=m[e]},[m]),x.current),B=(0,u.useRef)(null);return ei(()=>{let e,t,r,n,l,i,s,a,d,u,c,p,h=I.current;if(null===h)return;let m=O.current,y={defaultLayout:V.defaultLayout,disableCursor:!!V.disableCursor,disabled:!!o,element:h,id:E,inMemoryLastExpandedPanelSizes:O.current.lastExpandedPanelSizes,inMemoryLayouts:O.current.layouts,orientation:f,panels:m.panels,separators:m.separators};B.current=y;let v=(e=!0,g(y.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),t=y.element.ownerDocument.defaultView.ResizeObserver,r=new Set,n=new Set,(l=new t(t=>{for(let r of t){let{borderBoxSize:t,target:n}=r;if(n===y.element){if(e){if(0===b({group:y}))return;N(e=>{let t=e.mountedGroups.get(y);if(t){let r=C(y),n=t.defaultLayoutDeferred?er(r):t.layout,o=A({layout:n,panelConstraints:r});return!t.defaultLayoutDeferred&&T(n,o)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)?e:{mountedGroups:new Map(e.mountedGroups).set(y,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,layout:o,separatorToPanels:t.separatorToPanels})}}return e})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let o=b({group:e}),l="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,i=n.mutableValues.prevSize,s={asPercentage:j(l/o*100),inPixels:l};n.mutableValues.prevSize=s,n.onResize(s,n.id,i)}(y,n,t)}})).observe(y.element),y.panels.forEach(e=>{g(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&l.observe(e.element)}),i=b({group:y}),s=C(y),a=y.panels.map(({id:e})=>e).join(","),(d=y.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(y.panels,d)||(d=void 0)),u=A({layout:y.inMemoryLayouts[a]??d??er(s),panelConstraints:s}),c=S(y),p=y.element.ownerDocument,N(e=>{let t=new Map;return en.set(p,(en.get(p)??0)+1),c.forEach(e=>{e.separator&&t.set(e.separator,e.panels)}),{mountedGroups:new Map(e.mountedGroups).set(y,{defaultLayoutDeferred:0===i,derivedPanelConstraints:s,layout:u,separatorToPanels:t})}}),y.separators.forEach(e=>{g(!n.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.element.addEventListener("keydown",G)}),1===en.get(p)&&(p.addEventListener("pointerdown",Y,!0),p.addEventListener("pointerleave",J),p.addEventListener("pointermove",ee),p.addEventListener("pointerup",et,!0)),function(){e=!1,en.set(p,Math.max(0,(en.get(p)??0)-1)),N(e=>{let t=new Map(e.mountedGroups);return t.delete(y),{mountedGroups:t}}),y.separators.forEach(e=>{e.element.removeEventListener("keydown",G)}),en.get(p)||(p.removeEventListener("pointerdown",Y,!0),p.removeEventListener("pointerleave",J),p.removeEventListener("pointermove",ee),p.removeEventListener("pointerup",et,!0)),l.disconnect()}),x=M.mountedGroups.get(y);if(x){let{defaultLayoutDeferred:e,derivedPanelConstraints:t,layout:r}=x;!e&&t.length>0&&(k(r),z(r),m.panels.forEach(e=>{e.scheduleUpdate()}))}let w=R.addListener("interactionStateChange",()=>{m.panels.forEach(e=>{e.scheduleUpdate()})}),L=R.addListener("mountedGroupsChange",e=>{let t=e.get(y);if(t){let{defaultLayoutDeferred:e,derivedPanelConstraints:r,layout:n}=t;if(e||0===r.length)return;let{interactionState:o}=M,l="active"!==o.state;k(n),l&&z(n),m.panels.forEach(e=>{e.scheduleUpdate()})}});return()=>{B.current=null,v(),w(),L()}},[o,E,z,k,f,L,V]),(0,u.useEffect)(()=>{let e=B.current;e&&(e.defaultLayout=r,e.disableCursor=!!n)}),(0,d.jsx)(ed.Provider,{value:W,children:(0,d.jsx)("div",{...h,"aria-orientation":f,className:t,"data-group":!0,"data-testid":E,id:E,ref:$,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:"horizontal"===f?"row":"column",flexWrap:"nowrap"},children:e})})}function ec(){let e=(0,u.useContext)(ed);return g(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ef({children:e,className:t,collapsedSize:r="0%",collapsible:n=!1,defaultSize:o,elementRef:l,id:i,maxSize:s="100%",minSize:a="0%",onResize:c,panelRef:f,style:p,...h}){let m=!!i,g=el(i),y=(0,u.useRef)(null),v=ea(y,l),[,x]=eo(),{getPanelStyles:w,id:k,registerPanel:S}=ec(),z=null!==c,C=es((e,t,r)=>{c?.(e,i,r)});ei(()=>{let e=y.current;if(null!==e)return S({element:e,id:g,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?C:void 0,panelConstraints:{collapsedSize:r,collapsible:n,defaultSize:o,maxSize:s,minSize:a},scheduleUpdate:x})},[r,n,o,x,z,g,m,s,a,C,S]),function(e,t){let{id:r}=ec(),n=(0,u.useRef)({collapse:W,expand:W,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:W});(0,u.useImperativeHandle)(t,()=>n.current,[]),ei(()=>{Object.assign(n.current,function({groupId:e,panelId:t}){let r=()=>{let{mountedGroups:t}=M;for(let[r,{defaultLayoutDeferred:n,derivedPanelConstraints:o,layout:l,separatorToPanels:i}]of t)if(r.id===e)return{defaultLayoutDeferred:n,derivedPanelConstraints:o,group:r,layout:l,separatorToPanels:i};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},l=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},i=e=>{let n=l();if(e===n)return;let{defaultLayoutDeferred:o,derivedPanelConstraints:i,group:s,layout:a,separatorToPanels:d}=r(),u=s.panels.findIndex(e=>e.id===t),c=u===s.panels.length-1,f=A({layout:P({delta:c?n-e:e-n,initialLayout:a,panelConstraints:i,pivotIndices:c?[u-1,u]:[u,u+1],prevLayout:a,trigger:"imperative-api"}),panelConstraints:i});T(a,f)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(s,{defaultLayoutDeferred:o,derivedPanelConstraints:i,layout:f,separatorToPanels:d})}))};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=o(),s=l();e&&s!==t&&(r.expandToSize=s,i(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:s}=o(),a=l();if(e&&a===t){let e=s.expandToSize??r;0===e&&(e=1),i(e)}},getSize:()=>{let{group:e}=r(),t=l(),{element:n}=o();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=l();return e&&E(t,r)},resize:e=>{if(l()!==e){let t;switch(typeof e){case"number":{let{group:n}=r();t=j(e/b({group:n})*100);break}case"string":t=parseFloat(e)}i(t)}}}}({groupId:r,panelId:e}))})}(g,f);let R=w(k,g);return(0,d.jsx)("div",{...h,"data-panel":!0,"data-testid":g,id:g,ref:v,style:{...ep,flexBasis:0,flexShrink:1,overflow:"hidden",...R},children:(0,d.jsx)("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}eu.displayName="Group",ef.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function eh({children:e,className:t,elementRef:r,id:n,style:o,...l}){let i=el(n),[s,a]=(0,u.useState)({}),[c,f]=(0,u.useState)("inactive"),p=(0,u.useRef)(null),h=ea(p,r),{id:m,orientation:g,registerSeparator:b}=ec();return ei(()=>{let e=p.current;if(null!==e){let t={element:e,id:i},r=b(t),n=R.addListener("interactionStateChange",e=>{f("inactive"!==e.state&&e.hitRegions.some(e=>e.separator===t)?e.state:"inactive")}),o=R.addListener("mountedGroupsChange",e=>{e.forEach(({derivedPanelConstraints:e,layout:r,separatorToPanels:n},o)=>{if(o.id===m){let l=n.get(t);if(l){let t=l[0],n=o.panels.indexOf(t);a(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let o,l,i=e[r],s=t.find(e=>e.panelId===r);if(s){let a=s.maxSize,d=l=s.collapsible?s.collapsedSize:s.minSize,u=[n,n+1];l=A({layout:P({delta:d-i,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r],o=A({layout:P({delta:a-i,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r]}return{valueControls:r,valueMax:o,valueMin:l,valueNow:i}}({layout:r,panelConstraints:e,panelId:t.id,panelIndex:n}))}}})});return()=>{n(),o(),r()}}},[m,i,b]),(0,d.jsx)("div",{...l,"aria-controls":s.valueControls,"aria-orientation":"horizontal"===g?"vertical":"horizontal","aria-valuemax":s.valueMax,"aria-valuemin":s.valueMin,"aria-valuenow":s.valueNow,children:e,className:t,"data-separator":c,"data-testid":i,id:i,ref:h,role:"separator",style:{flexBasis:"auto",...o,flexGrow:0,flexShrink:0},tabIndex:0})}function em(){for(var e,t,r=0,n="",o=arguments.length;r({nextPart:e,validators:t,classGroupId:r}),eb=[],ey=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],o=r.nextPart.get(n);if(o){let r=ey(e,t+1,o);if(r)return r}let l=r.validators;if(null===l)return;let i=0===t?e.join("-"):e.slice(t).join("-"),s=l.length;for(let e=0;e{let r=eg();for(let n in e)ex(e[n],r,n,t);return r},ex=(e,t,r,n)=>{let o=e.length;for(let l=0;l{"string"==typeof e?ek(e,t,r):"function"==typeof e?eS(e,t,r,n):ez(e,t,r,n)},ek=(e,t,r)=>{(""===e?t:ej(t,e)).classGroupId=r},eS=(e,t,r,n)=>{eC(e)?ex(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},ez=(e,t,r,n)=>{let o=Object.entries(e),l=o.length;for(let e=0;e{let r=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,eE=[],eM=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),eR=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n{let t=t=>t[e]||eI;return t.isThemeGetter=!0,t},eP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eO=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,eA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eD=/\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$/,e$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eF=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,eG=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,e_=e=>eT.test(e),eW=e=>!!e&&!Number.isNaN(Number(e)),eV=e=>!!e&&Number.isInteger(Number(e)),eB=e=>e.endsWith("%")&&eW(e.slice(0,-1)),eH=e=>eA.test(e),eK=()=>!0,eU=e=>eD.test(e)&&!e$.test(e),eq=()=>!1,eY=e=>eF.test(e),eQ=e=>eG.test(e),eX=e=>!eJ(e)&&!e3(e),eZ=e=>tr(e,ti,eq),eJ=e=>eP.test(e),e0=e=>tr(e,ts,eU),e1=e=>tr(e,ta,eW),e2=e=>tr(e,to,eq),e5=e=>tr(e,tl,eQ),e4=e=>tr(e,tu,eY),e3=e=>eO.test(e),e6=e=>tn(e,ts),e8=e=>tn(e,td),e9=e=>tn(e,to),e7=e=>tn(e,ti),te=e=>tn(e,tl),tt=e=>tn(e,tu,!0),tr=(e,t,r)=>{let n=eP.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},tn=(e,t,r=!1)=>{let n=eO.exec(e);return!!n&&(n[1]?t(n[1]):r)},to=e=>"position"===e||"percentage"===e,tl=e=>"image"===e||"url"===e,ti=e=>"length"===e||"size"===e||"bg-size"===e,ts=e=>"length"===e,ta=e=>"number"===e,td=e=>"family-name"===e,tu=e=>"shadow"===e,tc=((e,...t)=>{let r,n,o,l,i=e=>{let t=n(e);if(t)return t;let l=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:l}=t,i=[],s=e.trim().split(eR),a="";for(let e=s.length-1;e>=0;e-=1){let t=s[e],{isExternal:d,modifiers:u,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:p}=r(t);if(d){a=t+(a.length>0?" "+a:a);continue}let h=!!p,m=n(h?f.substring(0,p):f);if(!m){if(!h||!(m=n(f))){a=t+(a.length>0?" "+a:a);continue}h=!1}let g=0===u.length?"":1===u.length?u[0]:l(u).join(":"),b=c?g+"!":g,y=b+m;if(i.indexOf(y)>-1)continue;i.push(y);let v=o(m,h);for(let e=0;e0?" "+a:a)}return a})(e,r);return o(e,l),l};return l=s=>{var a;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,l)=>{r[o]=l,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((a=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,l=0,i=e.length;for(let s=0;sl?t-l:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):eM(eE,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(a),sortModifiers:(d=new Map,a.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n0&&(r.sort(),t.push(...r),r=[]),t.push(o)):r.push(o)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return ev(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,o;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return ey(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=r[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tl(((...e)=>{let t,r,n=0,o="";for(;n{let e=eL("color"),t=eL("font"),r=eL("text"),n=eL("font-weight"),o=eL("tracking"),l=eL("leading"),i=eL("breakpoint"),s=eL("container"),a=eL("spacing"),d=eL("radius"),u=eL("shadow"),c=eL("inset-shadow"),f=eL("text-shadow"),p=eL("drop-shadow"),h=eL("blur"),m=eL("perspective"),g=eL("aspect"),b=eL("ease"),y=eL("animate"),v=()=>["auto","avoid","all","avoid-page","page","left","right","column"],x=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...x(),e3,eJ],k=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],z=()=>[e3,eJ,a],j=()=>[e_,"full","auto",...z()],C=()=>[eV,"none","subgrid",e3,eJ],E=()=>["auto",{span:["full",eV,e3,eJ]},eV,e3,eJ],M=()=>[eV,"auto",e3,eJ],R=()=>["auto","min","max","fr",e3,eJ],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],I=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...z()],P=()=>[e_,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],O=()=>[e,e3,eJ],T=()=>[...x(),e9,e2,{position:[e3,eJ]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",e7,eZ,{size:[e3,eJ]}],$=()=>[eB,e6,e0],F=()=>["","none","full",d,e3,eJ],G=()=>["",eW,e6,e0],_=()=>["solid","dashed","dotted","double"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],V=()=>[eW,eB,e9,e2],B=()=>["","none",h,e3,eJ],H=()=>["none",eW,e3,eJ],K=()=>["none",eW,e3,eJ],U=()=>[eW,e3,eJ],q=()=>[e_,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eH],breakpoint:[eH],color:[eK],container:[eH],"drop-shadow":[eH],ease:["in","out","in-out"],font:[eX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eH],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eH],shadow:[eH],spacing:["px",eW],text:[eH],"text-shadow":[eH],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",e_,eJ,e3,g]}],container:["container"],columns:[{columns:[eW,eJ,e3,s]}],"break-after":[{"break-after":v()}],"break-before":[{"break-before":v()}],"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:w()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[eV,"auto",e3,eJ]}],basis:[{basis:[e_,"full","auto",s,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eW,e_,"auto","initial","none",eJ]}],grow:[{grow:["",eW,e3,eJ]}],shrink:[{shrink:["",eW,e3,eJ]}],order:[{order:[eV,"first","last","none",e3,eJ]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":R()}],"auto-rows":[{"auto-rows":R()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...I(),"normal"]}],"justify-self":[{"justify-self":["auto",...I()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...I(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...I(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...I(),"baseline"]}],"place-self":[{"place-self":["auto",...I()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],w:[{w:[s,"screen",...P()]}],"min-w":[{"min-w":[s,"screen","none",...P()]}],"max-w":[{"max-w":[s,"screen","none","prose",{screen:[i]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",r,e6,e0]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e3,e1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eB,eJ]}],"font-family":[{font:[e8,eJ,t]}],"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:[o,e3,eJ]}],"line-clamp":[{"line-clamp":[eW,"none",e3,e1]}],leading:[{leading:[l,...z()]}],"list-image":[{"list-image":["none",e3,eJ]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e3,eJ]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[..._(),"wavy"]}],"text-decoration-thickness":[{decoration:[eW,"from-font","auto",e3,e0]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[eW,"auto",e3,eJ]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e3,eJ]}],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",e3,eJ]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},eV,e3,eJ],radial:["",e3,eJ],conic:[eV,e3,eJ]},te,e5]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:$()}],"gradient-via-pos":[{via:$()}],"gradient-to-pos":[{to:$()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:G()}],"border-w-x":[{"border-x":G()}],"border-w-y":[{"border-y":G()}],"border-w-s":[{"border-s":G()}],"border-w-e":[{"border-e":G()}],"border-w-t":[{"border-t":G()}],"border-w-r":[{"border-r":G()}],"border-w-b":[{"border-b":G()}],"border-w-l":[{"border-l":G()}],"divide-x":[{"divide-x":G()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":G()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[..._(),"hidden","none"]}],"divide-style":[{divide:[..._(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[..._(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eW,e3,eJ]}],"outline-w":[{outline:["",eW,e6,e0]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",u,tt,e4]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",c,tt,e4]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:G()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[eW,e0]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":G()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",f,tt,e4]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[eW,e3,eJ]}],"mix-blend":[{"mix-blend":[...W(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":W()}],"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":[eW]}],"mask-image-linear-from-pos":[{"mask-linear-from":V()}],"mask-image-linear-to-pos":[{"mask-linear-to":V()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":V()}],"mask-image-t-to-pos":[{"mask-t-to":V()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":V()}],"mask-image-r-to-pos":[{"mask-r-to":V()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":V()}],"mask-image-b-to-pos":[{"mask-b-to":V()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":V()}],"mask-image-l-to-pos":[{"mask-l-to":V()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":V()}],"mask-image-x-to-pos":[{"mask-x-to":V()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":V()}],"mask-image-y-to-pos":[{"mask-y-to":V()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[e3,eJ]}],"mask-image-radial-from-pos":[{"mask-radial-from":V()}],"mask-image-radial-to-pos":[{"mask-radial-to":V()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"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":x()}],"mask-image-conic-pos":[{"mask-conic":[eW]}],"mask-image-conic-from-pos":[{"mask-conic-from":V()}],"mask-image-conic-to-pos":[{"mask-conic-to":V()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e3,eJ]}],filter:[{filter:["","none",e3,eJ]}],blur:[{blur:B()}],brightness:[{brightness:[eW,e3,eJ]}],contrast:[{contrast:[eW,e3,eJ]}],"drop-shadow":[{"drop-shadow":["","none",p,tt,e4]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",eW,e3,eJ]}],"hue-rotate":[{"hue-rotate":[eW,e3,eJ]}],invert:[{invert:["",eW,e3,eJ]}],saturate:[{saturate:[eW,e3,eJ]}],sepia:[{sepia:["",eW,e3,eJ]}],"backdrop-filter":[{"backdrop-filter":["","none",e3,eJ]}],"backdrop-blur":[{"backdrop-blur":B()}],"backdrop-brightness":[{"backdrop-brightness":[eW,e3,eJ]}],"backdrop-contrast":[{"backdrop-contrast":[eW,e3,eJ]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eW,e3,eJ]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eW,e3,eJ]}],"backdrop-invert":[{"backdrop-invert":["",eW,e3,eJ]}],"backdrop-opacity":[{"backdrop-opacity":[eW,e3,eJ]}],"backdrop-saturate":[{"backdrop-saturate":[eW,e3,eJ]}],"backdrop-sepia":[{"backdrop-sepia":["",eW,e3,eJ]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e3,eJ]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eW,"initial",e3,eJ]}],ease:[{ease:["linear","initial",b,e3,eJ]}],delay:[{delay:[eW,e3,eJ]}],animate:[{animate:["none",y,e3,eJ]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,e3,eJ]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:H()}],"rotate-x":[{"rotate-x":H()}],"rotate-y":[{"rotate-y":H()}],"rotate-z":[{"rotate-z":H()}],scale:[{scale:K()}],"scale-x":[{"scale-x":K()}],"scale-y":[{"scale-y":K()}],"scale-z":[{"scale-z":K()}],"scale-3d":["scale-3d"],skew:[{skew:U()}],"skew-x":[{"skew-x":U()}],"skew-y":[{"skew-y":U()}],transform:[{transform:[e3,eJ,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q()}],"translate-x":[{"translate-x":q()}],"translate-y":[{"translate-y":q()}],"translate-z":[{"translate-z":q()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"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",e3,eJ]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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",e3,eJ]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[eW,e6,e0,e1]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tf(...e){return tc(em(e))}let tp=({className:e,...t})=>(0,d.jsx)(eu,{className:tf("flex h-full w-full data-[orientation=vertical]:flex-col",e),...t}),th=({withHandle:e,className:t,...r})=>(0,d.jsx)(eh,{className:tf("relative flex w-[3px] items-center justify-center bg-border/50 hover:bg-primary/50 transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-2 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring data-[orientation=vertical]:h-[3px] data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-2 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t),...r,children:e&&(0,d.jsx)("div",{className:"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-secondary",children:(0,d.jsx)(m,{className:"h-3 w-3 text-muted-foreground"})})});var tm=e.i(69941);function tg(e,t,r){let n,o=r.initialDeps??[];function l(){var l,i,s,a;let d,u;r.key&&(null==(l=r.debug)?void 0:l.call(r))&&(d=Date.now());let c=e();if(!(c.length!==o.length||c.some((e,t)=>o[t]!==e)))return n;if(o=c,r.key&&(null==(i=r.debug)?void 0:i.call(r))&&(u=Date.now()),n=t(...c),r.key&&(null==(s=r.debug)?void 0:s.call(r))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-u)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{"use strict";let t,r,n,o,l,s;var i,a,d=e.i(48277),u=e.i(30668);let c=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},f=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var p={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,u.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:s,...i},a)=>(0,u.createElement)("svg",{ref:a,...p,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:f("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(i)&&{"aria-hidden":"true"},...i},[...s.map(([e,t])=>(0,u.createElement)(e,t)),...Array.isArray(l)?l:[l]])),m=(i="grip-vertical",a=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],(r=(0,u.forwardRef)(({className:e,...t},r)=>(0,u.createElement)(h,{ref:r,iconNode:a,className:f(`lucide-${c(i).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${i}`,e),...t}))).displayName=c(i),r);function g(e,t="Assertion error"){if(!e)throw Error(t)}function y({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function b(e,t){return t.sort("horizontal"===e?x:v)}function x(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function v(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function w(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function k(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function S(e){let{element:t,orientation:r,panels:n,separators:o}=e,l=b(r,Array.from(t.children).filter(w).map(e=>({element:e}))).map(({element:e})=>e),s=[],i=!1,a,d=[];for(let t of l)if(t.hasAttribute("data-panel")){let o=n.find(e=>e.element===t);if(o){if(a){let n,l=a.element.getBoundingClientRect(),u=t.getBoundingClientRect();if(i){let e="horizontal"===r?new DOMRect(l.right,l.top,0,l.height):new DOMRect(l.left,l.bottom,l.width,0),t="horizontal"===r?new DOMRect(u.left,u.top,0,u.height):new DOMRect(u.left,u.top,u.width,0);switch(d.length){case 0:n=[e,t];break;case 1:{let o=d[0],s=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},o,l=Number.MAX_VALUE;for(let r of t){let{x:t,y:s}=k(n,r),i="horizontal"===e?t:s;ie.element===t);e?d.push(e):(a=void 0,d=[])}else i=!0;return s}function z({groupSize:e,panelElement:t,styleProp:r}){let n,[o,l]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(l){case"%":n=o/100*e;break;case"px":n=o;break;case"rem":n=o*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=o*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=o/100*window.innerHeight;break;case"vw":n=o/100*window.innerWidth}return n}function j(e){return parseFloat(e.toFixed(3))}function C(e){let{panels:t}=e,r=y({group:e});return 0===r?t.map(e=>({collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:o}=e,l=0;void 0!==o.collapsedSize&&(l=j(z({groupSize:r,panelElement:n,styleProp:o.collapsedSize})/r*100)),void 0!==o.defaultSize&&(t=j(z({groupSize:r,panelElement:n,styleProp:o.defaultSize})/r*100));let s=0;void 0!==o.minSize&&(s=j(z({groupSize:r,panelElement:n,styleProp:o.minSize})/r*100));let i=100;return void 0!==o.maxSize&&(i=j(z({groupSize:r,panelElement:n,styleProp:o.maxSize})/r*100)),{collapsedSize:l,collapsible:!0===o.collapsible,defaultSize:t,minSize:s,maxSize:i,panelId:e.id}})}function E(e,t,r=0){return Math.abs(j(e)-j(t))<=r}let R={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map},M=new class{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,o=Array.from(r);for(let r=0;r=0&&r.splice(e,1)}}};function N(e){let t="function"==typeof e?e(R):e;if(R===t)return R;let r=R;return R={...R,...t},void 0!==t.cursorFlags&&M.emit("cursorFlagsChange",R.cursorFlags),void 0!==t.interactionState&&M.emit("interactionStateChange",R.interactionState),void 0!==t.mountedGroups&&(R.mountedGroups.forEach((e,t)=>{e.derivedPanelConstraints.forEach(n=>{if(n.collapsible){let{layout:o}=r.mountedGroups.get(t)??{};if(o){let r=E(n.collapsedSize,e.layout[n.panelId]),l=E(n.collapsedSize,o[n.panelId]);r&&!l&&(t.inMemoryLastExpandedPanelSizes[n.panelId]=o[n.panelId])}}})}),M.emit("mountedGroupsChange",R.mountedGroups)),R}function L(e,t){return E(e,t)?0:e>t?1:-1}function I({panelConstraints:e,size:t}){let{collapsedSize:r=0,collapsible:n,maxSize:o=100,minSize:l=0}=e;return 0>L(t,l)&&(t=n&&0>L(t,(r+l)/2)?r:l),j(t=Math.min(o,t))}function P({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:o,trigger:l}){if(E(e,0))return t;let s=Object.values(t),i=Object.values(o),a=[...s],[d,u]=n;g(null!=d,"Invalid first pivot index"),g(null!=u,"Invalid second pivot index");let c=0;if("keyboard"===l){{let t=e<0?u:d,n=r[t];g(n,`Panel constraints not found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,o)){let t=i-r;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?d:u,n=r[t];g(n,`No panel constraints found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,i)){let t=r-o;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let t=e<0?1:-1,n=e<0?u:d,o=0;for(;;){let e=s[n];if(g(null!=e,`Previous layout not found for panel index ${n}`),o+=I({panelConstraints:r[n],size:100})-e,(n+=t)<0||n>=r.length)break}let l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let t=e<0?d:u;for(;t>=0&&t=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r=0&&n0?n--:n++}}}if(!E(Object.values(a).reduce((e,t)=>t+e,0),100,.1))return o;let f=Object.keys(o);return a.reduce((e,t,r)=>(e[f[r]]=t,e),{})}function O(e){let{mountedGroups:t}=R;for(let[r]of t)if(r.separators.some(t=>t.element===e))return r;throw Error("Could not find parent Group for separator element")}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==L(e[r],t[r]))return!1;return!0}function A({layout:e,panelConstraints:t}){let r=[...Object.values(e)],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!E(n,100)&&r.length>0)for(let e=0;e(e[l[r]]=t,e),{})}function D({groupId:e}){let t=()=>{let{mountedGroups:t}=R;for(let[r,n]of t)if(r.id===e)return{group:r,...n};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:o,layout:l,separatorToPanels:s}=t(),i=A({layout:e,panelConstraints:n});return r?l:(T(l,i)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(o,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:i,separatorToPanels:s})})),i)}}}function $(e){let{mountedGroups:t}=R,r=t.get(e);return g(r,`Mounted Group ${e.id} not found`),r}function F(e,t){let r=O(e),n=$(r),o=r.separators.find(t=>t.element===e);g(o,"Matching separator not found");let l=n.separatorToPanels.get(o);g(l,"Matching panels not found");let s=l.map(e=>r.panels.indexOf(e)),i=D({groupId:r.id}).getLayout(),a=A({layout:P({delta:t,initialLayout:i,panelConstraints:n.derivedPanelConstraints,pivotIndices:s,prevLayout:i,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(i,a)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,layout:a,separatorToPanels:n.separatorToPanels})}))}function _(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=O(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&F(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&F(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&F(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&F(t,-5);break;case"End":e.preventDefault(),F(t,100);break;case"Enter":{e.preventDefault();let r=O(t),{derivedPanelConstraints:n,layout:o,separatorToPanels:l}=$(r),s=r.separators.find(e=>e.element===t);g(s,"Matching separator not found");let i=l.get(s);g(i,"Matching panels not found");let a=i[0],d=n.find(e=>e.panelId===a.id);if(g(d,"Panel metadata not found"),d.collapsible){let e=o[a.id];F(t,(d.collapsedSize===e?r.inMemoryLastExpandedPanelSizes[a.id]??d.minSize:d.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=O(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);g(null!==n,"Index not found");let o=e.shiftKey?n>0?n-1:r.length-1:n+1e,W=()=>{},B=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function V(e){let t=e.length;for(;t--;){let r=e[t];if(g(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(U(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||B.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function K(e){return e&&Number(getComputedStyle(e).zIndex)||0}function H(e){let t=[];for(;e;)t.push(e),e=U(e);return t}function U(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function q(e,r){let n=[];return r.forEach((r,o)=>{if(o.disabled)return;let l=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?10:5,s=S(o),i=function(e,t,r){let n,o={x:1/0,y:1/0};for(let l of t){let t=k(r,l.rect);switch(e){case"horizontal":t.x<=o.x&&(n=l,o=t);break;case"vertical":t.y<=o.y&&(n=l,o=t)}}return n?{distance:o,hitRegion:n}:void 0}(o.orientation,s,{x:e.clientX,y:e.clientY});i&&i.distance.x<=l&&i.distance.y<=l&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!w(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:H(e),b:H(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;g(r,"Stacking order can only be calculated for elements with a common ancestor");let o={a:K(V(n.a)),b:K(V(n.b))};if(o.a===o.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},o=e.length;for(;o--;){let r=e[o];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(o.a-o.b)}(r,e)>0){let o=r;for(;o;){var n;if(o.contains(e))break;if(n=o.getBoundingClientRect(),n.xt.x&&n.yt.y)return!1;o=o.parentElement}}return!0}({groupElement:o.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function Y(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{mountedGroups:t}=R,r=q(e,t),n=new Set,o=new Set,l=new Set,s=new Map,i=!1;r.forEach(e=>{n.add(e.group),e.panels.forEach(e=>{o.add(e)}),e.separator&&(l.add(e.separator),i||(i=!0,e.separator.element.focus()));let r=t.get(e.group);r&&s.set(e.group,r.layout)}),N({interactionState:{hitRegions:r,initialLayoutMap:s,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),r.length&&e.preventDefault()}let Q=new WeakMap;function X(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=Q.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[r]);let{cursorFlags:n,interactionState:o}=R;switch(o.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,o=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":o++}})}if(0===n&&0===o)return null;if("active"===r){let t=(4&e)!=0,r=(8&e)!=0;if(e){if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}}return n>0&&o>0?"move":n>0?"ew-resize":"ns-resize"}({cursorFlags:n,groups:o.hitRegions.map(e=>e.group),state:o.state}),l=`*{cursor: ${e} !important; ${"active"===o.state?"touch-action: none;":""} }`;if(t===l)return;t=l,e?0===r.cssRules.length?r.insertRule(l):r.replaceSync(l):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}Q.set(e,{prevStyle:t,styleSheet:r})}function Z({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:l}){let s=0,i=new Map(o);r.forEach(e=>{let{group:r,groupSize:a}=e,{disableCursor:d,orientation:u,panels:c}=r,f=0;f=l?"horizontal"===u?(t.clientX-l.x)/a*100:(t.clientY-l.y)/a*100:"horizontal"===u?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:g,separatorToPanels:y}=o.get(r)??{defaultLayoutDeferred:!1};if(m&&p&&g&&y){let t=P({delta:f,initialLayout:p,panelConstraints:m,pivotIndices:e.panels.map(e=>c.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==f&&!d)switch(u){case"horizontal":s|=f<0?1:2;break;case"vertical":s|=f<0?4:8}}else{i.set(e.group,{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:t,separatorToPanels:y});let r=e.group.panels.map(({id:e})=>e).join(",");e.group.inMemoryLayouts[r]=t}}}),N({cursorFlags:s,mountedGroups:i}),X(e)}function J(e){let{interactionState:t,mountedGroups:r}=R;"active"===t.state&&Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r})}function ee(e){if(e.defaultPrevented)return;let{interactionState:t,mountedGroups:r}=R;if("active"===t.state){if(0===e.buttons){N(e=>"inactive"===e.interactionState.state?e:{cursorFlags:0,interactionState:{state:"inactive"}}),N(e=>({mountedGroups:new Map(e.mountedGroups)}));return}Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint})}else{let n=q(e,r);0===n.length?"inactive"!==t.state&&N({interactionState:{state:"inactive"}}):N({interactionState:{hitRegions:n,state:"hover"}}),X(e.currentTarget)}}function et(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{interactionState:t}=R;"active"===t.state&&(N({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(X(e.currentTarget),N(e=>({mountedGroups:new Map(e.mountedGroups)})),e.preventDefault()))}function er(e){let t=0,r=0,n={};for(let o of e)if(void 0!==o.defaultSize){t++;let e=j(o.defaultSize);r+=e,n[o.panelId]=e}else n[o.panelId]=void 0;let o=e.length-t;if(0!==o){let t=j((100-r)/o);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let en=new Map;function eo(){let[e,t]=(0,u.useState)({});return[e,(0,u.useCallback)(()=>t({}),[])]}function el(e){let t=(0,u.useId)();return`${e??t}`}let es="u">typeof window?u.useLayoutEffect:u.useEffect;function ei(e){let t=(0,u.useRef)(e);return es(()=>{t.current=e},[e]),(0,u.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return ei(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}let ed=(0,u.createContext)(null);function eu({children:e,className:t,defaultLayout:r,disableCursor:n,disabled:o,elementRef:l,groupRef:s,id:i,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",style:p,...h}){var m;let x,v,w=(0,u.useRef)({onLayoutChange:{},onLayoutChanged:{}}),k=ei(e=>{T(w.current.onLayoutChange,e)||(w.current.onLayoutChange=e,a?.(e))}),z=ei(e=>{T(w.current.onLayoutChanged,e)||(w.current.onLayoutChanged=e,c?.(e))}),E=el(i),L=(0,u.useRef)(null),[I,P]=eo(),O=(0,u.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),$=ea(L,l);x=(0,u.useRef)({getLayout:()=>({}),setLayout:G}),(0,u.useImperativeHandle)(s,()=>x.current,[]),es(()=>{Object.assign(x.current,D({groupId:E}))});let F=ei((e,t)=>{let{interactionState:n,mountedGroups:o}=R;for(let r of o.keys())if(r.id===e){let e=o.get(r);if(e){let o=!1;return"active"===n.state&&(o=n.hitRegions.some(e=>e.group===r)),{flexGrow:e.layout[t]??1,pointerEvents:o?"none":void 0}}}return{flexGrow:r?.[t]??1}}),W=(0,u.useMemo)(()=>({getPanelStyles:F,id:E,orientation:f,registerPanel:e=>{let t=O.current;return t.panels=b(f,[...t.panels,e]),P(),()=>{t.panels=t.panels.filter(t=>t!==e),P()}},registerSeparator:e=>{let t=O.current;return t.separators=b(f,[...t.separators,e]),P(),()=>{t.separators=t.separators.filter(t=>t!==e),P()}}}),[F,E,P,f]),B=(m={defaultLayout:r,disableCursor:n},v=(0,u.useRef)({...m}),es(()=>{for(let e in m)v.current[e]=m[e]},[m]),v.current),V=(0,u.useRef)(null);return es(()=>{let e,t,r,n,l,s,i,a,d,u,c,p,h=L.current;if(null===h)return;let m=O.current,b={defaultLayout:B.defaultLayout,disableCursor:!!B.disableCursor,disabled:!!o,element:h,id:E,inMemoryLastExpandedPanelSizes:O.current.lastExpandedPanelSizes,inMemoryLayouts:O.current.layouts,orientation:f,panels:m.panels,separators:m.separators};V.current=b;let x=(e=!0,g(b.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),t=b.element.ownerDocument.defaultView.ResizeObserver,r=new Set,n=new Set,(l=new t(t=>{for(let r of t){let{borderBoxSize:t,target:n}=r;if(n===b.element){if(e){if(0===y({group:b}))return;N(e=>{let t=e.mountedGroups.get(b);if(t){let r=C(b),n=t.defaultLayoutDeferred?er(r):t.layout,o=A({layout:n,panelConstraints:r});return!t.defaultLayoutDeferred&&T(n,o)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)?e:{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,layout:o,separatorToPanels:t.separatorToPanels})}}return e})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let o=y({group:e}),l="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,s=n.mutableValues.prevSize,i={asPercentage:j(l/o*100),inPixels:l};n.mutableValues.prevSize=i,n.onResize(i,n.id,s)}(b,n,t)}})).observe(b.element),b.panels.forEach(e=>{g(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&l.observe(e.element)}),s=y({group:b}),i=C(b),a=b.panels.map(({id:e})=>e).join(","),(d=b.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(b.panels,d)||(d=void 0)),u=A({layout:b.inMemoryLayouts[a]??d??er(i),panelConstraints:i}),c=S(b),p=b.element.ownerDocument,N(e=>{let t=new Map;return en.set(p,(en.get(p)??0)+1),c.forEach(e=>{e.separator&&t.set(e.separator,e.panels)}),{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:0===s,derivedPanelConstraints:i,layout:u,separatorToPanels:t})}}),b.separators.forEach(e=>{g(!n.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.element.addEventListener("keydown",_)}),1===en.get(p)&&(p.addEventListener("pointerdown",Y,!0),p.addEventListener("pointerleave",J),p.addEventListener("pointermove",ee),p.addEventListener("pointerup",et,!0)),function(){e=!1,en.set(p,Math.max(0,(en.get(p)??0)-1)),N(e=>{let t=new Map(e.mountedGroups);return t.delete(b),{mountedGroups:t}}),b.separators.forEach(e=>{e.element.removeEventListener("keydown",_)}),en.get(p)||(p.removeEventListener("pointerdown",Y,!0),p.removeEventListener("pointerleave",J),p.removeEventListener("pointermove",ee),p.removeEventListener("pointerup",et,!0)),l.disconnect()}),v=R.mountedGroups.get(b);if(v){let{defaultLayoutDeferred:e,derivedPanelConstraints:t,layout:r}=v;!e&&t.length>0&&(k(r),z(r),m.panels.forEach(e=>{e.scheduleUpdate()}))}let w=M.addListener("interactionStateChange",()=>{m.panels.forEach(e=>{e.scheduleUpdate()})}),I=M.addListener("mountedGroupsChange",e=>{let t=e.get(b);if(t){let{defaultLayoutDeferred:e,derivedPanelConstraints:r,layout:n}=t;if(e||0===r.length)return;let{interactionState:o}=R,l="active"!==o.state;k(n),l&&z(n),m.panels.forEach(e=>{e.scheduleUpdate()})}});return()=>{V.current=null,x(),w(),I()}},[o,E,z,k,f,I,B]),(0,u.useEffect)(()=>{let e=V.current;e&&(e.defaultLayout=r,e.disableCursor=!!n)}),(0,d.jsx)(ed.Provider,{value:W,children:(0,d.jsx)("div",{...h,"aria-orientation":f,className:t,"data-group":!0,"data-testid":E,id:E,ref:$,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:"horizontal"===f?"row":"column",flexWrap:"nowrap"},children:e})})}function ec(){let e=(0,u.useContext)(ed);return g(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ef({children:e,className:t,collapsedSize:r="0%",collapsible:n=!1,defaultSize:o,elementRef:l,id:s,maxSize:i="100%",minSize:a="0%",onResize:c,panelRef:f,style:p,...h}){let m=!!s,g=el(s),b=(0,u.useRef)(null),x=ea(b,l),[,v]=eo(),{getPanelStyles:w,id:k,registerPanel:S}=ec(),z=null!==c,C=ei((e,t,r)=>{c?.(e,s,r)});es(()=>{let e=b.current;if(null!==e)return S({element:e,id:g,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?C:void 0,panelConstraints:{collapsedSize:r,collapsible:n,defaultSize:o,maxSize:i,minSize:a},scheduleUpdate:v})},[r,n,o,v,z,g,m,i,a,C,S]),function(e,t){let{id:r}=ec(),n=(0,u.useRef)({collapse:W,expand:W,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:W});(0,u.useImperativeHandle)(t,()=>n.current,[]),es(()=>{Object.assign(n.current,function({groupId:e,panelId:t}){let r=()=>{let{mountedGroups:t}=R;for(let[r,{defaultLayoutDeferred:n,derivedPanelConstraints:o,layout:l,separatorToPanels:s}]of t)if(r.id===e)return{defaultLayoutDeferred:n,derivedPanelConstraints:o,group:r,layout:l,separatorToPanels:s};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},l=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},s=e=>{let n=l();if(e===n)return;let{defaultLayoutDeferred:o,derivedPanelConstraints:s,group:i,layout:a,separatorToPanels:d}=r(),u=i.panels.findIndex(e=>e.id===t),c=u===i.panels.length-1,f=A({layout:P({delta:c?n-e:e-n,initialLayout:a,panelConstraints:s,pivotIndices:c?[u-1,u]:[u,u+1],prevLayout:a,trigger:"imperative-api"}),panelConstraints:s});T(a,f)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(i,{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:f,separatorToPanels:d})}))};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=o(),i=l();e&&i!==t&&(r.expandToSize=i,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:i}=o(),a=l();if(e&&a===t){let e=i.expandToSize??r;0===e&&(e=1),s(e)}},getSize:()=>{let{group:e}=r(),t=l(),{element:n}=o();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=l();return e&&E(t,r)},resize:e=>{if(l()!==e){let t;switch(typeof e){case"number":{let{group:n}=r();t=j(e/y({group:n})*100);break}case"string":t=parseFloat(e)}s(t)}}}}({groupId:r,panelId:e}))})}(g,f);let M=w(k,g);return(0,d.jsx)("div",{...h,"data-panel":!0,"data-testid":g,id:g,ref:x,style:{...ep,flexBasis:0,flexShrink:1,overflow:"hidden",...M},children:(0,d.jsx)("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}eu.displayName="Group",ef.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function eh({children:e,className:t,elementRef:r,id:n,style:o,...l}){let s=el(n),[i,a]=(0,u.useState)({}),[c,f]=(0,u.useState)("inactive"),p=(0,u.useRef)(null),h=ea(p,r),{id:m,orientation:g,registerSeparator:y}=ec();return es(()=>{let e=p.current;if(null!==e){let t={element:e,id:s},r=y(t),n=M.addListener("interactionStateChange",e=>{f("inactive"!==e.state&&e.hitRegions.some(e=>e.separator===t)?e.state:"inactive")}),o=M.addListener("mountedGroupsChange",e=>{e.forEach(({derivedPanelConstraints:e,layout:r,separatorToPanels:n},o)=>{if(o.id===m){let l=n.get(t);if(l){let t=l[0],n=o.panels.indexOf(t);a(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let o,l,s=e[r],i=t.find(e=>e.panelId===r);if(i){let a=i.maxSize,d=l=i.collapsible?i.collapsedSize:i.minSize,u=[n,n+1];l=A({layout:P({delta:d-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r],o=A({layout:P({delta:a-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r]}return{valueControls:r,valueMax:o,valueMin:l,valueNow:s}}({layout:r,panelConstraints:e,panelId:t.id,panelIndex:n}))}}})});return()=>{n(),o(),r()}}},[m,s,y]),(0,d.jsx)("div",{...l,"aria-controls":i.valueControls,"aria-orientation":"horizontal"===g?"vertical":"horizontal","aria-valuemax":i.valueMax,"aria-valuemin":i.valueMin,"aria-valuenow":i.valueNow,children:e,className:t,"data-separator":c,"data-testid":s,id:s,ref:h,role:"separator",style:{flexBasis:"auto",...o,flexGrow:0,flexShrink:0},tabIndex:0})}function em(){for(var e,t,r=0,n="",o=arguments.length;r({nextPart:e,validators:t,classGroupId:r}),ey=[],eb=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],o=r.nextPart.get(n);if(o){let r=eb(e,t+1,o);if(r)return r}let l=r.validators;if(null===l)return;let s=0===t?e.join("-"):e.slice(t).join("-"),i=l.length;for(let e=0;e{let r=eg();for(let n in e)ev(e[n],r,n,t);return r},ev=(e,t,r,n)=>{let o=e.length;for(let l=0;l{"string"==typeof e?ek(e,t,r):"function"==typeof e?eS(e,t,r,n):ez(e,t,r,n)},ek=(e,t,r)=>{(""===e?t:ej(t,e)).classGroupId=r},eS=(e,t,r,n)=>{eC(e)?ev(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},ez=(e,t,r,n)=>{let o=Object.entries(e),l=o.length;for(let e=0;e{let r=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,eE=[],eR=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),eM=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n{let t=t=>t[e]||eL;return t.isThemeGetter=!0,t},eP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eO=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,eA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eD=/\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$/,e$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eF=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e_=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eG=e=>eT.test(e),eW=e=>!!e&&!Number.isNaN(Number(e)),eB=e=>!!e&&Number.isInteger(Number(e)),eV=e=>e.endsWith("%")&&eW(e.slice(0,-1)),eK=e=>eA.test(e),eH=()=>!0,eU=e=>eD.test(e)&&!e$.test(e),eq=()=>!1,eY=e=>eF.test(e),eQ=e=>e_.test(e),eX=e=>!eJ(e)&&!e3(e),eZ=e=>tr(e,ts,eq),eJ=e=>eP.test(e),e0=e=>tr(e,ti,eU),e1=e=>tr(e,ta,eW),e2=e=>tr(e,to,eq),e5=e=>tr(e,tl,eQ),e4=e=>tr(e,tu,eY),e3=e=>eO.test(e),e6=e=>tn(e,ti),e8=e=>tn(e,td),e9=e=>tn(e,to),e7=e=>tn(e,ts),te=e=>tn(e,tl),tt=e=>tn(e,tu,!0),tr=(e,t,r)=>{let n=eP.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},tn=(e,t,r=!1)=>{let n=eO.exec(e);return!!n&&(n[1]?t(n[1]):r)},to=e=>"position"===e||"percentage"===e,tl=e=>"image"===e||"url"===e,ts=e=>"length"===e||"size"===e||"bg-size"===e,ti=e=>"length"===e,ta=e=>"number"===e,td=e=>"family-name"===e,tu=e=>"shadow"===e,tc=((e,...t)=>{let r,n,o,l,s=e=>{let t=n(e);if(t)return t;let l=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:l}=t,s=[],i=e.trim().split(eM),a="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{isExternal:d,modifiers:u,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:p}=r(t);if(d){a=t+(a.length>0?" "+a:a);continue}let h=!!p,m=n(h?f.substring(0,p):f);if(!m){if(!h||!(m=n(f))){a=t+(a.length>0?" "+a:a);continue}h=!1}let g=0===u.length?"":1===u.length?u[0]:l(u).join(":"),y=c?g+"!":g,b=y+m;if(s.indexOf(b)>-1)continue;s.push(b);let x=o(m,h);for(let e=0;e0?" "+a:a)}return a})(e,r);return o(e,l),l};return l=i=>{var a;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,l)=>{r[o]=l,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((a=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,l=0,s=e.length;for(let i=0;il?t-l:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):eR(eE,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(a),sortModifiers:(d=new Map,a.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n0&&(r.sort(),t.push(...r),r=[]),t.push(o)):r.push(o)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return ex(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,o;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return eb(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=r[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tl(((...e)=>{let t,r,n=0,o="";for(;n{let e=eI("color"),t=eI("font"),r=eI("text"),n=eI("font-weight"),o=eI("tracking"),l=eI("leading"),s=eI("breakpoint"),i=eI("container"),a=eI("spacing"),d=eI("radius"),u=eI("shadow"),c=eI("inset-shadow"),f=eI("text-shadow"),p=eI("drop-shadow"),h=eI("blur"),m=eI("perspective"),g=eI("aspect"),y=eI("ease"),b=eI("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...v(),e3,eJ],k=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],z=()=>[e3,eJ,a],j=()=>[eG,"full","auto",...z()],C=()=>[eB,"none","subgrid",e3,eJ],E=()=>["auto",{span:["full",eB,e3,eJ]},eB,e3,eJ],R=()=>[eB,"auto",e3,eJ],M=()=>["auto","min","max","fr",e3,eJ],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],L=()=>["start","end","center","stretch","center-safe","end-safe"],I=()=>["auto",...z()],P=()=>[eG,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],O=()=>[e,e3,eJ],T=()=>[...v(),e9,e2,{position:[e3,eJ]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",e7,eZ,{size:[e3,eJ]}],$=()=>[eV,e6,e0],F=()=>["","none","full",d,e3,eJ],_=()=>["",eW,e6,e0],G=()=>["solid","dashed","dotted","double"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>[eW,eV,e9,e2],V=()=>["","none",h,e3,eJ],K=()=>["none",eW,e3,eJ],H=()=>["none",eW,e3,eJ],U=()=>[eW,e3,eJ],q=()=>[eG,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eK],breakpoint:[eK],color:[eH],container:[eK],"drop-shadow":[eK],ease:["in","out","in-out"],font:[eX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eK],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eK],shadow:[eK],spacing:["px",eW],text:[eK],"text-shadow":[eK],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",eG,eJ,e3,g]}],container:["container"],columns:[{columns:[eW,eJ,e3,i]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"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:w()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[eB,"auto",e3,eJ]}],basis:[{basis:[eG,"full","auto",i,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eW,eG,"auto","initial","none",eJ]}],grow:[{grow:["",eW,e3,eJ]}],shrink:[{shrink:["",eW,e3,eJ]}],order:[{order:[eB,"first","last","none",e3,eJ]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":R()}],"col-end":[{"col-end":R()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":R()}],"row-end":[{"row-end":R()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M()}],"auto-rows":[{"auto-rows":M()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...L(),"normal"]}],"justify-self":[{"justify-self":["auto",...L()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...L(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...L(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...L(),"baseline"]}],"place-self":[{"place-self":["auto",...L()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:I()}],mx:[{mx:I()}],my:[{my:I()}],ms:[{ms:I()}],me:[{me:I()}],mt:[{mt:I()}],mr:[{mr:I()}],mb:[{mb:I()}],ml:[{ml:I()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],w:[{w:[i,"screen",...P()]}],"min-w":[{"min-w":[i,"screen","none",...P()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[s]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",r,e6,e0]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e3,e1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eV,eJ]}],"font-family":[{font:[e8,eJ,t]}],"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:[o,e3,eJ]}],"line-clamp":[{"line-clamp":[eW,"none",e3,e1]}],leading:[{leading:[l,...z()]}],"list-image":[{"list-image":["none",e3,eJ]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e3,eJ]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:[eW,"from-font","auto",e3,e0]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[eW,"auto",e3,eJ]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e3,eJ]}],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",e3,eJ]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},eB,e3,eJ],radial:["",e3,eJ],conic:[eB,e3,eJ]},te,e5]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:$()}],"gradient-via-pos":[{via:$()}],"gradient-to-pos":[{to:$()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:_()}],"border-w-x":[{"border-x":_()}],"border-w-y":[{"border-y":_()}],"border-w-s":[{"border-s":_()}],"border-w-e":[{"border-e":_()}],"border-w-t":[{"border-t":_()}],"border-w-r":[{"border-r":_()}],"border-w-b":[{"border-b":_()}],"border-w-l":[{"border-l":_()}],"divide-x":[{"divide-x":_()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":_()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...G(),"hidden","none"]}],"divide-style":[{divide:[...G(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[...G(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eW,e3,eJ]}],"outline-w":[{outline:["",eW,e6,e0]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",u,tt,e4]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",c,tt,e4]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:_()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[eW,e0]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":_()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",f,tt,e4]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[eW,e3,eJ]}],"mix-blend":[{"mix-blend":[...W(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":W()}],"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":[eW]}],"mask-image-linear-from-pos":[{"mask-linear-from":B()}],"mask-image-linear-to-pos":[{"mask-linear-to":B()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":B()}],"mask-image-t-to-pos":[{"mask-t-to":B()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":B()}],"mask-image-r-to-pos":[{"mask-r-to":B()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":B()}],"mask-image-b-to-pos":[{"mask-b-to":B()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":B()}],"mask-image-l-to-pos":[{"mask-l-to":B()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":B()}],"mask-image-x-to-pos":[{"mask-x-to":B()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":B()}],"mask-image-y-to-pos":[{"mask-y-to":B()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[e3,eJ]}],"mask-image-radial-from-pos":[{"mask-radial-from":B()}],"mask-image-radial-to-pos":[{"mask-radial-to":B()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"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":v()}],"mask-image-conic-pos":[{"mask-conic":[eW]}],"mask-image-conic-from-pos":[{"mask-conic-from":B()}],"mask-image-conic-to-pos":[{"mask-conic-to":B()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e3,eJ]}],filter:[{filter:["","none",e3,eJ]}],blur:[{blur:V()}],brightness:[{brightness:[eW,e3,eJ]}],contrast:[{contrast:[eW,e3,eJ]}],"drop-shadow":[{"drop-shadow":["","none",p,tt,e4]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",eW,e3,eJ]}],"hue-rotate":[{"hue-rotate":[eW,e3,eJ]}],invert:[{invert:["",eW,e3,eJ]}],saturate:[{saturate:[eW,e3,eJ]}],sepia:[{sepia:["",eW,e3,eJ]}],"backdrop-filter":[{"backdrop-filter":["","none",e3,eJ]}],"backdrop-blur":[{"backdrop-blur":V()}],"backdrop-brightness":[{"backdrop-brightness":[eW,e3,eJ]}],"backdrop-contrast":[{"backdrop-contrast":[eW,e3,eJ]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eW,e3,eJ]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eW,e3,eJ]}],"backdrop-invert":[{"backdrop-invert":["",eW,e3,eJ]}],"backdrop-opacity":[{"backdrop-opacity":[eW,e3,eJ]}],"backdrop-saturate":[{"backdrop-saturate":[eW,e3,eJ]}],"backdrop-sepia":[{"backdrop-sepia":["",eW,e3,eJ]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e3,eJ]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eW,"initial",e3,eJ]}],ease:[{ease:["linear","initial",y,e3,eJ]}],delay:[{delay:[eW,e3,eJ]}],animate:[{animate:["none",b,e3,eJ]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,e3,eJ]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:U()}],"skew-x":[{"skew-x":U()}],"skew-y":[{"skew-y":U()}],transform:[{transform:[e3,eJ,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q()}],"translate-x":[{"translate-x":q()}],"translate-y":[{"translate-y":q()}],"translate-z":[{"translate-z":q()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"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",e3,eJ]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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",e3,eJ]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[eW,e6,e0,e1]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tf(...e){return tc(em(e))}let tp=({className:e,...t})=>(0,d.jsx)(eu,{className:tf("flex h-full w-full data-[orientation=vertical]:flex-col",e),...t}),th=({withHandle:e,className:t,...r})=>(0,d.jsx)(eh,{className:tf("relative flex w-[3px] items-center justify-center bg-border/50 hover:bg-primary/50 transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-2 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring data-[orientation=vertical]:h-[3px] data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-2 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t),...r,children:e&&(0,d.jsx)("div",{className:"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-secondary",children:(0,d.jsx)(m,{className:"h-3 w-3 text-muted-foreground"})})});var tm=e.i(69941);function tg(e,t,r){let n,o=r.initialDeps??[];function l(){var l,s,i,a;let d,u;r.key&&(null==(l=r.debug)?void 0:l.call(r))&&(d=Date.now());let c=e();if(!(c.length!==o.length||c.some((e,t)=>o[t]!==e)))return n;if(o=c,r.key&&(null==(s=r.debug)?void 0:s.call(r))&&(u=Date.now()),n=t(...c),r.key&&(null==(i=r.debug)?void 0:i.call(r))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-u)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{o=e},l}function tb(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(39057);let ty=e=>{let{offsetWidth:t,offsetHeight:r}=e;return{width:t,height:r}},tv=e=>e,tx=e=>{let t=Math.max(e.startIndex-e.overscan,0),r=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=r;e++)n.push(e);return n},tw=(e,t)=>{let r=e.scrollElement;if(!r)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:r,height:n}=e;t({width:Math.round(r),height:Math.round(n)})};if(o(ty(r)),!n.ResizeObserver)return()=>{};let l=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(ty(r))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return l.observe(r,{box:"border-box"}),()=>{l.unobserve(r)}},tk={passive:!0},tS="undefined"==typeof window||"onscrollend"in window,tz=(e,t)=>{var r,n;let o,l=e.scrollElement;if(!l)return;let i=e.targetWindow;if(!i)return;let s=0,a=e.options.useScrollendEvent&&tS?()=>void 0:(r=()=>{t(s,!1)},n=e.options.isScrollingResetDelay,function(...e){i.clearTimeout(o),o=i.setTimeout(()=>r.apply(this,e),n)}),d=r=>()=>{let{horizontal:n,isRtl:o}=e.options;s=n?l.scrollLeft*(o&&-1||1):l.scrollTop,a(),t(s,r)},u=d(!0),c=d(!1);c(),l.addEventListener("scroll",u,tk);let f=e.options.useScrollendEvent&&tS;return f&&l.addEventListener("scrollend",c,tk),()=>{l.removeEventListener("scroll",u),f&&l.removeEventListener("scrollend",c)}},tj=(e,t,r)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[r.options.horizontal?"inlineSize":"blockSize"])}return e[r.options.horizontal?"offsetWidth":"offsetHeight"]},tC=(e,{adjustments:t=0,behavior:r},n)=>{var o,l;null==(l=null==(o=n.scrollElement)?void 0:o.scrollTo)||l.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:r})};class tE{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var r;null==(r=t())||r.disconnect(),e=null},observe:e=>{var r;return null==(r=t())?void 0:r.observe(e,{box:"border-box"})},unobserve:e=>{var r;return null==(r=t())?void 0:r.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,r])=>{void 0===r&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tv,rangeExtractor:tx,onChange:()=>{},measureElement:tj,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,r;null==(r=(t=this.options).onChange)||r.call(t,this,e)},this.maybeNotify=tg(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let r=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(r.has(t.lane))continue;let l=n.get(t.lane);if(null==l||t.end>l.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=tg(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,r,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=tg(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o},l)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let i=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let s=this.measurementsCache.slice(0,i);for(let o=i;othis.options.debug}),this.calculateRange=tg(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,r,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:r,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let l=tM(0,o,t=>e[t].start,r),i=l;if(1===n)for(;i1){let s=Array(n).fill(0);for(;ie=0&&a.some(e=>e>=r);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%n),i=Math.min(o,i+(n-1-i%n))}return{startIndex:l,endIndex:i}}({measurements:e,outerSize:t,scrollOffset:r,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=tg(()=>{let e=null,t=null,r=this.calculateRange();return r&&(e=r.startIndex,t=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,r,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,r=e.getAttribute(t);return r?parseInt(r,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let r=this.indexFromElement(e),n=this.measurementsCache[r];if(!n)return;let o=n.key,l=this.elementsCache.get(o);l!==e&&(l&&this.observer.unobserve(l),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(r,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let r=this.measurementsCache[e];if(!r)return;let n=t-(this.itemSizeCache.get(r.key)??r.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(r,n,this):r.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=tg(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let r=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return tb(t[tM(0,t.length-1,e=>tb(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,r=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(r-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.measurementsCache[e];if(!r)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(r.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(r.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let l="end"===t?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,r.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:r})},this.scrollToIndex=(e,{align:t="auto",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,i]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),r=this.getOffsetForIndex(e,i);r?1.01>Math.abs(r[0]-t)||l(i):console.warn("Failed to get offset for index:",e)})},l=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,r=this.getMeasurements();if(0===r.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=r[r.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=r.length-1;for(;n>=0&&e.some(e=>null===e);){let t=r[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:r})=>{this.options.scrollToFn(e,{behavior:r,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let tM=(e,t,r,n)=>{for(;e<=t;){let o=(e+t)/2|0,l=r(o);if(ln))return o;t=o-1}}return e>0?e-1:0},tR="undefined"!=typeof document?u.useLayoutEffect:u.useEffect,tN=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,l={setState:n,getState:o,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(n,o,l);return l},tI=e=>{let t=e?tN(e):tN,r=e=>(function(e,t=e=>e){let r=u.default.useSyncExternalStore(e.subscribe,u.default.useCallback(()=>t(e.getState()),[e,t]),u.default.useCallback(()=>t(e.getInitialState()),[e,t]));return u.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},tL=(n=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,setSamples:(t,r)=>e({samples:t,totalSamples:r}),appendSamples:t=>e(e=>({samples:[...e.samples,...t]})),addSamplesIfMissing:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t}),viewMode:"hyperbolic",setViewMode:t=>e({viewMode:t}),selectedIds:new Set,isLassoSelection:!1,setSelectedIds:t=>e({selectedIds:t,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let r=new Set(e.selectedIds);return r.has(t)?r.delete(t):r.add(t),{selectedIds:r,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let r=new Set(e.selectedIds);return t.forEach(e=>r.add(e)),{selectedIds:r,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,r,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:r,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?tI(n):tI;function tP({children:e,className:t}){return(0,d.jsx)("div",{className:tf("flex flex-col h-full bg-card rounded-sm overflow-hidden border border-border",t),children:e})}function tO({children:e,className:t}){return(0,d.jsx)("div",{className:tf("px-2 py-1.5 text-[11px] text-muted-foreground/70 border-t border-border bg-card font-mono",t),children:e})}function tT({icon:e,title:t,subtitle:r,children:n,className:o}){return(0,d.jsxs)("div",{className:tf("h-9 min-h-[36px] flex items-center justify-between px-2 border-b border-border bg-secondary select-none",o),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[e&&(0,d.jsx)("span",{className:"flex-shrink-0 w-4 h-4 text-muted-foreground",children:e}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:t}),r&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:r})]}),n&&(0,d.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let tA=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"})]}),tD=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"16",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"6",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2"})]}),t$=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-5 h-5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),tF=()=>(0,d.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})});function tG({samples:e,onLoadMore:t,hasMore:r}){let n=(0,u.useRef)(null),{selectedIds:o,isLassoSelection:l,lassoTotal:i,toggleSelection:s,addToSelection:a,setHoveredId:c,hoveredId:f}=tL(),[p,h]=(0,u.useState)(4);(0,u.useEffect)(()=>{let e=()=>{n.current&&h(Math.max(1,Math.floor((n.current.clientWidth-16+8)/208)))};e();let t=new ResizeObserver(e);return n.current&&t.observe(n.current),()=>t.disconnect()},[]);let m=function(e){let t=u.useReducer(()=>({}),{})[1],r={...e,onChange:(r,n)=>{var o;n?(0,tm.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,r,n)}},[n]=u.useState(()=>new tE(r));return n.setOptions(r),tR(()=>n._didMount(),[]),tR(()=>n._willUpdate()),n}({observeElementRect:tw,observeElementOffset:tz,scrollToFn:tC,...{count:Math.ceil(e.length/p),getScrollElement:()=>n.current,estimateSize:()=>208,overscan:5,getItemKey:(0,u.useCallback)(t=>{let r=t*p;return e.slice(r,r+p).map(e=>e.id).join("-")||`row-${t}`},[e,p])}});(0,u.useEffect)(()=>{let e=n.current;if(!e||!t||!r)return;let o=()=>{let{scrollTop:r,scrollHeight:n,clientHeight:o}=e;n-r-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,r]),(0,u.useEffect)(()=>{m.measure()},[o,l,m]);let g=(0,u.useCallback)((t,r)=>{if(r.metaKey||r.ctrlKey)s(t.id);else if(r.shiftKey&&o.size>0){let r=Array.from(o),n=r[r.length-1],l=e.findIndex(e=>e.id===n),i=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==i){let t=Math.min(l,i),r=Math.max(l,i);a(e.slice(t,r+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),tL.getState().setSelectedIds(e)}},[e,o,s,a]),b=m.getVirtualItems();return(0,d.jsxs)(tP,{children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tA,{}),title:"Samples",subtitle:l?`${i} selected`:o.size>0?`${o.size} selected`:`${e.length} items`}),(0,d.jsx)("div",{ref:n,className:"flex-1 overflow-auto p-2",children:(0,d.jsx)("div",{style:{height:`${m.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(t=>{let r=t.index*p,n=e.slice(r,r+p);return(0,d.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"200px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=!!l||o.has(e.id),r=f===e.id;return(0,d.jsxs)("div",{className:` + color: hsl(${Math.max(0,Math.min(120-120*n,120))}deg 100% 31%);`,null==r?void 0:r.key)}return null==(a=null==r?void 0:r.onChange)||a.call(r,n),n}return l.updateDeps=e=>{o=e},l}function ty(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(39057);let tb=e=>{let{offsetWidth:t,offsetHeight:r}=e;return{width:t,height:r}},tx=e=>e,tv=e=>{let t=Math.max(e.startIndex-e.overscan,0),r=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=r;e++)n.push(e);return n},tw=(e,t)=>{let r=e.scrollElement;if(!r)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:r,height:n}=e;t({width:Math.round(r),height:Math.round(n)})};if(o(tb(r)),!n.ResizeObserver)return()=>{};let l=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(tb(r))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return l.observe(r,{box:"border-box"}),()=>{l.unobserve(r)}},tk={passive:!0},tS="undefined"==typeof window||"onscrollend"in window,tz=(e,t)=>{var r,n;let o,l=e.scrollElement;if(!l)return;let s=e.targetWindow;if(!s)return;let i=0,a=e.options.useScrollendEvent&&tS?()=>void 0:(r=()=>{t(i,!1)},n=e.options.isScrollingResetDelay,function(...e){s.clearTimeout(o),o=s.setTimeout(()=>r.apply(this,e),n)}),d=r=>()=>{let{horizontal:n,isRtl:o}=e.options;i=n?l.scrollLeft*(o&&-1||1):l.scrollTop,a(),t(i,r)},u=d(!0),c=d(!1);c(),l.addEventListener("scroll",u,tk);let f=e.options.useScrollendEvent&&tS;return f&&l.addEventListener("scrollend",c,tk),()=>{l.removeEventListener("scroll",u),f&&l.removeEventListener("scrollend",c)}},tj=(e,t,r)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[r.options.horizontal?"inlineSize":"blockSize"])}return e[r.options.horizontal?"offsetWidth":"offsetHeight"]},tC=(e,{adjustments:t=0,behavior:r},n)=>{var o,l;null==(l=null==(o=n.scrollElement)?void 0:o.scrollTo)||l.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:r})};class tE{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var r;null==(r=t())||r.disconnect(),e=null},observe:e=>{var r;return null==(r=t())?void 0:r.observe(e,{box:"border-box"})},unobserve:e=>{var r;return null==(r=t())?void 0:r.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,r])=>{void 0===r&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tx,rangeExtractor:tv,onChange:()=>{},measureElement:tj,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,r;null==(r=(t=this.options).onChange)||r.call(t,this,e)},this.maybeNotify=tg(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let r=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(r.has(t.lane))continue;let l=n.get(t.lane);if(null==l||t.end>l.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=tg(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,r,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=tg(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o},l)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let i=this.measurementsCache.slice(0,s);for(let o=s;othis.options.debug}),this.calculateRange=tg(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,r,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:r,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let l=tR(0,o,t=>e[t].start,r),s=l;if(1===n)for(;s1){let i=Array(n).fill(0);for(;se=0&&a.some(e=>e>=r);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%n),s=Math.min(o,s+(n-1-s%n))}return{startIndex:l,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:r,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=tg(()=>{let e=null,t=null,r=this.calculateRange();return r&&(e=r.startIndex,t=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,r,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,r=e.getAttribute(t);return r?parseInt(r,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let r=this.indexFromElement(e),n=this.measurementsCache[r];if(!n)return;let o=n.key,l=this.elementsCache.get(o);l!==e&&(l&&this.observer.unobserve(l),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(r,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let r=this.measurementsCache[e];if(!r)return;let n=t-(this.itemSizeCache.get(r.key)??r.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(r,n,this):r.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=tg(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let r=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return ty(t[tR(0,t.length-1,e=>ty(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,r=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(r-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.measurementsCache[e];if(!r)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(r.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(r.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let l="end"===t?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,r.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:r})},this.scrollToIndex=(e,{align:t="auto",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,s]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),r=this.getOffsetForIndex(e,s);r?1.01>Math.abs(r[0]-t)||l(s):console.warn("Failed to get offset for index:",e)})},l=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,r=this.getMeasurements();if(0===r.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=r[r.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=r.length-1;for(;n>=0&&e.some(e=>null===e);){let t=r[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:r})=>{this.options.scrollToFn(e,{behavior:r,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let tR=(e,t,r,n)=>{for(;e<=t;){let o=(e+t)/2|0,l=r(o);if(ln))return o;t=o-1}}return e>0?e-1:0},tM="undefined"!=typeof document?u.useLayoutEffect:u.useEffect,tN=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,l={setState:n,getState:o,getInitialState:()=>s,subscribe:e=>(r.add(e),()=>r.delete(e))},s=t=e(n,o,l);return l},tL=e=>{let t=e?tN(e):tN,r=e=>(function(e,t=e=>e){let r=u.default.useSyncExternalStore(e.subscribe,u.default.useCallback(()=>t(e.getState()),[e,t]),u.default.useCallback(()=>t(e.getInitialState()),[e,t]));return u.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},tI=(n=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,samplesLoaded:0,setSamples:(t,r)=>e({samples:t,totalSamples:r,samplesLoaded:t.length}),appendSamples:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id)),o=e.samplesLoaded+t.length;return 0===n.length?{samplesLoaded:o}:{samples:[...e.samples,...n],samplesLoaded:o}}),addSamplesIfMissing:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t,currentLayoutKey:t?.layout_key??null}),currentLayoutKey:null,geometry:"euclidean",setGeometry:t=>e({geometry:t}),selectedIds:new Set,isLassoSelection:!1,selectionSource:null,setSelectedIds:(t,r="grid")=>e({selectedIds:t,selectionSource:t.size>0?r:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let r=new Set(e.selectedIds);return r.has(t)?r.delete(t):r.add(t),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let r=new Set(e.selectedIds);return t.forEach(e=>r.add(e)),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,selectionSource:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,selectionSource:"lasso",lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,r,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:r,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,selectionSource:null,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?tL(n):tL;function tP({children:e,className:t}){return(0,d.jsx)("div",{className:tf("flex flex-col h-full bg-card rounded-sm overflow-hidden border border-border",t),children:e})}function tO({children:e,className:t}){return(0,d.jsx)("div",{className:tf("px-2 py-1.5 text-[11px] text-muted-foreground/70 border-t border-border bg-card font-mono",t),children:e})}function tT({icon:e,title:t,subtitle:r,children:n,className:o}){return(0,d.jsxs)("div",{className:tf("h-9 min-h-[36px] flex items-center justify-between px-2 border-b border-border bg-secondary select-none",o),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[e&&(0,d.jsx)("span",{className:"flex-shrink-0 w-4 h-4 text-muted-foreground",children:e}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:t}),r&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:r})]}),n&&(0,d.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let tA=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"})]}),tD=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"16",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"6",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2"})]}),t$=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-5 h-5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),tF=()=>(0,d.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})}),t_=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1"}),(0,d.jsx)("line",{x1:"2",y1:"8",x2:"14",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"14"})]}),tG=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"3",ry:"5.5"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"5.5",ry:"3"})]});function tW({samples:e,onLoadMore:t,hasMore:r}){let n=(0,u.useRef)(null),{selectedIds:o,isLassoSelection:l,selectionSource:s,lassoTotal:i,toggleSelection:a,addToSelection:c,setHoveredId:f,hoveredId:p}=tI(),[h,m]=(0,u.useState)(4);(0,u.useEffect)(()=>{let e=()=>{n.current&&m(Math.max(1,Math.floor((n.current.clientWidth-16+8)/208)))};e();let t=new ResizeObserver(e);return n.current&&t.observe(n.current),()=>t.disconnect()},[]);let g=function(e){let t=u.useReducer(()=>({}),{})[1],r={...e,onChange:(r,n)=>{var o;n?(0,tm.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,r,n)}},[n]=u.useState(()=>new tE(r));return n.setOptions(r),tM(()=>n._didMount(),[]),tM(()=>n._willUpdate()),n}({observeElementRect:tw,observeElementOffset:tz,scrollToFn:tC,...{count:Math.ceil(e.length/h),getScrollElement:()=>n.current,estimateSize:()=>208,overscan:5,getItemKey:(0,u.useCallback)(t=>{let r=t*h;return e.slice(r,r+h).map(e=>e.id).join("-")||`row-${t}`},[e,h])}});(0,u.useEffect)(()=>{let e=n.current;if(!e||!t||!r)return;let o=()=>{let{scrollTop:r,scrollHeight:n,clientHeight:o}=e;n-r-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,r]),(0,u.useEffect)(()=>{g.measure()},[o,l,g]),(0,u.useEffect)(()=>{if(!l&&"scatter"===s&&0!==o.size)try{g.scrollToIndex(0,{align:"start"})}catch{n.current?.scrollTo({top:0})}},[l,o,s,g]);let y=(0,u.useCallback)((t,r)=>{if(r.metaKey||r.ctrlKey)a(t.id);else if(r.shiftKey&&o.size>0){let r=Array.from(o),n=r[r.length-1],l=e.findIndex(e=>e.id===n),s=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==s){let t=Math.min(l,s),r=Math.max(l,s);c(e.slice(t,r+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),tI.getState().setSelectedIds(e,"grid")}},[e,o,a,c]),b=g.getVirtualItems();return(0,d.jsxs)(tP,{children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tA,{}),title:"Samples",subtitle:l?`${i} selected`:o.size>0?`${o.size} selected`:`${e.length} items`}),(0,d.jsx)("div",{ref:n,className:"flex-1 overflow-auto p-2",children:(0,d.jsx)("div",{style:{height:`${g.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(t=>{let r=t.index*h,n=e.slice(r,r+h);return(0,d.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"200px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=!!l||o.has(e.id),r=p===e.id;return(0,d.jsxs)("div",{className:` relative flex-1 rounded-md overflow-hidden cursor-pointer transition-all duration-150 ease-out ${t?"ring-2 ring-primary":""} ${r?"ring-2 ring-primary/50":""} - `,onClick:t=>g(e,t),onMouseEnter:()=>c(e.id),onMouseLeave:()=>c(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(tF,{})})]},e.id)}),Array.from({length:p-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function t_(e,t=[]){let r=[],n=()=>{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let i=t=>{let{scope:r,children:n,...i}=t,s=r?.[e]?.[l]||o,a=u.useMemo(()=>i,Object.values(i));return(0,d.jsx)(s.Provider,{value:a,children:n})};return i.displayName=t+"Provider",[i,function(r,i){let s=i?.[e]?.[l]||o,a=u.useContext(s);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tW(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tV(...e){return t=>{let r=!1,n=e.map(e=>{let n=tW(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,i,s=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(i=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),i=o.find(tK);if(i){let e=i.props.children,r=o.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,i),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?s:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tq(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function tY(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),i=l.find(tX);if(i){let e=i.props.children,r=l.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var tQ=Symbol("radix.slottable");function tX(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===tQ}var tZ=new WeakMap;function tJ(e,t){var r,n;let o,l,i;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let s=(r=e,n=t,o=r.length,(i=(l=t0(n))>=0?l:o+l)<0||i>=o?-1:i);return -1===s?void 0:e[s]}function t0(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],tZ.set(this,!0)}set(e,t){return tZ.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,i=t0(e),s=i>=0?i:l+i,a=s<0||s>=l?-1:s;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;i<0&&s++;let u=[...this.#t],c=!1;for(let e=s;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t1=globalThis?.document?u.useLayoutEffect:()=>{},t2=u[" useId ".trim().toString()]||(()=>void 0),t5=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t4=u[" useInsertionEffect ".trim().toString()]||t1;function t3({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,i]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t4(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),s=void 0!==e,a=s?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==s){let t=s?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=s},[s,n])}return[a,u.useCallback(t=>{if(s){let r="function"==typeof t?t(e):t;r!==e&&i.current?.(r)}else l(t)},[s,e,l,i])]}Symbol("RADIX:SYNC_STATE");var t6=u.createContext(void 0);function t8(e){let t=u.useContext(t6);return e||t||"ltr"}var t9="rovingFocusGroup.onEntryFocus",t7={bubbles:!1,cancelable:!0},re="RovingFocusGroup",[rt,rr,rn]=function(e){let t=e+"CollectionProvider",[r,n]=t_(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};i.displayName=t;let s=e+"CollectionSlot",a=tY(s),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tB(t,l(s,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=s;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=tY(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,i=u.default.useRef(null),s=tB(t,i),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(i,{ref:i,...o}),()=>void a.itemMap.delete(i))),(0,d.jsx)(h,{...{[p]:""},ref:s,children:n})});return m.displayName=f,[{Provider:i,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(re),[ro,rl]=t_(re,[rn]),[ri,rs]=ro(re),ra=u.forwardRef((e,t)=>(0,d.jsx)(rt.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rt.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rd,{...e,ref:t})})}));ra.displayName=re;var rd=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:i,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tB(t,m),b=t8(i),[y,v]=t3({prop:s,defaultProp:a??null,onChange:c,caller:re}),[x,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=rr(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(t9,k),()=>e.removeEventListener(t9,k)},[k]),(0,d.jsx)(ri,{scope:n,orientation:o,dir:b,loop:l,currentTabStopId:y,onItemFocus:u.useCallback(e=>v(e),[v]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tU.div,{tabIndex:x||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tq(e.onMouseDown,()=>{z.current=!0}),onFocus:tq(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!x){let t=new CustomEvent(t9,t7);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rp([e.find(e=>e.active),e.find(e=>e.id===y),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tq(e.onBlur,()=>w(!1))})})}),ru="RovingFocusGroupItem",rc=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:i,...s}=e,a=function(e){let[t,r]=u.useState(t2());return t1(()=>{r(e=>e??String(t5++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rs(ru,r),p=f.currentTabStopId===c,h=rr(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:b}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rt.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tU.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...s,ref:t,onMouseDown:tq(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tq(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tq(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return rf[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rp(o))}}),children:"function"==typeof i?i({isCurrentTabStop:p,hasTabStop:null!=b}):i})})});rc.displayName=ru;var rf={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rp(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rh="Toggle",rm=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[i,s]=t3({prop:r,onChange:o,defaultProp:n??!1,caller:rh});return(0,d.jsx)(tU.button,{type:"button","aria-pressed":i,"data-state":i?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tq(e.onClick,()=>{e.disabled||s(!i)})})});rm.displayName=rh;var rg="ToggleGroup",[rb,ry]=t_(rg,[rl]),rv=rl(),rx=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rS,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rz,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rg}\``)});rx.displayName=rg;var[rw,rk]=rb(rg),rS=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[i,s]=t3({prop:r,defaultProp:n??"",onChange:o,caller:rg});return(0,d.jsx)(rw,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>i?[i]:[],[i]),onItemActivate:s,onItemDeactivate:u.default.useCallback(()=>s(""),[s]),children:(0,d.jsx)(rE,{...l,ref:t})})}),rz=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[i,s]=t3({prop:r,defaultProp:n??[],onChange:o,caller:rg}),a=u.default.useCallback(e=>s((t=[])=>[...t,e]),[s]),c=u.default.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,d.jsx)(rw,{scope:e.__scopeToggleGroup,type:"multiple",value:i,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rE,{...l,ref:t})})});rx.displayName=rg;var[rj,rC]=rb(rg),rE=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:i,loop:s=!0,...a}=e,u=rv(r),c=t8(i),f={role:"group",dir:c,...a};return(0,d.jsx)(rj,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(ra,{asChild:!0,...u,orientation:l,dir:c,loop:s,children:(0,d.jsx)(tU.div,{...f,ref:t})}):(0,d.jsx)(tU.div,{...f,ref:t})})}),rM="ToggleGroupItem",rR=u.default.forwardRef((e,t)=>{let r=rk(rM,e.__scopeToggleGroup),n=rC(rM,e.__scopeToggleGroup),o=rv(e.__scopeToggleGroup),l=r.value.includes(e.value),i=n.disabled||e.disabled,s={...e,pressed:l,disabled:i},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rc,{asChild:!0,...o,focusable:!i,active:l,ref:a,children:(0,d.jsx)(rN,{...s,ref:t})}):(0,d.jsx)(rN,{...s,ref:t})});rR.displayName=rM;var rN=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rk(rM,r),i={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},s="single"===l.type?i:void 0;return(0,d.jsx)(rm,{...s,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rI=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rL=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,i=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let i=rI(t)||rI(n);return o[e][i]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,i,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...s}[t]):({...l,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},rP=rL("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rm,{ref:o,className:tf(rP({variant:t,size:r,className:e})),...n})).displayName=rm.displayName;let rO=u.createContext({size:"default",variant:"default"}),rT=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rx,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(rO.Provider,{value:{variant:t,size:r},children:n})}));rT.displayName=rx.displayName;let rA=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let i=u.useContext(rO);return(0,d.jsx)(rR,{ref:l,className:tf(rP({variant:i.variant||r,size:i.size||n}),e),...o,children:t})});function rD(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function r$(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function rF(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(r$(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{if(!r)return null;let e=[...new Set(r.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":r.label_colors[e]||"#808080");return{uniqueLabels:e,categories:n,palette:o}},[r]),{canvasRef:p,overlayCanvasRef:h,containerRef:m,handlePointerDown:g,handlePointerMove:b,handlePointerUp:y,handlePointerLeave:v,handleDoubleClick:x}=function({embeddings:t,viewMode:r,labelsInfo:n,selectedIds:o,hoveredId:l,setSelectedIds:i,beginLassoSelection:s,setHoveredId:a}){let d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),p=(0,u.useRef)(null),h=(0,u.useRef)(!1),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),b=(0,u.useRef)(0),y=(0,u.useRef)(0),v=(0,u.useRef)([]),x=(0,u.useRef)(-1),w=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{h.current||(h.current=!0,requestAnimationFrame(()=>{h.current=!1;let e=p.current;e&&(e.render(),g.current&&rF(c.current,v.current))}))},[]),S=(0,u.useCallback)(e=>{let t=d.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),z=(0,u.useCallback)(()=>{m.current=!1,g.current=!1,v.current=[],r$(c.current)},[]);(0,u.useEffect)(()=>{if(!t||!n||!d.current||!f.current)return;let o=!1;return(async()=>{try{let l=await e.A(20606);if(o)return;let i=f.current,s=d.current;if(!i||!s)return;p.current&&(p.current.destroy(),p.current=null);let a=i.getBoundingClientRect(),u=Math.floor(a.width),h=Math.floor(a.height);c.current&&(c.current.width=Math.max(1,u),c.current.height=Math.max(1,h),c.current.style.width=`${u}px`,c.current.style.height=`${h}px`,r$(c.current));let m="euclidean"===r?t.euclidean:t.hyperbolic,g=new Float32Array(2*m.length);for(let e=0;e{o=!0,z(),p.current&&(p.current.destroy(),p.current=null)}},[t,n,k,z,r]),(0,u.useEffect)(()=>{let e=p.current;if(!e||!t||!w)return;let r=new Set;for(let e of o){let t=w.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let n=l?w.get(l)??-1:-1;e.setHovered(n),x.current=n,k()},[t,l,w,k,o]),(0,u.useEffect)(()=>{let e=f.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;c.current&&(c.current.width=Math.max(1,r),c.current.height=Math.max(1,n),c.current.style.width=`${r}px`,c.current.style.height=`${n}px`);let o=p.current;o&&(o.resize(r,n),k())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[k]),(0,u.useEffect)(()=>{let e=d.current;if(!e)return;let t=e=>{let t=p.current;if(!t)return;e.preventDefault();let r=S(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,rD(e)),k()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[S,k]);let j=(0,u.useCallback)(e=>{if(!p.current||"number"==typeof e.button&&0!==e.button)return;let t=S(e);b.current=t.x,y.current=t.y,e.shiftKey?(g.current=!0,m.current=!1,v.current=[t.x,t.y],rF(c.current,v.current)):(m.current=!0,g.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[S]),C=(0,u.useCallback)(e=>{let r=p.current;if(!r)return;let n=S(e);if(m.current){let t=n.x-b.current,o=n.y-y.current;b.current=n.x,y.current=n.y,r.pan(t,o,rD(e)),k();return}if(g.current){let e=v.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),rF(c.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===x.current||(x.current=l,r.setHovered(l),t&&(l>=0&&l{let n=p.current;if(!n||!t)return void z();if(g.current){let e=v.current;if(z(),e.length>=6)try{let t=new Float32Array(e),o=n.lassoSelect(t),l=o.geometry?.coords;if(!l||l.length<6)return;n.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({viewMode:r,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}k();return}z(),k()},[s,t,k,z,r]);return{canvasRef:d,overlayCanvasRef:c,containerRef:f,handlePointerDown:j,handlePointerMove:C,handlePointerUp:E,handlePointerLeave:(0,u.useCallback)(e=>{let t=p.current;t&&(x.current=-1,a(null),t.setHovered(-1),k()),z()},[k,a,z]),handleDoubleClick:(0,u.useCallback)(e=>{let t=p.current;t&&(z(),t.setSelection(new Set),i(new Set),k())},[k,i,z])}}({embeddings:r,viewMode:n,labelsInfo:f,selectedIds:l,hoveredId:a,setSelectedIds:i,beginLassoSelection:s,setHoveredId:c}),w=f?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:r?`${r.ids.length} points`:"Loading...",children:(0,d.jsxs)(rT,{type:"single",value:n,onValueChange:e=>e&&o(e),variant:"outline",size:"sm",className:"h-6",children:[(0,d.jsx)(rA,{value:"euclidean",className:"text-[11px] px-2.5 h-6",children:"Euclidean"}),(0,d.jsx)(rA,{value:"hyperbolic",className:"text-[11px] px-2.5 h-6",children:"Hyperbolic"})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:m,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:p,className:"absolute inset-0",style:{zIndex:1},onPointerDown:g,onPointerMove:b,onPointerUp:y,onPointerCancel:y,onPointerLeave:v,onDoubleClick:x}),(0,d.jsx)("canvas",{ref:h,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),!r&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),w.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[w.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":r?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),w.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",w.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rA.displayName=rR.displayName;var r_=Symbol.for("react.lazy"),rW=u[" use ".trim().toString()];function rV(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===r_&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rB=((i=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rV(r)&&"function"==typeof rW&&(r=rW(r._payload)),u.isValidElement(r)){var o;let e,l,i=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),s=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(s.ref=t?tV(t,i):i),u.cloneElement(r,s)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=i,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rV(r)&&"function"==typeof rW&&(r=rW(r._payload));let l=u.Children.toArray(r),i=l.find(rK);if(i){let e=i.props.children,r=l.map(t=>t!==i?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rH=Symbol("radix.slottable");function rK(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rH}let rU=rL("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rq=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rB:"button",{className:tf(rU({variant:t,size:r,className:e})),ref:l,...o}));function rY(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tL();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(t$,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rq,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rQ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rX(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function rZ(){let e=await fetch("/api/embeddings");if(!e.ok)throw Error(`Failed to fetch embeddings: ${e.statusText}`);return e.json()}async function rJ(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r0(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({space:"euclidean"===e.viewMode?"euclidean":"hyperbolic",polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r1(){let{samples:e,totalSamples:t,setSamples:r,appendSamples:n,addSamplesIfMissing:o,setDatasetInfo:l,setEmbeddings:i,setIsLoading:s,isLoading:a,error:c,setError:f,selectedIds:p,isLassoSelection:h,lassoQuery:m,lassoSamples:g,lassoTotal:b,lassoIsLoading:y,setLassoResults:v}=tL(),[x,w]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{s(!0),f(null);try{let[e,t,n]=await Promise.all([rQ(),rX(0,100),rZ()]);l(e),r(t.samples,t.total),i(n)}catch(e){console.error("Failed to load data:",e),f(e instanceof Error?e.message:"Failed to load data")}finally{s(!1)}})()},[]),(0,u.useEffect)(()=>{(async()=>{if(h||0===p.size)return;let t=new Set(e.map(e=>e.id)),r=Array.from(p).filter(e=>!t.has(e));if(0!==r.length)try{let e=await rJ(r);o(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[p,e,o,h]),(0,u.useEffect)(()=>{if(!h||!m||!y)return;let e=new AbortController;return(async()=>{try{let t=await r0({viewMode:m.viewMode,polygon:m.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;v(t.samples,t.total,!1)}catch(e){if(e?.name==="AbortError")return;console.error("Failed to fetch lasso selection:",e),v([],0,!1)}})(),()=>e.abort()},[h,y,m,v]);let k=(0,u.useCallback)(async()=>{if(!x){if(h){if(!m||y||!y&&g.length>=b)return;w(!0);try{let e=await r0({viewMode:m.viewMode,polygon:m.polygon,offset:g.length,limit:100});v(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{w(!1)}return}if(!(e.length>=t)){w(!0);try{let t=await rX(e.length,100);n(t.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{w(!1)}}}},[x,n,h,y,m,g.length,b,e.length,t,v]),S=h?g:e,z=h?b:t,j=S.lengthr1],50912)}]); \ No newline at end of file + `,onClick:t=>y(e,t),onMouseEnter:()=>f(e.id),onMouseLeave:()=>f(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(tF,{})})]},e.id)}),Array.from({length:h-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function tB(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function tV(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function tK(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(tV(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let s=t=>{let{scope:r,children:n,...s}=t,i=r?.[e]?.[l]||o,a=u.useMemo(()=>s,Object.values(s));return(0,d.jsx)(i.Provider,{value:a,children:n})};return s.displayName=t+"Provider",[s,function(r,s){let i=s?.[e]?.[l]||o,a=u.useContext(i);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tU(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tq(...e){return t=>{let r=!1,n=e.map(e=>{let n=tU(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,s,i=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(s=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),s=o.find(tX);if(s){let e=s.props.children,r=o.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,s),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?i:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tJ(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function t0(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),s=l.find(t2);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var t1=Symbol("radix.slottable");function t2(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===t1}var t5=new WeakMap;function t4(e,t){var r,n;let o,l,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let i=(r=e,n=t,o=r.length,(s=(l=t3(n))>=0?l:o+l)<0||s>=o?-1:s);return -1===i?void 0:e[i]}function t3(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],t5.set(this,!0)}set(e,t){return t5.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,s=t3(e),i=s>=0?s:l+s,a=i<0||i>=l?-1:i;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;s<0&&i++;let u=[...this.#t],c=!1;for(let e=i;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t6=globalThis?.document?u.useLayoutEffect:()=>{},t8=u[" useId ".trim().toString()]||(()=>void 0),t9=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t7=u[" useInsertionEffect ".trim().toString()]||t6;function re({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,s]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t7(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),i=void 0!==e,a=i?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==i){let t=i?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=i},[i,n])}return[a,u.useCallback(t=>{if(i){let r="function"==typeof t?t(e):t;r!==e&&s.current?.(r)}else l(t)},[i,e,l,s])]}Symbol("RADIX:SYNC_STATE");var rt=u.createContext(void 0);function rr(e){let t=u.useContext(rt);return e||t||"ltr"}var rn="rovingFocusGroup.onEntryFocus",ro={bubbles:!1,cancelable:!0},rl="RovingFocusGroup",[rs,ri,ra]=function(e){let t=e+"CollectionProvider",[r,n]=tH(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};s.displayName=t;let i=e+"CollectionSlot",a=t0(i),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tY(t,l(i,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=i;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=t0(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,s=u.default.useRef(null),i=tY(t,s),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(s,{ref:s,...o}),()=>void a.itemMap.delete(s))),(0,d.jsx)(h,{...{[p]:""},ref:i,children:n})});return m.displayName=f,[{Provider:s,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(rl),[rd,ru]=tH(rl,[ra]),[rc,rf]=rd(rl),rp=u.forwardRef((e,t)=>(0,d.jsx)(rs.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rs.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rh,{...e,ref:t})})}));rp.displayName=rl;var rh=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:s,currentTabStopId:i,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tY(t,m),y=rr(s),[b,x]=re({prop:i,defaultProp:a??null,onChange:c,caller:rl}),[v,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=ri(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(rn,k),()=>e.removeEventListener(rn,k)},[k]),(0,d.jsx)(rc,{scope:n,orientation:o,dir:y,loop:l,currentTabStopId:b,onItemFocus:u.useCallback(e=>x(e),[x]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tZ.div,{tabIndex:v||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tJ(e.onMouseDown,()=>{z.current=!0}),onFocus:tJ(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(rn,ro);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rb([e.find(e=>e.active),e.find(e=>e.id===b),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tJ(e.onBlur,()=>w(!1))})})}),rm="RovingFocusGroupItem",rg=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:s,...i}=e,a=function(e){let[t,r]=u.useState(t8());return t6(()=>{r(e=>e??String(t9++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rf(rm,r),p=f.currentTabStopId===c,h=ri(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:y}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rs.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tZ.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:t,onMouseDown:tJ(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tJ(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tJ(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return ry[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rb(o))}}),children:"function"==typeof s?s({isCurrentTabStop:p,hasTabStop:null!=y}):s})})});rg.displayName=rm;var ry={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rb(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rx="Toggle",rv=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[s,i]=re({prop:r,onChange:o,defaultProp:n??!1,caller:rx});return(0,d.jsx)(tZ.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tJ(e.onClick,()=>{e.disabled||i(!s)})})});rv.displayName=rx;var rw="ToggleGroup",[rk,rS]=tH(rw,[ru]),rz=ru(),rj=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rR,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rM,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rw}\``)});rj.displayName=rw;var[rC,rE]=rk(rw),rR=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??"",onChange:o,caller:rw});return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>s?[s]:[],[s]),onItemActivate:i,onItemDeactivate:u.default.useCallback(()=>i(""),[i]),children:(0,d.jsx)(rI,{...l,ref:t})})}),rM=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??[],onChange:o,caller:rw}),a=u.default.useCallback(e=>i((t=[])=>[...t,e]),[i]),c=u.default.useCallback(e=>i((t=[])=>t.filter(t=>t!==e)),[i]);return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"multiple",value:s,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rI,{...l,ref:t})})});rj.displayName=rw;var[rN,rL]=rk(rw),rI=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:s,loop:i=!0,...a}=e,u=rz(r),c=rr(s),f={role:"group",dir:c,...a};return(0,d.jsx)(rN,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(rp,{asChild:!0,...u,orientation:l,dir:c,loop:i,children:(0,d.jsx)(tZ.div,{...f,ref:t})}):(0,d.jsx)(tZ.div,{...f,ref:t})})}),rP="ToggleGroupItem",rO=u.default.forwardRef((e,t)=>{let r=rE(rP,e.__scopeToggleGroup),n=rL(rP,e.__scopeToggleGroup),o=rz(e.__scopeToggleGroup),l=r.value.includes(e.value),s=n.disabled||e.disabled,i={...e,pressed:l,disabled:s},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rg,{asChild:!0,...o,focusable:!s,active:l,ref:a,children:(0,d.jsx)(rT,{...i,ref:t})}):(0,d.jsx)(rT,{...i,ref:t})});rO.displayName=rP;var rT=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rE(rP,r),s={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},i="single"===l.type?s:void 0;return(0,d.jsx)(rv,{...i,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rA=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rD=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,s=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let s=rA(t)||rA(n);return o[e][s]}),i=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,s,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...i}[t]):({...l,...i})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},r$=rD("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rv,{ref:o,className:tf(r$({variant:t,size:r,className:e})),...n})).displayName=rv.displayName;let rF=u.createContext({size:"default",variant:"default"}),r_=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rj,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(rF.Provider,{value:{variant:t,size:r},children:n})}));r_.displayName=rj.displayName;let rG=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let s=u.useContext(rF);return(0,d.jsx)(rO,{ref:l,className:tf(r$({variant:s.variant||r,size:s.size||n}),e),...o,children:t})});function rW({className:t=""}){let{datasetInfo:r,embeddings:n,selectedIds:o,setSelectedIds:l,beginLassoSelection:s,hoveredId:i,setHoveredId:a,geometry:c,setGeometry:f}=tI(),p=(0,u.useMemo)(()=>{let e=[];return r?.layouts.some(e=>e.includes("euclidean"))&&e.push("euclidean"),r?.layouts.some(e=>e.includes("poincare"))&&e.push("poincare"),e},[r?.layouts]),h=(0,u.useMemo)(()=>{if(!n)return null;let e=n.layout_key,t=e.split("__")[0]||e,o=r?.spaces.find(e=>e.space_key===t)??r?.spaces.find(t=>e.startsWith(`${t.space_key}__`));return o?.model_id??o?.space_key??t},[r?.spaces,n]),m=(0,u.useMemo)(()=>{if(!n)return null;let e=[...new Set(n.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":n.label_colors[e]||"#808080");return{uniqueLabels:e,categories:r,palette:o}},[n]),{canvasRef:g,overlayCanvasRef:y,containerRef:b,handlePointerDown:x,handlePointerMove:v,handlePointerUp:w,handlePointerLeave:k,handleDoubleClick:S,rendererError:z}=function({embeddings:t,labelsInfo:r,selectedIds:n,hoveredId:o,setSelectedIds:l,beginLassoSelection:s,setHoveredId:i}){let a=(0,u.useRef)(null),d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),[p,h]=(0,u.useState)(null),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),y=(0,u.useRef)(!1),b=(0,u.useRef)(0),x=(0,u.useRef)(0),v=(0,u.useRef)(0),w=(0,u.useRef)(0),k=(0,u.useRef)([]),S=(0,u.useRef)(-1),z=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{m.current||(m.current=!0,requestAnimationFrame(()=>{m.current=!1;let e=f.current;if(e){try{e.render()}catch(t){console.error("hyper-scatter renderer.render() failed:",t);try{e.destroy()}catch{}f.current=null,h("This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox."),tV(d.current);return}y.current&&tK(d.current,k.current)}}))},[]),C=(0,u.useCallback)(e=>{let t=a.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),E=(0,u.useCallback)(()=>{g.current=!1,y.current=!1,k.current=[],tV(d.current)},[]);(0,u.useEffect)(()=>{if(!t||!r||!a.current||!c.current)return;let n=!1;return(async()=>{if(h(null),!function(){try{if("undefined"==typeof document)return!1;return!!document.createElement("canvas").getContext("webgl2")}catch{return!1}}())return h("This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox.");try{let o,l=await e.A(20606);if(n)return;let s=c.current,i=a.current;if(!s||!i)return;f.current&&(f.current.destroy(),f.current=null);let u=s.getBoundingClientRect(),p=Math.floor(u.width),m=Math.floor(u.height);d.current&&(d.current.width=Math.max(1,p),d.current.height=Math.max(1,m),d.current.style.width=`${p}px`,d.current.style.height=`${m}px`,tV(d.current));let g=t.coords,y=new Float32Array(2*g.length);for(let e=0;e{n=!0,E(),f.current&&(f.current.destroy(),f.current=null)}},[t,r,j,E]),(0,u.useEffect)(()=>{let e=f.current;if(!e||!t||!z)return;let r=new Set;for(let e of n){let t=z.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let l=o?z.get(o)??-1:-1;e.setHovered(l),S.current=l,j()},[t,o,z,j,n]),(0,u.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;d.current&&(d.current.width=Math.max(1,r),d.current.height=Math.max(1,n),d.current.style.width=`${r}px`,d.current.style.height=`${n}px`);let o=f.current;o&&(o.resize(r,n),j())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[j]),(0,u.useEffect)(()=>{let e=a.current;if(!e)return;let t=e=>{let t=f.current;if(!t)return;e.preventDefault();let r=C(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,tB(e)),j()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[C,j]);let R=(0,u.useCallback)(e=>{if(!f.current||"number"==typeof e.button&&0!==e.button)return;let t=C(e);b.current=t.x,x.current=t.y,v.current=t.x,w.current=t.y,e.shiftKey?(y.current=!0,g.current=!1,k.current=[t.x,t.y],tK(d.current,k.current)):(g.current=!0,y.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[C]),M=(0,u.useCallback)(e=>{let r=f.current;if(!r)return;let n=C(e);if(g.current){let t=n.x-v.current,o=n.y-w.current;v.current=n.x,w.current=n.y,r.pan(t,o,tB(e)),j();return}if(y.current){let e=k.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),tK(d.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===S.current||(S.current=l,r.setHovered(l),t&&(l>=0&&l{let r=f.current;if(!r||!t)return void E();if(y.current){let e=k.current;if(E(),e.length>=6)try{let n=new Float32Array(e),o=r.lassoSelect(n),l=o.geometry?.coords;if(!l||l.length<6)return;r.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({layoutKey:t.layout_key,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}j();return}let o=C(e),i=o.x-b.current,a=o.y-x.current;if(i*i+a*a<=36){let s=r.hitTest(o.x,o.y),i=s?s.index:-1;if(i>=0&&i{let t=f.current;t&&(S.current=-1,i(null),t.setHovered(-1),j()),E()},[j,i,E]),handleDoubleClick:(0,u.useCallback)(e=>{let t=f.current;t&&(E(),t.setSelection(new Set),l(new Set,"scatter"),j())},[j,l,E]),rendererError:p}}({embeddings:n,labelsInfo:m,selectedIds:o,hoveredId:i,setSelectedIds:l,beginLassoSelection:s,setHoveredId:a}),j=m?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:n?h??"":"Loading...",children:p.length>1&&(0,d.jsxs)(r_,{type:"single",value:c,onValueChange:e=>e&&f(e),size:"sm",variant:"outline",className:"bg-muted/50 rounded-md p-0.5 gap-0.5",children:[(0,d.jsxs)(rG,{value:"euclidean","aria-label":"Euclidean geometry",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(t_,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Euclidean"})]}),(0,d.jsxs)(rG,{value:"poincare","aria-label":"Poincaré disk (hyperbolic)",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(tG,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Poincaré"})]})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:b,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:g,className:"absolute inset-0",style:{zIndex:1},onPointerDown:x,onPointerMove:v,onPointerUp:w,onPointerCancel:w,onPointerLeave:k,onDoubleClick:S}),(0,d.jsx)("canvas",{ref:y,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),z?(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/85 z-10 p-6",children:(0,d.jsxs)("div",{className:"max-w-md text-center",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-foreground mb-2",children:"Browser not supported"}),(0,d.jsx)("div",{className:"text-sm text-muted-foreground",children:z})]})}):!n&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),j.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[j.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":n?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),j.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",j.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rG.displayName=rO.displayName;var rB=Symbol.for("react.lazy"),rV=u[" use ".trim().toString()];function rK(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===rB&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rH=((s=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rK(r)&&"function"==typeof rV&&(r=rV(r._payload)),u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=s,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rK(r)&&"function"==typeof rV&&(r=rV(r._payload));let l=u.Children.toArray(r),s=l.find(rq);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rU=Symbol("radix.slottable");function rq(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rU}let rY=rD("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rQ=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rH:"button",{className:tf(rY({variant:t,size:r,className:e})),ref:l,...o}));function rX(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tI();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(t$,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rQ,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rZ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rJ(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function r0(e){let t=new URLSearchParams;e&&t.set("layout_key",e);let r=t.toString(),n=await fetch(`/api/embeddings${r?`?${r}`:""}`);if(!n.ok)throw Error(`Failed to fetch embeddings: ${n.statusText}`);return n.json()}async function r1(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r2(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({layout_key:e.layoutKey,polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r5(){let{datasetInfo:e,samples:t,totalSamples:r,samplesLoaded:n,setSamples:o,appendSamples:l,addSamplesIfMissing:s,setDatasetInfo:i,setEmbeddings:a,setIsLoading:c,isLoading:f,error:p,setError:h,selectedIds:m,isLassoSelection:g,selectionSource:y,lassoQuery:b,lassoSamples:x,lassoTotal:v,lassoIsLoading:w,setLassoResults:k,geometry:S}=tI(),[z,j]=(0,u.useState)(!1),[C,E]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{c(!0),h(null);try{let[e,t,r]=await Promise.all([rZ(),rJ(0,100),r0()]);i(e),o(t.samples,t.total),a(r)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{c(!1)}})()},[]),(0,u.useEffect)(()=>{if(!e)return;let t=e.layouts.find(e=>e.includes(S));t&&tI.getState().currentLayoutKey!==t&&(async()=>{E(!0);try{let e=await r0(t);a(e)}catch(e){console.error("Failed to load geometry:",e)}finally{E(!1)}})()},[S,e,a]),(0,u.useEffect)(()=>{(async()=>{if(g||0===m.size)return;let e=new Set(t.map(e=>e.id)),r=Array.from(m).filter(t=>!e.has(t));if(0!==r.length)try{let e=await r1(r);s(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[m,t,s,g]),(0,u.useEffect)(()=>{if(!g||!b||!w)return;let e=new AbortController;return(async()=>{try{let t=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;k(t.samples,t.total,!1)}catch(e){if(e?.name==="AbortError")return;console.error("Failed to fetch lasso selection:",e),k([],0,!1)}})(),()=>e.abort()},[g,w,b,k]);let R=(0,u.useCallback)(async()=>{if(!z){if(g){if(!b||w||!w&&x.length>=v)return;j(!0);try{let e=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:x.length,limit:100});k(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{j(!1)}return}if(!(n>=r)){j(!0);try{let e=await rJ(n,100);l(e.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{j(!1)}}}},[z,l,g,w,b,x.length,v,n,r,k]),M=(0,u.useMemo)(()=>{if(g)return x;if("scatter"===y&&m.size>0){let e=new Map;for(let r of t)e.set(r.id,r);let r=[];for(let t of m){let n=e.get(t);n&&r.push(n)}if(r.length>0)return[...r,...t.filter(e=>!m.has(e.id))]}return t},[g,x,t,m,y]),N=g?v:r,L=g?M.lengthr5],50912)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/61d99a6d918f5559.css b/src/hyperview/server/static/_next/static/chunks/61d99a6d918f5559.css deleted file mode 100644 index 03b23b6..0000000 --- a/src/hyperview/server/static/_next/static/chunks/61d99a6d918f5559.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:215 28% 7%;--foreground:213 27% 92%;--card:215 21% 11%;--card-foreground:213 27% 92%;--popover:215 21% 11%;--popover-foreground:213 27% 92%;--primary:212 100% 67%;--primary-foreground:215 28% 7%;--secondary:215 14% 17%;--secondary-foreground:213 27% 92%;--muted:215 14% 17%;--muted-foreground:213 12% 58%;--accent:215 14% 17%;--accent-foreground:213 27% 92%;--destructive:0 62% 50%;--destructive-foreground:0 0% 98%;--border:215 14% 22%;--input:215 14% 22%;--ring:212 100% 67%;--radius:.375rem;--surface:215 21% 11%;--surface-light:215 14% 17%;--surface-elevated:215 14% 22%;--border-subtle:215 14% 17%;--text:213 27% 92%;--text-muted:213 12% 58%;--text-subtle:215 10% 46%;--accent-cyan:176 60% 53%;--accent-orange:27 86% 59%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.right-1{right:.25rem}.top-1{top:.25rem}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.h-10{height:2.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[36px\]{min-height:36px}.min-h-\[40px\]{min-height:40px}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[3px\]{width:3px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.max-w-full{max-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-t-transparent{border-top-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-border\/50{background-color:hsl(var(--border)/.5)}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card)/.8)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:#0000}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.025em}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-primary{--tw-ring-color:hsl(var(--primary))}.ring-primary\/50{--tw-ring-color:hsl(var(--primary)/.5)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}.duration-150{animation-duration:.15s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--surface-elevated));border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--text-subtle))}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary\/50:hover{background-color:hsl(var(--primary)/.5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.data-\[orientation\=vertical\]\:h-\[3px\][data-orientation=vertical]{height:3px}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[state\=on\]\:border-primary[data-state=on]{border-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-primary[data-state=on]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:text-primary-foreground[data-state=on]{color:hsl(var(--primary-foreground))}.data-\[orientation\=vertical\]\:after\:left-0[data-orientation=vertical]:after{content:var(--tw-content);left:0}.data-\[orientation\=vertical\]\:after\:h-2[data-orientation=vertical]:after{content:var(--tw-content);height:.5rem}.data-\[orientation\=vertical\]\:after\:w-full[data-orientation=vertical]:after{content:var(--tw-content);width:100%}.data-\[orientation\=vertical\]\:after\:-translate-y-1\/2[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:after\:translate-x-0[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\[\&\[data-orientation\=vertical\]\>div\]\:rotate-90[data-orientation=vertical]>div{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} diff --git a/src/hyperview/server/static/_next/static/chunks/d6d93a0a04227147.css b/src/hyperview/server/static/_next/static/chunks/d6d93a0a04227147.css new file mode 100644 index 0000000..daf1c3b --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/d6d93a0a04227147.css @@ -0,0 +1 @@ +*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:215 28% 7%;--foreground:213 27% 92%;--card:215 21% 11%;--card-foreground:213 27% 92%;--popover:215 21% 11%;--popover-foreground:213 27% 92%;--primary:212 100% 67%;--primary-foreground:215 28% 7%;--secondary:215 14% 17%;--secondary-foreground:213 27% 92%;--muted:215 14% 17%;--muted-foreground:213 12% 58%;--accent:215 14% 17%;--accent-foreground:213 27% 92%;--destructive:0 62% 50%;--destructive-foreground:0 0% 98%;--border:215 14% 22%;--input:215 14% 22%;--ring:212 100% 67%;--radius:.375rem;--surface:215 21% 11%;--surface-light:215 14% 17%;--surface-elevated:215 14% 22%;--border-subtle:215 14% 17%;--text:213 27% 92%;--text-muted:213 12% 58%;--text-subtle:215 10% 46%;--accent-cyan:176 60% 53%;--accent-orange:27 86% 59%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.right-1{right:.25rem}.top-1{top:.25rem}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[36px\]{min-height:36px}.min-h-\[40px\]{min-height:40px}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[3px\]{width:3px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-t-transparent{border-top-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-border\/50{background-color:hsl(var(--border)/.5)}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card)/.8)}.bg-card\/85{background-color:hsl(var(--card)/.85)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:#0000}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.025em}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-primary{--tw-ring-color:hsl(var(--primary))}.ring-primary\/50{--tw-ring-color:hsl(var(--primary)/.5)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}.duration-150{animation-duration:.15s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--surface-elevated));border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--text-subtle))}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary\/50:hover{background-color:hsl(var(--primary)/.5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.data-\[orientation\=vertical\]\:h-\[3px\][data-orientation=vertical]{height:3px}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[state\=on\]\:border-primary[data-state=on]{border-color:hsl(var(--primary))}.data-\[state\=off\]\:bg-transparent[data-state=off]{background-color:#0000}.data-\[state\=on\]\:bg-background[data-state=on]{background-color:hsl(var(--background))}.data-\[state\=on\]\:bg-primary[data-state=on]{background-color:hsl(var(--primary))}.data-\[state\=off\]\:text-muted-foreground[data-state=off]{color:hsl(var(--muted-foreground))}.data-\[state\=on\]\:text-foreground[data-state=on]{color:hsl(var(--foreground))}.data-\[state\=on\]\:text-primary-foreground[data-state=on]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:shadow-sm[data-state=on]{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[orientation\=vertical\]\:after\:left-0[data-orientation=vertical]:after{content:var(--tw-content);left:0}.data-\[orientation\=vertical\]\:after\:h-2[data-orientation=vertical]:after{content:var(--tw-content);height:.5rem}.data-\[orientation\=vertical\]\:after\:w-full[data-orientation=vertical]:after{content:var(--tw-content);width:100%}.data-\[orientation\=vertical\]\:after\:-translate-y-1\/2[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:after\:translate-x-0[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@media (min-width:640px){.sm\:inline{display:inline}}.\[\&\[data-orientation\=vertical\]\>div\]\:rotate-90[data-orientation=vertical]>div{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} diff --git a/src/hyperview/server/static/_not-found/__next._full.txt b/src/hyperview/server/static/_not-found/__next._full.txt index b7156c3..7930bff 100644 --- a/src/hyperview/server/static/_not-found/__next._full.txt +++ b/src/hyperview/server/static/_not-found/__next._full.txt @@ -6,8 +6,8 @@ 7:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"P":null,"b":"6WlEYFpQs-g9pqMRTk8sU","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] +0:{"P":null,"b":"FkYHqh8bg2HXVZYl26MHt","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/_not-found/__next._head.txt b/src/hyperview/server/static/_not-found/__next._head.txt index bda5c52..8a0c1a9 100644 --- a/src/hyperview/server/static/_not-found/__next._head.txt +++ b/src/hyperview/server/static/_not-found/__next._head.txt @@ -2,6 +2,6 @@ 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/_not-found/__next._index.txt b/src/hyperview/server/static/_not-found/__next._index.txt index a6b3c10..7ff2617 100644 --- a/src/hyperview/server/static/_not-found/__next._index.txt +++ b/src/hyperview/server/static/_not-found/__next._index.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt index b252b07..c0b212e 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/src/hyperview/server/static/_not-found/__next._not-found.txt b/src/hyperview/server/static/_not-found/__next._not-found.txt index 1554d1a..9fde546 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.txt @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._tree.txt b/src/hyperview/server/static/_not-found/__next._tree.txt index 6b304ff..2c9a0b4 100644 --- a/src/hyperview/server/static/_not-found/__next._tree.txt +++ b/src/hyperview/server/static/_not-found/__next._tree.txt @@ -1,2 +1,2 @@ -:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"buildId":"6WlEYFpQs-g9pqMRTk8sU","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] +0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_not-found/index.html b/src/hyperview/server/static/_not-found/index.html index 61eb8b7..dcdfe7a 100644 --- a/src/hyperview/server/static/_not-found/index.html +++ b/src/hyperview/server/static/_not-found/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/index.txt b/src/hyperview/server/static/_not-found/index.txt index b7156c3..7930bff 100644 --- a/src/hyperview/server/static/_not-found/index.txt +++ b/src/hyperview/server/static/_not-found/index.txt @@ -6,8 +6,8 @@ 7:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"P":null,"b":"6WlEYFpQs-g9pqMRTk8sU","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] +0:{"P":null,"b":"FkYHqh8bg2HXVZYl26MHt","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/index.html b/src/hyperview/server/static/index.html index 8cb537e..d443eb7 100644 --- a/src/hyperview/server/static/index.html +++ b/src/hyperview/server/static/index.html @@ -1 +1 @@ -HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file +HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file diff --git a/src/hyperview/server/static/index.txt b/src/hyperview/server/static/index.txt index 2c13d29..edf9586 100644 --- a/src/hyperview/server/static/index.txt +++ b/src/hyperview/server/static/index.txt @@ -2,14 +2,14 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] 4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/799ca86fb297c98a.js"],"default"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/490c8071909f9d06.js"],"default"] 8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/61d99a6d918f5559.css","style"] -0:{"P":null,"b":"6WlEYFpQs-g9pqMRTk8sU","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/61d99a6d918f5559.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/799ca86fb297c98a.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] +0:{"P":null,"b":"FkYHqh8bg2HXVZYl26MHt","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/490c8071909f9d06.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] diff --git a/src/hyperview/storage/__init__.py b/src/hyperview/storage/__init__.py index 77a434f..690bb7d 100644 --- a/src/hyperview/storage/__init__.py +++ b/src/hyperview/storage/__init__.py @@ -3,7 +3,7 @@ from hyperview.storage.backend import StorageBackend from hyperview.storage.config import ( StorageConfig, - get_default_database_dir, + get_default_datasets_dir, get_default_media_dir, ) from hyperview.storage.lancedb_backend import LanceDBBackend @@ -12,7 +12,7 @@ __all__ = [ "StorageBackend", "StorageConfig", - "get_default_database_dir", + "get_default_datasets_dir", "get_default_media_dir", "LanceDBBackend", "MemoryBackend", diff --git a/src/hyperview/storage/backend.py b/src/hyperview/storage/backend.py index 663d91c..bd21e78 100644 --- a/src/hyperview/storage/backend.py +++ b/src/hyperview/storage/backend.py @@ -2,12 +2,26 @@ from abc import ABC, abstractmethod from collections.abc import Callable, Iterator +from typing import Any + +import numpy as np from hyperview.core.sample import Sample class StorageBackend(ABC): - """Abstract base class for storage backends.""" + """Abstract base class for storage backends. + + Storage architecture: + - Samples: Core metadata (id, filepath, label, metadata, thumbnail) + - Spaces: Registry of embedding spaces (one per model) + - Embeddings: Per-space tables with vectors + - Layouts: Per-layout tables with 2D coordinates + """ + + # ========================================================================= + # Sample CRUD + # ========================================================================= @abstractmethod def add_sample(self, sample: Sample) -> None: @@ -40,7 +54,7 @@ def update_sample(self, sample: Sample) -> None: @abstractmethod def update_samples_batch(self, samples: list[Sample]) -> None: - """Batch update samples (for embeddings, etc.).""" + """Batch update samples.""" @abstractmethod def delete_sample(self, sample_id: str) -> bool: @@ -63,79 +77,147 @@ def get_unique_labels(self) -> list[str]: """Get all unique labels.""" @abstractmethod - def find_similar( - self, - sample_id: str, - k: int = 10, - vector_column: str = "embedding", - ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors. Returns [(sample, distance), ...].""" + def get_existing_ids(self, sample_ids: list[str]) -> set[str]: + """Return set of sample_ids that already exist in storage.""" @abstractmethod - def find_similar_by_vector( - self, - vector: list[float], - k: int = 10, - vector_column: str = "embedding", - ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a query vector.""" + def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: + """Retrieve multiple samples by ID.""" @abstractmethod def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: """Filter samples based on a predicate function.""" + # ========================================================================= + # Spaces (embedding space registry) + # ========================================================================= + @abstractmethod - def get_existing_ids(self, sample_ids: list[str]) -> set[str]: - """Return set of sample_ids that already exist in storage. + def list_spaces(self) -> list[Any]: + """List all embedding spaces. Returns list of SpaceInfo.""" - Args: - sample_ids: List of sample IDs to check. + @abstractmethod + def get_space(self, space_key: str) -> Any | None: + """Get info for a specific embedding space. Returns SpaceInfo or None.""" - Returns: - Set of IDs that exist in storage. - """ + @abstractmethod + def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> Any: + """Ensure an embedding space exists, creating if needed. Returns SpaceInfo.""" @abstractmethod - def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: - """Retrieve multiple samples by ID. + def delete_space(self, space_key: str) -> bool: + """Delete an embedding space and its embeddings.""" - Implementations should preserve the input order when possible. - Missing IDs should be skipped. - """ + # ========================================================================= + # Embeddings + # ========================================================================= @abstractmethod - def get_visualization_embeddings( + def add_embeddings( self, - ) -> tuple[list[str], list[str | None], list[list[float]], list[list[float]]]: - """Return all 2D embedding coords needed by the frontend scatter. + space_key: str, + ids: list[str], + vectors: np.ndarray, + ) -> None: + """Add embeddings to a space.""" - Returns: - (ids, labels, euclidean_xy, hyperbolic_xy) + @abstractmethod + def get_embeddings( + self, + space_key: str, + ids: list[str] | None = None, + ) -> tuple[list[str], np.ndarray]: + """Get embeddings from a space. Returns (ids, vectors).""" + + @abstractmethod + def get_embedded_ids(self, space_key: str) -> set[str]: + """Get the set of sample IDs that have embeddings in a space.""" - Notes: - This should avoid loading heavy fields (thumbnails, high-dim embeddings) - when the backend supports column projection. + @abstractmethod + def get_missing_embedding_ids(self, space_key: str) -> list[str]: + """Get sample IDs that don't have embeddings in a space.""" + + # ========================================================================= + # Layouts (2D projections) + # ========================================================================= + + @abstractmethod + def list_layouts(self) -> list[str]: + """List all layout keys.""" + + @abstractmethod + def ensure_layout(self, layout_key: str) -> None: + """Ensure a layout exists.""" + + @abstractmethod + def delete_layout(self, layout_key: str) -> bool: + """Delete a layout.""" + + @abstractmethod + def add_layout_coords( + self, + layout_key: str, + ids: list[str], + coords: np.ndarray, + ) -> None: + """Add layout coordinates (N x 2).""" + + @abstractmethod + def get_layout_coords( + self, + layout_key: str, + ids: list[str] | None = None, + ) -> tuple[list[str], np.ndarray]: + """Get layout coordinates. Returns (ids, coords).""" + + @abstractmethod + def get_visualization_data( + self, + layout_key: str, + ) -> tuple[list[str], list[str | None], np.ndarray]: + """Get visualization data for scatter plot. + + Returns: + (ids, labels, coords) where coords is (N x 2). """ @abstractmethod def get_lasso_candidates_aabb( self, *, - space: str, + layout_key: str, x_min: float, x_max: float, y_min: float, y_max: float, - ) -> tuple[list[str], "np.ndarray"]: - """Return candidate (id, xy) rows within an axis-aligned bounding box. + ) -> tuple[list[str], np.ndarray]: + """Return candidate (id, xy) rows within an axis-aligned bounding box.""" - Args: - space: Projection key (e.g. "euclidean", "hyperbolic"). - x_min/x_max/y_min/y_max: Bounds in the same data space as /api/embeddings. + # ========================================================================= + # Similarity search + # ========================================================================= - Returns: - (ids, coords_xy) where coords_xy has shape (n, 2) float32. - """ + @abstractmethod + def find_similar( + self, + sample_id: str, + k: int = 10, + space_key: str | None = None, + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors. Returns [(sample, distance), ...].""" + + @abstractmethod + def find_similar_by_vector( + self, + vector: list[float] | np.ndarray, + k: int = 10, + space_key: str | None = None, + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a query vector.""" + + # ========================================================================= + # Lifecycle and metadata + # ========================================================================= @abstractmethod def close(self) -> None: diff --git a/src/hyperview/storage/config.py b/src/hyperview/storage/config.py index c916855..47ad1e5 100644 --- a/src/hyperview/storage/config.py +++ b/src/hyperview/storage/config.py @@ -5,12 +5,13 @@ from pathlib import Path -def get_default_database_dir() -> Path: - """Get the default database directory. +def get_default_datasets_dir() -> Path: + """Get the default datasets directory. - Uses HYPERVIEW_DATABASE_DIR env var if set, otherwise ~/.hyperview/datasets/ + Uses HYPERVIEW_DATASETS_DIR env var if set, otherwise ~/.hyperview/datasets/ + Each dataset gets its own subdirectory with isolated LanceDB tables. """ - env_dir = os.environ.get("HYPERVIEW_DATABASE_DIR") + env_dir = os.environ.get("HYPERVIEW_DATASETS_DIR") if env_dir: return Path(env_dir) return Path.home() / ".hyperview" / "datasets" @@ -32,23 +33,20 @@ def get_default_media_dir() -> Path: class StorageConfig: """Configuration for storage backend.""" - database_dir: Path = field(default_factory=get_default_database_dir) + datasets_dir: Path = field(default_factory=get_default_datasets_dir) media_dir: Path = field(default_factory=get_default_media_dir) - embedding_dim: int = 512 # Default CLIP dimension - embedding_2d_dim: int = 2 @classmethod - def default(cls, embedding_dim: int = 512) -> "StorageConfig": - """Create a default configuration with optional custom embedding dimension.""" + def default(cls) -> "StorageConfig": + """Create a default configuration.""" return cls( - database_dir=get_default_database_dir(), + datasets_dir=get_default_datasets_dir(), media_dir=get_default_media_dir(), - embedding_dim=embedding_dim, ) def ensure_dir_exists(self) -> None: - """Ensure the database directory exists.""" - self.database_dir.mkdir(parents=True, exist_ok=True) + """Ensure the datasets directory exists.""" + self.datasets_dir.mkdir(parents=True, exist_ok=True) def ensure_media_dir_exists(self) -> None: """Ensure the media directory exists.""" diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py index b83618b..08cf7c6 100644 --- a/src/hyperview/storage/lancedb_backend.py +++ b/src/hyperview/storage/lancedb_backend.py @@ -1,25 +1,45 @@ -"""LanceDB storage backend for HyperView.""" +"""LanceDB storage backend for HyperView. + +Storage architecture (per-dataset directory): + ~/.hyperview/datasets// + - samples table: core sample metadata + - metadata table: key-value config + - spaces table: registry of embedding spaces + - embeddings__ tables: one per embedding model + - layouts__ tables: one per layout +""" import json +import time from collections.abc import Callable, Iterator from pathlib import Path import lancedb +import numpy as np import pyarrow as pa from hyperview.core.sample import Sample from hyperview.storage.backend import StorageBackend -from hyperview.storage.config import StorageConfig, get_default_database_dir +from hyperview.storage.config import StorageConfig, get_default_datasets_dir from hyperview.storage.schema import ( + SpaceInfo, + create_embeddings_schema, + create_layouts_schema, create_metadata_schema, create_sample_schema, + create_spaces_schema, dict_to_sample, + make_layout_key, + make_space_key, sample_to_dict, ) class LanceDBBackend(StorageBackend): - """LanceDB-based storage backend for HyperView datasets.""" + """LanceDB-based storage backend for HyperView datasets. + + Each dataset gets its own directory with isolated LanceDB tables. + """ def __init__( self, @@ -29,88 +49,93 @@ def __init__( """Initialize LanceDB backend. Args: - dataset_name: Name of the dataset (becomes table name). + dataset_name: Name of the dataset (becomes directory name). config: Storage configuration. Uses defaults if None. """ self.dataset_name = dataset_name self.config = config or StorageConfig.default() - self.config.ensure_dir_exists() + # Per-dataset directory + self._dataset_dir = self.config.datasets_dir / dataset_name + self._dataset_dir.mkdir(parents=True, exist_ok=True) - self._db = lancedb.connect(str(self.config.database_dir)) + # Connect to this dataset's LanceDB + self._db = lancedb.connect(str(self._dataset_dir)) - self._table_name = f"hyperview_{dataset_name}" - self._metadata_table_name = f"hyperview_{dataset_name}_meta" + # Table names (no prefix needed since we have per-dataset isolation) + self._samples_table_name = "samples" + self._metadata_table_name = "metadata" + self._spaces_table_name = "spaces" - self._table = self._get_or_create_table() + # Initialize core tables + self._samples_table = self._get_or_create_samples_table() self._metadata_table = self._get_or_create_metadata_table() + self._spaces_table = self._get_or_create_spaces_table() self._label_colors_cache: dict[str, str] | None = None - def _get_or_create_table(self) -> lancedb.table.Table | None: - """Get existing table or return None if it doesn't exist yet.""" - if self._table_name in self._db.table_names(): - return self._db.open_table(self._table_name) + # ========================================================================= + # Table initialization + # ========================================================================= + + def _get_or_create_samples_table(self) -> lancedb.table.Table | None: + """Get existing samples table or return None.""" + if self._samples_table_name in self._db.table_names(): + return self._db.open_table(self._samples_table_name) return None - def _ensure_table_exists(self, data: list[dict]) -> lancedb.table.Table: - """Ensure table exists, creating it from data if needed. - """ - if self._table is None: - schema = create_sample_schema(self.config.embedding_dim) + def _ensure_samples_table(self, data: list[dict]) -> lancedb.table.Table: + """Ensure samples table exists, creating from data if needed.""" + if self._samples_table is None: + schema = create_sample_schema() arrow_table = pa.Table.from_pylist(data, schema=schema) - self._table = self._db.create_table(self._table_name, data=arrow_table) - return self._table - - def _cast_rows_to_table_schema(self, rows: list[dict]) -> pa.Table: - """Cast Python dict rows to the existing table schema.""" - if self._table is None: - raise RuntimeError("Cannot cast rows: samples table not initialized") - return pa.Table.from_pylist(rows, schema=self._table.schema) + self._samples_table = self._db.create_table(self._samples_table_name, data=arrow_table) + return self._samples_table def _get_or_create_metadata_table(self) -> lancedb.table.Table: """Get or create metadata table.""" if self._metadata_table_name in self._db.table_names(): return self._db.open_table(self._metadata_table_name) - else: - schema = create_metadata_schema() - return self._db.create_table(self._metadata_table_name, schema=schema) + schema = create_metadata_schema() + return self._db.create_table(self._metadata_table_name, schema=schema) - def _convert_embeddings_to_numpy(self, data: list[dict]) -> None: - """Convert high-dim embedding lists to numpy arrays in-place. - """ - import numpy as np + def _get_or_create_spaces_table(self) -> lancedb.table.Table: + """Get or create spaces registry table.""" + if self._spaces_table_name in self._db.table_names(): + return self._db.open_table(self._spaces_table_name) + schema = create_spaces_schema() + return self._db.create_table(self._spaces_table_name, schema=schema) - for row in data: - if row.get("embedding") is not None: - row["embedding"] = np.array(row["embedding"], dtype=np.float32) + # ========================================================================= + # Sample CRUD operations + # ========================================================================= def add_sample(self, sample: Sample) -> None: """Add a single sample to storage.""" - data = [sample_to_dict(sample, self.config.embedding_dim)] - self._convert_embeddings_to_numpy(data) - if self._table is None: - self._ensure_table_exists(data) + data = [sample_to_dict(sample)] + if self._samples_table is None: + self._ensure_samples_table(data) else: - self._table.add(self._cast_rows_to_table_schema(data)) + arrow = pa.Table.from_pylist(data, schema=self._samples_table.schema) + self._samples_table.add(arrow) def add_samples_batch(self, samples: list[Sample]) -> None: """Add multiple samples efficiently.""" if not samples: return - data = [sample_to_dict(s, self.config.embedding_dim) for s in samples] - self._convert_embeddings_to_numpy(data) - if self._table is None: - self._ensure_table_exists(data) + data = [sample_to_dict(s) for s in samples] + if self._samples_table is None: + self._ensure_samples_table(data) else: - self._table.add(self._cast_rows_to_table_schema(data)) + arrow = pa.Table.from_pylist(data, schema=self._samples_table.schema) + self._samples_table.add(arrow) def get_sample(self, sample_id: str) -> Sample | None: """Retrieve a sample by ID.""" - if self._table is None: + if self._samples_table is None: return None safe_id = sample_id.replace("'", "''") - results = self._table.search().where(f"id = '{safe_id}'").limit(1).to_list() + results = self._samples_table.search().where(f"id = '{safe_id}'").limit(1).to_list() if results: return dict_to_sample(results[0]) return None @@ -122,20 +147,20 @@ def get_samples_paginated( label: str | None = None, ) -> tuple[list[Sample], int]: """Get paginated samples using native LanceDB queries.""" - if self._table is None: + if self._samples_table is None: return [], 0 import pyarrow.compute as pc if label: - arrow_table = self._table.search().select(["label"]).to_arrow() + arrow_table = self._samples_table.search().select(["label"]).to_arrow() label_column = arrow_table.column("label") mask = pc.fill_null(pc.equal(label_column, pa.scalar(label)), False) total = pc.sum(pc.cast(mask, pa.int64())).as_py() else: - total = self._table.count_rows() + total = self._samples_table.count_rows() - query = self._table.search() + query = self._samples_table.search() if label: safe_label = label.replace("'", "''") query = query.where(f"label = '{safe_label}'") @@ -146,109 +171,64 @@ def get_samples_paginated( def get_all_samples(self) -> list[Sample]: """Get all samples.""" - if self._table is None: + if self._samples_table is None: return [] - arrow_table = self._table.to_arrow() + arrow_table = self._samples_table.to_arrow() rows = arrow_table.to_pylist() return [dict_to_sample(row) for row in rows] def update_sample(self, sample: Sample) -> None: """Update an existing sample.""" - self._delete_by_id(sample.id) - self.add_sample(sample) + if self._samples_table is None: + self.add_sample(sample) + return + data = [sample_to_dict(sample)] + arrow = pa.Table.from_pylist(data, schema=self._samples_table.schema) + ( + self._samples_table.merge_insert("id") + .when_matched_update_all() + .when_not_matched_insert_all() + .execute(arrow) + ) def update_samples_batch(self, samples: list[Sample]) -> None: """Batch update samples.""" if not samples: return - - if self._table is None: + if self._samples_table is None: self.add_samples_batch(samples) return + data = [sample_to_dict(s) for s in samples] + arrow = pa.Table.from_pylist(data, schema=self._samples_table.schema) + ( + self._samples_table.merge_insert("id") + .when_matched_update_all() + .when_not_matched_insert_all() + .execute(arrow) + ) - if self._needs_schema_migration(samples): - self._migrate_table_schema(samples) - else: - updated_data = [sample_to_dict(s, self.config.embedding_dim) for s in samples] - self._convert_embeddings_to_numpy(updated_data) - - arrow = self._cast_rows_to_table_schema(updated_data) - ( - self._table.merge_insert("id") - .when_matched_update_all() - .when_not_matched_insert_all() - .execute(arrow) - ) - - def _needs_schema_migration(self, samples: list[Sample]) -> bool: - """Check whether embedding columns exist with a non-null type.""" - schema = self._table.schema - - columns_to_check = [ - ("embedding", lambda s: s.embedding is not None), - ("embedding_2d_euclidean", lambda s: s.embedding_2d is not None), - ("embedding_2d_hyperbolic", lambda s: s.embedding_2d_hyperbolic is not None), - ] - - for col_name, has_value_fn in columns_to_check: - has_values = any(has_value_fn(s) for s in samples) - if not has_values: - continue - try: - field = schema.field(col_name) - if str(field.type) == "null": - return True - except KeyError: - return True - - return False - - def _migrate_table_schema(self, updated_samples: list[Sample]) -> None: - """Recreate the table with the current schema and merge updates.""" - existing_rows = self._table.to_arrow().to_pylist() - updates_by_id = {s.id: s for s in updated_samples} - - new_data: list[dict] = [] - for row in existing_rows: - sample_id = row.get("id") - if sample_id in updates_by_id: - new_data.append(sample_to_dict(updates_by_id[sample_id], self.config.embedding_dim)) - else: - new_data.append(row) - - self._convert_embeddings_to_numpy(new_data) - - self._db.drop_table(self._table_name) - self._table = None - self._ensure_table_exists(new_data) - - def _delete_by_id(self, sample_id: str) -> bool: - """Delete a sample by ID using native LanceDB delete.""" - if self._table is None: + def delete_sample(self, sample_id: str) -> bool: + """Delete a sample by ID.""" + if self._samples_table is None: return False try: - # Use LanceDB's native delete with SQL WHERE clause safe_id = sample_id.replace("'", "''") - self._table.delete(f"id = '{safe_id}'") + self._samples_table.delete(f"id = '{safe_id}'") return True except Exception: return False - def delete_sample(self, sample_id: str) -> bool: - """Delete a sample by ID.""" - return self._delete_by_id(sample_id) - def __len__(self) -> int: """Return total number of samples.""" - if self._table is None: + if self._samples_table is None: return 0 - return self._table.count_rows() + return self._samples_table.count_rows() def __iter__(self) -> Iterator[Sample]: """Iterate over all samples.""" - if self._table is None: + if self._samples_table is None: return iter([]) - arrow_table = self._table.to_arrow() + arrow_table = self._samples_table.to_arrow() for batch in arrow_table.to_batches(max_chunksize=1000): batch_dict = batch.to_pydict() for i in range(batch.num_rows): @@ -257,138 +237,29 @@ def __iter__(self) -> Iterator[Sample]: def __contains__(self, sample_id: str) -> bool: """Check if sample exists.""" - if self._table is None: + if self._samples_table is None: return False safe_id = sample_id.replace("'", "''") try: - results = self._table.search().where(f"id = '{safe_id}'").limit(1).to_list() + results = self._samples_table.search().where(f"id = '{safe_id}'").limit(1).to_list() return len(results) > 0 except Exception: return False def get_unique_labels(self) -> list[str]: """Get all unique labels.""" - if self._table is None: + if self._samples_table is None: return [] import pyarrow.compute as pc - # Label-only scan - don't pull thumbnails/metadata into RAM - arrow_table = self._table.search().select(["label"]).to_arrow() + arrow_table = self._samples_table.search().select(["label"]).to_arrow() label_column = arrow_table.column("label") unique_labels = pc.unique(label_column).to_pylist() return sorted([label for label in unique_labels if label is not None]) - def find_similar( - self, - sample_id: str, - k: int = 10, - vector_column: str = "embedding", - ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a sample.""" - sample = self.get_sample(sample_id) - if sample is None: - raise ValueError(f"Sample not found: {sample_id}") - - query_vector = self._get_vector(sample, vector_column) - if query_vector is None: - raise ValueError(f"Sample {sample_id} has no {vector_column}") - - # Find similar, excluding self - results = self.find_similar_by_vector(query_vector, k + 1, vector_column) - return [(s, d) for s, d in results if s.id != sample_id][:k] - - def find_similar_by_vector( - self, - vector: list[float], - k: int = 10, - vector_column: str = "embedding", - ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a query vector.""" - import math - - lance_column = self._map_vector_column(vector_column) - - try: - results = ( - self._table.search(vector, vector_column_name=lance_column) - .metric("cosine") - .limit(k) - .to_list() - ) - - # Normalize nan distances to 0.0 (can happen with identical vectors) - return [ - ( - dict_to_sample(row), - 0.0 - if math.isnan(d := row.get("_distance", 0.0)) - else float(d), - ) - for row in results - ] - except Exception: - return self._brute_force_search(vector, k, vector_column) - - def _brute_force_search( - self, - vector: list[float], - k: int, - vector_column: str, - ) -> list[tuple[Sample, float]]: - """Fallback brute force search when vector index is not available.""" - import numpy as np - - query = np.array(vector) - distances: list[tuple[Sample, float]] = [] - - for sample in self: - vec = self._get_vector(sample, vector_column) - if vec is None: - continue - - vec_np = np.array(vec) - norm_query = np.linalg.norm(query) - norm_vec = np.linalg.norm(vec_np) - - if norm_query == 0 or norm_vec == 0: - distance = 1.0 - else: - cosine_sim = np.dot(query, vec_np) / (norm_query * norm_vec) - distance = 1 - cosine_sim - - distances.append((sample, float(distance))) - - distances.sort(key=lambda x: x[1]) - return distances[:k] - - def _get_vector(self, sample: Sample, vector_column: str) -> list[float] | None: - """Get the appropriate vector from a sample.""" - if vector_column == "embedding": - return sample.embedding - elif vector_column in ("embedding_2d_euclidean", "embedding_2d"): - return sample.embedding_2d - elif vector_column == "embedding_2d_hyperbolic": - return sample.embedding_2d_hyperbolic - else: - raise ValueError(f"Unknown vector column: {vector_column}") - - def _map_vector_column(self, vector_column: str) -> str: - """Map vector column name to LanceDB column name.""" - mapping = { - "embedding": "embedding", - "embedding_2d": "embedding_2d_euclidean", - "embedding_2d_euclidean": "embedding_2d_euclidean", - "embedding_2d_hyperbolic": "embedding_2d_hyperbolic", - } - return mapping.get(vector_column, vector_column) - - def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: - """Filter samples based on a predicate function.""" - return [s for s in self if predicate(s)] - def get_existing_ids(self, sample_ids: list[str]) -> set[str]: """Return the subset of sample_ids that exist in storage.""" - if self._table is None or not sample_ids: + if self._samples_table is None or not sample_ids: return set() existing: set[str] = set() @@ -396,7 +267,7 @@ def get_existing_ids(self, sample_ids: list[str]) -> set[str]: def query_chunk(chunk: list[str]) -> set[str]: escaped = [sid.replace("'", "''") for sid in chunk] id_list = "', '".join(escaped) - results = self._table.search().where(f"id IN ('{id_list}')").select(["id"]).to_list() + results = self._samples_table.search().where(f"id IN ('{id_list}')").select(["id"]).to_list() return {r["id"] for r in results} chunk_size = 1000 @@ -410,11 +281,8 @@ def query_chunk(chunk: list[str]) -> set[str]: return existing def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: - """Retrieve multiple samples by ID. - - Uses chunked `id IN (...)` queries to avoid per-ID round trips. - """ - if self._table is None or not sample_ids: + """Retrieve multiple samples by ID.""" + if self._samples_table is None or not sample_ids: return [] rows_by_id: dict[str, dict] = {} @@ -422,7 +290,7 @@ def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: def query_chunk(chunk: list[str]) -> None: escaped = [sid.replace("'", "''") for sid in chunk] id_list = "', '".join(escaped) - results = self._table.search().where(f"id IN ('{id_list}')").to_list() + results = self._samples_table.search().where(f"id IN ('{id_list}')").to_list() for r in results: rid = r.get("id") if isinstance(rid, str): @@ -439,91 +307,504 @@ def query_chunk(chunk: list[str]) -> None: out.append(dict_to_sample(row)) return out - def get_visualization_embeddings( + def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: + """Filter samples based on a predicate function.""" + return [s for s in self if predicate(s)] + + # ========================================================================= + # Spaces registry (embedding spaces) + # ========================================================================= + + def list_spaces(self) -> list[SpaceInfo]: + """List all embedding spaces.""" + rows = self._spaces_table.to_arrow().to_pylist() + return [SpaceInfo.from_dict(r) for r in rows] + + def get_space(self, space_key: str) -> SpaceInfo | None: + """Get info for a specific embedding space.""" + safe_key = space_key.replace("'", "''") + results = self._spaces_table.search().where(f"space_key = '{safe_key}'").limit(1).to_list() + if results: + return SpaceInfo.from_dict(results[0]) + return None + + def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> SpaceInfo: + """Ensure an embedding space exists, creating it if needed. + + Args: + model_id: The model identifier (e.g., "openai/clip-vit-base-patch32"). + dim: Vector dimension for this model. + config: Optional config dict for the space. + + Returns: + SpaceInfo for the space (existing or newly created). + + Raises: + ValueError: If space exists with different dimension. + """ + space_key = make_space_key(model_id) + existing = self.get_space(space_key) + + if existing is not None: + if existing.dim != dim: + raise ValueError( + f"Space '{space_key}' exists with dim={existing.dim}, " + f"but requested dim={dim}" + ) + return existing + + # Create new space + now = int(time.time()) + space_info = SpaceInfo( + space_key=space_key, + model_id=model_id, + dim=dim, + count=0, + created_at=now, + updated_at=now, + config=config, + ) + + # Add to registry + schema = create_spaces_schema() + arrow = pa.Table.from_pylist([space_info.to_dict()], schema=schema) + self._spaces_table.add(arrow) + + # Create embeddings table for this space + emb_table_name = f"embeddings__{space_key}" + emb_schema = create_embeddings_schema(dim) + self._db.create_table(emb_table_name, schema=emb_schema) + + return space_info + + def delete_space(self, space_key: str) -> bool: + """Delete an embedding space and its embeddings table.""" + safe_key = space_key.replace("'", "''") + + # Delete from registry + try: + self._spaces_table.delete(f"space_key = '{safe_key}'") + except Exception: + return False + + # Drop embeddings table + emb_table_name = f"embeddings__{space_key}" + if emb_table_name in self._db.table_names(): + self._db.drop_table(emb_table_name) + + return True + + def _update_space_count(self, space_key: str, count: int) -> None: + """Update the count and updated_at for a space.""" + now = int(time.time()) + self._spaces_table.update( + where=f"space_key = '{space_key}'", + values={"count": count, "updated_at": now}, + ) + + # ========================================================================= + # Embeddings operations + # ========================================================================= + + def get_embeddings_table_name(self, space_key: str) -> str: + """Get the table name for an embedding space.""" + return f"embeddings__{space_key}" + + def add_embeddings( self, - ) -> tuple[list[str], list[str | None], list[list[float]], list[list[float]]]: - """Return ids/labels and both 2D projections for the scatter.""" - if self._table is None: - return [], [], [], [] - - rows = ( - self._table.search() - .select(["id", "label", "embedding_2d_euclidean", "embedding_2d_hyperbolic"]) - .where("embedding_2d_euclidean IS NOT NULL AND embedding_2d_hyperbolic IS NOT NULL") - .to_list() + space_key: str, + ids: list[str], + vectors: np.ndarray, + ) -> None: + """Add embeddings to a space. + + Args: + space_key: The embedding space key. + ids: Sample IDs. + vectors: Embedding vectors (N x dim). + """ + if len(ids) != len(vectors): + raise ValueError("ids and vectors must have same length") + if len(ids) == 0: + return + + space = self.get_space(space_key) + if space is None: + raise ValueError(f"Space not found: {space_key}") + + if vectors.shape[1] != space.dim: + raise ValueError(f"Vector dim {vectors.shape[1]} != space dim {space.dim}") + + emb_table_name = self.get_embeddings_table_name(space_key) + emb_table = self._db.open_table(emb_table_name) + + # Convert to list of dicts + data = [ + {"id": id_, "vector": vec.astype(np.float32)} + for id_, vec in zip(ids, vectors) + ] + schema = create_embeddings_schema(space.dim) + arrow = pa.Table.from_pylist(data, schema=schema) + + # Use merge_insert for idempotent upsert (handles retries/partial runs) + ( + emb_table.merge_insert("id") + .when_matched_update_all() + .when_not_matched_insert_all() + .execute(arrow) ) - ids: list[str] = [] - labels: list[str | None] = [] - euclidean: list[list[float]] = [] - hyperbolic: list[list[float]] = [] + # Update count + new_count = emb_table.count_rows() + self._update_space_count(space_key, new_count) + + def get_embeddings( + self, + space_key: str, + ids: list[str] | None = None, + ) -> tuple[list[str], np.ndarray]: + """Get embeddings from a space. + + Args: + space_key: The embedding space key. + ids: Optional list of IDs to fetch. If None, fetch all. - for r in rows: - eid = r.get("id") - e2 = r.get("embedding_2d_euclidean") - h2 = r.get("embedding_2d_hyperbolic") - if not isinstance(eid, str) or e2 is None or h2 is None: - continue - ids.append(eid) - labels.append(r.get("label")) - euclidean.append(list(e2)) - hyperbolic.append(list(h2)) + Returns: + (ids, vectors) where vectors is (N x dim). + """ + space = self.get_space(space_key) + if space is None: + raise ValueError(f"Space not found: {space_key}") - return ids, labels, euclidean, hyperbolic + emb_table_name = self.get_embeddings_table_name(space_key) + if emb_table_name not in self._db.table_names(): + return [], np.empty((0, space.dim), dtype=np.float32) + + emb_table = self._db.open_table(emb_table_name) + + if ids is not None: + # Fetch specific IDs + escaped = [sid.replace("'", "''") for sid in ids] + id_list = "', '".join(escaped) + rows = emb_table.search().where(f"id IN ('{id_list}')").to_list() + else: + # Fetch all + rows = emb_table.to_arrow().to_pylist() + + if not rows: + return [], np.empty((0, space.dim), dtype=np.float32) + + out_ids = [r["id"] for r in rows] + out_vecs = np.array([r["vector"] for r in rows], dtype=np.float32) + return out_ids, out_vecs + + def get_embedded_ids(self, space_key: str) -> set[str]: + """Get the set of sample IDs that have embeddings in a space.""" + emb_table_name = self.get_embeddings_table_name(space_key) + if emb_table_name not in self._db.table_names(): + return set() + + emb_table = self._db.open_table(emb_table_name) + rows = emb_table.search().select(["id"]).to_list() + return {r["id"] for r in rows} + + def get_missing_embedding_ids(self, space_key: str) -> list[str]: + """Get sample IDs that don't have embeddings in a space.""" + if self._samples_table is None: + return [] + + all_ids = {r["id"] for r in self._samples_table.search().select(["id"]).to_list()} + embedded_ids = self.get_embedded_ids(space_key) + return list(all_ids - embedded_ids) + + # ========================================================================= + # Layouts operations + # ========================================================================= + + def get_layout_table_name(self, layout_key: str) -> str: + """Get the table name for a layout.""" + return f"layouts__{layout_key}" + + def list_layouts(self) -> list[str]: + """List all layout keys.""" + layouts = [] + for name in self._db.table_names(): + if name.startswith("layouts__"): + layouts.append(name[len("layouts__") :]) + return layouts + + def ensure_layout(self, layout_key: str) -> None: + """Ensure a layout table exists.""" + table_name = self.get_layout_table_name(layout_key) + if table_name not in self._db.table_names(): + schema = create_layouts_schema() + self._db.create_table(table_name, schema=schema) + + def delete_layout(self, layout_key: str) -> bool: + """Delete a layout table.""" + table_name = self.get_layout_table_name(layout_key) + if table_name in self._db.table_names(): + self._db.drop_table(table_name) + return True + return False + + def add_layout_coords( + self, + layout_key: str, + ids: list[str], + coords: np.ndarray, + ) -> None: + """Add layout coordinates. + + Args: + layout_key: The layout key. + ids: Sample IDs. + coords: 2D coordinates (N x 2). + """ + if len(ids) != len(coords): + raise ValueError("ids and coords must have same length") + if len(ids) == 0: + return + + self.ensure_layout(layout_key) + + table_name = self.get_layout_table_name(layout_key) + table = self._db.open_table(table_name) + + data = [ + {"id": id_, "x": float(coord[0]), "y": float(coord[1])} + for id_, coord in zip(ids, coords) + ] + schema = create_layouts_schema() + arrow = pa.Table.from_pylist(data, schema=schema) + + # Use merge_insert to handle updates + ( + table.merge_insert("id") + .when_matched_update_all() + .when_not_matched_insert_all() + .execute(arrow) + ) + + def get_layout_coords( + self, + layout_key: str, + ids: list[str] | None = None, + ) -> tuple[list[str], np.ndarray]: + """Get layout coordinates. + + Args: + layout_key: The layout key. + ids: Optional list of IDs to fetch. If None, fetch all. + + Returns: + (ids, coords) where coords is (N x 2). + """ + table_name = self.get_layout_table_name(layout_key) + if table_name not in self._db.table_names(): + return [], np.empty((0, 2), dtype=np.float32) + + table = self._db.open_table(table_name) + + if ids is not None: + escaped = [sid.replace("'", "''") for sid in ids] + id_list = "', '".join(escaped) + rows = table.search().where(f"id IN ('{id_list}')").to_list() + else: + rows = table.to_arrow().to_pylist() + + if not rows: + return [], np.empty((0, 2), dtype=np.float32) + + out_ids = [r["id"] for r in rows] + out_coords = np.array([[r["x"], r["y"]] for r in rows], dtype=np.float32) + return out_ids, out_coords + + def get_visualization_data( + self, + layout_key: str, + ) -> tuple[list[str], list[str | None], np.ndarray]: + """Get visualization data (ids, labels, coords) for a layout. + + This joins samples with layout coords for the scatter plot. + + Returns: + (ids, labels, coords) where coords is (N x 2). + """ + table_name = self.get_layout_table_name(layout_key) + if table_name not in self._db.table_names(): + return [], [], np.empty((0, 2), dtype=np.float32) + + if self._samples_table is None: + return [], [], np.empty((0, 2), dtype=np.float32) + + layout_table = self._db.open_table(table_name) + + # Get all layout coords + layout_rows = layout_table.to_arrow().to_pylist() + if not layout_rows: + return [], [], np.empty((0, 2), dtype=np.float32) + + # Build id -> coords map + coords_by_id = {r["id"]: (r["x"], r["y"]) for r in layout_rows} + layout_ids = list(coords_by_id.keys()) + + # Get labels for these IDs + escaped = [sid.replace("'", "''") for sid in layout_ids] + id_list = "', '".join(escaped) + sample_rows = self._samples_table.search().select(["id", "label"]).where(f"id IN ('{id_list}')").to_list() + labels_by_id = {r["id"]: r.get("label") for r in sample_rows} + + # Build aligned output + ids = [] + labels = [] + coords = [] + for id_ in layout_ids: + if id_ in labels_by_id: + ids.append(id_) + labels.append(labels_by_id[id_]) + coords.append(coords_by_id[id_]) + + return ids, labels, np.array(coords, dtype=np.float32) if coords else np.empty((0, 2), dtype=np.float32) def get_lasso_candidates_aabb( self, *, - space: str, + layout_key: str, x_min: float, x_max: float, y_min: float, y_max: float, - ) -> tuple[list[str], "np.ndarray"]: - """Return candidate (id, xy) rows within an AABB for a given projection.""" - if self._table is None: - import numpy as np + ) -> tuple[list[str], np.ndarray]: + """Return candidate (id, xy) rows within an AABB for a layout.""" + table_name = self.get_layout_table_name(layout_key) + if table_name not in self._db.table_names(): + return [], np.empty((0, 2), dtype=np.float32) + + table = self._db.open_table(table_name) + expr = f"x >= {x_min} AND x <= {x_max} AND y >= {y_min} AND y <= {y_max}" + rows = table.search().where(expr).to_list() + + if not rows: return [], np.empty((0, 2), dtype=np.float32) - if space == "euclidean": - col = "embedding_2d_euclidean" - elif space == "hyperbolic": - col = "embedding_2d_hyperbolic" - else: - raise ValueError(f"Unknown space: {space}") - - # Keep selection universe consistent with /api/embeddings: require both projections. - expr = ( - "embedding_2d_euclidean IS NOT NULL AND " - "embedding_2d_hyperbolic IS NOT NULL AND " - f"{col}[1] >= {x_min} AND {col}[1] <= {x_max} AND " - f"{col}[2] >= {y_min} AND {col}[2] <= {y_max}" - ) + ids = [r["id"] for r in rows] + coords = np.array([[r["x"], r["y"]] for r in rows], dtype=np.float32) + return ids, coords - rows = self._table.search().select(["id", col]).where(expr).to_list() + # ========================================================================= + # Similarity search + # ========================================================================= - ids: list[str] = [] - coords: list[list[float]] = [] - for r in rows: - sid = r.get("id") - xy = r.get(col) - if not isinstance(sid, str) or xy is None: - continue - if len(xy) != 2: - continue - ids.append(sid) - coords.append([float(xy[0]), float(xy[1])]) + def find_similar( + self, + sample_id: str, + k: int = 10, + space_key: str | None = None, + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a sample. - import numpy as np + Args: + sample_id: The query sample ID. + k: Number of neighbors. + space_key: Embedding space to use. If None, uses default. - if not coords: - return [], np.empty((0, 2), dtype=np.float32) - return ids, np.asarray(coords, dtype=np.float32) + Returns: + List of (sample, distance) tuples. + """ + if space_key is None: + spaces = self.list_spaces() + if not spaces: + raise ValueError("No embedding spaces available") + space_key = spaces[0].space_key + + # Get query vector + ids, vecs = self.get_embeddings(space_key, [sample_id]) + if not ids: + raise ValueError(f"Sample {sample_id} has no embedding in space {space_key}") + + query_vector = vecs[0] + results = self.find_similar_by_vector(query_vector, k + 1, space_key) + return [(s, d) for s, d in results if s.id != sample_id][:k] - def close(self) -> None: - """Close the storage connection.""" - return + def find_similar_by_vector( + self, + vector: list[float] | np.ndarray, + k: int = 10, + space_key: str | None = None, + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a query vector.""" + import math + + if space_key is None: + spaces = self.list_spaces() + if not spaces: + raise ValueError("No embedding spaces available") + space_key = spaces[0].space_key + + space = self.get_space(space_key) + if space is None: + raise ValueError(f"Space not found: {space_key}") + + emb_table_name = self.get_embeddings_table_name(space_key) + if emb_table_name not in self._db.table_names(): + return [] + + emb_table = self._db.open_table(emb_table_name) + + try: + results = ( + emb_table.search(vector, vector_column_name="vector") + .metric("cosine") + .limit(k) + .to_list() + ) + + # Get sample info for results + result_ids = [r["id"] for r in results] + samples = self.get_samples_by_ids(result_ids) + samples_by_id = {s.id: s for s in samples} + + return [ + ( + samples_by_id[r["id"]], + 0.0 if math.isnan(d := r.get("_distance", 0.0)) else float(d), + ) + for r in results + if r["id"] in samples_by_id + ] + except Exception: + return [] + + # ========================================================================= + # Vector index creation + # ========================================================================= + + def create_vector_index(self, space_key: str) -> None: + """Create an ANN index for an embedding space.""" + emb_table_name = self.get_embeddings_table_name(space_key) + if emb_table_name not in self._db.table_names(): + return + + emb_table = self._db.open_table(emb_table_name) + num_rows = emb_table.count_rows() + if num_rows < 256: + return + + try: + emb_table.create_index( + vector_column_name="vector", + index_type="IVF_PQ", + num_partitions=min(256, num_rows // 10), + num_sub_vectors=16, + ) + except Exception: + pass + + # ========================================================================= + # Label colors + # ========================================================================= @property def label_colors(self) -> dict[str, str]: @@ -538,7 +819,6 @@ def label_colors(self) -> dict[str, str]: value = rows[0].get("value") self._label_colors_cache = json.loads(value) if value else {} - return self._label_colors_cache @label_colors.setter @@ -555,74 +835,57 @@ def label_colors(self, colors: dict[str, str]) -> None: row = {"key": "label_colors", "value": json.dumps(colors)} self._metadata_table.add(pa.Table.from_pylist([row], schema=schema)) - def create_vector_index(self, vector_column: str = "embedding") -> None: - """Create an ANN index for vector search.""" - if self._table is None: - return - num_rows = self._table.count_rows() - if num_rows < 256: - return + # ========================================================================= + # Lifecycle + # ========================================================================= - lance_column = self._map_vector_column(vector_column) + def close(self) -> None: + """Close the storage connection.""" + pass - try: - self._table.create_index( - vector_column_name=lance_column, - index_type="IVF_PQ", - num_partitions=min(256, num_rows // 10), - num_sub_vectors=16, - ) - except Exception: - return + # ========================================================================= + # Class methods for dataset management + # ========================================================================= @classmethod - def list_datasets(cls, database_dir: Path | None = None) -> list[str]: - """List all available datasets in the database directory.""" - if database_dir is None: - database_dir = get_default_database_dir() + def list_datasets(cls, datasets_dir: Path | None = None) -> list[str]: + """List all available datasets.""" + if datasets_dir is None: + datasets_dir = get_default_datasets_dir() - if not database_dir.exists(): + if not datasets_dir.exists(): return [] - db = lancedb.connect(str(database_dir)) datasets = [] - for table_name in db.table_names(): - if table_name.startswith("hyperview_") and not table_name.endswith("_meta"): - datasets.append(table_name[len("hyperview_") :]) + for path in datasets_dir.iterdir(): + if path.is_dir(): + # Check if it looks like a LanceDB dataset + if (path / "samples.lance").exists() or any( + p.name.endswith(".lance") for p in path.iterdir() if p.is_dir() + ): + datasets.append(path.name) return sorted(datasets) @classmethod - def delete_dataset(cls, dataset_name: str, database_dir: Path | None = None) -> bool: - """Delete a dataset from the database.""" - if database_dir is None: - database_dir = get_default_database_dir() + def delete_dataset(cls, dataset_name: str, datasets_dir: Path | None = None) -> bool: + """Delete a dataset directory.""" + if datasets_dir is None: + datasets_dir = get_default_datasets_dir() - if not database_dir.exists(): + dataset_path = datasets_dir / dataset_name + if not dataset_path.exists(): return False - db = lancedb.connect(str(database_dir)) - table_name = f"hyperview_{dataset_name}" - metadata_table_name = f"hyperview_{dataset_name}_meta" - - deleted = False - if table_name in db.table_names(): - db.drop_table(table_name) - deleted = True + import shutil - if metadata_table_name in db.table_names(): - db.drop_table(metadata_table_name) - - return deleted + shutil.rmtree(dataset_path) + return True @classmethod - def dataset_exists(cls, dataset_name: str, database_dir: Path | None = None) -> bool: + def dataset_exists(cls, dataset_name: str, datasets_dir: Path | None = None) -> bool: """Check if a dataset exists.""" - if database_dir is None: - database_dir = get_default_database_dir() - - if not database_dir.exists(): - return False + if datasets_dir is None: + datasets_dir = get_default_datasets_dir() - db = lancedb.connect(str(database_dir)) - table_name = f"hyperview_{dataset_name}" - return table_name in db.table_names() + dataset_path = datasets_dir / dataset_name + return dataset_path.exists() and dataset_path.is_dir() diff --git a/src/hyperview/storage/memory_backend.py b/src/hyperview/storage/memory_backend.py index 2dad945..6326cd6 100644 --- a/src/hyperview/storage/memory_backend.py +++ b/src/hyperview/storage/memory_backend.py @@ -1,15 +1,22 @@ """In-memory storage backend for testing and development.""" +import time from collections.abc import Callable, Iterator +from dataclasses import dataclass, field +from typing import Any import numpy as np from hyperview.core.sample import Sample from hyperview.storage.backend import StorageBackend +from hyperview.storage.schema import SpaceInfo, make_space_key class MemoryBackend(StorageBackend): - """In-memory storage backend (current behavior, for testing and backwards compatibility).""" + """In-memory storage backend for testing and development. + + Implements the same interface as LanceDBBackend but stores everything in memory. + """ def __init__(self, dataset_name: str): """Initialize in-memory backend. @@ -21,6 +28,19 @@ def __init__(self, dataset_name: str): self._samples: dict[str, Sample] = {} self._label_colors: dict[str, str] = {} + # Spaces registry + self._spaces: dict[str, SpaceInfo] = {} + + # Embeddings: space_key -> {sample_id -> vector} + self._embeddings: dict[str, dict[str, np.ndarray]] = {} + + # Layouts: layout_key -> {sample_id -> (x, y)} + self._layouts: dict[str, dict[str, tuple[float, float]]] = {} + + # ========================================================================= + # Sample CRUD + # ========================================================================= + def add_sample(self, sample: Sample) -> None: """Add a single sample to storage.""" self._samples[sample.id] = sample @@ -84,71 +104,6 @@ def get_unique_labels(self) -> list[str]: labels = {s.label for s in self._samples.values() if s.label} return sorted(labels) - def find_similar( - self, - sample_id: str, - k: int = 10, - vector_column: str = "embedding", - ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a sample.""" - sample = self._samples.get(sample_id) - if sample is None: - raise ValueError(f"Sample not found: {sample_id}") - - query_vector = self._get_vector(sample, vector_column) - if query_vector is None: - raise ValueError(f"Sample {sample_id} has no {vector_column}") - - # Find similar, excluding self - results = self.find_similar_by_vector(query_vector, k + 1, vector_column) - return [(s, d) for s, d in results if s.id != sample_id][:k] - - def find_similar_by_vector( - self, - vector: list[float], - k: int = 10, - vector_column: str = "embedding", - ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a query vector.""" - query = np.array(vector) - distances: list[tuple[Sample, float]] = [] - - for sample in self._samples.values(): - vec = self._get_vector(sample, vector_column) - if vec is None: - continue - - # Cosine distance - vec_np = np.array(vec) - norm_query = np.linalg.norm(query) - norm_vec = np.linalg.norm(vec_np) - - if norm_query == 0 or norm_vec == 0: - distance = 1.0 - else: - cosine_sim = np.dot(query, vec_np) / (norm_query * norm_vec) - distance = 1 - cosine_sim - - distances.append((sample, float(distance))) - - distances.sort(key=lambda x: x[1]) - return distances[:k] - - def _get_vector(self, sample: Sample, vector_column: str) -> list[float] | None: - """Get the appropriate vector from a sample.""" - if vector_column == "embedding": - return sample.embedding - elif vector_column == "embedding_2d_euclidean": - return sample.embedding_2d - elif vector_column == "embedding_2d_hyperbolic": - return sample.embedding_2d_hyperbolic - else: - raise ValueError(f"Unknown vector column: {vector_column}") - - def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: - """Filter samples based on a predicate function.""" - return [s for s in self._samples.values() if predicate(s)] - def get_existing_ids(self, sample_ids: list[str]) -> set[str]: """Return set of sample_ids that already exist in storage.""" return {sid for sid in sample_ids if sid in self._samples} @@ -162,58 +117,286 @@ def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: out.append(s) return out - def get_visualization_embeddings( + def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: + """Filter samples based on a predicate function.""" + return [s for s in self._samples.values() if predicate(s)] + + # ========================================================================= + # Spaces registry + # ========================================================================= + + def list_spaces(self) -> list[SpaceInfo]: + """List all embedding spaces.""" + return list(self._spaces.values()) + + def get_space(self, space_key: str) -> SpaceInfo | None: + """Get info for a specific embedding space.""" + return self._spaces.get(space_key) + + def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> SpaceInfo: + """Ensure an embedding space exists, creating if needed.""" + space_key = make_space_key(model_id) + + if space_key in self._spaces: + existing = self._spaces[space_key] + if existing.dim != dim: + raise ValueError( + f"Space '{space_key}' exists with dim={existing.dim}, " + f"but requested dim={dim}" + ) + return existing + + now = int(time.time()) + space_info = SpaceInfo( + space_key=space_key, + model_id=model_id, + dim=dim, + count=0, + created_at=now, + updated_at=now, + config=config, + ) + self._spaces[space_key] = space_info + self._embeddings[space_key] = {} + return space_info + + def delete_space(self, space_key: str) -> bool: + """Delete an embedding space and its embeddings.""" + if space_key in self._spaces: + del self._spaces[space_key] + self._embeddings.pop(space_key, None) + return True + return False + + # ========================================================================= + # Embeddings + # ========================================================================= + + def add_embeddings( self, - ) -> tuple[list[str], list[str | None], list[list[float]], list[list[float]]]: - """Return ids/labels and both 2D projections for the scatter.""" - ids: list[str] = [] - labels: list[str | None] = [] - euclidean: list[list[float]] = [] - hyperbolic: list[list[float]] = [] - - for s in self._samples.values(): - if s.embedding_2d is None or s.embedding_2d_hyperbolic is None: - continue - ids.append(s.id) - labels.append(s.label) - euclidean.append(s.embedding_2d) - hyperbolic.append(s.embedding_2d_hyperbolic) + space_key: str, + ids: list[str], + vectors: np.ndarray, + ) -> None: + """Add embeddings to a space.""" + if len(ids) != len(vectors): + raise ValueError("ids and vectors must have same length") + if len(ids) == 0: + return + + if space_key not in self._spaces: + raise ValueError(f"Space not found: {space_key}") + + space = self._spaces[space_key] + if vectors.shape[1] != space.dim: + raise ValueError(f"Vector dim {vectors.shape[1]} != space dim {space.dim}") + + emb_store = self._embeddings.setdefault(space_key, {}) + for id_, vec in zip(ids, vectors): + emb_store[id_] = vec.astype(np.float32) + + # Update count + space.count = len(emb_store) + space.updated_at = int(time.time()) + + def get_embeddings( + self, + space_key: str, + ids: list[str] | None = None, + ) -> tuple[list[str], np.ndarray]: + """Get embeddings from a space.""" + if space_key not in self._spaces: + raise ValueError(f"Space not found: {space_key}") + + space = self._spaces[space_key] + emb_store = self._embeddings.get(space_key, {}) + + if ids is not None: + out_ids = [id_ for id_ in ids if id_ in emb_store] + if not out_ids: + return [], np.empty((0, space.dim), dtype=np.float32) + out_vecs = np.array([emb_store[id_] for id_ in out_ids], dtype=np.float32) + return out_ids, out_vecs + else: + if not emb_store: + return [], np.empty((0, space.dim), dtype=np.float32) + out_ids = list(emb_store.keys()) + out_vecs = np.array([emb_store[id_] for id_ in out_ids], dtype=np.float32) + return out_ids, out_vecs + + def get_embedded_ids(self, space_key: str) -> set[str]: + """Get the set of sample IDs that have embeddings in a space.""" + return set(self._embeddings.get(space_key, {}).keys()) + + def get_missing_embedding_ids(self, space_key: str) -> list[str]: + """Get sample IDs that don't have embeddings in a space.""" + embedded = self.get_embedded_ids(space_key) + return [id_ for id_ in self._samples.keys() if id_ not in embedded] + + # ========================================================================= + # Layouts + # ========================================================================= + + def list_layouts(self) -> list[str]: + """List all layout keys.""" + return list(self._layouts.keys()) + + def ensure_layout(self, layout_key: str) -> None: + """Ensure a layout exists.""" + if layout_key not in self._layouts: + self._layouts[layout_key] = {} + + def delete_layout(self, layout_key: str) -> bool: + """Delete a layout.""" + if layout_key in self._layouts: + del self._layouts[layout_key] + return True + return False + + def add_layout_coords( + self, + layout_key: str, + ids: list[str], + coords: np.ndarray, + ) -> None: + """Add layout coordinates.""" + if len(ids) != len(coords): + raise ValueError("ids and coords must have same length") + + self.ensure_layout(layout_key) + layout_store = self._layouts[layout_key] + + for id_, coord in zip(ids, coords): + layout_store[id_] = (float(coord[0]), float(coord[1])) + + def get_layout_coords( + self, + layout_key: str, + ids: list[str] | None = None, + ) -> tuple[list[str], np.ndarray]: + """Get layout coordinates.""" + layout_store = self._layouts.get(layout_key, {}) + + if ids is not None: + out_ids = [id_ for id_ in ids if id_ in layout_store] + else: + out_ids = list(layout_store.keys()) - return ids, labels, euclidean, hyperbolic + if not out_ids: + return [], np.empty((0, 2), dtype=np.float32) + + out_coords = np.array([layout_store[id_] for id_ in out_ids], dtype=np.float32) + return out_ids, out_coords + + def get_visualization_data( + self, + layout_key: str, + ) -> tuple[list[str], list[str | None], np.ndarray]: + """Get visualization data for scatter plot.""" + layout_store = self._layouts.get(layout_key, {}) + + if not layout_store: + return [], [], np.empty((0, 2), dtype=np.float32) + + ids = [] + labels = [] + coords = [] + + for id_, (x, y) in layout_store.items(): + sample = self._samples.get(id_) + if sample is not None: + ids.append(id_) + labels.append(sample.label) + coords.append([x, y]) + + return ids, labels, np.array(coords, dtype=np.float32) if coords else np.empty((0, 2), dtype=np.float32) def get_lasso_candidates_aabb( self, *, - space: str, + layout_key: str, x_min: float, x_max: float, y_min: float, y_max: float, ) -> tuple[list[str], np.ndarray]: - """Return candidate (id, xy) rows within an AABB for a given projection.""" - if space not in ("euclidean", "hyperbolic"): - raise ValueError(f"Unknown space: {space}") + """Return candidate (id, xy) rows within an AABB.""" + layout_store = self._layouts.get(layout_key, {}) - ids: list[str] = [] - coords: list[list[float]] = [] + ids = [] + coords = [] - for s in self._samples.values(): - # Keep selection universe consistent with /api/embeddings: require both projections. - if s.embedding_2d is None or s.embedding_2d_hyperbolic is None: + for id_, (x, y) in layout_store.items(): + if x < x_min or x > x_max or y < y_min or y > y_max: continue + ids.append(id_) + coords.append([x, y]) - xy = s.embedding_2d if space == "euclidean" else s.embedding_2d_hyperbolic - if xy is None or len(xy) != 2: - continue + return ids, np.array(coords, dtype=np.float32) if coords else np.empty((0, 2), dtype=np.float32) - x, y = float(xy[0]), float(xy[1]) - if x < x_min or x > x_max or y < y_min or y > y_max: + # ========================================================================= + # Similarity search + # ========================================================================= + + def find_similar( + self, + sample_id: str, + k: int = 10, + space_key: str | None = None, + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a sample.""" + if space_key is None: + if not self._spaces: + raise ValueError("No embedding spaces available") + space_key = list(self._spaces.keys())[0] + + emb_store = self._embeddings.get(space_key, {}) + if sample_id not in emb_store: + raise ValueError(f"Sample {sample_id} has no embedding in space {space_key}") + + query_vector = emb_store[sample_id] + results = self.find_similar_by_vector(query_vector, k + 1, space_key) + return [(s, d) for s, d in results if s.id != sample_id][:k] + + def find_similar_by_vector( + self, + vector: list[float] | np.ndarray, + k: int = 10, + space_key: str | None = None, + ) -> list[tuple[Sample, float]]: + """Find k nearest neighbors to a query vector.""" + if space_key is None: + if not self._spaces: + raise ValueError("No embedding spaces available") + space_key = list(self._spaces.keys())[0] + + emb_store = self._embeddings.get(space_key, {}) + query = np.array(vector, dtype=np.float32) + + distances: list[tuple[Sample, float]] = [] + for id_, vec in emb_store.items(): + sample = self._samples.get(id_) + if sample is None: continue - ids.append(s.id) - coords.append([x, y]) + # Cosine distance + norm_query = np.linalg.norm(query) + norm_vec = np.linalg.norm(vec) + + if norm_query == 0 or norm_vec == 0: + distance = 1.0 + else: + cosine_sim = np.dot(query, vec) / (norm_query * norm_vec) + distance = 1 - cosine_sim + + distances.append((sample, float(distance))) + + distances.sort(key=lambda x: x[1]) + return distances[:k] - return ids, np.asarray(coords, dtype=np.float32) + # ========================================================================= + # Lifecycle and metadata + # ========================================================================= def close(self) -> None: """Close the storage connection (no-op for in-memory).""" diff --git a/src/hyperview/storage/schema.py b/src/hyperview/storage/schema.py index ceb1a13..ac2f027 100644 --- a/src/hyperview/storage/schema.py +++ b/src/hyperview/storage/schema.py @@ -1,6 +1,16 @@ -"""LanceDB schema definitions for HyperView samples.""" +"""LanceDB schema definitions for HyperView. + +Storage architecture: +- samples: Core sample metadata (no embeddings) +- metadata: Key-value pairs for dataset config +- spaces: Registry of embedding spaces +- embeddings__: One table per embedding space (id + vector) +- layouts__: One table per layout (id + x + y) +""" import json +import re +from dataclasses import dataclass from typing import Any import pyarrow as pa @@ -8,34 +18,24 @@ from hyperview.core.sample import Sample -def create_sample_schema(embedding_dim: int = 512) -> pa.Schema: +def create_sample_schema() -> pa.Schema: """Create the PyArrow schema for samples. - Using PyArrow schema instead of LanceModel allows dynamic embedding dimensions. - - Args: - embedding_dim: Dimension of the high-dimensional embedding vector. - - Returns: - PyArrow schema for the samples table. + Samples are pure metadata - embeddings and layouts are stored separately. """ - # Use fixed-size lists for ANN index support in LanceDB return pa.schema( [ pa.field("id", pa.utf8(), nullable=False), pa.field("filepath", pa.utf8(), nullable=False), pa.field("label", pa.utf8(), nullable=True), pa.field("metadata_json", pa.utf8(), nullable=True), - pa.field("embedding", pa.list_(pa.float32(), embedding_dim), nullable=True), - pa.field("embedding_2d_euclidean", pa.list_(pa.float32(), 2), nullable=True), - pa.field("embedding_2d_hyperbolic", pa.list_(pa.float32(), 2), nullable=True), pa.field("thumbnail_base64", pa.utf8(), nullable=True), ] ) def create_metadata_schema() -> pa.Schema: - """Create the PyArrow schema for dataset metadata.""" + """Create the PyArrow schema for dataset metadata (key-value store).""" return pa.schema( [ pa.field("key", pa.utf8(), nullable=False), @@ -44,49 +44,153 @@ def create_metadata_schema() -> pa.Schema: ) -def sample_to_dict(sample: Sample, embedding_dim: int = 512) -> dict[str, Any]: - """Convert a Sample to a dictionary for LanceDB insertion. +def create_spaces_schema() -> pa.Schema: + """Create the PyArrow schema for the spaces registry. + + Each row represents an embedding space (one per model). + """ + return pa.schema( + [ + pa.field("space_key", pa.utf8(), nullable=False), + pa.field("model_id", pa.utf8(), nullable=False), + pa.field("dim", pa.int32(), nullable=False), + pa.field("count", pa.int64(), nullable=False), + pa.field("created_at", pa.int64(), nullable=False), + pa.field("updated_at", pa.int64(), nullable=False), + pa.field("config_json", pa.utf8(), nullable=True), + ] + ) + + +def create_embeddings_schema(dim: int) -> pa.Schema: + """Create the PyArrow schema for an embeddings table. Args: - sample: The Sample object to convert. - embedding_dim: Expected embedding dimension for padding/validation. + dim: Vector dimension for this embedding space. + """ + return pa.schema( + [ + pa.field("id", pa.utf8(), nullable=False), + pa.field("vector", pa.list_(pa.float32(), dim), nullable=False), + ] + ) + + +def create_layouts_schema() -> pa.Schema: + """Create the PyArrow schema for a layouts table. + + Layouts store 2D coordinates for visualization. + """ + return pa.schema( + [ + pa.field("id", pa.utf8(), nullable=False), + pa.field("x", pa.float32(), nullable=False), + pa.field("y", pa.float32(), nullable=False), + ] + ) + + +@dataclass +class SpaceInfo: + """Metadata for an embedding space.""" + + space_key: str + model_id: str + dim: int + count: int + created_at: int + updated_at: int + config: dict[str, Any] | None = None + + def to_dict(self) -> dict[str, Any]: + """Convert to dictionary for storage.""" + return { + "space_key": self.space_key, + "model_id": self.model_id, + "dim": self.dim, + "count": self.count, + "created_at": self.created_at, + "updated_at": self.updated_at, + "config_json": json.dumps(self.config) if self.config else None, + } + + @classmethod + def from_dict(cls, row: dict[str, Any]) -> "SpaceInfo": + """Create from storage dictionary.""" + config = None + if row.get("config_json"): + try: + config = json.loads(row["config_json"]) + except (json.JSONDecodeError, TypeError): + pass + return cls( + space_key=row["space_key"], + model_id=row["model_id"], + dim=row["dim"], + count=row["count"], + created_at=row["created_at"], + updated_at=row["updated_at"], + config=config, + ) + + +def slugify_model_id(model_id: str) -> str: + """Convert a model ID to a safe table name component. + + Examples: + "openai/clip-vit-base-patch32" -> "openai_clip-vit-base-patch32" + "sentence-transformers/all-MiniLM-L6-v2" -> "sentence-transformers_all-MiniLM-L6-v2" + """ + # Replace / with _ + slug = model_id.replace("/", "_") + # Replace any other unsafe characters with _ + slug = re.sub(r"[^a-zA-Z0-9_\-]", "_", slug) + # Collapse multiple underscores + slug = re.sub(r"_+", "_", slug) + return slug.strip("_") + + +def make_space_key(model_id: str) -> str: + """Generate a space_key from a model_id. + + For simplicity, this is just the slugified model_id. + """ + return slugify_model_id(model_id) + + +def make_layout_key( + space_key: str, + method: str = "umap", + geometry: str = "euclidean", +) -> str: + """Generate a layout_key from space, method, and geometry. + + Args: + space_key: The embedding space key. + method: Layout method (e.g., "umap"). + geometry: Geometry type ("euclidean" or "poincare"). Returns: - Dictionary suitable for LanceDB insertion. + Layout key like "clip__poincare_umap" or "clip__euclidean_umap". """ - # Handle embedding - ensure correct dimension or None - embedding = None - if sample.embedding is not None: - embedding = list(sample.embedding) - # Pad or truncate to expected dimension - if len(embedding) < embedding_dim: - embedding.extend([0.0] * (embedding_dim - len(embedding))) - elif len(embedding) > embedding_dim: - embedding = embedding[:embedding_dim] + # Format: {space}__{geometry}_{method} + # Frontend parses for "poincare" or "hyperbolic" to auto-detect geometry + return f"{space_key}__{geometry}_{method}" + +def sample_to_dict(sample: Sample) -> dict[str, Any]: + """Convert a Sample to a dictionary for LanceDB insertion.""" return { "id": sample.id, "filepath": sample.filepath, "label": sample.label, "metadata_json": json.dumps(sample.metadata) if sample.metadata else None, - "embedding": embedding, - "embedding_2d_euclidean": list(sample.embedding_2d) if sample.embedding_2d else None, - "embedding_2d_hyperbolic": ( - list(sample.embedding_2d_hyperbolic) if sample.embedding_2d_hyperbolic else None - ), "thumbnail_base64": sample.thumbnail_base64, } def dict_to_sample(row: dict[str, Any]) -> Sample: - """Convert a LanceDB row to a Sample object. - - Args: - row: Dictionary from LanceDB query result. - - Returns: - Sample object. - """ + """Convert a LanceDB row to a Sample object.""" metadata = {} if row.get("metadata_json"): try: @@ -94,26 +198,11 @@ def dict_to_sample(row: dict[str, Any]) -> Sample: except (json.JSONDecodeError, TypeError): metadata = {} - # Convert numpy arrays to lists if needed - embedding = row.get("embedding") - if embedding is not None and hasattr(embedding, "tolist"): - embedding = embedding.tolist() - - embedding_2d = row.get("embedding_2d_euclidean") - if embedding_2d is not None and hasattr(embedding_2d, "tolist"): - embedding_2d = embedding_2d.tolist() - - embedding_2d_hyperbolic = row.get("embedding_2d_hyperbolic") - if embedding_2d_hyperbolic is not None and hasattr(embedding_2d_hyperbolic, "tolist"): - embedding_2d_hyperbolic = embedding_2d_hyperbolic.tolist() - return Sample( id=row["id"], filepath=row["filepath"], label=row.get("label"), metadata=metadata, - embedding=embedding, - embedding_2d=embedding_2d, - embedding_2d_hyperbolic=embedding_2d_hyperbolic, thumbnail_base64=row.get("thumbnail_base64"), ) + From 9d28b0b660a14878d7a681026501ad0f2919ec33 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Tue, 20 Jan 2026 01:25:56 +0100 Subject: [PATCH 31/75] feat: enhance layout management with new registry and response models --- frontend/src/app/page.tsx | 9 +- frontend/src/components/ScatterPanel.tsx | 15 +-- frontend/src/components/useHyperScatter.ts | 4 +- frontend/src/lib/layouts.ts | 34 ++---- frontend/src/types/index.ts | 15 ++- src/hyperview/core/dataset.py | 116 +++++++++++++++---- src/hyperview/server/app.py | 114 +++++++++---------- src/hyperview/storage/backend.py | 19 +++- src/hyperview/storage/lancedb_backend.py | 124 +++++++++++++++----- src/hyperview/storage/memory_backend.py | 65 ++++++++--- src/hyperview/storage/schema.py | 125 ++++++++++++++++----- 11 files changed, 457 insertions(+), 183 deletions(-) diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index 59dc2f6..9dd6c5c 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -16,7 +16,6 @@ import { fetchSamplesBatch, fetchLassoSelection, } from "@/lib/api"; -import { getLayoutGeometry } from "@/lib/layouts"; const SAMPLES_PER_PAGE = 100; @@ -83,18 +82,18 @@ export default function Home() { useEffect(() => { if (!datasetInfo) return; - // Find layout key for current geometry - const targetLayout = datasetInfo.layouts.find((l) => getLayoutGeometry(l) === geometry); + // Find layout for current geometry (using LayoutInfo.geometry directly) + const targetLayout = datasetInfo.layouts.find((l) => l.geometry === geometry); if (!targetLayout) return; // Skip if already showing this layout const currentLayout = useStore.getState().currentLayoutKey; - if (currentLayout === targetLayout) return; + if (currentLayout === targetLayout.layout_key) return; const loadGeometry = async () => { setGeometryLoading(true); try { - const embeddingsData = await fetchEmbeddings(targetLayout); + const embeddingsData = await fetchEmbeddings(targetLayout.layout_key); setEmbeddings(embeddingsData); } catch (err) { console.error("Failed to load geometry:", err); diff --git a/frontend/src/components/ScatterPanel.tsx b/frontend/src/components/ScatterPanel.tsx index 7702228..dd3f275 100644 --- a/frontend/src/components/ScatterPanel.tsx +++ b/frontend/src/components/ScatterPanel.tsx @@ -8,7 +8,7 @@ import { EuclideanIcon, PoincareIcon, ScatterIcon } from "./icons"; import { type ScatterLabelsInfo, useHyperScatter } from "./useHyperScatter"; import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; import type { Geometry } from "@/types"; -import { getLayoutSpaceKey, listAvailableGeometries } from "@/lib/layouts"; +import { listAvailableGeometries } from "@/lib/layouts"; interface ScatterPanelProps { className?: string; @@ -33,17 +33,18 @@ export function ScatterPanel({ className = "" }: ScatterPanelProps) { }, [datasetInfo?.layouts]); const embeddingModelName = useMemo(() => { - if (!embeddings) return null; + if (!embeddings || !datasetInfo) return null; const layoutKey = embeddings.layout_key; - const spaceKey = getLayoutSpaceKey(layoutKey); - const space = - datasetInfo?.spaces.find((s) => s.space_key === spaceKey) ?? - datasetInfo?.spaces.find((s) => layoutKey.startsWith(`${s.space_key}__`)); + // Find the LayoutInfo for current layout to get space_key directly + const layoutInfo = datasetInfo.layouts.find((l) => l.layout_key === layoutKey); + const spaceKey = layoutInfo?.space_key ?? layoutKey.split("__")[0]; + + const space = datasetInfo.spaces.find((s) => s.space_key === spaceKey); return space?.model_id ?? space?.space_key ?? spaceKey; - }, [datasetInfo?.spaces, embeddings]); + }, [datasetInfo, embeddings]); const labelsInfo = useMemo(() => { if (!embeddings) return null; diff --git a/frontend/src/components/useHyperScatter.ts b/frontend/src/components/useHyperScatter.ts index a9f1a8c..e501f3a 100644 --- a/frontend/src/components/useHyperScatter.ts +++ b/frontend/src/components/useHyperScatter.ts @@ -2,7 +2,6 @@ import type React from "react"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import type { EmbeddingsData } from "@/types"; -import { getLayoutGeometry } from "@/lib/layouts"; import type { Dataset, GeometryMode, Modifiers, Renderer } from "hyper-scatter"; type HyperScatterModule = typeof import("hyper-scatter"); @@ -230,8 +229,7 @@ export function useHyperScatter({ positions[i * 2 + 1] = coords[i][1]; } - // Determine geometry from layout key - const geometry = (getLayoutGeometry(embeddings.layout_key) ?? "euclidean") as GeometryMode; + const geometry = embeddings.geometry as GeometryMode; const dataset: Dataset = viz.createDataset(geometry, positions, labelsInfo.categories); const opts = { diff --git a/frontend/src/lib/layouts.ts b/frontend/src/lib/layouts.ts index f9fd644..2f02e92 100644 --- a/frontend/src/lib/layouts.ts +++ b/frontend/src/lib/layouts.ts @@ -1,29 +1,17 @@ -import type { Geometry } from "@/types"; +import type { Geometry, LayoutInfo } from "@/types"; -export function getLayoutSpaceKey(layoutKey: string): string { - return layoutKey.split("__")[0] || layoutKey; -} - -export function getLayoutGeometry(layoutKey: string): Geometry | null { - const parts = layoutKey.split("__"); - if (parts.length < 2) { - const legacy = layoutKey.toLowerCase(); - if (legacy === "poincare" || legacy === "hyperbolic") return "poincare"; - if (legacy === "euclidean") return "euclidean"; - return null; +export function listAvailableGeometries(layouts: LayoutInfo[]): Geometry[] { + const geometries = new Set(); + for (const layout of layouts) { + geometries.add(layout.geometry); } + return Array.from(geometries); +} - const token = parts[1]?.split("_")[0]?.toLowerCase(); - if (token === "poincare" || token === "hyperbolic") return "poincare"; - if (token === "euclidean") return "euclidean"; - return null; +export function findLayoutByGeometry(layouts: LayoutInfo[], geometry: Geometry): LayoutInfo | undefined { + return layouts.find((l) => l.geometry === geometry); } -export function listAvailableGeometries(layouts: string[]): Geometry[] { - const geometries = new Set(); - for (const layoutKey of layouts) { - const geometry = getLayoutGeometry(layoutKey); - if (geometry) geometries.add(geometry); - } - return Array.from(geometries); +export function findLayoutByKey(layouts: LayoutInfo[], layoutKey: string): LayoutInfo | undefined { + return layouts.find((l) => l.layout_key === layoutKey); } diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index e055a89..2ec4b90 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -14,6 +14,18 @@ export interface SpaceInfo { model_id: string; dim: number; count: number; + provider: string; + geometry: Geometry | string; + config: Record | null; +} + +export interface LayoutInfo { + layout_key: string; + space_key: string; + method: string; + geometry: Geometry; + count: number; + params: Record | null; } export interface DatasetInfo { @@ -22,11 +34,12 @@ export interface DatasetInfo { labels: string[]; label_colors: Record; spaces: SpaceInfo[]; - layouts: string[]; + layouts: LayoutInfo[]; } export interface EmbeddingsData { layout_key: string; + geometry: Geometry; ids: string[]; labels: (string | null)[]; coords: [number, number][]; diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index bd69347..a691567 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -401,9 +401,13 @@ def compute_embeddings( test_embedding = self._embedding_computer.compute_single(all_samples[0]) dim = len(test_embedding) - # Ensure space exists + # Ensure space exists with provider metadata space_key = make_space_key(model) - self._storage.ensure_space(model, dim) + provider_config = { + "provider": "embed_anything", + "geometry": "euclidean", # EmbedAnything models produce Euclidean embeddings + } + self._storage.ensure_space(model, dim, config=provider_config) # Find samples needing embeddings missing_ids = self._storage.get_missing_embedding_ids(space_key) @@ -446,7 +450,7 @@ def compute_visualization( Args: space_key: Embedding space to project. If None, uses the first available. method: Projection method ('umap' supported). - geometry: Geometry type ('euclidean' or 'poincare'). + geometry: Output geometry type ('euclidean' or 'poincare'). n_neighbors: Number of neighbors for UMAP. min_dist: Minimum distance for UMAP. metric: Distance metric for UMAP. @@ -479,23 +483,38 @@ def compute_visualization( if len(ids) == 0: raise ValueError(f"No embeddings in space '{space_key}'. Call compute_embeddings() first.") - # Generate layout key (includes geometry) - layout_key = make_layout_key(space_key, method, geometry) - - # Check if layout exists - if not force and layout_key in self._storage.list_layouts(): - existing_ids, _ = self._storage.get_layout_coords(layout_key) - if set(existing_ids) == set(ids): - print(f"Layout '{layout_key}' already exists with {len(ids)} points") - return layout_key - else: - print(f"Layout exists but has different samples, recomputing...") - if len(ids) < 3: raise ValueError(f"Need at least 3 samples for visualization, have {len(ids)}") + # Build params dict and generate layout key (includes params hash) + layout_params = { + "n_neighbors": n_neighbors, + "min_dist": min_dist, + "metric": metric, + } + layout_key = make_layout_key(space_key, method, geometry, layout_params) + + # Check if layout exists with same params + if not force: + existing_layout = self._storage.get_layout(layout_key) + if existing_layout is not None: + existing_ids, _ = self._storage.get_layout_coords(layout_key) + if set(existing_ids) == set(ids): + print(f"Layout '{layout_key}' already exists with {len(ids)} points") + return layout_key + print("Layout exists but has different samples, recomputing...") + print(f"Computing {geometry} {method} layout for {len(ids)} samples...") + # Ensure layout registry entry exists + self._storage.ensure_layout( + layout_key=layout_key, + space_key=space_key, + method=method, + geometry=geometry, + params=layout_params, + ) + # Compute projection based on geometry if geometry == "poincare": coords = self._projection_engine.project_to_poincare( @@ -512,7 +531,7 @@ def compute_visualization( metric=metric, ) - # Store layout + # Store layout coordinates self._storage.add_layout_coords(layout_key, ids, coords) return layout_key @@ -521,8 +540,8 @@ def list_spaces(self) -> list[Any]: """List all embedding spaces in this dataset.""" return self._storage.list_spaces() - def list_layouts(self) -> list[str]: - """List all layouts in this dataset.""" + def list_layouts(self) -> list[Any]: + """List all layouts in this dataset (returns LayoutInfo objects).""" return self._storage.list_layouts() def find_similar( @@ -610,9 +629,23 @@ def set_coords( # Ensure a synthetic space exists (required by launch()) space_key = "precomputed" if not any(s.space_key == space_key for s in self._storage.list_spaces()): - self._storage.ensure_space(space_key, dim=2) + precomputed_config = { + "provider": "precomputed", + "geometry": "unknown", # Precomputed coords don't have a source embedding geometry + } + self._storage.ensure_space(space_key, dim=2, config=precomputed_config) layout_key = make_layout_key(space_key, method="precomputed", geometry=geometry) + + # Ensure layout registry entry exists + self._storage.ensure_layout( + layout_key=layout_key, + space_key=space_key, + method="precomputed", + geometry=geometry, + params=None, + ) + self._storage.add_layout_coords(layout_key, list(ids), coords_arr) return layout_key @@ -630,6 +663,51 @@ def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: """Filter samples based on a predicate function.""" return self._storage.filter(predicate) + def get_samples_paginated( + self, + offset: int = 0, + limit: int = 100, + label: str | None = None, + ) -> tuple[list[Sample], int]: + """Get paginated samples. + + This avoids loading all samples into memory and is used by the server + API for efficient pagination. + """ + return self._storage.get_samples_paginated(offset=offset, limit=limit, label=label) + + def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: + """Retrieve multiple samples by ID. + + The returned list is aligned to the input order and skips missing IDs. + """ + return self._storage.get_samples_by_ids(sample_ids) + + def get_visualization_data( + self, + layout_key: str, + ) -> tuple[list[str], list[str | None], np.ndarray]: + """Get visualization data (ids, labels, coords) for a layout.""" + return self._storage.get_visualization_data(layout_key) + + def get_lasso_candidates_aabb( + self, + *, + layout_key: str, + x_min: float, + x_max: float, + y_min: float, + y_max: float, + ) -> tuple[list[str], np.ndarray]: + """Return candidate (id, xy) rows within an AABB for a layout.""" + return self._storage.get_lasso_candidates_aabb( + layout_key=layout_key, + x_min=x_min, + x_max=x_max, + y_min=y_min, + y_max=y_max, + ) + def to_dict(self) -> dict[str, Any]: """Convert dataset to dictionary for serialization.""" return { diff --git a/src/hyperview/server/app.py b/src/hyperview/server/app.py index d06cf08..cb10f2d 100644 --- a/src/hyperview/server/app.py +++ b/src/hyperview/server/app.py @@ -48,6 +48,29 @@ class SampleResponse(BaseModel): metadata: dict +class LayoutInfoResponse(BaseModel): + """Response model for layout info.""" + + layout_key: str + space_key: str + method: str + geometry: str + count: int + params: dict[str, Any] | None + + +class SpaceInfoResponse(BaseModel): + """Response model for embedding space info.""" + + space_key: str + model_id: str + dim: int + count: int + provider: str + geometry: str + config: dict[str, Any] | None + + class DatasetResponse(BaseModel): """Response model for dataset info.""" @@ -55,29 +78,21 @@ class DatasetResponse(BaseModel): num_samples: int labels: list[str] label_colors: dict[str, str] - spaces: list[dict[str, Any]] - layouts: list[str] + spaces: list[SpaceInfoResponse] + layouts: list[LayoutInfoResponse] class EmbeddingsResponse(BaseModel): """Response model for embeddings data (for scatter plot).""" layout_key: str + geometry: str ids: list[str] labels: list[str | None] - coords: list[list[float]] # [[x, y], ...] + coords: list[list[float]] label_colors: dict[str, str] -class SpaceInfo(BaseModel): - """Response model for embedding space info.""" - - space_key: str - model_id: str - dim: int - count: int - - class SimilarSampleResponse(BaseModel): """Response model for a similar sample with distance.""" @@ -145,15 +160,10 @@ async def get_dataset_info(): raise HTTPException(status_code=404, detail="No dataset loaded") spaces = _current_dataset.list_spaces() - space_dicts = [ - { - "space_key": s.space_key, - "model_id": s.model_id, - "dim": s.dim, - "count": s.count, - } - for s in spaces - ] + space_dicts = [s.to_api_dict() for s in spaces] + + layouts = _current_dataset.list_layouts() + layout_dicts = [l.to_api_dict() for l in layouts] return DatasetResponse( name=_current_dataset.name, @@ -161,7 +171,7 @@ async def get_dataset_info(): labels=_current_dataset.labels, label_colors=_current_dataset.get_label_colors(), spaces=space_dicts, - layouts=_current_dataset.list_layouts(), + layouts=layout_dicts, ) @app.get("/api/samples") @@ -174,8 +184,8 @@ async def get_samples( if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") - # Use storage backend's native pagination (avoids loading all samples) - samples, total = _current_dataset._storage.get_samples_paginated( + # Use backend-native pagination (avoids loading all samples) + samples, total = _current_dataset.get_samples_paginated( offset=offset, limit=limit, label=label ) @@ -204,7 +214,7 @@ async def get_samples_batch(request: SelectionRequest): if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") - samples = _current_dataset._storage.get_samples_by_ids(request.sample_ids) + samples = _current_dataset.get_samples_by_ids(request.sample_ids) return {"samples": [s.to_api_dict(include_thumbnail=True) for s in samples]} @@ -214,28 +224,30 @@ async def get_embeddings(layout_key: str | None = None): if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") - # Get available layouts layouts = _current_dataset.list_layouts() if not layouts: raise HTTPException( status_code=400, detail="No layouts computed. Call compute_visualization() first." ) - # Use specified layout or first available + # Find the requested layout + layout_info = None if layout_key is None: - layout_key = layouts[0] - elif layout_key not in layouts: - raise HTTPException(status_code=404, detail=f"Layout not found: {layout_key}") + layout_info = layouts[0] + layout_key = layout_info.layout_key + else: + layout_info = next((l for l in layouts if l.layout_key == layout_key), None) + if layout_info is None: + raise HTTPException(status_code=404, detail=f"Layout not found: {layout_key}") - ids, labels, coords = _current_dataset._storage.get_visualization_data(layout_key) + ids, labels, coords = _current_dataset.get_visualization_data(layout_key) if not ids: - raise HTTPException( - status_code=400, detail=f"No data in layout '{layout_key}'." - ) + raise HTTPException(status_code=400, detail=f"No data in layout '{layout_key}'.") return EmbeddingsResponse( layout_key=layout_key, + geometry=layout_info.geometry, ids=ids, labels=labels, coords=coords.tolist(), @@ -249,17 +261,7 @@ async def get_spaces(): raise HTTPException(status_code=404, detail="No dataset loaded") spaces = _current_dataset.list_spaces() - return { - "spaces": [ - { - "space_key": s.space_key, - "model_id": s.model_id, - "dim": s.dim, - "count": s.count, - } - for s in spaces - ] - } + return {"spaces": [s.to_api_dict() for s in spaces]} @app.get("/api/layouts") async def get_layouts(): @@ -267,7 +269,8 @@ async def get_layouts(): if _current_dataset is None: raise HTTPException(status_code=404, detail="No dataset loaded") - return {"layouts": _current_dataset.list_layouts()} + layouts = _current_dataset.list_layouts() + return {"layouts": [l.to_api_dict() for l in layouts]} @app.post("/api/selection") async def sync_selection(request: SelectionRequest): @@ -309,16 +312,13 @@ async def lasso_selection(request: LassoSelectionRequest): y_min = float(np.min(poly[:, 1])) y_max = float(np.max(poly[:, 1])) - try: - candidate_ids, candidate_coords = _current_dataset._storage.get_lasso_candidates_aabb( - layout_key=request.layout_key, - x_min=x_min, - x_max=x_max, - y_min=y_min, - y_max=y_max, - ) - except ValueError as e: - raise HTTPException(status_code=400, detail=str(e)) + candidate_ids, candidate_coords = _current_dataset.get_lasso_candidates_aabb( + layout_key=request.layout_key, + x_min=x_min, + x_max=x_max, + y_min=y_min, + y_max=y_max, + ) if candidate_coords.size == 0: return {"total": 0, "offset": request.offset, "limit": request.limit, "sample_ids": [], "samples": []} @@ -334,7 +334,7 @@ async def lasso_selection(request: LassoSelectionRequest): end = int(request.offset + request.limit) sample_ids = selected_ids[start:end] - samples = _current_dataset._storage.get_samples_by_ids(sample_ids) + samples = _current_dataset.get_samples_by_ids(sample_ids) sample_dicts = [s.to_api_dict(include_thumbnail=request.include_thumbnails) for s in samples] return { diff --git a/src/hyperview/storage/backend.py b/src/hyperview/storage/backend.py index bd21e78..c7c3c85 100644 --- a/src/hyperview/storage/backend.py +++ b/src/hyperview/storage/backend.py @@ -142,12 +142,23 @@ def get_missing_embedding_ids(self, space_key: str) -> list[str]: # ========================================================================= @abstractmethod - def list_layouts(self) -> list[str]: - """List all layout keys.""" + def list_layouts(self) -> list[Any]: + """List all layouts. Returns list of LayoutInfo.""" @abstractmethod - def ensure_layout(self, layout_key: str) -> None: - """Ensure a layout exists.""" + def get_layout(self, layout_key: str) -> Any | None: + """Get layout info. Returns LayoutInfo or None.""" + + @abstractmethod + def ensure_layout( + self, + layout_key: str, + space_key: str, + method: str, + geometry: str, + params: dict | None = None, + ) -> Any: + """Ensure a layout exists. Returns LayoutInfo.""" @abstractmethod def delete_layout(self, layout_key: str) -> bool: diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py index 08cf7c6..098c6b2 100644 --- a/src/hyperview/storage/lancedb_backend.py +++ b/src/hyperview/storage/lancedb_backend.py @@ -5,8 +5,9 @@ - samples table: core sample metadata - metadata table: key-value config - spaces table: registry of embedding spaces + - layouts_registry table: registry of layouts - embeddings__ tables: one per embedding model - - layouts__ tables: one per layout + - layouts__ tables: one per layout (coordinates) """ import json @@ -22,8 +23,10 @@ from hyperview.storage.backend import StorageBackend from hyperview.storage.config import StorageConfig, get_default_datasets_dir from hyperview.storage.schema import ( + LayoutInfo, SpaceInfo, create_embeddings_schema, + create_layouts_registry_schema, create_layouts_schema, create_metadata_schema, create_sample_schema, @@ -518,35 +521,104 @@ def get_missing_embedding_ids(self, space_key: str) -> list[str]: return list(all_ids - embedded_ids) # ========================================================================= - # Layouts operations + # Layouts registry operations # ========================================================================= + def _get_layouts_registry_table(self) -> lancedb.table.Table | None: + """Get or create layouts registry table.""" + if "layouts_registry" not in self._db.table_names(): + return None + return self._db.open_table("layouts_registry") + + def _ensure_layouts_registry_table(self) -> lancedb.table.Table: + """Ensure layouts registry table exists.""" + if "layouts_registry" not in self._db.table_names(): + schema = create_layouts_registry_schema() + self._db.create_table("layouts_registry", schema=schema) + return self._db.open_table("layouts_registry") + def get_layout_table_name(self, layout_key: str) -> str: - """Get the table name for a layout.""" return f"layouts__{layout_key}" - def list_layouts(self) -> list[str]: - """List all layout keys.""" - layouts = [] - for name in self._db.table_names(): - if name.startswith("layouts__"): - layouts.append(name[len("layouts__") :]) - return layouts + def list_layouts(self) -> list[LayoutInfo]: + table = self._get_layouts_registry_table() + if table is None: + return [] + rows = table.search().to_list() + return [LayoutInfo.from_dict(row) for row in rows] + + def get_layout(self, layout_key: str) -> LayoutInfo | None: + table = self._get_layouts_registry_table() + if table is None: + return None + safe_key = layout_key.replace("'", "''") + rows = table.search().where(f"layout_key = '{safe_key}'").limit(1).to_list() + return LayoutInfo.from_dict(rows[0]) if rows else None + + def ensure_layout( + self, + layout_key: str, + space_key: str, + method: str, + geometry: str, + params: dict | None = None, + ) -> LayoutInfo: + """Ensure a layout exists, creating registry entry if needed.""" + # Check if registry entry exists + existing = self.get_layout(layout_key) + if existing is not None: + return existing + + # Create registry entry + now = int(time.time()) + layout_info = LayoutInfo( + layout_key=layout_key, + space_key=space_key, + method=method, + geometry=geometry, + count=0, + created_at=now, + params=params, + ) + + registry_table = self._ensure_layouts_registry_table() + schema = create_layouts_registry_schema() + arrow = pa.Table.from_pylist([layout_info.to_dict()], schema=schema) + registry_table.add(arrow) - def ensure_layout(self, layout_key: str) -> None: - """Ensure a layout table exists.""" + # Create coordinates table table_name = self.get_layout_table_name(layout_key) if table_name not in self._db.table_names(): - schema = create_layouts_schema() - self._db.create_table(table_name, schema=schema) + coords_schema = create_layouts_schema() + self._db.create_table(table_name, schema=coords_schema) + + return layout_info def delete_layout(self, layout_key: str) -> bool: - """Delete a layout table.""" + """Delete a layout (both registry entry and coordinates).""" + deleted = False + + # Delete coordinates table table_name = self.get_layout_table_name(layout_key) if table_name in self._db.table_names(): self._db.drop_table(table_name) - return True - return False + deleted = True + + # Delete registry entry + registry_table = self._get_layouts_registry_table() + if registry_table is not None: + safe_key = layout_key.replace("'", "''") + registry_table.delete(f"layout_key = '{safe_key}'") + deleted = True + + return deleted + + def _update_layout_count(self, layout_key: str, count: int) -> None: + registry_table = self._get_layouts_registry_table() + if registry_table is None: + return + safe_key = layout_key.replace("'", "''") + registry_table.update(where=f"layout_key = '{safe_key}'", values={"count": count}) def add_layout_coords( self, @@ -554,21 +626,20 @@ def add_layout_coords( ids: list[str], coords: np.ndarray, ) -> None: - """Add layout coordinates. - - Args: - layout_key: The layout key. - ids: Sample IDs. - coords: 2D coordinates (N x 2). - """ if len(ids) != len(coords): raise ValueError("ids and coords must have same length") if len(ids) == 0: return - self.ensure_layout(layout_key) + # Require registry entry exists (call ensure_layout first) + if self.get_layout(layout_key) is None: + raise ValueError(f"Layout '{layout_key}' not registered. Call ensure_layout() first.") table_name = self.get_layout_table_name(layout_key) + if table_name not in self._db.table_names(): + coords_schema = create_layouts_schema() + self._db.create_table(table_name, schema=coords_schema) + table = self._db.open_table(table_name) data = [ @@ -586,6 +657,9 @@ def add_layout_coords( .execute(arrow) ) + # Update count in registry + self._update_layout_count(layout_key, table.count_rows()) + def get_layout_coords( self, layout_key: str, diff --git a/src/hyperview/storage/memory_backend.py b/src/hyperview/storage/memory_backend.py index 6326cd6..ba8c4a6 100644 --- a/src/hyperview/storage/memory_backend.py +++ b/src/hyperview/storage/memory_backend.py @@ -9,7 +9,7 @@ from hyperview.core.sample import Sample from hyperview.storage.backend import StorageBackend -from hyperview.storage.schema import SpaceInfo, make_space_key +from hyperview.storage.schema import LayoutInfo, SpaceInfo, make_space_key class MemoryBackend(StorageBackend): @@ -34,7 +34,10 @@ def __init__(self, dataset_name: str): # Embeddings: space_key -> {sample_id -> vector} self._embeddings: dict[str, dict[str, np.ndarray]] = {} - # Layouts: layout_key -> {sample_id -> (x, y)} + # Layouts registry + self._layout_registry: dict[str, LayoutInfo] = {} + + # Layout coordinates: layout_key -> {sample_id -> (x, y)} self._layouts: dict[str, dict[str, tuple[float, float]]] = {} # ========================================================================= @@ -237,21 +240,49 @@ def get_missing_embedding_ids(self, space_key: str) -> list[str]: # Layouts # ========================================================================= - def list_layouts(self) -> list[str]: - """List all layout keys.""" - return list(self._layouts.keys()) + def list_layouts(self) -> list[LayoutInfo]: + return list(self._layout_registry.values()) - def ensure_layout(self, layout_key: str) -> None: - """Ensure a layout exists.""" - if layout_key not in self._layouts: - self._layouts[layout_key] = {} + def get_layout(self, layout_key: str) -> LayoutInfo | None: + return self._layout_registry.get(layout_key) + + def ensure_layout( + self, + layout_key: str, + space_key: str, + method: str, + geometry: str, + params: dict | None = None, + ) -> LayoutInfo: + if layout_key in self._layout_registry: + return self._layout_registry[layout_key] + + layout_info = LayoutInfo( + layout_key=layout_key, + space_key=space_key, + method=method, + geometry=geometry, + count=0, + created_at=int(time.time()), + params=params, + ) + self._layout_registry[layout_key] = layout_info + self._layouts[layout_key] = {} + return layout_info def delete_layout(self, layout_key: str) -> bool: - """Delete a layout.""" + deleted = False if layout_key in self._layouts: del self._layouts[layout_key] - return True - return False + deleted = True + if layout_key in self._layout_registry: + del self._layout_registry[layout_key] + deleted = True + return deleted + + def _update_layout_count(self, layout_key: str) -> None: + if layout_key in self._layout_registry: + self._layout_registry[layout_key].count = len(self._layouts.get(layout_key, {})) def add_layout_coords( self, @@ -259,16 +290,22 @@ def add_layout_coords( ids: list[str], coords: np.ndarray, ) -> None: - """Add layout coordinates.""" if len(ids) != len(coords): raise ValueError("ids and coords must have same length") - self.ensure_layout(layout_key) + # Require registry entry exists (call ensure_layout first) + if layout_key not in self._layout_registry: + raise ValueError(f"Layout '{layout_key}' not registered. Call ensure_layout() first.") + + if layout_key not in self._layouts: + self._layouts[layout_key] = {} layout_store = self._layouts[layout_key] for id_, coord in zip(ids, coords): layout_store[id_] = (float(coord[0]), float(coord[1])) + self._update_layout_count(layout_key) + def get_layout_coords( self, layout_key: str, diff --git a/src/hyperview/storage/schema.py b/src/hyperview/storage/schema.py index ac2f027..1f1a14d 100644 --- a/src/hyperview/storage/schema.py +++ b/src/hyperview/storage/schema.py @@ -102,8 +102,15 @@ class SpaceInfo: updated_at: int config: dict[str, Any] | None = None + @property + def provider(self) -> str: + return (self.config or {}).get("provider", "unknown") + + @property + def geometry(self) -> str: + return (self.config or {}).get("geometry", "euclidean") + def to_dict(self) -> dict[str, Any]: - """Convert to dictionary for storage.""" return { "space_key": self.space_key, "model_id": self.model_id, @@ -114,15 +121,21 @@ def to_dict(self) -> dict[str, Any]: "config_json": json.dumps(self.config) if self.config else None, } + def to_api_dict(self) -> dict[str, Any]: + return { + "space_key": self.space_key, + "model_id": self.model_id, + "dim": self.dim, + "count": self.count, + "provider": self.provider, + "geometry": self.geometry, + "config": self.config, + } + @classmethod def from_dict(cls, row: dict[str, Any]) -> "SpaceInfo": - """Create from storage dictionary.""" - config = None - if row.get("config_json"): - try: - config = json.loads(row["config_json"]) - except (json.JSONDecodeError, TypeError): - pass + config_json = row.get("config_json") + config = json.loads(config_json) if config_json else None return cls( space_key=row["space_key"], model_id=row["model_id"], @@ -134,6 +147,72 @@ def from_dict(cls, row: dict[str, Any]) -> "SpaceInfo": ) +def create_layouts_registry_schema() -> pa.Schema: + """Create the PyArrow schema for the layouts registry. + + Each row represents a layout (2D projection of an embedding space). + """ + return pa.schema( + [ + pa.field("layout_key", pa.utf8(), nullable=False), + pa.field("space_key", pa.utf8(), nullable=False), + pa.field("method", pa.utf8(), nullable=False), + pa.field("geometry", pa.utf8(), nullable=False), + pa.field("count", pa.int64(), nullable=False), + pa.field("created_at", pa.int64(), nullable=False), + pa.field("params_json", pa.utf8(), nullable=True), + ] + ) + + +@dataclass +class LayoutInfo: + """Metadata for a layout (2D projection).""" + + layout_key: str + space_key: str + method: str + geometry: str + count: int + created_at: int + params: dict[str, Any] | None = None + + def to_dict(self) -> dict[str, Any]: + return { + "layout_key": self.layout_key, + "space_key": self.space_key, + "method": self.method, + "geometry": self.geometry, + "count": self.count, + "created_at": self.created_at, + "params_json": json.dumps(self.params) if self.params else None, + } + + def to_api_dict(self) -> dict[str, Any]: + return { + "layout_key": self.layout_key, + "space_key": self.space_key, + "method": self.method, + "geometry": self.geometry, + "count": self.count, + "params": self.params, + } + + @classmethod + def from_dict(cls, row: dict[str, Any]) -> "LayoutInfo": + params_json = row.get("params_json") + params = json.loads(params_json) if params_json else None + return cls( + layout_key=row["layout_key"], + space_key=row["space_key"], + method=row["method"], + geometry=row["geometry"], + count=row["count"], + created_at=row["created_at"], + params=params, + ) + + def slugify_model_id(model_id: str) -> str: """Convert a model ID to a safe table name component. @@ -162,20 +241,20 @@ def make_layout_key( space_key: str, method: str = "umap", geometry: str = "euclidean", + params: dict | None = None, ) -> str: - """Generate a layout_key from space, method, and geometry. - - Args: - space_key: The embedding space key. - method: Layout method (e.g., "umap"). - geometry: Geometry type ("euclidean" or "poincare"). + """Generate a layout_key from space, method, geometry, and params. - Returns: - Layout key like "clip__poincare_umap" or "clip__euclidean_umap". + The params are hashed to ensure different parameter sets get different keys. """ - # Format: {space}__{geometry}_{method} - # Frontend parses for "poincare" or "hyperbolic" to auto-detect geometry - return f"{space_key}__{geometry}_{method}" + base = f"{space_key}__{geometry}_{method}" + if params: + # Create a stable hash of params + import hashlib + params_str = "_".join(f"{k}={v}" for k, v in sorted(params.items())) + params_hash = hashlib.md5(params_str.encode()).hexdigest()[:8] + return f"{base}_{params_hash}" + return base def sample_to_dict(sample: Sample) -> dict[str, Any]: @@ -191,12 +270,8 @@ def sample_to_dict(sample: Sample) -> dict[str, Any]: def dict_to_sample(row: dict[str, Any]) -> Sample: """Convert a LanceDB row to a Sample object.""" - metadata = {} - if row.get("metadata_json"): - try: - metadata = json.loads(row["metadata_json"]) - except (json.JSONDecodeError, TypeError): - metadata = {} + metadata_json = row.get("metadata_json") + metadata = json.loads(metadata_json) if metadata_json else {} return Sample( id=row["id"], From 1849445d51bca50fc161e2a9caa1edd2e0b8a649 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Tue, 20 Jan 2026 03:13:23 +0100 Subject: [PATCH 32/75] refactor: simplify storage layer and dataset API - Remove ~1000 lines of redundant code from storage backends - Streamline StorageBackend abstract interface - Add unified _ingest_samples() helper for consistent deduplication - Extract embedding/layout pipelines to dedicated module - Remove optional tqdm wrapper from embedding compute - Add get_labels_by_ids() method to storage interface --- src/hyperview/cli.py | 27 +- src/hyperview/core/dataset.py | 498 ++++---------- src/hyperview/embeddings/compute.py | 19 +- src/hyperview/embeddings/pipelines.py | 181 ++++++ src/hyperview/storage/backend.py | 104 +-- src/hyperview/storage/lancedb_backend.py | 783 ++++------------------- src/hyperview/storage/memory_backend.py | 248 +------ 7 files changed, 487 insertions(+), 1373 deletions(-) create mode 100644 src/hyperview/embeddings/pipelines.py diff --git a/src/hyperview/cli.py b/src/hyperview/cli.py index 4df7c0f..bdff271 100644 --- a/src/hyperview/cli.py +++ b/src/hyperview/cli.py @@ -112,22 +112,17 @@ def run_demo( print("Loading CIFAR-100 dataset...") dataset = Dataset("cifar100_demo") - try: - added, skipped = dataset.add_from_huggingface( - "uoft-cs/cifar100", - split="train", - image_key="img", - label_key="fine_label", - max_samples=num_samples, - ) - if skipped > 0: - print(f"Loaded {added} samples ({skipped} already present)") - else: - print(f"Loaded {added} samples") - except Exception as e: - print(f"Failed to load HuggingFace dataset: {e}") - print("Please ensure 'datasets' is installed: pip install datasets") - sys.exit(1) + added, skipped = dataset.add_from_huggingface( + "uoft-cs/cifar100", + split="train", + image_key="img", + label_key="fine_label", + max_samples=num_samples, + ) + if skipped > 0: + print(f"Loaded {added} samples ({skipped} already present)") + else: + print(f"Loaded {added} samples") print("Computing embeddings...") dataset.compute_embeddings(show_progress=True) diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index a691567..86446eb 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -11,9 +11,9 @@ from datasets import load_dataset from PIL import Image -from hyperview.core.sample import Sample, SampleFromArray +from hyperview.core.sample import Sample from hyperview.storage.backend import StorageBackend -from hyperview.storage.schema import make_layout_key, make_space_key +from hyperview.storage.schema import make_layout_key class Dataset: @@ -32,9 +32,6 @@ class Dataset: dataset = hv.Dataset("my_dataset") dataset.add_images_dir("/path/to/images") - # Open an existing dataset - dataset = hv.Dataset.open("my_dataset") - # Create an in-memory dataset (for testing) dataset = hv.Dataset("temp", persist=False) """ @@ -54,8 +51,6 @@ def __init__( storage: Optional custom storage backend. If provided, persist is ignored. """ self.name = name or f"dataset_{uuid.uuid4().hex[:8]}" - self._embedding_computer = None - self._projection_engine = None # Initialize storage backend if storage is not None: @@ -67,28 +62,15 @@ def __init__( self._storage = LanceDBBackend(self.name, config) else: from hyperview.storage import MemoryBackend - self._storage = MemoryBackend(self.name) - # Initialize label colors from storage - self._sync_label_colors() - - def _sync_label_colors(self) -> None: - """Sync label colors from storage and assign colors to new labels.""" - # Get existing colors from storage - existing_colors = self._storage.label_colors - - # Get all unique labels - all_labels = self._storage.get_unique_labels() - - # Assign colors to any labels without colors - for label in all_labels: - if label not in existing_colors: - self._assign_label_color(label, existing_colors) - - # Save back if we added new colors - if existing_colors != self._storage.label_colors: - self._storage.label_colors = existing_colors + # Color palette for deterministic label color assignment + _COLOR_PALETTE = [ + "#e6194b", "#3cb44b", "#ffe119", "#4363d8", "#f58231", + "#911eb4", "#46f0f0", "#f032e6", "#bcf60c", "#fabebe", + "#008080", "#e6beff", "#9a6324", "#fffac8", "#800000", + "#aaffc3", "#808000", "#ffd8b1", "#000075", "#808080", + ] def __len__(self) -> int: return len(self._storage) @@ -103,15 +85,43 @@ def __getitem__(self, sample_id: str) -> Sample: return sample def add_sample(self, sample: Sample) -> None: - """Add a sample to the dataset.""" + """Add a sample to the dataset (idempotent).""" self._storage.add_sample(sample) - # Assign color to label if needed - if sample.label: - colors = self._storage.label_colors - if sample.label not in colors: - self._assign_label_color(sample.label, colors) - self._storage.label_colors = colors + def _ingest_samples( + self, + samples: list[Sample], + *, + skip_existing: bool = True, + ) -> tuple[int, int]: + """Shared ingestion helper for batch sample insertion. + + Handles deduplication uniformly. + + Args: + samples: List of samples to ingest. + skip_existing: If True, skip samples that already exist in storage. + + Returns: + Tuple of (num_added, num_skipped). + """ + if not samples: + return 0, 0 + + skipped = 0 + if skip_existing: + all_ids = [s.id for s in samples] + existing_ids = self._storage.get_existing_ids(all_ids) + if existing_ids: + samples = [s for s in samples if s.id not in existing_ids] + skipped = len(all_ids) - len(samples) + + if not samples: + return 0, skipped + + self._storage.add_samples_batch(samples) + + return len(samples), skipped def add_image( self, @@ -149,7 +159,8 @@ def add_images_dir( extensions: tuple[str, ...] = (".jpg", ".jpeg", ".png", ".webp"), label_from_folder: bool = False, recursive: bool = True, - ) -> int: + skip_existing: bool = True, + ) -> tuple[int, int]: """Add all images from a directory. Args: @@ -157,9 +168,10 @@ def add_images_dir( extensions: Tuple of valid file extensions. label_from_folder: If True, use parent folder name as label. recursive: If True, search subdirectories. + skip_existing: If True (default), skip samples that already exist. Returns: - Number of images added. + Tuple of (num_added, num_skipped). """ directory_path = Path(directory) if not directory_path.exists(): @@ -180,16 +192,8 @@ def add_images_dir( ) samples.append(sample) - # Track label colors - if label: - colors = self._storage.label_colors - if label not in colors: - self._assign_label_color(label, colors) - self._storage.label_colors = colors - - # Batch add for efficiency - self._storage.add_samples_batch(samples) - return len(samples) + # Use shared ingestion helper + return self._ingest_samples(samples, skip_existing=skip_existing) def add_from_huggingface( self, @@ -199,7 +203,6 @@ def add_from_huggingface( label_key: str | None = "fine_label", label_names_key: str | None = None, max_samples: int | None = None, - download_images: bool = True, show_progress: bool = True, skip_existing: bool = True, image_format: str = "auto", @@ -217,11 +220,8 @@ def add_from_huggingface( label_key: Key for the label column (can be None). label_names_key: Key for label names in dataset info. max_samples: Maximum number of samples to load. - download_images: If True (default), download images to local disk. - If False, use in-memory storage (won't persist). - show_progress: Whether to show progress bar. + show_progress: Whether to print progress. skip_existing: If True (default), skip samples that already exist in storage. - If False, allow duplicate samples (not recommended). image_format: Image format to save: "auto" (detect from source, fallback PNG), "png" (lossless), or "jpeg" (smaller files). @@ -230,11 +230,6 @@ def add_from_huggingface( """ from hyperview.storage import StorageConfig - try: - from tqdm import tqdm - except ImportError: - tqdm = None - ds = cast(Any, load_dataset(dataset_name, split=split)) # Get label names if available @@ -257,15 +252,11 @@ def add_from_huggingface( samples = [] total = len(ds) if max_samples is None else min(len(ds), max_samples) - colors = self._storage.label_colors - # Setup progress bar - if show_progress and tqdm is not None: - iterator = tqdm(range(total), desc=f"Loading {dataset_name}") - else: - if show_progress: - print(f"Loading {total} samples from {dataset_name}...") - iterator = range(total) + if show_progress: + print(f"Loading {total} samples from {dataset_name}...") + + iterator = range(total) for i in iterator: item = ds[i] @@ -317,57 +308,30 @@ def add_from_huggingface( "version": version, } - if download_images: - # Save image to disk (FiftyOne pattern) - image_path = media_dir / f"{sample_id}{ext}" - if not image_path.exists(): - # Convert to RGB if necessary (for JPEG or non-RGB images) - if save_format == "JPEG" or pil_image.mode in ("RGBA", "P", "L"): - pil_image = pil_image.convert("RGB") - pil_image.save(image_path, format=save_format) + image_path = media_dir / f"{sample_id}{ext}" + if not image_path.exists(): + if save_format == "JPEG" or pil_image.mode in ("RGBA", "P", "L"): + pil_image = pil_image.convert("RGB") + pil_image.save(image_path, format=save_format) - sample = Sample( - id=sample_id, - filepath=str(image_path), - label=label, - metadata=metadata, - ) - else: - # Use in-memory storage (legacy behavior, won't persist) - image_array = np.array(pil_image) - sample = SampleFromArray.from_array( - id=sample_id, - image_array=image_array, - label=label, - metadata=metadata, - ) + sample = Sample( + id=sample_id, + filepath=str(image_path), + label=label, + metadata=metadata, + ) samples.append(sample) - # Track label colors - if label and label not in colors: - self._assign_label_color(label, colors) - - # Check for existing samples and skip duplicates - skipped = 0 - if skip_existing and samples: - all_ids = [s.id for s in samples] - existing_ids = self._storage.get_existing_ids(all_ids) - if existing_ids: - samples = [s for s in samples if s.id not in existing_ids] - skipped = len(all_ids) - len(samples) - - # Batch add for efficiency - if samples: - self._storage.add_samples_batch(samples) - self._storage.label_colors = colors + # Use shared ingestion helper + num_added, skipped = self._ingest_samples(samples, skip_existing=skip_existing) - if download_images and show_progress: + if show_progress: print(f"Images saved to: {media_dir}") if skipped > 0: print(f"Skipped {skipped} existing samples") - return len(samples), skipped + return num_added, skipped def compute_embeddings( self, @@ -387,52 +351,14 @@ def compute_embeddings( Returns: space_key for the embedding space. """ - from hyperview.embeddings.compute import EmbeddingComputer - - if self._embedding_computer is None or self._embedding_computer.model_id != model: - self._embedding_computer = EmbeddingComputer(model=model) - - # Get embedding dimension from a test computation - all_samples = self._storage.get_all_samples() - if not all_samples: - raise ValueError("No samples in dataset") - - # Compute one embedding to get dimension - test_embedding = self._embedding_computer.compute_single(all_samples[0]) - dim = len(test_embedding) - - # Ensure space exists with provider metadata - space_key = make_space_key(model) - provider_config = { - "provider": "embed_anything", - "geometry": "euclidean", # EmbedAnything models produce Euclidean embeddings - } - self._storage.ensure_space(model, dim, config=provider_config) + from hyperview.embeddings.pipelines import compute_missing_embeddings - # Find samples needing embeddings - missing_ids = self._storage.get_missing_embedding_ids(space_key) - - if not missing_ids: - if show_progress: - print(f"All {len(all_samples)} samples already have embeddings in space '{space_key}'") - return space_key - - samples_needing_embeddings = self._storage.get_samples_by_ids(missing_ids) - - if show_progress: - skipped = len(all_samples) - len(samples_needing_embeddings) - if skipped > 0: - print(f"Skipped {skipped} samples with existing embeddings") - - embeddings = self._embedding_computer.compute_batch( - samples_needing_embeddings, batch_size=batch_size, show_progress=show_progress + space_key, _num_computed, _num_skipped = compute_missing_embeddings( + storage=self._storage, + model_id=model, + batch_size=batch_size, + show_progress=show_progress, ) - - # Store embeddings - ids = [s.id for s in samples_needing_embeddings] - vectors = np.array(embeddings, dtype=np.float32) - self._storage.add_embeddings(space_key, ids, vectors) - return space_key def compute_visualization( @@ -459,83 +385,20 @@ def compute_visualization( Returns: layout_key for the computed layout. """ - from hyperview.embeddings.projection import ProjectionEngine + from hyperview.embeddings.pipelines import compute_layout - if geometry not in ("euclidean", "poincare"): - raise ValueError(f"Invalid geometry: {geometry}. Must be 'euclidean' or 'poincare'.") - - if self._projection_engine is None: - self._projection_engine = ProjectionEngine() - - # Get space - if space_key is None: - spaces = self._storage.list_spaces() - if not spaces: - raise ValueError("No embedding spaces. Call compute_embeddings() first.") - space_key = spaces[0].space_key - - space = self._storage.get_space(space_key) - if space is None: - raise ValueError(f"Space not found: {space_key}") - - # Get all embeddings from this space - ids, vectors = self._storage.get_embeddings(space_key) - if len(ids) == 0: - raise ValueError(f"No embeddings in space '{space_key}'. Call compute_embeddings() first.") - - if len(ids) < 3: - raise ValueError(f"Need at least 3 samples for visualization, have {len(ids)}") - - # Build params dict and generate layout key (includes params hash) - layout_params = { - "n_neighbors": n_neighbors, - "min_dist": min_dist, - "metric": metric, - } - layout_key = make_layout_key(space_key, method, geometry, layout_params) - - # Check if layout exists with same params - if not force: - existing_layout = self._storage.get_layout(layout_key) - if existing_layout is not None: - existing_ids, _ = self._storage.get_layout_coords(layout_key) - if set(existing_ids) == set(ids): - print(f"Layout '{layout_key}' already exists with {len(ids)} points") - return layout_key - print("Layout exists but has different samples, recomputing...") - - print(f"Computing {geometry} {method} layout for {len(ids)} samples...") - - # Ensure layout registry entry exists - self._storage.ensure_layout( - layout_key=layout_key, + return compute_layout( + storage=self._storage, space_key=space_key, method=method, geometry=geometry, - params=layout_params, + n_neighbors=n_neighbors, + min_dist=min_dist, + metric=metric, + force=force, + show_progress=True, ) - # Compute projection based on geometry - if geometry == "poincare": - coords = self._projection_engine.project_to_poincare( - vectors, - n_neighbors=n_neighbors, - min_dist=min_dist, - metric=metric, - ) - else: - coords = self._projection_engine.project_umap( - vectors, - n_neighbors=n_neighbors, - min_dist=min_dist, - metric=metric, - ) - - # Store layout coordinates - self._storage.add_layout_coords(layout_key, ids, coords) - - return layout_key - def list_spaces(self) -> list[Any]: """List all embedding spaces in this dataset.""" return self._storage.list_spaces() @@ -580,20 +443,17 @@ def find_similar_by_vector( """ return self._storage.find_similar_by_vector(vector, k, space_key) - def _assign_label_color(self, label: str, colors: dict[str, str]) -> None: - """Assign a color to a label.""" - color_palette = [ - "#e6194b", "#3cb44b", "#ffe119", "#4363d8", "#f58231", - "#911eb4", "#46f0f0", "#f032e6", "#bcf60c", "#fabebe", - "#008080", "#e6beff", "#9a6324", "#fffac8", "#800000", - "#aaffc3", "#808000", "#ffd8b1", "#000075", "#808080", - ] - idx = len(colors) % len(color_palette) - colors[label] = color_palette[idx] + @staticmethod + def _compute_label_color(label: str, palette: list[str]) -> str: + """Compute a deterministic color for a label.""" + digest = hashlib.md5(label.encode("utf-8")).digest() + idx = int.from_bytes(digest[:4], "big") % len(palette) + return palette[idx] def get_label_colors(self) -> dict[str, str]: - """Get the color mapping for labels.""" - return self._storage.label_colors.copy() + """Get the color mapping for labels (computed deterministically).""" + labels = self._storage.get_unique_labels() + return {label: self._compute_label_color(label, self._COLOR_PALETTE) for label in labels} def set_coords( self, @@ -688,7 +548,27 @@ def get_visualization_data( layout_key: str, ) -> tuple[list[str], list[str | None], np.ndarray]: """Get visualization data (ids, labels, coords) for a layout.""" - return self._storage.get_visualization_data(layout_key) + layout_ids, layout_coords = self._storage.get_layout_coords(layout_key) + if not layout_ids: + return [], [], np.empty((0, 2), dtype=np.float32) + + labels_by_id = self._storage.get_labels_by_ids(layout_ids) + + ids: list[str] = [] + labels: list[str | None] = [] + coords: list[np.ndarray] = [] + + for i, sample_id in enumerate(layout_ids): + if sample_id in labels_by_id: + ids.append(sample_id) + labels.append(labels_by_id[sample_id]) + coords.append(layout_coords[i]) + + if not coords: + return [], [], np.empty((0, 2), dtype=np.float32) + + return ids, labels, np.asarray(coords, dtype=np.float32) + def get_lasso_candidates_aabb( self, @@ -708,15 +588,6 @@ def get_lasso_candidates_aabb( y_max=y_max, ) - def to_dict(self) -> dict[str, Any]: - """Convert dataset to dictionary for serialization.""" - return { - "name": self.name, - "num_samples": len(self), - "labels": self.labels, - "label_colors": self._storage.label_colors, - } - def save(self, filepath: str, include_thumbnails: bool = True) -> None: """Export dataset to a JSON file. @@ -736,7 +607,6 @@ def save(self, filepath: str, include_thumbnails: bool = True) -> None: data = { "name": self.name, - "label_colors": self._storage.label_colors, "samples": [ { "id": s.id, @@ -768,10 +638,6 @@ def load(cls, filepath: str, persist: bool = False) -> "Dataset": dataset = cls(name=data["name"], persist=persist) - # Set label colors - label_colors = data.get("label_colors", {}) - dataset._storage.label_colors = label_colors - # Add samples samples = [] for s_data in data["samples"]: @@ -786,139 +652,3 @@ def load(cls, filepath: str, persist: bool = False) -> "Dataset": dataset._storage.add_samples_batch(samples) return dataset - - @classmethod - def open(cls, name: str) -> "Dataset": - """Open an existing persistent dataset. - - Args: - name: Name of the dataset to open. - - Returns: - Dataset instance connected to existing data. - - Raises: - ValueError: If dataset does not exist. - """ - from hyperview.storage import LanceDBBackend - - if not LanceDBBackend.dataset_exists(name): - raise ValueError( - f"Dataset '{name}' does not exist. " - f"Available datasets: {cls.list_datasets()}" - ) - - return cls(name=name, persist=True) - - @classmethod - def list_datasets(cls) -> list[str]: - """List all available persistent datasets. - - Returns: - List of dataset names. - """ - from hyperview.storage import LanceDBBackend - - return LanceDBBackend.list_datasets() - - @classmethod - def delete(cls, name: str, delete_media: bool = False) -> bool: - """Delete a persistent dataset. - - Args: - name: Name of the dataset to delete. - delete_media: If True, also delete associated media files from disk. - Default is False (safe, preserves media files). - - Returns: - True if dataset was deleted, False if it didn't exist. - """ - import os - - from hyperview.storage import LanceDBBackend - - if delete_media: - try: - dataset = cls.open(name) - except Exception: - dataset = None - - if dataset is not None: - for fp in (s.filepath for s in dataset.samples): - if os.path.exists(fp): - try: - os.remove(fp) - except OSError: - continue - - return LanceDBBackend.delete_dataset(name) - - @classmethod - def cleanup_orphaned_media( - cls, - delete: bool = False, - ) -> tuple[int, list[str]]: - """Find media files not referenced by any dataset. - - Scans the media directory for image files and checks if they are - referenced by any existing dataset. Useful for cleaning up disk space - after deleting datasets without the delete_media=True flag. - - Args: - delete: If True, actually delete the orphaned files. - If False (default), just report them. - - Returns: - Tuple of (count, list_of_orphaned_paths). - """ - import os - - from hyperview.storage import StorageConfig - - config = StorageConfig.default() - media_dir = config.media_dir - - if not media_dir.exists(): - return 0, [] - - # Get all filepaths from all datasets - referenced: set[str] = set() - for dataset_name in cls.list_datasets(): - try: - ds = cls.open(dataset_name) - referenced.update(s.filepath for s in ds.samples) - except Exception: - continue - - # Find orphaned files (images not referenced by any dataset) - orphaned: list[str] = [] - image_extensions = {".png", ".jpg", ".jpeg", ".webp", ".gif", ".bmp"} - - for img_path in media_dir.rglob("*"): - if img_path.is_file() and img_path.suffix.lower() in image_extensions: - if str(img_path) not in referenced: - orphaned.append(str(img_path)) - - # Optionally delete orphaned files - if delete: - for path in orphaned: - try: - os.remove(path) - except OSError: - continue - - return len(orphaned), orphaned - - @classmethod - def exists(cls, name: str) -> bool: - """Check if a persistent dataset exists. - - Args: - name: Name of the dataset to check. - - Returns: - True if dataset exists. - """ - from hyperview.storage import LanceDBBackend - - return LanceDBBackend.dataset_exists(name) diff --git a/src/hyperview/embeddings/compute.py b/src/hyperview/embeddings/compute.py index f0e7d3b..78444b4 100644 --- a/src/hyperview/embeddings/compute.py +++ b/src/hyperview/embeddings/compute.py @@ -9,7 +9,6 @@ import os import tempfile from pathlib import Path -from typing import Any import numpy as np from embed_anything import EmbeddingModel @@ -17,14 +16,6 @@ from hyperview.core.sample import Sample -tqdm: Any | None = None -try: - from tqdm import tqdm as tqdm_impl -except ImportError: # pragma: no cover - pass -else: - tqdm = tqdm_impl - class EmbeddingComputer: """Compute embeddings for image samples using EmbedAnything.""" @@ -105,14 +96,8 @@ def compute_batch( # Prime model init so download errors happen before work starts. self._get_model() - total = len(samples) - iterator = samples - if show_progress: - if tqdm is not None: - iterator = tqdm(samples, total=total, desc="Computing embeddings") - else: - print(f"Computing embeddings for {total} samples...") + print(f"Computing embeddings for {len(samples)} samples...") - return [self.compute_single(sample) for sample in iterator] + return [self.compute_single(sample) for sample in samples] diff --git a/src/hyperview/embeddings/pipelines.py b/src/hyperview/embeddings/pipelines.py new file mode 100644 index 0000000..fd575cd --- /dev/null +++ b/src/hyperview/embeddings/pipelines.py @@ -0,0 +1,181 @@ +"""Compute orchestration pipelines for HyperView. + +These functions coordinate embedding computation and 2D layout/projection +computation, persisting results into the configured storage backend. +""" + +import numpy as np + +from hyperview.storage.backend import StorageBackend +from hyperview.storage.schema import make_layout_key, make_space_key + + +def compute_missing_embeddings( + storage: StorageBackend, + model_id: str, + batch_size: int = 32, + show_progress: bool = True, +) -> tuple[str, int, int]: + """Compute embeddings for samples that don't have them yet. + + Args: + storage: Storage backend to read samples from and write embeddings to. + model_id: EmbedAnything HuggingFace model_id to use. + batch_size: Batch size for processing. + show_progress: Whether to show progress bar. + + Returns: + Tuple of (space_key, num_computed, num_skipped). + + Raises: + ValueError: If no samples in storage. + """ + from hyperview.embeddings.compute import EmbeddingComputer + + computer = EmbeddingComputer(model=model_id) + + all_samples = storage.get_all_samples() + if not all_samples: + raise ValueError("No samples in storage") + + test_embedding = computer.compute_single(all_samples[0]) + dim = len(test_embedding) + + space_key = make_space_key(model_id) + provider_config = { + "provider": "embed_anything", + "geometry": "euclidean", + } + storage.ensure_space(model_id, dim, config=provider_config) + + missing_ids = storage.get_missing_embedding_ids(space_key) + num_skipped = len(all_samples) - len(missing_ids) + + if not missing_ids: + if show_progress: + print( + f"All {len(all_samples)} samples already have embeddings in space '{space_key}'" + ) + return space_key, 0, num_skipped + + samples_needing_embeddings = storage.get_samples_by_ids(missing_ids) + + if show_progress and num_skipped > 0: + print(f"Skipped {num_skipped} samples with existing embeddings") + + embeddings = computer.compute_batch( + samples_needing_embeddings, batch_size=batch_size, show_progress=show_progress + ) + + ids = [s.id for s in samples_needing_embeddings] + vectors = np.array(embeddings, dtype=np.float32) + storage.add_embeddings(space_key, ids, vectors) + + return space_key, len(ids), num_skipped + + +def compute_layout( + storage: StorageBackend, + space_key: str | None = None, + method: str = "umap", + geometry: str = "euclidean", + n_neighbors: int = 15, + min_dist: float = 0.1, + metric: str = "cosine", + force: bool = False, + show_progress: bool = True, +) -> str: + """Compute 2D layout/projection for visualization. + + Args: + storage: Storage backend with embeddings. + space_key: Embedding space to project. If None, uses the first available. + method: Projection method ('umap' supported). + geometry: Output geometry type ('euclidean' or 'poincare'). + n_neighbors: Number of neighbors for UMAP. + min_dist: Minimum distance for UMAP. + metric: Distance metric for UMAP. + force: Force recomputation even if layout exists. + show_progress: Whether to print progress messages. + + Returns: + layout_key for the computed layout. + + Raises: + ValueError: If no embedding spaces, space not found, or insufficient samples. + """ + from hyperview.embeddings.projection import ProjectionEngine + + if method != "umap": + raise ValueError(f"Invalid method: {method}. Only 'umap' is supported.") + + if geometry not in ("euclidean", "poincare"): + raise ValueError(f"Invalid geometry: {geometry}. Must be 'euclidean' or 'poincare'.") + + if space_key is None: + spaces = storage.list_spaces() + if not spaces: + raise ValueError("No embedding spaces. Call compute_embeddings() first.") + space_key = spaces[0].space_key + + space = storage.get_space(space_key) + if space is None: + raise ValueError(f"Space not found: {space_key}") + + ids, vectors = storage.get_embeddings(space_key) + if len(ids) == 0: + raise ValueError( + f"No embeddings in space '{space_key}'. Call compute_embeddings() first." + ) + + if len(ids) < 3: + raise ValueError(f"Need at least 3 samples for visualization, have {len(ids)}") + + layout_params = { + "n_neighbors": n_neighbors, + "min_dist": min_dist, + "metric": metric, + } + layout_key = make_layout_key(space_key, method, geometry, layout_params) + + if not force: + existing_layout = storage.get_layout(layout_key) + if existing_layout is not None: + existing_ids, _ = storage.get_layout_coords(layout_key) + if set(existing_ids) == set(ids): + if show_progress: + print(f"Layout '{layout_key}' already exists with {len(ids)} points") + return layout_key + if show_progress: + print("Layout exists but has different samples, recomputing...") + + if show_progress: + print(f"Computing {geometry} {method} layout for {len(ids)} samples...") + + storage.ensure_layout( + layout_key=layout_key, + space_key=space_key, + method=method, + geometry=geometry, + params=layout_params, + ) + + engine = ProjectionEngine() + if geometry == "poincare": + coords = engine.project_to_poincare( + vectors, + n_neighbors=n_neighbors, + min_dist=min_dist, + metric=metric, + ) + else: + coords = engine.project_umap( + vectors, + n_neighbors=n_neighbors, + min_dist=min_dist, + metric=metric, + ) + + storage.add_layout_coords(layout_key, ids, coords) + + return layout_key diff --git a/src/hyperview/storage/backend.py b/src/hyperview/storage/backend.py index c7c3c85..518d1af 100644 --- a/src/hyperview/storage/backend.py +++ b/src/hyperview/storage/backend.py @@ -10,26 +10,15 @@ class StorageBackend(ABC): - """Abstract base class for storage backends. - - Storage architecture: - - Samples: Core metadata (id, filepath, label, metadata, thumbnail) - - Spaces: Registry of embedding spaces (one per model) - - Embeddings: Per-space tables with vectors - - Layouts: Per-layout tables with 2D coordinates - """ - - # ========================================================================= - # Sample CRUD - # ========================================================================= + """Abstract base class for storage backends.""" @abstractmethod def add_sample(self, sample: Sample) -> None: - """Add a single sample to storage.""" + """Add a single sample (idempotent upsert).""" @abstractmethod def add_samples_batch(self, samples: list[Sample]) -> None: - """Add multiple samples efficiently.""" + """Add multiple samples (idempotent upsert).""" @abstractmethod def get_sample(self, sample_id: str) -> Sample | None: @@ -46,7 +35,7 @@ def get_samples_paginated( @abstractmethod def get_all_samples(self) -> list[Sample]: - """Get all samples (use with caution for large datasets).""" + """Get all samples.""" @abstractmethod def update_sample(self, sample: Sample) -> None: @@ -58,7 +47,7 @@ def update_samples_batch(self, samples: list[Sample]) -> None: @abstractmethod def delete_sample(self, sample_id: str) -> bool: - """Delete a sample by ID. Returns True if deleted.""" + """Delete a sample by ID.""" @abstractmethod def __len__(self) -> int: @@ -84,70 +73,53 @@ def get_existing_ids(self, sample_ids: list[str]) -> set[str]: def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: """Retrieve multiple samples by ID.""" + @abstractmethod + def get_labels_by_ids(self, sample_ids: list[str]) -> dict[str, str | None]: + """Get labels for sample IDs. Missing IDs not included in result.""" + @abstractmethod def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: """Filter samples based on a predicate function.""" - # ========================================================================= - # Spaces (embedding space registry) - # ========================================================================= - @abstractmethod def list_spaces(self) -> list[Any]: - """List all embedding spaces. Returns list of SpaceInfo.""" + """List all embedding spaces.""" @abstractmethod def get_space(self, space_key: str) -> Any | None: - """Get info for a specific embedding space. Returns SpaceInfo or None.""" + """Get info for a specific embedding space.""" @abstractmethod def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> Any: - """Ensure an embedding space exists, creating if needed. Returns SpaceInfo.""" + """Ensure an embedding space exists, creating if needed.""" @abstractmethod def delete_space(self, space_key: str) -> bool: """Delete an embedding space and its embeddings.""" - # ========================================================================= - # Embeddings - # ========================================================================= - @abstractmethod - def add_embeddings( - self, - space_key: str, - ids: list[str], - vectors: np.ndarray, - ) -> None: + def add_embeddings(self, space_key: str, ids: list[str], vectors: np.ndarray) -> None: """Add embeddings to a space.""" @abstractmethod - def get_embeddings( - self, - space_key: str, - ids: list[str] | None = None, - ) -> tuple[list[str], np.ndarray]: + def get_embeddings(self, space_key: str, ids: list[str] | None = None) -> tuple[list[str], np.ndarray]: """Get embeddings from a space. Returns (ids, vectors).""" @abstractmethod def get_embedded_ids(self, space_key: str) -> set[str]: - """Get the set of sample IDs that have embeddings in a space.""" + """Get sample IDs that have embeddings in a space.""" @abstractmethod def get_missing_embedding_ids(self, space_key: str) -> list[str]: - """Get sample IDs that don't have embeddings in a space.""" - - # ========================================================================= - # Layouts (2D projections) - # ========================================================================= + """Get sample IDs without embeddings in a space.""" @abstractmethod def list_layouts(self) -> list[Any]: - """List all layouts. Returns list of LayoutInfo.""" + """List all layouts.""" @abstractmethod def get_layout(self, layout_key: str) -> Any | None: - """Get layout info. Returns LayoutInfo or None.""" + """Get layout info.""" @abstractmethod def ensure_layout( @@ -158,19 +130,14 @@ def ensure_layout( geometry: str, params: dict | None = None, ) -> Any: - """Ensure a layout exists. Returns LayoutInfo.""" + """Ensure a layout exists.""" @abstractmethod def delete_layout(self, layout_key: str) -> bool: """Delete a layout.""" @abstractmethod - def add_layout_coords( - self, - layout_key: str, - ids: list[str], - coords: np.ndarray, - ) -> None: + def add_layout_coords(self, layout_key: str, ids: list[str], coords: np.ndarray) -> None: """Add layout coordinates (N x 2).""" @abstractmethod @@ -181,17 +148,6 @@ def get_layout_coords( ) -> tuple[list[str], np.ndarray]: """Get layout coordinates. Returns (ids, coords).""" - @abstractmethod - def get_visualization_data( - self, - layout_key: str, - ) -> tuple[list[str], list[str | None], np.ndarray]: - """Get visualization data for scatter plot. - - Returns: - (ids, labels, coords) where coords is (N x 2). - """ - @abstractmethod def get_lasso_candidates_aabb( self, @@ -204,10 +160,6 @@ def get_lasso_candidates_aabb( ) -> tuple[list[str], np.ndarray]: """Return candidate (id, xy) rows within an axis-aligned bounding box.""" - # ========================================================================= - # Similarity search - # ========================================================================= - @abstractmethod def find_similar( self, @@ -215,7 +167,7 @@ def find_similar( k: int = 10, space_key: str | None = None, ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors. Returns [(sample, distance), ...].""" + """Find k nearest neighbors.""" @abstractmethod def find_similar_by_vector( @@ -226,20 +178,6 @@ def find_similar_by_vector( ) -> list[tuple[Sample, float]]: """Find k nearest neighbors to a query vector.""" - # ========================================================================= - # Lifecycle and metadata - # ========================================================================= - @abstractmethod def close(self) -> None: """Close the storage connection.""" - - @property - @abstractmethod - def label_colors(self) -> dict[str, str]: - """Get label color mapping.""" - - @label_colors.setter - @abstractmethod - def label_colors(self, colors: dict[str, str]) -> None: - """Set label color mapping.""" diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py index 098c6b2..c0de354 100644 --- a/src/hyperview/storage/lancedb_backend.py +++ b/src/hyperview/storage/lancedb_backend.py @@ -1,19 +1,7 @@ -"""LanceDB storage backend for HyperView. - -Storage architecture (per-dataset directory): - ~/.hyperview/datasets// - - samples table: core sample metadata - - metadata table: key-value config - - spaces table: registry of embedding spaces - - layouts_registry table: registry of layouts - - embeddings__ tables: one per embedding model - - layouts__ tables: one per layout (coordinates) -""" - -import json +"""LanceDB storage backend for HyperView.""" + import time from collections.abc import Callable, Iterator -from pathlib import Path import lancedb import numpy as np @@ -21,109 +9,60 @@ from hyperview.core.sample import Sample from hyperview.storage.backend import StorageBackend -from hyperview.storage.config import StorageConfig, get_default_datasets_dir +from hyperview.storage.config import StorageConfig from hyperview.storage.schema import ( LayoutInfo, SpaceInfo, create_embeddings_schema, create_layouts_registry_schema, create_layouts_schema, - create_metadata_schema, create_sample_schema, create_spaces_schema, dict_to_sample, - make_layout_key, make_space_key, sample_to_dict, ) class LanceDBBackend(StorageBackend): - """LanceDB-based storage backend for HyperView datasets. - - Each dataset gets its own directory with isolated LanceDB tables. - """ + """LanceDB-based storage backend for HyperView datasets.""" - def __init__( - self, - dataset_name: str, - config: StorageConfig | None = None, - ): - """Initialize LanceDB backend. - - Args: - dataset_name: Name of the dataset (becomes directory name). - config: Storage configuration. Uses defaults if None. - """ + def __init__(self, dataset_name: str, config: StorageConfig | None = None): self.dataset_name = dataset_name self.config = config or StorageConfig.default() - - # Per-dataset directory self._dataset_dir = self.config.datasets_dir / dataset_name self._dataset_dir.mkdir(parents=True, exist_ok=True) - - # Connect to this dataset's LanceDB self._db = lancedb.connect(str(self._dataset_dir)) - # Table names (no prefix needed since we have per-dataset isolation) - self._samples_table_name = "samples" - self._metadata_table_name = "metadata" - self._spaces_table_name = "spaces" - - # Initialize core tables self._samples_table = self._get_or_create_samples_table() - self._metadata_table = self._get_or_create_metadata_table() self._spaces_table = self._get_or_create_spaces_table() - self._label_colors_cache: dict[str, str] | None = None - - # ========================================================================= - # Table initialization - # ========================================================================= - def _get_or_create_samples_table(self) -> lancedb.table.Table | None: - """Get existing samples table or return None.""" - if self._samples_table_name in self._db.table_names(): - return self._db.open_table(self._samples_table_name) + if "samples" in self._db.table_names(): + return self._db.open_table("samples") return None def _ensure_samples_table(self, data: list[dict]) -> lancedb.table.Table: - """Ensure samples table exists, creating from data if needed.""" if self._samples_table is None: schema = create_sample_schema() arrow_table = pa.Table.from_pylist(data, schema=schema) - self._samples_table = self._db.create_table(self._samples_table_name, data=arrow_table) + self._samples_table = self._db.create_table("samples", data=arrow_table) return self._samples_table - def _get_or_create_metadata_table(self) -> lancedb.table.Table: - """Get or create metadata table.""" - if self._metadata_table_name in self._db.table_names(): - return self._db.open_table(self._metadata_table_name) - schema = create_metadata_schema() - return self._db.create_table(self._metadata_table_name, schema=schema) - def _get_or_create_spaces_table(self) -> lancedb.table.Table: - """Get or create spaces registry table.""" - if self._spaces_table_name in self._db.table_names(): - return self._db.open_table(self._spaces_table_name) - schema = create_spaces_schema() - return self._db.create_table(self._spaces_table_name, schema=schema) - - # ========================================================================= - # Sample CRUD operations - # ========================================================================= + if "spaces" in self._db.table_names(): + return self._db.open_table("spaces") + return self._db.create_table("spaces", schema=create_spaces_schema()) def add_sample(self, sample: Sample) -> None: - """Add a single sample to storage.""" data = [sample_to_dict(sample)] if self._samples_table is None: self._ensure_samples_table(data) else: arrow = pa.Table.from_pylist(data, schema=self._samples_table.schema) - self._samples_table.add(arrow) + self._samples_table.merge_insert("id").when_matched_update_all().when_not_matched_insert_all().execute(arrow) def add_samples_batch(self, samples: list[Sample]) -> None: - """Add multiple samples efficiently.""" if not samples: return data = [sample_to_dict(s) for s in samples] @@ -131,17 +70,14 @@ def add_samples_batch(self, samples: list[Sample]) -> None: self._ensure_samples_table(data) else: arrow = pa.Table.from_pylist(data, schema=self._samples_table.schema) - self._samples_table.add(arrow) + self._samples_table.merge_insert("id").when_matched_update_all().when_not_matched_insert_all().execute(arrow) def get_sample(self, sample_id: str) -> Sample | None: - """Retrieve a sample by ID.""" if self._samples_table is None: return None safe_id = sample_id.replace("'", "''") results = self._samples_table.search().where(f"id = '{safe_id}'").limit(1).to_list() - if results: - return dict_to_sample(results[0]) - return None + return dict_to_sample(results[0]) if results else None def get_samples_paginated( self, @@ -149,7 +85,6 @@ def get_samples_paginated( limit: int = 100, label: str | None = None, ) -> tuple[list[Sample], int]: - """Get paginated samples using native LanceDB queries.""" if self._samples_table is None: return [], 0 @@ -157,395 +92,197 @@ def get_samples_paginated( if label: arrow_table = self._samples_table.search().select(["label"]).to_arrow() - label_column = arrow_table.column("label") - mask = pc.fill_null(pc.equal(label_column, pa.scalar(label)), False) + mask = pc.fill_null(pc.equal(arrow_table.column("label"), pa.scalar(label)), False) total = pc.sum(pc.cast(mask, pa.int64())).as_py() + safe_label = label.replace("'", "''") + results = self._samples_table.search().where(f"label = '{safe_label}'").offset(offset).limit(limit).to_list() else: total = self._samples_table.count_rows() + results = self._samples_table.search().offset(offset).limit(limit).to_list() - query = self._samples_table.search() - if label: - safe_label = label.replace("'", "''") - query = query.where(f"label = '{safe_label}'") - - results = query.offset(offset).limit(limit).to_list() - samples = [dict_to_sample(row) for row in results] - return samples, total + return [dict_to_sample(row) for row in results], total def get_all_samples(self) -> list[Sample]: - """Get all samples.""" if self._samples_table is None: return [] - arrow_table = self._samples_table.to_arrow() - rows = arrow_table.to_pylist() - return [dict_to_sample(row) for row in rows] + return [dict_to_sample(row) for row in self._samples_table.to_arrow().to_pylist()] def update_sample(self, sample: Sample) -> None: - """Update an existing sample.""" - if self._samples_table is None: - self.add_sample(sample) - return - data = [sample_to_dict(sample)] - arrow = pa.Table.from_pylist(data, schema=self._samples_table.schema) - ( - self._samples_table.merge_insert("id") - .when_matched_update_all() - .when_not_matched_insert_all() - .execute(arrow) - ) + self.add_sample(sample) def update_samples_batch(self, samples: list[Sample]) -> None: - """Batch update samples.""" - if not samples: - return - if self._samples_table is None: - self.add_samples_batch(samples) - return - data = [sample_to_dict(s) for s in samples] - arrow = pa.Table.from_pylist(data, schema=self._samples_table.schema) - ( - self._samples_table.merge_insert("id") - .when_matched_update_all() - .when_not_matched_insert_all() - .execute(arrow) - ) + self.add_samples_batch(samples) def delete_sample(self, sample_id: str) -> bool: - """Delete a sample by ID.""" if self._samples_table is None: return False - try: - safe_id = sample_id.replace("'", "''") - self._samples_table.delete(f"id = '{safe_id}'") - return True - except Exception: - return False + safe_id = sample_id.replace("'", "''") + self._samples_table.delete(f"id = '{safe_id}'") + return True def __len__(self) -> int: - """Return total number of samples.""" - if self._samples_table is None: - return 0 - return self._samples_table.count_rows() + return self._samples_table.count_rows() if self._samples_table else 0 def __iter__(self) -> Iterator[Sample]: - """Iterate over all samples.""" if self._samples_table is None: return iter([]) - arrow_table = self._samples_table.to_arrow() - for batch in arrow_table.to_batches(max_chunksize=1000): + for batch in self._samples_table.to_arrow().to_batches(max_chunksize=1000): batch_dict = batch.to_pydict() for i in range(batch.num_rows): - row = {k: batch_dict[k][i] for k in batch_dict} - yield dict_to_sample(row) + yield dict_to_sample({k: batch_dict[k][i] for k in batch_dict}) def __contains__(self, sample_id: str) -> bool: - """Check if sample exists.""" if self._samples_table is None: return False safe_id = sample_id.replace("'", "''") - try: - results = self._samples_table.search().where(f"id = '{safe_id}'").limit(1).to_list() - return len(results) > 0 - except Exception: - return False + return len(self._samples_table.search().where(f"id = '{safe_id}'").limit(1).to_list()) > 0 def get_unique_labels(self) -> list[str]: - """Get all unique labels.""" if self._samples_table is None: return [] import pyarrow.compute as pc - - arrow_table = self._samples_table.search().select(["label"]).to_arrow() - label_column = arrow_table.column("label") - unique_labels = pc.unique(label_column).to_pylist() - return sorted([label for label in unique_labels if label is not None]) + labels = pc.unique(self._samples_table.search().select(["label"]).to_arrow().column("label")).to_pylist() + return sorted([l for l in labels if l is not None]) def get_existing_ids(self, sample_ids: list[str]) -> set[str]: - """Return the subset of sample_ids that exist in storage.""" if self._samples_table is None or not sample_ids: return set() - existing: set[str] = set() - - def query_chunk(chunk: list[str]) -> set[str]: + for i in range(0, len(sample_ids), 1000): + chunk = sample_ids[i : i + 1000] escaped = [sid.replace("'", "''") for sid in chunk] id_list = "', '".join(escaped) results = self._samples_table.search().where(f"id IN ('{id_list}')").select(["id"]).to_list() - return {r["id"] for r in results} - - chunk_size = 1000 - for i in range(0, len(sample_ids), chunk_size): - chunk = sample_ids[i : i + chunk_size] - try: - existing.update(query_chunk(chunk)) - except Exception: - existing.update(sid for sid in chunk if sid in self) - + existing.update(r["id"] for r in results) return existing def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: - """Retrieve multiple samples by ID.""" if self._samples_table is None or not sample_ids: return [] - rows_by_id: dict[str, dict] = {} + for i in range(0, len(sample_ids), 500): + chunk = sample_ids[i : i + 500] + escaped = [sid.replace("'", "''") for sid in chunk] + id_list = "', '".join(escaped) + for r in self._samples_table.search().where(f"id IN ('{id_list}')").to_list(): + rows_by_id[r["id"]] = r + return [dict_to_sample(rows_by_id[sid]) for sid in sample_ids if sid in rows_by_id] - def query_chunk(chunk: list[str]) -> None: + def get_labels_by_ids(self, sample_ids: list[str]) -> dict[str, str | None]: + if self._samples_table is None or not sample_ids: + return {} + labels: dict[str, str | None] = {} + for i in range(0, len(sample_ids), 1000): + chunk = sample_ids[i : i + 1000] escaped = [sid.replace("'", "''") for sid in chunk] id_list = "', '".join(escaped) - results = self._samples_table.search().where(f"id IN ('{id_list}')").to_list() - for r in results: - rid = r.get("id") - if isinstance(rid, str): - rows_by_id[rid] = r - - chunk_size = 500 - for i in range(0, len(sample_ids), chunk_size): - query_chunk(sample_ids[i : i + chunk_size]) - - out: list[Sample] = [] - for sid in sample_ids: - row = rows_by_id.get(sid) - if row is not None: - out.append(dict_to_sample(row)) - return out + for r in self._samples_table.search().select(["id", "label"]).where(f"id IN ('{id_list}')").to_list(): + labels[r["id"]] = r.get("label") + return labels def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: - """Filter samples based on a predicate function.""" return [s for s in self if predicate(s)] - # ========================================================================= - # Spaces registry (embedding spaces) - # ========================================================================= - def list_spaces(self) -> list[SpaceInfo]: - """List all embedding spaces.""" - rows = self._spaces_table.to_arrow().to_pylist() - return [SpaceInfo.from_dict(r) for r in rows] + return [SpaceInfo.from_dict(r) for r in self._spaces_table.to_arrow().to_pylist()] def get_space(self, space_key: str) -> SpaceInfo | None: - """Get info for a specific embedding space.""" safe_key = space_key.replace("'", "''") results = self._spaces_table.search().where(f"space_key = '{safe_key}'").limit(1).to_list() - if results: - return SpaceInfo.from_dict(results[0]) - return None + return SpaceInfo.from_dict(results[0]) if results else None def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> SpaceInfo: - """Ensure an embedding space exists, creating it if needed. - - Args: - model_id: The model identifier (e.g., "openai/clip-vit-base-patch32"). - dim: Vector dimension for this model. - config: Optional config dict for the space. - - Returns: - SpaceInfo for the space (existing or newly created). - - Raises: - ValueError: If space exists with different dimension. - """ space_key = make_space_key(model_id) existing = self.get_space(space_key) - if existing is not None: if existing.dim != dim: - raise ValueError( - f"Space '{space_key}' exists with dim={existing.dim}, " - f"but requested dim={dim}" - ) + raise ValueError(f"Space '{space_key}' exists with dim={existing.dim}, requested dim={dim}") return existing - # Create new space now = int(time.time()) space_info = SpaceInfo( - space_key=space_key, - model_id=model_id, - dim=dim, - count=0, - created_at=now, - updated_at=now, - config=config, + space_key=space_key, model_id=model_id, dim=dim, count=0, + created_at=now, updated_at=now, config=config, ) - - # Add to registry - schema = create_spaces_schema() - arrow = pa.Table.from_pylist([space_info.to_dict()], schema=schema) - self._spaces_table.add(arrow) - - # Create embeddings table for this space - emb_table_name = f"embeddings__{space_key}" - emb_schema = create_embeddings_schema(dim) - self._db.create_table(emb_table_name, schema=emb_schema) - + self._spaces_table.add(pa.Table.from_pylist([space_info.to_dict()], schema=create_spaces_schema())) + self._db.create_table(f"embeddings__{space_key}", schema=create_embeddings_schema(dim)) return space_info def delete_space(self, space_key: str) -> bool: - """Delete an embedding space and its embeddings table.""" safe_key = space_key.replace("'", "''") - - # Delete from registry - try: - self._spaces_table.delete(f"space_key = '{safe_key}'") - except Exception: - return False - - # Drop embeddings table - emb_table_name = f"embeddings__{space_key}" - if emb_table_name in self._db.table_names(): - self._db.drop_table(emb_table_name) - + self._spaces_table.delete(f"space_key = '{safe_key}'") + emb_table = f"embeddings__{space_key}" + if emb_table in self._db.table_names(): + self._db.drop_table(emb_table) return True - def _update_space_count(self, space_key: str, count: int) -> None: - """Update the count and updated_at for a space.""" - now = int(time.time()) - self._spaces_table.update( - where=f"space_key = '{space_key}'", - values={"count": count, "updated_at": now}, - ) - - # ========================================================================= - # Embeddings operations - # ========================================================================= - - def get_embeddings_table_name(self, space_key: str) -> str: - """Get the table name for an embedding space.""" - return f"embeddings__{space_key}" - - def add_embeddings( - self, - space_key: str, - ids: list[str], - vectors: np.ndarray, - ) -> None: - """Add embeddings to a space. - - Args: - space_key: The embedding space key. - ids: Sample IDs. - vectors: Embedding vectors (N x dim). - """ - if len(ids) != len(vectors): - raise ValueError("ids and vectors must have same length") - if len(ids) == 0: + def add_embeddings(self, space_key: str, ids: list[str], vectors: np.ndarray) -> None: + if len(ids) != len(vectors) or len(ids) == 0: return - space = self.get_space(space_key) if space is None: raise ValueError(f"Space not found: {space_key}") - if vectors.shape[1] != space.dim: - raise ValueError(f"Vector dim {vectors.shape[1]} != space dim {space.dim}") + emb_table_name = f"embeddings__{space_key}" + if emb_table_name not in self._db.table_names(): + self._db.create_table(emb_table_name, schema=create_embeddings_schema(space.dim)) - emb_table_name = self.get_embeddings_table_name(space_key) emb_table = self._db.open_table(emb_table_name) - - # Convert to list of dicts - data = [ - {"id": id_, "vector": vec.astype(np.float32)} - for id_, vec in zip(ids, vectors) - ] - schema = create_embeddings_schema(space.dim) - arrow = pa.Table.from_pylist(data, schema=schema) - - # Use merge_insert for idempotent upsert (handles retries/partial runs) - ( - emb_table.merge_insert("id") - .when_matched_update_all() - .when_not_matched_insert_all() - .execute(arrow) + data = [{"id": id_, "vector": vec.astype(np.float32).tolist()} for id_, vec in zip(ids, vectors)] + emb_table.merge_insert("id").when_matched_update_all().when_not_matched_insert_all().execute( + pa.Table.from_pylist(data, schema=create_embeddings_schema(space.dim)) ) - # Update count - new_count = emb_table.count_rows() - self._update_space_count(space_key, new_count) - - def get_embeddings( - self, - space_key: str, - ids: list[str] | None = None, - ) -> tuple[list[str], np.ndarray]: - """Get embeddings from a space. - - Args: - space_key: The embedding space key. - ids: Optional list of IDs to fetch. If None, fetch all. + # Update space count + safe_key = space_key.replace("'", "''") + self._spaces_table.update(where=f"space_key = '{safe_key}'", values={ + "count": emb_table.count_rows(), "updated_at": int(time.time()) + }) - Returns: - (ids, vectors) where vectors is (N x dim). - """ + def get_embeddings(self, space_key: str, ids: list[str] | None = None) -> tuple[list[str], np.ndarray]: space = self.get_space(space_key) if space is None: raise ValueError(f"Space not found: {space_key}") - emb_table_name = self.get_embeddings_table_name(space_key) + emb_table_name = f"embeddings__{space_key}" if emb_table_name not in self._db.table_names(): return [], np.empty((0, space.dim), dtype=np.float32) emb_table = self._db.open_table(emb_table_name) - if ids is not None: - # Fetch specific IDs escaped = [sid.replace("'", "''") for sid in ids] id_list = "', '".join(escaped) rows = emb_table.search().where(f"id IN ('{id_list}')").to_list() else: - # Fetch all rows = emb_table.to_arrow().to_pylist() if not rows: return [], np.empty((0, space.dim), dtype=np.float32) - - out_ids = [r["id"] for r in rows] - out_vecs = np.array([r["vector"] for r in rows], dtype=np.float32) - return out_ids, out_vecs + return [r["id"] for r in rows], np.array([r["vector"] for r in rows], dtype=np.float32) def get_embedded_ids(self, space_key: str) -> set[str]: - """Get the set of sample IDs that have embeddings in a space.""" - emb_table_name = self.get_embeddings_table_name(space_key) + emb_table_name = f"embeddings__{space_key}" if emb_table_name not in self._db.table_names(): return set() - - emb_table = self._db.open_table(emb_table_name) - rows = emb_table.search().select(["id"]).to_list() - return {r["id"] for r in rows} + return {r["id"] for r in self._db.open_table(emb_table_name).search().select(["id"]).to_list()} def get_missing_embedding_ids(self, space_key: str) -> list[str]: - """Get sample IDs that don't have embeddings in a space.""" if self._samples_table is None: return [] - all_ids = {r["id"] for r in self._samples_table.search().select(["id"]).to_list()} - embedded_ids = self.get_embedded_ids(space_key) - return list(all_ids - embedded_ids) - - # ========================================================================= - # Layouts registry operations - # ========================================================================= + return list(all_ids - self.get_embedded_ids(space_key)) def _get_layouts_registry_table(self) -> lancedb.table.Table | None: - """Get or create layouts registry table.""" - if "layouts_registry" not in self._db.table_names(): - return None - return self._db.open_table("layouts_registry") + return self._db.open_table("layouts_registry") if "layouts_registry" in self._db.table_names() else None def _ensure_layouts_registry_table(self) -> lancedb.table.Table: - """Ensure layouts registry table exists.""" if "layouts_registry" not in self._db.table_names(): - schema = create_layouts_registry_schema() - self._db.create_table("layouts_registry", schema=schema) + self._db.create_table("layouts_registry", schema=create_layouts_registry_schema()) return self._db.open_table("layouts_registry") - def get_layout_table_name(self, layout_key: str) -> str: - return f"layouts__{layout_key}" - def list_layouts(self) -> list[LayoutInfo]: table = self._get_layouts_registry_table() - if table is None: - return [] - rows = table.search().to_list() - return [LayoutInfo.from_dict(row) for row in rows] + return [LayoutInfo.from_dict(row) for row in table.search().to_list()] if table else [] def get_layout(self, layout_key: str) -> LayoutInfo | None: table = self._get_layouts_registry_table() @@ -563,123 +300,58 @@ def ensure_layout( geometry: str, params: dict | None = None, ) -> LayoutInfo: - """Ensure a layout exists, creating registry entry if needed.""" - # Check if registry entry exists existing = self.get_layout(layout_key) if existing is not None: return existing - # Create registry entry - now = int(time.time()) layout_info = LayoutInfo( - layout_key=layout_key, - space_key=space_key, - method=method, - geometry=geometry, - count=0, - created_at=now, - params=params, + layout_key=layout_key, space_key=space_key, method=method, geometry=geometry, + count=0, created_at=int(time.time()), params=params, ) - registry_table = self._ensure_layouts_registry_table() - schema = create_layouts_registry_schema() - arrow = pa.Table.from_pylist([layout_info.to_dict()], schema=schema) - registry_table.add(arrow) + registry_table.add(pa.Table.from_pylist([layout_info.to_dict()], schema=create_layouts_registry_schema())) - # Create coordinates table - table_name = self.get_layout_table_name(layout_key) + table_name = f"layouts__{layout_key}" if table_name not in self._db.table_names(): - coords_schema = create_layouts_schema() - self._db.create_table(table_name, schema=coords_schema) - + self._db.create_table(table_name, schema=create_layouts_schema()) return layout_info def delete_layout(self, layout_key: str) -> bool: - """Delete a layout (both registry entry and coordinates).""" - deleted = False - - # Delete coordinates table - table_name = self.get_layout_table_name(layout_key) + table_name = f"layouts__{layout_key}" if table_name in self._db.table_names(): self._db.drop_table(table_name) - deleted = True - - # Delete registry entry - registry_table = self._get_layouts_registry_table() - if registry_table is not None: - safe_key = layout_key.replace("'", "''") - registry_table.delete(f"layout_key = '{safe_key}'") - deleted = True - - return deleted - - def _update_layout_count(self, layout_key: str, count: int) -> None: - registry_table = self._get_layouts_registry_table() - if registry_table is None: - return - safe_key = layout_key.replace("'", "''") - registry_table.update(where=f"layout_key = '{safe_key}'", values={"count": count}) + registry = self._get_layouts_registry_table() + if registry: + registry.delete(f"layout_key = '{layout_key.replace(chr(39), chr(39)+chr(39))}'") + return True - def add_layout_coords( - self, - layout_key: str, - ids: list[str], - coords: np.ndarray, - ) -> None: - if len(ids) != len(coords): - raise ValueError("ids and coords must have same length") - if len(ids) == 0: + def add_layout_coords(self, layout_key: str, ids: list[str], coords: np.ndarray) -> None: + if len(ids) != len(coords) or len(ids) == 0: return - - # Require registry entry exists (call ensure_layout first) if self.get_layout(layout_key) is None: - raise ValueError(f"Layout '{layout_key}' not registered. Call ensure_layout() first.") + raise ValueError(f"Layout '{layout_key}' not registered") - table_name = self.get_layout_table_name(layout_key) + table_name = f"layouts__{layout_key}" if table_name not in self._db.table_names(): - coords_schema = create_layouts_schema() - self._db.create_table(table_name, schema=coords_schema) + self._db.create_table(table_name, schema=create_layouts_schema()) table = self._db.open_table(table_name) - - data = [ - {"id": id_, "x": float(coord[0]), "y": float(coord[1])} - for id_, coord in zip(ids, coords) - ] - schema = create_layouts_schema() - arrow = pa.Table.from_pylist(data, schema=schema) - - # Use merge_insert to handle updates - ( - table.merge_insert("id") - .when_matched_update_all() - .when_not_matched_insert_all() - .execute(arrow) + data = [{"id": id_, "x": float(c[0]), "y": float(c[1])} for id_, c in zip(ids, coords)] + table.merge_insert("id").when_matched_update_all().when_not_matched_insert_all().execute( + pa.Table.from_pylist(data, schema=create_layouts_schema()) ) - # Update count in registry - self._update_layout_count(layout_key, table.count_rows()) - - def get_layout_coords( - self, - layout_key: str, - ids: list[str] | None = None, - ) -> tuple[list[str], np.ndarray]: - """Get layout coordinates. - - Args: - layout_key: The layout key. - ids: Optional list of IDs to fetch. If None, fetch all. + # Update count + registry = self._get_layouts_registry_table() + if registry: + registry.update(where=f"layout_key = '{layout_key.replace(chr(39), chr(39)+chr(39))}'", values={"count": table.count_rows()}) - Returns: - (ids, coords) where coords is (N x 2). - """ - table_name = self.get_layout_table_name(layout_key) + def get_layout_coords(self, layout_key: str, ids: list[str] | None = None) -> tuple[list[str], np.ndarray]: + table_name = f"layouts__{layout_key}" if table_name not in self._db.table_names(): return [], np.empty((0, 2), dtype=np.float32) table = self._db.open_table(table_name) - if ids is not None: escaped = [sid.replace("'", "''") for sid in ids] id_list = "', '".join(escaped) @@ -689,57 +361,7 @@ def get_layout_coords( if not rows: return [], np.empty((0, 2), dtype=np.float32) - - out_ids = [r["id"] for r in rows] - out_coords = np.array([[r["x"], r["y"]] for r in rows], dtype=np.float32) - return out_ids, out_coords - - def get_visualization_data( - self, - layout_key: str, - ) -> tuple[list[str], list[str | None], np.ndarray]: - """Get visualization data (ids, labels, coords) for a layout. - - This joins samples with layout coords for the scatter plot. - - Returns: - (ids, labels, coords) where coords is (N x 2). - """ - table_name = self.get_layout_table_name(layout_key) - if table_name not in self._db.table_names(): - return [], [], np.empty((0, 2), dtype=np.float32) - - if self._samples_table is None: - return [], [], np.empty((0, 2), dtype=np.float32) - - layout_table = self._db.open_table(table_name) - - # Get all layout coords - layout_rows = layout_table.to_arrow().to_pylist() - if not layout_rows: - return [], [], np.empty((0, 2), dtype=np.float32) - - # Build id -> coords map - coords_by_id = {r["id"]: (r["x"], r["y"]) for r in layout_rows} - layout_ids = list(coords_by_id.keys()) - - # Get labels for these IDs - escaped = [sid.replace("'", "''") for sid in layout_ids] - id_list = "', '".join(escaped) - sample_rows = self._samples_table.search().select(["id", "label"]).where(f"id IN ('{id_list}')").to_list() - labels_by_id = {r["id"]: r.get("label") for r in sample_rows} - - # Build aligned output - ids = [] - labels = [] - coords = [] - for id_ in layout_ids: - if id_ in labels_by_id: - ids.append(id_) - labels.append(labels_by_id[id_]) - coords.append(coords_by_id[id_]) - - return ids, labels, np.array(coords, dtype=np.float32) if coords else np.empty((0, 2), dtype=np.float32) + return [r["id"] for r in rows], np.array([[r["x"], r["y"]] for r in rows], dtype=np.float32) def get_lasso_candidates_aabb( self, @@ -750,56 +372,30 @@ def get_lasso_candidates_aabb( y_min: float, y_max: float, ) -> tuple[list[str], np.ndarray]: - """Return candidate (id, xy) rows within an AABB for a layout.""" - table_name = self.get_layout_table_name(layout_key) + table_name = f"layouts__{layout_key}" if table_name not in self._db.table_names(): return [], np.empty((0, 2), dtype=np.float32) - table = self._db.open_table(table_name) - - expr = f"x >= {x_min} AND x <= {x_max} AND y >= {y_min} AND y <= {y_max}" - rows = table.search().where(expr).to_list() + rows = self._db.open_table(table_name).search().where( + f"x >= {x_min} AND x <= {x_max} AND y >= {y_min} AND y <= {y_max}" + ).to_list() if not rows: return [], np.empty((0, 2), dtype=np.float32) + return [r["id"] for r in rows], np.array([[r["x"], r["y"]] for r in rows], dtype=np.float32) - ids = [r["id"] for r in rows] - coords = np.array([[r["x"], r["y"]] for r in rows], dtype=np.float32) - return ids, coords - - # ========================================================================= - # Similarity search - # ========================================================================= - - def find_similar( - self, - sample_id: str, - k: int = 10, - space_key: str | None = None, - ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a sample. - - Args: - sample_id: The query sample ID. - k: Number of neighbors. - space_key: Embedding space to use. If None, uses default. - - Returns: - List of (sample, distance) tuples. - """ + def find_similar(self, sample_id: str, k: int = 10, space_key: str | None = None) -> list[tuple[Sample, float]]: if space_key is None: spaces = self.list_spaces() if not spaces: raise ValueError("No embedding spaces available") space_key = spaces[0].space_key - # Get query vector ids, vecs = self.get_embeddings(space_key, [sample_id]) if not ids: raise ValueError(f"Sample {sample_id} has no embedding in space {space_key}") - query_vector = vecs[0] - results = self.find_similar_by_vector(query_vector, k + 1, space_key) + results = self.find_similar_by_vector(vecs[0], k + 1, space_key) return [(s, d) for s, d in results if s.id != sample_id][:k] def find_similar_by_vector( @@ -808,7 +404,6 @@ def find_similar_by_vector( k: int = 10, space_key: str | None = None, ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a query vector.""" import math if space_key is None: @@ -817,149 +412,17 @@ def find_similar_by_vector( raise ValueError("No embedding spaces available") space_key = spaces[0].space_key - space = self.get_space(space_key) - if space is None: - raise ValueError(f"Space not found: {space_key}") - - emb_table_name = self.get_embeddings_table_name(space_key) + emb_table_name = f"embeddings__{space_key}" if emb_table_name not in self._db.table_names(): return [] - emb_table = self._db.open_table(emb_table_name) - - try: - results = ( - emb_table.search(vector, vector_column_name="vector") - .metric("cosine") - .limit(k) - .to_list() - ) - - # Get sample info for results - result_ids = [r["id"] for r in results] - samples = self.get_samples_by_ids(result_ids) - samples_by_id = {s.id: s for s in samples} - - return [ - ( - samples_by_id[r["id"]], - 0.0 if math.isnan(d := r.get("_distance", 0.0)) else float(d), - ) - for r in results - if r["id"] in samples_by_id - ] - except Exception: - return [] - - # ========================================================================= - # Vector index creation - # ========================================================================= + results = self._db.open_table(emb_table_name).search(vector, vector_column_name="vector").metric("cosine").limit(k).to_list() + samples_by_id = {s.id: s for s in self.get_samples_by_ids([r["id"] for r in results])} - def create_vector_index(self, space_key: str) -> None: - """Create an ANN index for an embedding space.""" - emb_table_name = self.get_embeddings_table_name(space_key) - if emb_table_name not in self._db.table_names(): - return - - emb_table = self._db.open_table(emb_table_name) - num_rows = emb_table.count_rows() - if num_rows < 256: - return - - try: - emb_table.create_index( - vector_column_name="vector", - index_type="IVF_PQ", - num_partitions=min(256, num_rows // 10), - num_sub_vectors=16, - ) - except Exception: - pass - - # ========================================================================= - # Label colors - # ========================================================================= - - @property - def label_colors(self) -> dict[str, str]: - """Get label color mapping.""" - if self._label_colors_cache is not None: - return self._label_colors_cache - - rows = self._metadata_table.search().where("key = 'label_colors'").limit(1).to_list() - if not rows: - self._label_colors_cache = {} - return self._label_colors_cache - - value = rows[0].get("value") - self._label_colors_cache = json.loads(value) if value else {} - return self._label_colors_cache - - @label_colors.setter - def label_colors(self, colors: dict[str, str]) -> None: - """Set label color mapping.""" - self._label_colors_cache = colors - - try: - self._metadata_table.delete("key = 'label_colors'") - except Exception: - pass - - schema = create_metadata_schema() - row = {"key": "label_colors", "value": json.dumps(colors)} - self._metadata_table.add(pa.Table.from_pylist([row], schema=schema)) - - # ========================================================================= - # Lifecycle - # ========================================================================= + return [ + (samples_by_id[r["id"]], 0.0 if math.isnan(d := r.get("_distance", 0.0)) else float(d)) + for r in results if r["id"] in samples_by_id + ] def close(self) -> None: - """Close the storage connection.""" - pass - - # ========================================================================= - # Class methods for dataset management - # ========================================================================= - - @classmethod - def list_datasets(cls, datasets_dir: Path | None = None) -> list[str]: - """List all available datasets.""" - if datasets_dir is None: - datasets_dir = get_default_datasets_dir() - - if not datasets_dir.exists(): - return [] - - datasets = [] - for path in datasets_dir.iterdir(): - if path.is_dir(): - # Check if it looks like a LanceDB dataset - if (path / "samples.lance").exists() or any( - p.name.endswith(".lance") for p in path.iterdir() if p.is_dir() - ): - datasets.append(path.name) - return sorted(datasets) - - @classmethod - def delete_dataset(cls, dataset_name: str, datasets_dir: Path | None = None) -> bool: - """Delete a dataset directory.""" - if datasets_dir is None: - datasets_dir = get_default_datasets_dir() - - dataset_path = datasets_dir / dataset_name - if not dataset_path.exists(): - return False - - import shutil - - shutil.rmtree(dataset_path) - return True - - @classmethod - def dataset_exists(cls, dataset_name: str, datasets_dir: Path | None = None) -> bool: - """Check if a dataset exists.""" - if datasets_dir is None: - datasets_dir = get_default_datasets_dir() - - dataset_path = datasets_dir / dataset_name - return dataset_path.exists() and dataset_path.is_dir() + return diff --git a/src/hyperview/storage/memory_backend.py b/src/hyperview/storage/memory_backend.py index ba8c4a6..a1453bc 100644 --- a/src/hyperview/storage/memory_backend.py +++ b/src/hyperview/storage/memory_backend.py @@ -2,8 +2,6 @@ import time from collections.abc import Callable, Iterator -from dataclasses import dataclass, field -from typing import Any import numpy as np @@ -13,48 +11,24 @@ class MemoryBackend(StorageBackend): - """In-memory storage backend for testing and development. - - Implements the same interface as LanceDBBackend but stores everything in memory. - """ + """In-memory storage backend for testing and development.""" def __init__(self, dataset_name: str): - """Initialize in-memory backend. - - Args: - dataset_name: Name of the dataset. - """ self.dataset_name = dataset_name self._samples: dict[str, Sample] = {} - self._label_colors: dict[str, str] = {} - - # Spaces registry self._spaces: dict[str, SpaceInfo] = {} - - # Embeddings: space_key -> {sample_id -> vector} self._embeddings: dict[str, dict[str, np.ndarray]] = {} - - # Layouts registry self._layout_registry: dict[str, LayoutInfo] = {} - - # Layout coordinates: layout_key -> {sample_id -> (x, y)} self._layouts: dict[str, dict[str, tuple[float, float]]] = {} - # ========================================================================= - # Sample CRUD - # ========================================================================= - def add_sample(self, sample: Sample) -> None: - """Add a single sample to storage.""" self._samples[sample.id] = sample def add_samples_batch(self, samples: list[Sample]) -> None: - """Add multiple samples efficiently.""" for sample in samples: self._samples[sample.id] = sample def get_sample(self, sample_id: str) -> Sample | None: - """Retrieve a sample by ID.""" return self._samples.get(sample_id) def get_samples_paginated( @@ -63,7 +37,6 @@ def get_samples_paginated( limit: int = 100, label: str | None = None, ) -> tuple[list[Sample], int]: - """Get paginated samples.""" samples = list(self._samples.values()) if label: samples = [s for s in samples if s.label == label] @@ -71,82 +44,57 @@ def get_samples_paginated( return samples[offset : offset + limit], total def get_all_samples(self) -> list[Sample]: - """Get all samples.""" return list(self._samples.values()) def update_sample(self, sample: Sample) -> None: - """Update an existing sample.""" self._samples[sample.id] = sample def update_samples_batch(self, samples: list[Sample]) -> None: - """Batch update samples.""" for sample in samples: self._samples[sample.id] = sample def delete_sample(self, sample_id: str) -> bool: - """Delete a sample by ID.""" if sample_id in self._samples: del self._samples[sample_id] return True return False def __len__(self) -> int: - """Return total number of samples.""" return len(self._samples) def __iter__(self) -> Iterator[Sample]: - """Iterate over all samples.""" return iter(self._samples.values()) def __contains__(self, sample_id: str) -> bool: - """Check if sample exists.""" return sample_id in self._samples def get_unique_labels(self) -> list[str]: - """Get all unique labels.""" - labels = {s.label for s in self._samples.values() if s.label} - return sorted(labels) + return sorted({s.label for s in self._samples.values() if s.label}) def get_existing_ids(self, sample_ids: list[str]) -> set[str]: - """Return set of sample_ids that already exist in storage.""" return {sid for sid in sample_ids if sid in self._samples} def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: - """Retrieve multiple samples by ID.""" - out: list[Sample] = [] - for sid in sample_ids: - s = self._samples.get(sid) - if s is not None: - out.append(s) - return out + return [s for sid in sample_ids if (s := self._samples.get(sid)) is not None] + + def get_labels_by_ids(self, sample_ids: list[str]) -> dict[str, str | None]: + return {sid: s.label for sid in sample_ids if (s := self._samples.get(sid)) is not None} def filter(self, predicate: Callable[[Sample], bool]) -> list[Sample]: - """Filter samples based on a predicate function.""" return [s for s in self._samples.values() if predicate(s)] - # ========================================================================= - # Spaces registry - # ========================================================================= - def list_spaces(self) -> list[SpaceInfo]: - """List all embedding spaces.""" return list(self._spaces.values()) def get_space(self, space_key: str) -> SpaceInfo | None: - """Get info for a specific embedding space.""" return self._spaces.get(space_key) def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> SpaceInfo: - """Ensure an embedding space exists, creating if needed.""" space_key = make_space_key(model_id) - if space_key in self._spaces: existing = self._spaces[space_key] if existing.dim != dim: - raise ValueError( - f"Space '{space_key}' exists with dim={existing.dim}, " - f"but requested dim={dim}" - ) + raise ValueError(f"Space '{space_key}' exists with dim={existing.dim}, requested dim={dim}") return existing now = int(time.time()) @@ -164,50 +112,26 @@ def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> S return space_info def delete_space(self, space_key: str) -> bool: - """Delete an embedding space and its embeddings.""" if space_key in self._spaces: del self._spaces[space_key] self._embeddings.pop(space_key, None) return True return False - # ========================================================================= - # Embeddings - # ========================================================================= - - def add_embeddings( - self, - space_key: str, - ids: list[str], - vectors: np.ndarray, - ) -> None: - """Add embeddings to a space.""" - if len(ids) != len(vectors): - raise ValueError("ids and vectors must have same length") - if len(ids) == 0: + def add_embeddings(self, space_key: str, ids: list[str], vectors: np.ndarray) -> None: + if len(ids) != len(vectors) or len(ids) == 0: return - if space_key not in self._spaces: raise ValueError(f"Space not found: {space_key}") space = self._spaces[space_key] - if vectors.shape[1] != space.dim: - raise ValueError(f"Vector dim {vectors.shape[1]} != space dim {space.dim}") - emb_store = self._embeddings.setdefault(space_key, {}) for id_, vec in zip(ids, vectors): emb_store[id_] = vec.astype(np.float32) - - # Update count space.count = len(emb_store) space.updated_at = int(time.time()) - def get_embeddings( - self, - space_key: str, - ids: list[str] | None = None, - ) -> tuple[list[str], np.ndarray]: - """Get embeddings from a space.""" + def get_embeddings(self, space_key: str, ids: list[str] | None = None) -> tuple[list[str], np.ndarray]: if space_key not in self._spaces: raise ValueError(f"Space not found: {space_key}") @@ -216,30 +140,20 @@ def get_embeddings( if ids is not None: out_ids = [id_ for id_ in ids if id_ in emb_store] - if not out_ids: - return [], np.empty((0, space.dim), dtype=np.float32) - out_vecs = np.array([emb_store[id_] for id_ in out_ids], dtype=np.float32) - return out_ids, out_vecs else: - if not emb_store: - return [], np.empty((0, space.dim), dtype=np.float32) out_ids = list(emb_store.keys()) - out_vecs = np.array([emb_store[id_] for id_ in out_ids], dtype=np.float32) - return out_ids, out_vecs + + if not out_ids: + return [], np.empty((0, space.dim), dtype=np.float32) + return out_ids, np.array([emb_store[id_] for id_ in out_ids], dtype=np.float32) def get_embedded_ids(self, space_key: str) -> set[str]: - """Get the set of sample IDs that have embeddings in a space.""" return set(self._embeddings.get(space_key, {}).keys()) def get_missing_embedding_ids(self, space_key: str) -> list[str]: - """Get sample IDs that don't have embeddings in a space.""" embedded = self.get_embedded_ids(space_key) return [id_ for id_ in self._samples.keys() if id_ not in embedded] - # ========================================================================= - # Layouts - # ========================================================================= - def list_layouts(self) -> list[LayoutInfo]: return list(self._layout_registry.values()) @@ -271,82 +185,28 @@ def ensure_layout( return layout_info def delete_layout(self, layout_key: str) -> bool: - deleted = False - if layout_key in self._layouts: - del self._layouts[layout_key] - deleted = True - if layout_key in self._layout_registry: - del self._layout_registry[layout_key] - deleted = True + deleted = layout_key in self._layouts or layout_key in self._layout_registry + self._layouts.pop(layout_key, None) + self._layout_registry.pop(layout_key, None) return deleted - def _update_layout_count(self, layout_key: str) -> None: - if layout_key in self._layout_registry: - self._layout_registry[layout_key].count = len(self._layouts.get(layout_key, {})) - - def add_layout_coords( - self, - layout_key: str, - ids: list[str], - coords: np.ndarray, - ) -> None: + def add_layout_coords(self, layout_key: str, ids: list[str], coords: np.ndarray) -> None: if len(ids) != len(coords): raise ValueError("ids and coords must have same length") - - # Require registry entry exists (call ensure_layout first) if layout_key not in self._layout_registry: - raise ValueError(f"Layout '{layout_key}' not registered. Call ensure_layout() first.") - - if layout_key not in self._layouts: - self._layouts[layout_key] = {} - layout_store = self._layouts[layout_key] + raise ValueError(f"Layout '{layout_key}' not registered") + layout_store = self._layouts.setdefault(layout_key, {}) for id_, coord in zip(ids, coords): layout_store[id_] = (float(coord[0]), float(coord[1])) + self._layout_registry[layout_key].count = len(layout_store) - self._update_layout_count(layout_key) - - def get_layout_coords( - self, - layout_key: str, - ids: list[str] | None = None, - ) -> tuple[list[str], np.ndarray]: - """Get layout coordinates.""" + def get_layout_coords(self, layout_key: str, ids: list[str] | None = None) -> tuple[list[str], np.ndarray]: layout_store = self._layouts.get(layout_key, {}) - - if ids is not None: - out_ids = [id_ for id_ in ids if id_ in layout_store] - else: - out_ids = list(layout_store.keys()) - + out_ids = [id_ for id_ in ids if id_ in layout_store] if ids is not None else list(layout_store.keys()) if not out_ids: return [], np.empty((0, 2), dtype=np.float32) - - out_coords = np.array([layout_store[id_] for id_ in out_ids], dtype=np.float32) - return out_ids, out_coords - - def get_visualization_data( - self, - layout_key: str, - ) -> tuple[list[str], list[str | None], np.ndarray]: - """Get visualization data for scatter plot.""" - layout_store = self._layouts.get(layout_key, {}) - - if not layout_store: - return [], [], np.empty((0, 2), dtype=np.float32) - - ids = [] - labels = [] - coords = [] - - for id_, (x, y) in layout_store.items(): - sample = self._samples.get(id_) - if sample is not None: - ids.append(id_) - labels.append(sample.label) - coords.append([x, y]) - - return ids, labels, np.array(coords, dtype=np.float32) if coords else np.empty((0, 2), dtype=np.float32) + return out_ids, np.array([layout_store[id_] for id_ in out_ids], dtype=np.float32) def get_lasso_candidates_aabb( self, @@ -357,42 +217,25 @@ def get_lasso_candidates_aabb( y_min: float, y_max: float, ) -> tuple[list[str], np.ndarray]: - """Return candidate (id, xy) rows within an AABB.""" layout_store = self._layouts.get(layout_key, {}) - - ids = [] - coords = [] - + ids, coords = [], [] for id_, (x, y) in layout_store.items(): - if x < x_min or x > x_max or y < y_min or y > y_max: - continue - ids.append(id_) - coords.append([x, y]) - + if x_min <= x <= x_max and y_min <= y <= y_max: + ids.append(id_) + coords.append([x, y]) return ids, np.array(coords, dtype=np.float32) if coords else np.empty((0, 2), dtype=np.float32) - # ========================================================================= - # Similarity search - # ========================================================================= - - def find_similar( - self, - sample_id: str, - k: int = 10, - space_key: str | None = None, - ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a sample.""" + def find_similar(self, sample_id: str, k: int = 10, space_key: str | None = None) -> list[tuple[Sample, float]]: if space_key is None: if not self._spaces: raise ValueError("No embedding spaces available") - space_key = list(self._spaces.keys())[0] + space_key = next(iter(self._spaces)) emb_store = self._embeddings.get(space_key, {}) if sample_id not in emb_store: raise ValueError(f"Sample {sample_id} has no embedding in space {space_key}") - query_vector = emb_store[sample_id] - results = self.find_similar_by_vector(query_vector, k + 1, space_key) + results = self.find_similar_by_vector(emb_store[sample_id], k + 1, space_key) return [(s, d) for s, d in results if s.id != sample_id][:k] def find_similar_by_vector( @@ -401,50 +244,29 @@ def find_similar_by_vector( k: int = 10, space_key: str | None = None, ) -> list[tuple[Sample, float]]: - """Find k nearest neighbors to a query vector.""" if space_key is None: if not self._spaces: raise ValueError("No embedding spaces available") - space_key = list(self._spaces.keys())[0] + space_key = next(iter(self._spaces)) emb_store = self._embeddings.get(space_key, {}) query = np.array(vector, dtype=np.float32) + norm_query = np.linalg.norm(query) distances: list[tuple[Sample, float]] = [] for id_, vec in emb_store.items(): sample = self._samples.get(id_) if sample is None: continue - - # Cosine distance - norm_query = np.linalg.norm(query) norm_vec = np.linalg.norm(vec) - if norm_query == 0 or norm_vec == 0: distance = 1.0 else: - cosine_sim = np.dot(query, vec) / (norm_query * norm_vec) - distance = 1 - cosine_sim - + distance = 1 - np.dot(query, vec) / (norm_query * norm_vec) distances.append((sample, float(distance))) distances.sort(key=lambda x: x[1]) return distances[:k] - # ========================================================================= - # Lifecycle and metadata - # ========================================================================= - def close(self) -> None: - """Close the storage connection (no-op for in-memory).""" - return - - @property - def label_colors(self) -> dict[str, str]: - """Get label color mapping.""" - return self._label_colors - - @label_colors.setter - def label_colors(self, colors: dict[str, str]) -> None: - """Set label color mapping.""" - self._label_colors = colors + pass From ecb8cada881e97fef6afa971ddf9bdf013ee5cc4 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Tue, 20 Jan 2026 03:14:10 +0100 Subject: [PATCH 33/75] chore: update frontend static build --- src/hyperview/server/static/404.html | 2 +- src/hyperview/server/static/404/index.html | 2 +- src/hyperview/server/static/__next.__PAGE__.txt | 4 ++-- src/hyperview/server/static/__next._full.txt | 4 ++-- src/hyperview/server/static/__next._head.txt | 2 +- src/hyperview/server/static/__next._index.txt | 2 +- src/hyperview/server/static/__next._tree.txt | 2 +- .../chunks/{490c8071909f9d06.js => 5ee221fbee91a948.js} | 6 +++--- .../_buildManifest.js | 0 .../_clientMiddlewareManifest.json | 0 .../_ssgManifest.js | 0 src/hyperview/server/static/_not-found/__next._full.txt | 2 +- src/hyperview/server/static/_not-found/__next._head.txt | 2 +- src/hyperview/server/static/_not-found/__next._index.txt | 2 +- .../server/static/_not-found/__next._not-found.__PAGE__.txt | 2 +- .../server/static/_not-found/__next._not-found.txt | 2 +- src/hyperview/server/static/_not-found/__next._tree.txt | 2 +- src/hyperview/server/static/_not-found/index.html | 2 +- src/hyperview/server/static/_not-found/index.txt | 2 +- src/hyperview/server/static/index.html | 2 +- src/hyperview/server/static/index.txt | 4 ++-- 21 files changed, 23 insertions(+), 23 deletions(-) rename src/hyperview/server/static/_next/static/chunks/{490c8071909f9d06.js => 5ee221fbee91a948.js} (81%) rename src/hyperview/server/static/_next/static/{FkYHqh8bg2HXVZYl26MHt => dsfUOjSfrev80UbslOps2}/_buildManifest.js (100%) rename src/hyperview/server/static/_next/static/{FkYHqh8bg2HXVZYl26MHt => dsfUOjSfrev80UbslOps2}/_clientMiddlewareManifest.json (100%) rename src/hyperview/server/static/_next/static/{FkYHqh8bg2HXVZYl26MHt => dsfUOjSfrev80UbslOps2}/_ssgManifest.js (100%) diff --git a/src/hyperview/server/static/404.html b/src/hyperview/server/static/404.html index dcdfe7a..0b4f335 100644 --- a/src/hyperview/server/static/404.html +++ b/src/hyperview/server/static/404.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/404/index.html b/src/hyperview/server/static/404/index.html index dcdfe7a..0b4f335 100644 --- a/src/hyperview/server/static/404/index.html +++ b/src/hyperview/server/static/404/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/__next.__PAGE__.txt b/src/hyperview/server/static/__next.__PAGE__.txt index d8f4f90..6307709 100644 --- a/src/hyperview/server/static/__next.__PAGE__.txt +++ b/src/hyperview/server/static/__next.__PAGE__.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" 2:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/490c8071909f9d06.js"],"default"] +3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/5ee221fbee91a948.js"],"default"] 6:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 7:"$Sreact.suspense" -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/490c8071909f9d06.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/5ee221fbee91a948.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 8:null diff --git a/src/hyperview/server/static/__next._full.txt b/src/hyperview/server/static/__next._full.txt index edf9586..81249c1 100644 --- a/src/hyperview/server/static/__next._full.txt +++ b/src/hyperview/server/static/__next._full.txt @@ -2,14 +2,14 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] 4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/490c8071909f9d06.js"],"default"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/5ee221fbee91a948.js"],"default"] 8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"FkYHqh8bg2HXVZYl26MHt","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/490c8071909f9d06.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +0:{"P":null,"b":"dsfUOjSfrev80UbslOps2","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/5ee221fbee91a948.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] diff --git a/src/hyperview/server/static/__next._head.txt b/src/hyperview/server/static/__next._head.txt index f0b1c5a..9f7894b 100644 --- a/src/hyperview/server/static/__next._head.txt +++ b/src/hyperview/server/static/__next._head.txt @@ -2,6 +2,6 @@ 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/__next._index.txt b/src/hyperview/server/static/__next._index.txt index 1d78b73..d86f7a3 100644 --- a/src/hyperview/server/static/__next._index.txt +++ b/src/hyperview/server/static/__next._index.txt @@ -2,4 +2,4 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/__next._tree.txt b/src/hyperview/server/static/__next._tree.txt index 9129800..812387a 100644 --- a/src/hyperview/server/static/__next._tree.txt +++ b/src/hyperview/server/static/__next._tree.txt @@ -1,2 +1,2 @@ :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +0:{"buildId":"dsfUOjSfrev80UbslOps2","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_next/static/chunks/490c8071909f9d06.js b/src/hyperview/server/static/_next/static/chunks/5ee221fbee91a948.js similarity index 81% rename from src/hyperview/server/static/_next/static/chunks/490c8071909f9d06.js rename to src/hyperview/server/static/_next/static/chunks/5ee221fbee91a948.js index 40c41bb..0c44d77 100644 --- a/src/hyperview/server/static/_next/static/chunks/490c8071909f9d06.js +++ b/src/hyperview/server/static/_next/static/chunks/5ee221fbee91a948.js @@ -1,9 +1,9 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50912,e=>{"use strict";let t,r,n,o,l,s;var i,a,d=e.i(48277),u=e.i(30668);let c=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},f=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var p={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,u.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:s,...i},a)=>(0,u.createElement)("svg",{ref:a,...p,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:f("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(i)&&{"aria-hidden":"true"},...i},[...s.map(([e,t])=>(0,u.createElement)(e,t)),...Array.isArray(l)?l:[l]])),m=(i="grip-vertical",a=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],(r=(0,u.forwardRef)(({className:e,...t},r)=>(0,u.createElement)(h,{ref:r,iconNode:a,className:f(`lucide-${c(i).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${i}`,e),...t}))).displayName=c(i),r);function g(e,t="Assertion error"){if(!e)throw Error(t)}function y({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function b(e,t){return t.sort("horizontal"===e?x:v)}function x(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function v(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function w(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function k(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function S(e){let{element:t,orientation:r,panels:n,separators:o}=e,l=b(r,Array.from(t.children).filter(w).map(e=>({element:e}))).map(({element:e})=>e),s=[],i=!1,a,d=[];for(let t of l)if(t.hasAttribute("data-panel")){let o=n.find(e=>e.element===t);if(o){if(a){let n,l=a.element.getBoundingClientRect(),u=t.getBoundingClientRect();if(i){let e="horizontal"===r?new DOMRect(l.right,l.top,0,l.height):new DOMRect(l.left,l.bottom,l.width,0),t="horizontal"===r?new DOMRect(u.left,u.top,0,u.height):new DOMRect(u.left,u.top,u.width,0);switch(d.length){case 0:n=[e,t];break;case 1:{let o=d[0],s=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},o,l=Number.MAX_VALUE;for(let r of t){let{x:t,y:s}=k(n,r),i="horizontal"===e?t:s;ie.element===t);e?d.push(e):(a=void 0,d=[])}else i=!0;return s}function z({groupSize:e,panelElement:t,styleProp:r}){let n,[o,l]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(l){case"%":n=o/100*e;break;case"px":n=o;break;case"rem":n=o*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=o*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=o/100*window.innerHeight;break;case"vw":n=o/100*window.innerWidth}return n}function j(e){return parseFloat(e.toFixed(3))}function C(e){let{panels:t}=e,r=y({group:e});return 0===r?t.map(e=>({collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:o}=e,l=0;void 0!==o.collapsedSize&&(l=j(z({groupSize:r,panelElement:n,styleProp:o.collapsedSize})/r*100)),void 0!==o.defaultSize&&(t=j(z({groupSize:r,panelElement:n,styleProp:o.defaultSize})/r*100));let s=0;void 0!==o.minSize&&(s=j(z({groupSize:r,panelElement:n,styleProp:o.minSize})/r*100));let i=100;return void 0!==o.maxSize&&(i=j(z({groupSize:r,panelElement:n,styleProp:o.maxSize})/r*100)),{collapsedSize:l,collapsible:!0===o.collapsible,defaultSize:t,minSize:s,maxSize:i,panelId:e.id}})}function E(e,t,r=0){return Math.abs(j(e)-j(t))<=r}let R={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map},M=new class{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,o=Array.from(r);for(let r=0;r=0&&r.splice(e,1)}}};function N(e){let t="function"==typeof e?e(R):e;if(R===t)return R;let r=R;return R={...R,...t},void 0!==t.cursorFlags&&M.emit("cursorFlagsChange",R.cursorFlags),void 0!==t.interactionState&&M.emit("interactionStateChange",R.interactionState),void 0!==t.mountedGroups&&(R.mountedGroups.forEach((e,t)=>{e.derivedPanelConstraints.forEach(n=>{if(n.collapsible){let{layout:o}=r.mountedGroups.get(t)??{};if(o){let r=E(n.collapsedSize,e.layout[n.panelId]),l=E(n.collapsedSize,o[n.panelId]);r&&!l&&(t.inMemoryLastExpandedPanelSizes[n.panelId]=o[n.panelId])}}})}),M.emit("mountedGroupsChange",R.mountedGroups)),R}function L(e,t){return E(e,t)?0:e>t?1:-1}function I({panelConstraints:e,size:t}){let{collapsedSize:r=0,collapsible:n,maxSize:o=100,minSize:l=0}=e;return 0>L(t,l)&&(t=n&&0>L(t,(r+l)/2)?r:l),j(t=Math.min(o,t))}function P({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:o,trigger:l}){if(E(e,0))return t;let s=Object.values(t),i=Object.values(o),a=[...s],[d,u]=n;g(null!=d,"Invalid first pivot index"),g(null!=u,"Invalid second pivot index");let c=0;if("keyboard"===l){{let t=e<0?u:d,n=r[t];g(n,`Panel constraints not found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,o)){let t=i-r;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?d:u,n=r[t];g(n,`No panel constraints found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,i)){let t=r-o;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let t=e<0?1:-1,n=e<0?u:d,o=0;for(;;){let e=s[n];if(g(null!=e,`Previous layout not found for panel index ${n}`),o+=I({panelConstraints:r[n],size:100})-e,(n+=t)<0||n>=r.length)break}let l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let t=e<0?d:u;for(;t>=0&&t=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r=0&&n0?n--:n++}}}if(!E(Object.values(a).reduce((e,t)=>t+e,0),100,.1))return o;let f=Object.keys(o);return a.reduce((e,t,r)=>(e[f[r]]=t,e),{})}function O(e){let{mountedGroups:t}=R;for(let[r]of t)if(r.separators.some(t=>t.element===e))return r;throw Error("Could not find parent Group for separator element")}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==L(e[r],t[r]))return!1;return!0}function A({layout:e,panelConstraints:t}){let r=[...Object.values(e)],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!E(n,100)&&r.length>0)for(let e=0;e(e[l[r]]=t,e),{})}function D({groupId:e}){let t=()=>{let{mountedGroups:t}=R;for(let[r,n]of t)if(r.id===e)return{group:r,...n};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:o,layout:l,separatorToPanels:s}=t(),i=A({layout:e,panelConstraints:n});return r?l:(T(l,i)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(o,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:i,separatorToPanels:s})})),i)}}}function $(e){let{mountedGroups:t}=R,r=t.get(e);return g(r,`Mounted Group ${e.id} not found`),r}function F(e,t){let r=O(e),n=$(r),o=r.separators.find(t=>t.element===e);g(o,"Matching separator not found");let l=n.separatorToPanels.get(o);g(l,"Matching panels not found");let s=l.map(e=>r.panels.indexOf(e)),i=D({groupId:r.id}).getLayout(),a=A({layout:P({delta:t,initialLayout:i,panelConstraints:n.derivedPanelConstraints,pivotIndices:s,prevLayout:i,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(i,a)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,layout:a,separatorToPanels:n.separatorToPanels})}))}function _(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=O(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&F(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&F(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&F(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&F(t,-5);break;case"End":e.preventDefault(),F(t,100);break;case"Enter":{e.preventDefault();let r=O(t),{derivedPanelConstraints:n,layout:o,separatorToPanels:l}=$(r),s=r.separators.find(e=>e.element===t);g(s,"Matching separator not found");let i=l.get(s);g(i,"Matching panels not found");let a=i[0],d=n.find(e=>e.panelId===a.id);if(g(d,"Panel metadata not found"),d.collapsible){let e=o[a.id];F(t,(d.collapsedSize===e?r.inMemoryLastExpandedPanelSizes[a.id]??d.minSize:d.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=O(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);g(null!==n,"Index not found");let o=e.shiftKey?n>0?n-1:r.length-1:n+1e,W=()=>{},B=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function V(e){let t=e.length;for(;t--;){let r=e[t];if(g(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(U(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||B.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function K(e){return e&&Number(getComputedStyle(e).zIndex)||0}function H(e){let t=[];for(;e;)t.push(e),e=U(e);return t}function U(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function q(e,r){let n=[];return r.forEach((r,o)=>{if(o.disabled)return;let l=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?10:5,s=S(o),i=function(e,t,r){let n,o={x:1/0,y:1/0};for(let l of t){let t=k(r,l.rect);switch(e){case"horizontal":t.x<=o.x&&(n=l,o=t);break;case"vertical":t.y<=o.y&&(n=l,o=t)}}return n?{distance:o,hitRegion:n}:void 0}(o.orientation,s,{x:e.clientX,y:e.clientY});i&&i.distance.x<=l&&i.distance.y<=l&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!w(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:H(e),b:H(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;g(r,"Stacking order can only be calculated for elements with a common ancestor");let o={a:K(V(n.a)),b:K(V(n.b))};if(o.a===o.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},o=e.length;for(;o--;){let r=e[o];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(o.a-o.b)}(r,e)>0){let o=r;for(;o;){var n;if(o.contains(e))break;if(n=o.getBoundingClientRect(),n.xt.x&&n.yt.y)return!1;o=o.parentElement}}return!0}({groupElement:o.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function Y(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{mountedGroups:t}=R,r=q(e,t),n=new Set,o=new Set,l=new Set,s=new Map,i=!1;r.forEach(e=>{n.add(e.group),e.panels.forEach(e=>{o.add(e)}),e.separator&&(l.add(e.separator),i||(i=!0,e.separator.element.focus()));let r=t.get(e.group);r&&s.set(e.group,r.layout)}),N({interactionState:{hitRegions:r,initialLayoutMap:s,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),r.length&&e.preventDefault()}let Q=new WeakMap;function X(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=Q.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[r]);let{cursorFlags:n,interactionState:o}=R;switch(o.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,o=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":o++}})}if(0===n&&0===o)return null;if("active"===r){let t=(4&e)!=0,r=(8&e)!=0;if(e){if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}}return n>0&&o>0?"move":n>0?"ew-resize":"ns-resize"}({cursorFlags:n,groups:o.hitRegions.map(e=>e.group),state:o.state}),l=`*{cursor: ${e} !important; ${"active"===o.state?"touch-action: none;":""} }`;if(t===l)return;t=l,e?0===r.cssRules.length?r.insertRule(l):r.replaceSync(l):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}Q.set(e,{prevStyle:t,styleSheet:r})}function Z({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:l}){let s=0,i=new Map(o);r.forEach(e=>{let{group:r,groupSize:a}=e,{disableCursor:d,orientation:u,panels:c}=r,f=0;f=l?"horizontal"===u?(t.clientX-l.x)/a*100:(t.clientY-l.y)/a*100:"horizontal"===u?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:g,separatorToPanels:y}=o.get(r)??{defaultLayoutDeferred:!1};if(m&&p&&g&&y){let t=P({delta:f,initialLayout:p,panelConstraints:m,pivotIndices:e.panels.map(e=>c.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==f&&!d)switch(u){case"horizontal":s|=f<0?1:2;break;case"vertical":s|=f<0?4:8}}else{i.set(e.group,{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:t,separatorToPanels:y});let r=e.group.panels.map(({id:e})=>e).join(",");e.group.inMemoryLayouts[r]=t}}}),N({cursorFlags:s,mountedGroups:i}),X(e)}function J(e){let{interactionState:t,mountedGroups:r}=R;"active"===t.state&&Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r})}function ee(e){if(e.defaultPrevented)return;let{interactionState:t,mountedGroups:r}=R;if("active"===t.state){if(0===e.buttons){N(e=>"inactive"===e.interactionState.state?e:{cursorFlags:0,interactionState:{state:"inactive"}}),N(e=>({mountedGroups:new Map(e.mountedGroups)}));return}Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint})}else{let n=q(e,r);0===n.length?"inactive"!==t.state&&N({interactionState:{state:"inactive"}}):N({interactionState:{hitRegions:n,state:"hover"}}),X(e.currentTarget)}}function et(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{interactionState:t}=R;"active"===t.state&&(N({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(X(e.currentTarget),N(e=>({mountedGroups:new Map(e.mountedGroups)})),e.preventDefault()))}function er(e){let t=0,r=0,n={};for(let o of e)if(void 0!==o.defaultSize){t++;let e=j(o.defaultSize);r+=e,n[o.panelId]=e}else n[o.panelId]=void 0;let o=e.length-t;if(0!==o){let t=j((100-r)/o);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let en=new Map;function eo(){let[e,t]=(0,u.useState)({});return[e,(0,u.useCallback)(()=>t({}),[])]}function el(e){let t=(0,u.useId)();return`${e??t}`}let es="u">typeof window?u.useLayoutEffect:u.useEffect;function ei(e){let t=(0,u.useRef)(e);return es(()=>{t.current=e},[e]),(0,u.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return ei(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}let ed=(0,u.createContext)(null);function eu({children:e,className:t,defaultLayout:r,disableCursor:n,disabled:o,elementRef:l,groupRef:s,id:i,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",style:p,...h}){var m;let x,v,w=(0,u.useRef)({onLayoutChange:{},onLayoutChanged:{}}),k=ei(e=>{T(w.current.onLayoutChange,e)||(w.current.onLayoutChange=e,a?.(e))}),z=ei(e=>{T(w.current.onLayoutChanged,e)||(w.current.onLayoutChanged=e,c?.(e))}),E=el(i),L=(0,u.useRef)(null),[I,P]=eo(),O=(0,u.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),$=ea(L,l);x=(0,u.useRef)({getLayout:()=>({}),setLayout:G}),(0,u.useImperativeHandle)(s,()=>x.current,[]),es(()=>{Object.assign(x.current,D({groupId:E}))});let F=ei((e,t)=>{let{interactionState:n,mountedGroups:o}=R;for(let r of o.keys())if(r.id===e){let e=o.get(r);if(e){let o=!1;return"active"===n.state&&(o=n.hitRegions.some(e=>e.group===r)),{flexGrow:e.layout[t]??1,pointerEvents:o?"none":void 0}}}return{flexGrow:r?.[t]??1}}),W=(0,u.useMemo)(()=>({getPanelStyles:F,id:E,orientation:f,registerPanel:e=>{let t=O.current;return t.panels=b(f,[...t.panels,e]),P(),()=>{t.panels=t.panels.filter(t=>t!==e),P()}},registerSeparator:e=>{let t=O.current;return t.separators=b(f,[...t.separators,e]),P(),()=>{t.separators=t.separators.filter(t=>t!==e),P()}}}),[F,E,P,f]),B=(m={defaultLayout:r,disableCursor:n},v=(0,u.useRef)({...m}),es(()=>{for(let e in m)v.current[e]=m[e]},[m]),v.current),V=(0,u.useRef)(null);return es(()=>{let e,t,r,n,l,s,i,a,d,u,c,p,h=L.current;if(null===h)return;let m=O.current,b={defaultLayout:B.defaultLayout,disableCursor:!!B.disableCursor,disabled:!!o,element:h,id:E,inMemoryLastExpandedPanelSizes:O.current.lastExpandedPanelSizes,inMemoryLayouts:O.current.layouts,orientation:f,panels:m.panels,separators:m.separators};V.current=b;let x=(e=!0,g(b.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),t=b.element.ownerDocument.defaultView.ResizeObserver,r=new Set,n=new Set,(l=new t(t=>{for(let r of t){let{borderBoxSize:t,target:n}=r;if(n===b.element){if(e){if(0===y({group:b}))return;N(e=>{let t=e.mountedGroups.get(b);if(t){let r=C(b),n=t.defaultLayoutDeferred?er(r):t.layout,o=A({layout:n,panelConstraints:r});return!t.defaultLayoutDeferred&&T(n,o)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)?e:{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,layout:o,separatorToPanels:t.separatorToPanels})}}return e})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let o=y({group:e}),l="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,s=n.mutableValues.prevSize,i={asPercentage:j(l/o*100),inPixels:l};n.mutableValues.prevSize=i,n.onResize(i,n.id,s)}(b,n,t)}})).observe(b.element),b.panels.forEach(e=>{g(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&l.observe(e.element)}),s=y({group:b}),i=C(b),a=b.panels.map(({id:e})=>e).join(","),(d=b.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(b.panels,d)||(d=void 0)),u=A({layout:b.inMemoryLayouts[a]??d??er(i),panelConstraints:i}),c=S(b),p=b.element.ownerDocument,N(e=>{let t=new Map;return en.set(p,(en.get(p)??0)+1),c.forEach(e=>{e.separator&&t.set(e.separator,e.panels)}),{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:0===s,derivedPanelConstraints:i,layout:u,separatorToPanels:t})}}),b.separators.forEach(e=>{g(!n.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.element.addEventListener("keydown",_)}),1===en.get(p)&&(p.addEventListener("pointerdown",Y,!0),p.addEventListener("pointerleave",J),p.addEventListener("pointermove",ee),p.addEventListener("pointerup",et,!0)),function(){e=!1,en.set(p,Math.max(0,(en.get(p)??0)-1)),N(e=>{let t=new Map(e.mountedGroups);return t.delete(b),{mountedGroups:t}}),b.separators.forEach(e=>{e.element.removeEventListener("keydown",_)}),en.get(p)||(p.removeEventListener("pointerdown",Y,!0),p.removeEventListener("pointerleave",J),p.removeEventListener("pointermove",ee),p.removeEventListener("pointerup",et,!0)),l.disconnect()}),v=R.mountedGroups.get(b);if(v){let{defaultLayoutDeferred:e,derivedPanelConstraints:t,layout:r}=v;!e&&t.length>0&&(k(r),z(r),m.panels.forEach(e=>{e.scheduleUpdate()}))}let w=M.addListener("interactionStateChange",()=>{m.panels.forEach(e=>{e.scheduleUpdate()})}),I=M.addListener("mountedGroupsChange",e=>{let t=e.get(b);if(t){let{defaultLayoutDeferred:e,derivedPanelConstraints:r,layout:n}=t;if(e||0===r.length)return;let{interactionState:o}=R,l="active"!==o.state;k(n),l&&z(n),m.panels.forEach(e=>{e.scheduleUpdate()})}});return()=>{V.current=null,x(),w(),I()}},[o,E,z,k,f,I,B]),(0,u.useEffect)(()=>{let e=V.current;e&&(e.defaultLayout=r,e.disableCursor=!!n)}),(0,d.jsx)(ed.Provider,{value:W,children:(0,d.jsx)("div",{...h,"aria-orientation":f,className:t,"data-group":!0,"data-testid":E,id:E,ref:$,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:"horizontal"===f?"row":"column",flexWrap:"nowrap"},children:e})})}function ec(){let e=(0,u.useContext)(ed);return g(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ef({children:e,className:t,collapsedSize:r="0%",collapsible:n=!1,defaultSize:o,elementRef:l,id:s,maxSize:i="100%",minSize:a="0%",onResize:c,panelRef:f,style:p,...h}){let m=!!s,g=el(s),b=(0,u.useRef)(null),x=ea(b,l),[,v]=eo(),{getPanelStyles:w,id:k,registerPanel:S}=ec(),z=null!==c,C=ei((e,t,r)=>{c?.(e,s,r)});es(()=>{let e=b.current;if(null!==e)return S({element:e,id:g,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?C:void 0,panelConstraints:{collapsedSize:r,collapsible:n,defaultSize:o,maxSize:i,minSize:a},scheduleUpdate:v})},[r,n,o,v,z,g,m,i,a,C,S]),function(e,t){let{id:r}=ec(),n=(0,u.useRef)({collapse:W,expand:W,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:W});(0,u.useImperativeHandle)(t,()=>n.current,[]),es(()=>{Object.assign(n.current,function({groupId:e,panelId:t}){let r=()=>{let{mountedGroups:t}=R;for(let[r,{defaultLayoutDeferred:n,derivedPanelConstraints:o,layout:l,separatorToPanels:s}]of t)if(r.id===e)return{defaultLayoutDeferred:n,derivedPanelConstraints:o,group:r,layout:l,separatorToPanels:s};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},l=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},s=e=>{let n=l();if(e===n)return;let{defaultLayoutDeferred:o,derivedPanelConstraints:s,group:i,layout:a,separatorToPanels:d}=r(),u=i.panels.findIndex(e=>e.id===t),c=u===i.panels.length-1,f=A({layout:P({delta:c?n-e:e-n,initialLayout:a,panelConstraints:s,pivotIndices:c?[u-1,u]:[u,u+1],prevLayout:a,trigger:"imperative-api"}),panelConstraints:s});T(a,f)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(i,{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:f,separatorToPanels:d})}))};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=o(),i=l();e&&i!==t&&(r.expandToSize=i,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:i}=o(),a=l();if(e&&a===t){let e=i.expandToSize??r;0===e&&(e=1),s(e)}},getSize:()=>{let{group:e}=r(),t=l(),{element:n}=o();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=l();return e&&E(t,r)},resize:e=>{if(l()!==e){let t;switch(typeof e){case"number":{let{group:n}=r();t=j(e/y({group:n})*100);break}case"string":t=parseFloat(e)}s(t)}}}}({groupId:r,panelId:e}))})}(g,f);let M=w(k,g);return(0,d.jsx)("div",{...h,"data-panel":!0,"data-testid":g,id:g,ref:x,style:{...ep,flexBasis:0,flexShrink:1,overflow:"hidden",...M},children:(0,d.jsx)("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}eu.displayName="Group",ef.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function eh({children:e,className:t,elementRef:r,id:n,style:o,...l}){let s=el(n),[i,a]=(0,u.useState)({}),[c,f]=(0,u.useState)("inactive"),p=(0,u.useRef)(null),h=ea(p,r),{id:m,orientation:g,registerSeparator:y}=ec();return es(()=>{let e=p.current;if(null!==e){let t={element:e,id:s},r=y(t),n=M.addListener("interactionStateChange",e=>{f("inactive"!==e.state&&e.hitRegions.some(e=>e.separator===t)?e.state:"inactive")}),o=M.addListener("mountedGroupsChange",e=>{e.forEach(({derivedPanelConstraints:e,layout:r,separatorToPanels:n},o)=>{if(o.id===m){let l=n.get(t);if(l){let t=l[0],n=o.panels.indexOf(t);a(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let o,l,s=e[r],i=t.find(e=>e.panelId===r);if(i){let a=i.maxSize,d=l=i.collapsible?i.collapsedSize:i.minSize,u=[n,n+1];l=A({layout:P({delta:d-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r],o=A({layout:P({delta:a-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r]}return{valueControls:r,valueMax:o,valueMin:l,valueNow:s}}({layout:r,panelConstraints:e,panelId:t.id,panelIndex:n}))}}})});return()=>{n(),o(),r()}}},[m,s,y]),(0,d.jsx)("div",{...l,"aria-controls":i.valueControls,"aria-orientation":"horizontal"===g?"vertical":"horizontal","aria-valuemax":i.valueMax,"aria-valuemin":i.valueMin,"aria-valuenow":i.valueNow,children:e,className:t,"data-separator":c,"data-testid":s,id:s,ref:h,role:"separator",style:{flexBasis:"auto",...o,flexGrow:0,flexShrink:0},tabIndex:0})}function em(){for(var e,t,r=0,n="",o=arguments.length;r({nextPart:e,validators:t,classGroupId:r}),ey=[],eb=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],o=r.nextPart.get(n);if(o){let r=eb(e,t+1,o);if(r)return r}let l=r.validators;if(null===l)return;let s=0===t?e.join("-"):e.slice(t).join("-"),i=l.length;for(let e=0;e{let r=eg();for(let n in e)ev(e[n],r,n,t);return r},ev=(e,t,r,n)=>{let o=e.length;for(let l=0;l{"string"==typeof e?ek(e,t,r):"function"==typeof e?eS(e,t,r,n):ez(e,t,r,n)},ek=(e,t,r)=>{(""===e?t:ej(t,e)).classGroupId=r},eS=(e,t,r,n)=>{eC(e)?ev(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},ez=(e,t,r,n)=>{let o=Object.entries(e),l=o.length;for(let e=0;e{let r=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,eE=[],eR=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),eM=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n{let t=t=>t[e]||eL;return t.isThemeGetter=!0,t},eP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eO=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,eA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eD=/\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$/,e$=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eF=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e_=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eG=e=>eT.test(e),eW=e=>!!e&&!Number.isNaN(Number(e)),eB=e=>!!e&&Number.isInteger(Number(e)),eV=e=>e.endsWith("%")&&eW(e.slice(0,-1)),eK=e=>eA.test(e),eH=()=>!0,eU=e=>eD.test(e)&&!e$.test(e),eq=()=>!1,eY=e=>eF.test(e),eQ=e=>e_.test(e),eX=e=>!eJ(e)&&!e3(e),eZ=e=>tr(e,ts,eq),eJ=e=>eP.test(e),e0=e=>tr(e,ti,eU),e1=e=>tr(e,ta,eW),e2=e=>tr(e,to,eq),e5=e=>tr(e,tl,eQ),e4=e=>tr(e,tu,eY),e3=e=>eO.test(e),e6=e=>tn(e,ti),e8=e=>tn(e,td),e9=e=>tn(e,to),e7=e=>tn(e,ts),te=e=>tn(e,tl),tt=e=>tn(e,tu,!0),tr=(e,t,r)=>{let n=eP.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},tn=(e,t,r=!1)=>{let n=eO.exec(e);return!!n&&(n[1]?t(n[1]):r)},to=e=>"position"===e||"percentage"===e,tl=e=>"image"===e||"url"===e,ts=e=>"length"===e||"size"===e||"bg-size"===e,ti=e=>"length"===e,ta=e=>"number"===e,td=e=>"family-name"===e,tu=e=>"shadow"===e,tc=((e,...t)=>{let r,n,o,l,s=e=>{let t=n(e);if(t)return t;let l=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:l}=t,s=[],i=e.trim().split(eM),a="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{isExternal:d,modifiers:u,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:p}=r(t);if(d){a=t+(a.length>0?" "+a:a);continue}let h=!!p,m=n(h?f.substring(0,p):f);if(!m){if(!h||!(m=n(f))){a=t+(a.length>0?" "+a:a);continue}h=!1}let g=0===u.length?"":1===u.length?u[0]:l(u).join(":"),y=c?g+"!":g,b=y+m;if(s.indexOf(b)>-1)continue;s.push(b);let x=o(m,h);for(let e=0;e0?" "+a:a)}return a})(e,r);return o(e,l),l};return l=i=>{var a;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,l)=>{r[o]=l,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((a=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,l=0,s=e.length;for(let i=0;il?t-l:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):eR(eE,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(a),sortModifiers:(d=new Map,a.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n0&&(r.sort(),t.push(...r),r=[]),t.push(o)):r.push(o)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return ex(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,o;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return eb(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=r[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tl(((...e)=>{let t,r,n=0,o="";for(;n{let e=eI("color"),t=eI("font"),r=eI("text"),n=eI("font-weight"),o=eI("tracking"),l=eI("leading"),s=eI("breakpoint"),i=eI("container"),a=eI("spacing"),d=eI("radius"),u=eI("shadow"),c=eI("inset-shadow"),f=eI("text-shadow"),p=eI("drop-shadow"),h=eI("blur"),m=eI("perspective"),g=eI("aspect"),y=eI("ease"),b=eI("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...v(),e3,eJ],k=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],z=()=>[e3,eJ,a],j=()=>[eG,"full","auto",...z()],C=()=>[eB,"none","subgrid",e3,eJ],E=()=>["auto",{span:["full",eB,e3,eJ]},eB,e3,eJ],R=()=>[eB,"auto",e3,eJ],M=()=>["auto","min","max","fr",e3,eJ],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],L=()=>["start","end","center","stretch","center-safe","end-safe"],I=()=>["auto",...z()],P=()=>[eG,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],O=()=>[e,e3,eJ],T=()=>[...v(),e9,e2,{position:[e3,eJ]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",e7,eZ,{size:[e3,eJ]}],$=()=>[eV,e6,e0],F=()=>["","none","full",d,e3,eJ],_=()=>["",eW,e6,e0],G=()=>["solid","dashed","dotted","double"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>[eW,eV,e9,e2],V=()=>["","none",h,e3,eJ],K=()=>["none",eW,e3,eJ],H=()=>["none",eW,e3,eJ],U=()=>[eW,e3,eJ],q=()=>[eG,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eK],breakpoint:[eK],color:[eH],container:[eK],"drop-shadow":[eK],ease:["in","out","in-out"],font:[eX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eK],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eK],shadow:[eK],spacing:["px",eW],text:[eK],"text-shadow":[eK],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",eG,eJ,e3,g]}],container:["container"],columns:[{columns:[eW,eJ,e3,i]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"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:w()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[eB,"auto",e3,eJ]}],basis:[{basis:[eG,"full","auto",i,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eW,eG,"auto","initial","none",eJ]}],grow:[{grow:["",eW,e3,eJ]}],shrink:[{shrink:["",eW,e3,eJ]}],order:[{order:[eB,"first","last","none",e3,eJ]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":R()}],"col-end":[{"col-end":R()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":R()}],"row-end":[{"row-end":R()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M()}],"auto-rows":[{"auto-rows":M()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...L(),"normal"]}],"justify-self":[{"justify-self":["auto",...L()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...L(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...L(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...L(),"baseline"]}],"place-self":[{"place-self":["auto",...L()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:I()}],mx:[{mx:I()}],my:[{my:I()}],ms:[{ms:I()}],me:[{me:I()}],mt:[{mt:I()}],mr:[{mr:I()}],mb:[{mb:I()}],ml:[{ml:I()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],w:[{w:[i,"screen",...P()]}],"min-w":[{"min-w":[i,"screen","none",...P()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[s]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",r,e6,e0]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e3,e1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eV,eJ]}],"font-family":[{font:[e8,eJ,t]}],"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:[o,e3,eJ]}],"line-clamp":[{"line-clamp":[eW,"none",e3,e1]}],leading:[{leading:[l,...z()]}],"list-image":[{"list-image":["none",e3,eJ]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e3,eJ]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:[eW,"from-font","auto",e3,e0]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[eW,"auto",e3,eJ]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e3,eJ]}],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",e3,eJ]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},eB,e3,eJ],radial:["",e3,eJ],conic:[eB,e3,eJ]},te,e5]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:$()}],"gradient-via-pos":[{via:$()}],"gradient-to-pos":[{to:$()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:F()}],"rounded-s":[{"rounded-s":F()}],"rounded-e":[{"rounded-e":F()}],"rounded-t":[{"rounded-t":F()}],"rounded-r":[{"rounded-r":F()}],"rounded-b":[{"rounded-b":F()}],"rounded-l":[{"rounded-l":F()}],"rounded-ss":[{"rounded-ss":F()}],"rounded-se":[{"rounded-se":F()}],"rounded-ee":[{"rounded-ee":F()}],"rounded-es":[{"rounded-es":F()}],"rounded-tl":[{"rounded-tl":F()}],"rounded-tr":[{"rounded-tr":F()}],"rounded-br":[{"rounded-br":F()}],"rounded-bl":[{"rounded-bl":F()}],"border-w":[{border:_()}],"border-w-x":[{"border-x":_()}],"border-w-y":[{"border-y":_()}],"border-w-s":[{"border-s":_()}],"border-w-e":[{"border-e":_()}],"border-w-t":[{"border-t":_()}],"border-w-r":[{"border-r":_()}],"border-w-b":[{"border-b":_()}],"border-w-l":[{"border-l":_()}],"divide-x":[{"divide-x":_()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":_()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...G(),"hidden","none"]}],"divide-style":[{divide:[...G(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[...G(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eW,e3,eJ]}],"outline-w":[{outline:["",eW,e6,e0]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",u,tt,e4]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",c,tt,e4]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:_()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[eW,e0]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":_()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",f,tt,e4]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[eW,e3,eJ]}],"mix-blend":[{"mix-blend":[...W(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":W()}],"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":[eW]}],"mask-image-linear-from-pos":[{"mask-linear-from":B()}],"mask-image-linear-to-pos":[{"mask-linear-to":B()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":B()}],"mask-image-t-to-pos":[{"mask-t-to":B()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":B()}],"mask-image-r-to-pos":[{"mask-r-to":B()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":B()}],"mask-image-b-to-pos":[{"mask-b-to":B()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":B()}],"mask-image-l-to-pos":[{"mask-l-to":B()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":B()}],"mask-image-x-to-pos":[{"mask-x-to":B()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":B()}],"mask-image-y-to-pos":[{"mask-y-to":B()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[e3,eJ]}],"mask-image-radial-from-pos":[{"mask-radial-from":B()}],"mask-image-radial-to-pos":[{"mask-radial-to":B()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"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":v()}],"mask-image-conic-pos":[{"mask-conic":[eW]}],"mask-image-conic-from-pos":[{"mask-conic-from":B()}],"mask-image-conic-to-pos":[{"mask-conic-to":B()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e3,eJ]}],filter:[{filter:["","none",e3,eJ]}],blur:[{blur:V()}],brightness:[{brightness:[eW,e3,eJ]}],contrast:[{contrast:[eW,e3,eJ]}],"drop-shadow":[{"drop-shadow":["","none",p,tt,e4]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",eW,e3,eJ]}],"hue-rotate":[{"hue-rotate":[eW,e3,eJ]}],invert:[{invert:["",eW,e3,eJ]}],saturate:[{saturate:[eW,e3,eJ]}],sepia:[{sepia:["",eW,e3,eJ]}],"backdrop-filter":[{"backdrop-filter":["","none",e3,eJ]}],"backdrop-blur":[{"backdrop-blur":V()}],"backdrop-brightness":[{"backdrop-brightness":[eW,e3,eJ]}],"backdrop-contrast":[{"backdrop-contrast":[eW,e3,eJ]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eW,e3,eJ]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eW,e3,eJ]}],"backdrop-invert":[{"backdrop-invert":["",eW,e3,eJ]}],"backdrop-opacity":[{"backdrop-opacity":[eW,e3,eJ]}],"backdrop-saturate":[{"backdrop-saturate":[eW,e3,eJ]}],"backdrop-sepia":[{"backdrop-sepia":["",eW,e3,eJ]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e3,eJ]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eW,"initial",e3,eJ]}],ease:[{ease:["linear","initial",y,e3,eJ]}],delay:[{delay:[eW,e3,eJ]}],animate:[{animate:["none",b,e3,eJ]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,e3,eJ]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:U()}],"skew-x":[{"skew-x":U()}],"skew-y":[{"skew-y":U()}],transform:[{transform:[e3,eJ,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q()}],"translate-x":[{"translate-x":q()}],"translate-y":[{"translate-y":q()}],"translate-z":[{"translate-z":q()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"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",e3,eJ]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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",e3,eJ]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[eW,e6,e0,e1]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tf(...e){return tc(em(e))}let tp=({className:e,...t})=>(0,d.jsx)(eu,{className:tf("flex h-full w-full data-[orientation=vertical]:flex-col",e),...t}),th=({withHandle:e,className:t,...r})=>(0,d.jsx)(eh,{className:tf("relative flex w-[3px] items-center justify-center bg-border/50 hover:bg-primary/50 transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-2 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring data-[orientation=vertical]:h-[3px] data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-2 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t),...r,children:e&&(0,d.jsx)("div",{className:"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-secondary",children:(0,d.jsx)(m,{className:"h-3 w-3 text-muted-foreground"})})});var tm=e.i(69941);function tg(e,t,r){let n,o=r.initialDeps??[];function l(){var l,s,i,a;let d,u;r.key&&(null==(l=r.debug)?void 0:l.call(r))&&(d=Date.now());let c=e();if(!(c.length!==o.length||c.some((e,t)=>o[t]!==e)))return n;if(o=c,r.key&&(null==(s=r.debug)?void 0:s.call(r))&&(u=Date.now()),n=t(...c),r.key&&(null==(i=r.debug)?void 0:i.call(r))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-u)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{"use strict";let t,r,n,o,l,s;var i,a,d=e.i(48277),u=e.i(30668);let c=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},f=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var p={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,u.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:s,...i},a)=>(0,u.createElement)("svg",{ref:a,...p,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:f("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(i)&&{"aria-hidden":"true"},...i},[...s.map(([e,t])=>(0,u.createElement)(e,t)),...Array.isArray(l)?l:[l]])),m=(i="grip-vertical",a=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],(r=(0,u.forwardRef)(({className:e,...t},r)=>(0,u.createElement)(h,{ref:r,iconNode:a,className:f(`lucide-${c(i).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${i}`,e),...t}))).displayName=c(i),r);function g(e,t="Assertion error"){if(!e)throw Error(t)}function y({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function b(e,t){return t.sort("horizontal"===e?x:v)}function x(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function v(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function w(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function k(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function S(e){let{element:t,orientation:r,panels:n,separators:o}=e,l=b(r,Array.from(t.children).filter(w).map(e=>({element:e}))).map(({element:e})=>e),s=[],i=!1,a,d=[];for(let t of l)if(t.hasAttribute("data-panel")){let o=n.find(e=>e.element===t);if(o){if(a){let n,l=a.element.getBoundingClientRect(),u=t.getBoundingClientRect();if(i){let e="horizontal"===r?new DOMRect(l.right,l.top,0,l.height):new DOMRect(l.left,l.bottom,l.width,0),t="horizontal"===r?new DOMRect(u.left,u.top,0,u.height):new DOMRect(u.left,u.top,u.width,0);switch(d.length){case 0:n=[e,t];break;case 1:{let o=d[0],s=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},o,l=Number.MAX_VALUE;for(let r of t){let{x:t,y:s}=k(n,r),i="horizontal"===e?t:s;ie.element===t);e?d.push(e):(a=void 0,d=[])}else i=!0;return s}function z({groupSize:e,panelElement:t,styleProp:r}){let n,[o,l]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(l){case"%":n=o/100*e;break;case"px":n=o;break;case"rem":n=o*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=o*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=o/100*window.innerHeight;break;case"vw":n=o/100*window.innerWidth}return n}function j(e){return parseFloat(e.toFixed(3))}function C(e){let{panels:t}=e,r=y({group:e});return 0===r?t.map(e=>({collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:o}=e,l=0;void 0!==o.collapsedSize&&(l=j(z({groupSize:r,panelElement:n,styleProp:o.collapsedSize})/r*100)),void 0!==o.defaultSize&&(t=j(z({groupSize:r,panelElement:n,styleProp:o.defaultSize})/r*100));let s=0;void 0!==o.minSize&&(s=j(z({groupSize:r,panelElement:n,styleProp:o.minSize})/r*100));let i=100;return void 0!==o.maxSize&&(i=j(z({groupSize:r,panelElement:n,styleProp:o.maxSize})/r*100)),{collapsedSize:l,collapsible:!0===o.collapsible,defaultSize:t,minSize:s,maxSize:i,panelId:e.id}})}function E(e,t,r=0){return Math.abs(j(e)-j(t))<=r}let R={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map},M=new class{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,o=Array.from(r);for(let r=0;r=0&&r.splice(e,1)}}};function N(e){let t="function"==typeof e?e(R):e;if(R===t)return R;let r=R;return R={...R,...t},void 0!==t.cursorFlags&&M.emit("cursorFlagsChange",R.cursorFlags),void 0!==t.interactionState&&M.emit("interactionStateChange",R.interactionState),void 0!==t.mountedGroups&&(R.mountedGroups.forEach((e,t)=>{e.derivedPanelConstraints.forEach(n=>{if(n.collapsible){let{layout:o}=r.mountedGroups.get(t)??{};if(o){let r=E(n.collapsedSize,e.layout[n.panelId]),l=E(n.collapsedSize,o[n.panelId]);r&&!l&&(t.inMemoryLastExpandedPanelSizes[n.panelId]=o[n.panelId])}}})}),M.emit("mountedGroupsChange",R.mountedGroups)),R}function L(e,t){return E(e,t)?0:e>t?1:-1}function I({panelConstraints:e,size:t}){let{collapsedSize:r=0,collapsible:n,maxSize:o=100,minSize:l=0}=e;return 0>L(t,l)&&(t=n&&0>L(t,(r+l)/2)?r:l),j(t=Math.min(o,t))}function P({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:o,trigger:l}){if(E(e,0))return t;let s=Object.values(t),i=Object.values(o),a=[...s],[d,u]=n;g(null!=d,"Invalid first pivot index"),g(null!=u,"Invalid second pivot index");let c=0;if("keyboard"===l){{let t=e<0?u:d,n=r[t];g(n,`Panel constraints not found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,o)){let t=i-r;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?d:u,n=r[t];g(n,`No panel constraints found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,i)){let t=r-o;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let t=e<0?1:-1,n=e<0?u:d,o=0;for(;;){let e=s[n];if(g(null!=e,`Previous layout not found for panel index ${n}`),o+=I({panelConstraints:r[n],size:100})-e,(n+=t)<0||n>=r.length)break}let l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let t=e<0?d:u;for(;t>=0&&t=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r=0&&n0?n--:n++}}}if(!E(Object.values(a).reduce((e,t)=>t+e,0),100,.1))return o;let f=Object.keys(o);return a.reduce((e,t,r)=>(e[f[r]]=t,e),{})}function O(e){let{mountedGroups:t}=R;for(let[r]of t)if(r.separators.some(t=>t.element===e))return r;throw Error("Could not find parent Group for separator element")}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==L(e[r],t[r]))return!1;return!0}function A({layout:e,panelConstraints:t}){let r=[...Object.values(e)],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!E(n,100)&&r.length>0)for(let e=0;e(e[l[r]]=t,e),{})}function D({groupId:e}){let t=()=>{let{mountedGroups:t}=R;for(let[r,n]of t)if(r.id===e)return{group:r,...n};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:o,layout:l,separatorToPanels:s}=t(),i=A({layout:e,panelConstraints:n});return r?l:(T(l,i)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(o,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:i,separatorToPanels:s})})),i)}}}function F(e){let{mountedGroups:t}=R,r=t.get(e);return g(r,`Mounted Group ${e.id} not found`),r}function $(e,t){let r=O(e),n=F(r),o=r.separators.find(t=>t.element===e);g(o,"Matching separator not found");let l=n.separatorToPanels.get(o);g(l,"Matching panels not found");let s=l.map(e=>r.panels.indexOf(e)),i=D({groupId:r.id}).getLayout(),a=A({layout:P({delta:t,initialLayout:i,panelConstraints:n.derivedPanelConstraints,pivotIndices:s,prevLayout:i,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(i,a)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,layout:a,separatorToPanels:n.separatorToPanels})}))}function _(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=O(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&$(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&$(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&$(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&$(t,-5);break;case"End":e.preventDefault(),$(t,100);break;case"Enter":{e.preventDefault();let r=O(t),{derivedPanelConstraints:n,layout:o,separatorToPanels:l}=F(r),s=r.separators.find(e=>e.element===t);g(s,"Matching separator not found");let i=l.get(s);g(i,"Matching panels not found");let a=i[0],d=n.find(e=>e.panelId===a.id);if(g(d,"Panel metadata not found"),d.collapsible){let e=o[a.id];$(t,(d.collapsedSize===e?r.inMemoryLastExpandedPanelSizes[a.id]??d.minSize:d.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=O(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);g(null!==n,"Index not found");let o=e.shiftKey?n>0?n-1:r.length-1:n+1e,W=()=>{},B=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function V(e){let t=e.length;for(;t--;){let r=e[t];if(g(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(U(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||B.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function K(e){return e&&Number(getComputedStyle(e).zIndex)||0}function H(e){let t=[];for(;e;)t.push(e),e=U(e);return t}function U(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function q(e,r){let n=[];return r.forEach((r,o)=>{if(o.disabled)return;let l=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?10:5,s=S(o),i=function(e,t,r){let n,o={x:1/0,y:1/0};for(let l of t){let t=k(r,l.rect);switch(e){case"horizontal":t.x<=o.x&&(n=l,o=t);break;case"vertical":t.y<=o.y&&(n=l,o=t)}}return n?{distance:o,hitRegion:n}:void 0}(o.orientation,s,{x:e.clientX,y:e.clientY});i&&i.distance.x<=l&&i.distance.y<=l&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!w(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:H(e),b:H(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;g(r,"Stacking order can only be calculated for elements with a common ancestor");let o={a:K(V(n.a)),b:K(V(n.b))};if(o.a===o.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},o=e.length;for(;o--;){let r=e[o];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(o.a-o.b)}(r,e)>0){let o=r;for(;o;){var n;if(o.contains(e))break;if(n=o.getBoundingClientRect(),n.xt.x&&n.yt.y)return!1;o=o.parentElement}}return!0}({groupElement:o.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function Y(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{mountedGroups:t}=R,r=q(e,t),n=new Set,o=new Set,l=new Set,s=new Map,i=!1;r.forEach(e=>{n.add(e.group),e.panels.forEach(e=>{o.add(e)}),e.separator&&(l.add(e.separator),i||(i=!0,e.separator.element.focus()));let r=t.get(e.group);r&&s.set(e.group,r.layout)}),N({interactionState:{hitRegions:r,initialLayoutMap:s,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),r.length&&e.preventDefault()}let Q=new WeakMap;function X(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=Q.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[r]);let{cursorFlags:n,interactionState:o}=R;switch(o.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,o=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":o++}})}if(0===n&&0===o)return null;if("active"===r){let t=(4&e)!=0,r=(8&e)!=0;if(e){if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}}return n>0&&o>0?"move":n>0?"ew-resize":"ns-resize"}({cursorFlags:n,groups:o.hitRegions.map(e=>e.group),state:o.state}),l=`*{cursor: ${e} !important; ${"active"===o.state?"touch-action: none;":""} }`;if(t===l)return;t=l,e?0===r.cssRules.length?r.insertRule(l):r.replaceSync(l):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}Q.set(e,{prevStyle:t,styleSheet:r})}function Z({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:l}){let s=0,i=new Map(o);r.forEach(e=>{let{group:r,groupSize:a}=e,{disableCursor:d,orientation:u,panels:c}=r,f=0;f=l?"horizontal"===u?(t.clientX-l.x)/a*100:(t.clientY-l.y)/a*100:"horizontal"===u?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:g,separatorToPanels:y}=o.get(r)??{defaultLayoutDeferred:!1};if(m&&p&&g&&y){let t=P({delta:f,initialLayout:p,panelConstraints:m,pivotIndices:e.panels.map(e=>c.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==f&&!d)switch(u){case"horizontal":s|=f<0?1:2;break;case"vertical":s|=f<0?4:8}}else{i.set(e.group,{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:t,separatorToPanels:y});let r=e.group.panels.map(({id:e})=>e).join(",");e.group.inMemoryLayouts[r]=t}}}),N({cursorFlags:s,mountedGroups:i}),X(e)}function J(e){let{interactionState:t,mountedGroups:r}=R;"active"===t.state&&Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r})}function ee(e){if(e.defaultPrevented)return;let{interactionState:t,mountedGroups:r}=R;if("active"===t.state){if(0===e.buttons){N(e=>"inactive"===e.interactionState.state?e:{cursorFlags:0,interactionState:{state:"inactive"}}),N(e=>({mountedGroups:new Map(e.mountedGroups)}));return}Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint})}else{let n=q(e,r);0===n.length?"inactive"!==t.state&&N({interactionState:{state:"inactive"}}):N({interactionState:{hitRegions:n,state:"hover"}}),X(e.currentTarget)}}function et(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{interactionState:t}=R;"active"===t.state&&(N({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(X(e.currentTarget),N(e=>({mountedGroups:new Map(e.mountedGroups)})),e.preventDefault()))}function er(e){let t=0,r=0,n={};for(let o of e)if(void 0!==o.defaultSize){t++;let e=j(o.defaultSize);r+=e,n[o.panelId]=e}else n[o.panelId]=void 0;let o=e.length-t;if(0!==o){let t=j((100-r)/o);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let en=new Map;function eo(){let[e,t]=(0,u.useState)({});return[e,(0,u.useCallback)(()=>t({}),[])]}function el(e){let t=(0,u.useId)();return`${e??t}`}let es="u">typeof window?u.useLayoutEffect:u.useEffect;function ei(e){let t=(0,u.useRef)(e);return es(()=>{t.current=e},[e]),(0,u.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return ei(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}let ed=(0,u.createContext)(null);function eu({children:e,className:t,defaultLayout:r,disableCursor:n,disabled:o,elementRef:l,groupRef:s,id:i,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",style:p,...h}){var m;let x,v,w=(0,u.useRef)({onLayoutChange:{},onLayoutChanged:{}}),k=ei(e=>{T(w.current.onLayoutChange,e)||(w.current.onLayoutChange=e,a?.(e))}),z=ei(e=>{T(w.current.onLayoutChanged,e)||(w.current.onLayoutChanged=e,c?.(e))}),E=el(i),L=(0,u.useRef)(null),[I,P]=eo(),O=(0,u.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),F=ea(L,l);x=(0,u.useRef)({getLayout:()=>({}),setLayout:G}),(0,u.useImperativeHandle)(s,()=>x.current,[]),es(()=>{Object.assign(x.current,D({groupId:E}))});let $=ei((e,t)=>{let{interactionState:n,mountedGroups:o}=R;for(let r of o.keys())if(r.id===e){let e=o.get(r);if(e){let o=!1;return"active"===n.state&&(o=n.hitRegions.some(e=>e.group===r)),{flexGrow:e.layout[t]??1,pointerEvents:o?"none":void 0}}}return{flexGrow:r?.[t]??1}}),W=(0,u.useMemo)(()=>({getPanelStyles:$,id:E,orientation:f,registerPanel:e=>{let t=O.current;return t.panels=b(f,[...t.panels,e]),P(),()=>{t.panels=t.panels.filter(t=>t!==e),P()}},registerSeparator:e=>{let t=O.current;return t.separators=b(f,[...t.separators,e]),P(),()=>{t.separators=t.separators.filter(t=>t!==e),P()}}}),[$,E,P,f]),B=(m={defaultLayout:r,disableCursor:n},v=(0,u.useRef)({...m}),es(()=>{for(let e in m)v.current[e]=m[e]},[m]),v.current),V=(0,u.useRef)(null);return es(()=>{let e,t,r,n,l,s,i,a,d,u,c,p,h=L.current;if(null===h)return;let m=O.current,b={defaultLayout:B.defaultLayout,disableCursor:!!B.disableCursor,disabled:!!o,element:h,id:E,inMemoryLastExpandedPanelSizes:O.current.lastExpandedPanelSizes,inMemoryLayouts:O.current.layouts,orientation:f,panels:m.panels,separators:m.separators};V.current=b;let x=(e=!0,g(b.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),t=b.element.ownerDocument.defaultView.ResizeObserver,r=new Set,n=new Set,(l=new t(t=>{for(let r of t){let{borderBoxSize:t,target:n}=r;if(n===b.element){if(e){if(0===y({group:b}))return;N(e=>{let t=e.mountedGroups.get(b);if(t){let r=C(b),n=t.defaultLayoutDeferred?er(r):t.layout,o=A({layout:n,panelConstraints:r});return!t.defaultLayoutDeferred&&T(n,o)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)?e:{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,layout:o,separatorToPanels:t.separatorToPanels})}}return e})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let o=y({group:e}),l="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,s=n.mutableValues.prevSize,i={asPercentage:j(l/o*100),inPixels:l};n.mutableValues.prevSize=i,n.onResize(i,n.id,s)}(b,n,t)}})).observe(b.element),b.panels.forEach(e=>{g(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&l.observe(e.element)}),s=y({group:b}),i=C(b),a=b.panels.map(({id:e})=>e).join(","),(d=b.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(b.panels,d)||(d=void 0)),u=A({layout:b.inMemoryLayouts[a]??d??er(i),panelConstraints:i}),c=S(b),p=b.element.ownerDocument,N(e=>{let t=new Map;return en.set(p,(en.get(p)??0)+1),c.forEach(e=>{e.separator&&t.set(e.separator,e.panels)}),{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:0===s,derivedPanelConstraints:i,layout:u,separatorToPanels:t})}}),b.separators.forEach(e=>{g(!n.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.element.addEventListener("keydown",_)}),1===en.get(p)&&(p.addEventListener("pointerdown",Y,!0),p.addEventListener("pointerleave",J),p.addEventListener("pointermove",ee),p.addEventListener("pointerup",et,!0)),function(){e=!1,en.set(p,Math.max(0,(en.get(p)??0)-1)),N(e=>{let t=new Map(e.mountedGroups);return t.delete(b),{mountedGroups:t}}),b.separators.forEach(e=>{e.element.removeEventListener("keydown",_)}),en.get(p)||(p.removeEventListener("pointerdown",Y,!0),p.removeEventListener("pointerleave",J),p.removeEventListener("pointermove",ee),p.removeEventListener("pointerup",et,!0)),l.disconnect()}),v=R.mountedGroups.get(b);if(v){let{defaultLayoutDeferred:e,derivedPanelConstraints:t,layout:r}=v;!e&&t.length>0&&(k(r),z(r),m.panels.forEach(e=>{e.scheduleUpdate()}))}let w=M.addListener("interactionStateChange",()=>{m.panels.forEach(e=>{e.scheduleUpdate()})}),I=M.addListener("mountedGroupsChange",e=>{let t=e.get(b);if(t){let{defaultLayoutDeferred:e,derivedPanelConstraints:r,layout:n}=t;if(e||0===r.length)return;let{interactionState:o}=R,l="active"!==o.state;k(n),l&&z(n),m.panels.forEach(e=>{e.scheduleUpdate()})}});return()=>{V.current=null,x(),w(),I()}},[o,E,z,k,f,I,B]),(0,u.useEffect)(()=>{let e=V.current;e&&(e.defaultLayout=r,e.disableCursor=!!n)}),(0,d.jsx)(ed.Provider,{value:W,children:(0,d.jsx)("div",{...h,"aria-orientation":f,className:t,"data-group":!0,"data-testid":E,id:E,ref:F,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:"horizontal"===f?"row":"column",flexWrap:"nowrap"},children:e})})}function ec(){let e=(0,u.useContext)(ed);return g(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ef({children:e,className:t,collapsedSize:r="0%",collapsible:n=!1,defaultSize:o,elementRef:l,id:s,maxSize:i="100%",minSize:a="0%",onResize:c,panelRef:f,style:p,...h}){let m=!!s,g=el(s),b=(0,u.useRef)(null),x=ea(b,l),[,v]=eo(),{getPanelStyles:w,id:k,registerPanel:S}=ec(),z=null!==c,C=ei((e,t,r)=>{c?.(e,s,r)});es(()=>{let e=b.current;if(null!==e)return S({element:e,id:g,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?C:void 0,panelConstraints:{collapsedSize:r,collapsible:n,defaultSize:o,maxSize:i,minSize:a},scheduleUpdate:v})},[r,n,o,v,z,g,m,i,a,C,S]),function(e,t){let{id:r}=ec(),n=(0,u.useRef)({collapse:W,expand:W,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:W});(0,u.useImperativeHandle)(t,()=>n.current,[]),es(()=>{Object.assign(n.current,function({groupId:e,panelId:t}){let r=()=>{let{mountedGroups:t}=R;for(let[r,{defaultLayoutDeferred:n,derivedPanelConstraints:o,layout:l,separatorToPanels:s}]of t)if(r.id===e)return{defaultLayoutDeferred:n,derivedPanelConstraints:o,group:r,layout:l,separatorToPanels:s};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},l=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},s=e=>{let n=l();if(e===n)return;let{defaultLayoutDeferred:o,derivedPanelConstraints:s,group:i,layout:a,separatorToPanels:d}=r(),u=i.panels.findIndex(e=>e.id===t),c=u===i.panels.length-1,f=A({layout:P({delta:c?n-e:e-n,initialLayout:a,panelConstraints:s,pivotIndices:c?[u-1,u]:[u,u+1],prevLayout:a,trigger:"imperative-api"}),panelConstraints:s});T(a,f)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(i,{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:f,separatorToPanels:d})}))};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=o(),i=l();e&&i!==t&&(r.expandToSize=i,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:i}=o(),a=l();if(e&&a===t){let e=i.expandToSize??r;0===e&&(e=1),s(e)}},getSize:()=>{let{group:e}=r(),t=l(),{element:n}=o();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=l();return e&&E(t,r)},resize:e=>{if(l()!==e){let t;switch(typeof e){case"number":{let{group:n}=r();t=j(e/y({group:n})*100);break}case"string":t=parseFloat(e)}s(t)}}}}({groupId:r,panelId:e}))})}(g,f);let M=w(k,g);return(0,d.jsx)("div",{...h,"data-panel":!0,"data-testid":g,id:g,ref:x,style:{...ep,flexBasis:0,flexShrink:1,overflow:"hidden",...M},children:(0,d.jsx)("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}eu.displayName="Group",ef.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function eh({children:e,className:t,elementRef:r,id:n,style:o,...l}){let s=el(n),[i,a]=(0,u.useState)({}),[c,f]=(0,u.useState)("inactive"),p=(0,u.useRef)(null),h=ea(p,r),{id:m,orientation:g,registerSeparator:y}=ec();return es(()=>{let e=p.current;if(null!==e){let t={element:e,id:s},r=y(t),n=M.addListener("interactionStateChange",e=>{f("inactive"!==e.state&&e.hitRegions.some(e=>e.separator===t)?e.state:"inactive")}),o=M.addListener("mountedGroupsChange",e=>{e.forEach(({derivedPanelConstraints:e,layout:r,separatorToPanels:n},o)=>{if(o.id===m){let l=n.get(t);if(l){let t=l[0],n=o.panels.indexOf(t);a(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let o,l,s=e[r],i=t.find(e=>e.panelId===r);if(i){let a=i.maxSize,d=l=i.collapsible?i.collapsedSize:i.minSize,u=[n,n+1];l=A({layout:P({delta:d-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r],o=A({layout:P({delta:a-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r]}return{valueControls:r,valueMax:o,valueMin:l,valueNow:s}}({layout:r,panelConstraints:e,panelId:t.id,panelIndex:n}))}}})});return()=>{n(),o(),r()}}},[m,s,y]),(0,d.jsx)("div",{...l,"aria-controls":i.valueControls,"aria-orientation":"horizontal"===g?"vertical":"horizontal","aria-valuemax":i.valueMax,"aria-valuemin":i.valueMin,"aria-valuenow":i.valueNow,children:e,className:t,"data-separator":c,"data-testid":s,id:s,ref:h,role:"separator",style:{flexBasis:"auto",...o,flexGrow:0,flexShrink:0},tabIndex:0})}function em(){for(var e,t,r=0,n="",o=arguments.length;r({nextPart:e,validators:t,classGroupId:r}),ey=[],eb=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],o=r.nextPart.get(n);if(o){let r=eb(e,t+1,o);if(r)return r}let l=r.validators;if(null===l)return;let s=0===t?e.join("-"):e.slice(t).join("-"),i=l.length;for(let e=0;e{let r=eg();for(let n in e)ev(e[n],r,n,t);return r},ev=(e,t,r,n)=>{let o=e.length;for(let l=0;l{"string"==typeof e?ek(e,t,r):"function"==typeof e?eS(e,t,r,n):ez(e,t,r,n)},ek=(e,t,r)=>{(""===e?t:ej(t,e)).classGroupId=r},eS=(e,t,r,n)=>{eC(e)?ev(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},ez=(e,t,r,n)=>{let o=Object.entries(e),l=o.length;for(let e=0;e{let r=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,eE=[],eR=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),eM=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n{let t=t=>t[e]||eL;return t.isThemeGetter=!0,t},eP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eO=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,eA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eD=/\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$/,eF=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,e$=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e_=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eG=e=>eT.test(e),eW=e=>!!e&&!Number.isNaN(Number(e)),eB=e=>!!e&&Number.isInteger(Number(e)),eV=e=>e.endsWith("%")&&eW(e.slice(0,-1)),eK=e=>eA.test(e),eH=()=>!0,eU=e=>eD.test(e)&&!eF.test(e),eq=()=>!1,eY=e=>e$.test(e),eQ=e=>e_.test(e),eX=e=>!eJ(e)&&!e3(e),eZ=e=>tr(e,ts,eq),eJ=e=>eP.test(e),e0=e=>tr(e,ti,eU),e1=e=>tr(e,ta,eW),e2=e=>tr(e,to,eq),e5=e=>tr(e,tl,eQ),e4=e=>tr(e,tu,eY),e3=e=>eO.test(e),e6=e=>tn(e,ti),e8=e=>tn(e,td),e9=e=>tn(e,to),e7=e=>tn(e,ts),te=e=>tn(e,tl),tt=e=>tn(e,tu,!0),tr=(e,t,r)=>{let n=eP.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},tn=(e,t,r=!1)=>{let n=eO.exec(e);return!!n&&(n[1]?t(n[1]):r)},to=e=>"position"===e||"percentage"===e,tl=e=>"image"===e||"url"===e,ts=e=>"length"===e||"size"===e||"bg-size"===e,ti=e=>"length"===e,ta=e=>"number"===e,td=e=>"family-name"===e,tu=e=>"shadow"===e,tc=((e,...t)=>{let r,n,o,l,s=e=>{let t=n(e);if(t)return t;let l=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:l}=t,s=[],i=e.trim().split(eM),a="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{isExternal:d,modifiers:u,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:p}=r(t);if(d){a=t+(a.length>0?" "+a:a);continue}let h=!!p,m=n(h?f.substring(0,p):f);if(!m){if(!h||!(m=n(f))){a=t+(a.length>0?" "+a:a);continue}h=!1}let g=0===u.length?"":1===u.length?u[0]:l(u).join(":"),y=c?g+"!":g,b=y+m;if(s.indexOf(b)>-1)continue;s.push(b);let x=o(m,h);for(let e=0;e0?" "+a:a)}return a})(e,r);return o(e,l),l};return l=i=>{var a;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,l)=>{r[o]=l,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((a=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,l=0,s=e.length;for(let i=0;il?t-l:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):eR(eE,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(a),sortModifiers:(d=new Map,a.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n0&&(r.sort(),t.push(...r),r=[]),t.push(o)):r.push(o)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return ex(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,o;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return eb(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=r[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tl(((...e)=>{let t,r,n=0,o="";for(;n{let e=eI("color"),t=eI("font"),r=eI("text"),n=eI("font-weight"),o=eI("tracking"),l=eI("leading"),s=eI("breakpoint"),i=eI("container"),a=eI("spacing"),d=eI("radius"),u=eI("shadow"),c=eI("inset-shadow"),f=eI("text-shadow"),p=eI("drop-shadow"),h=eI("blur"),m=eI("perspective"),g=eI("aspect"),y=eI("ease"),b=eI("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...v(),e3,eJ],k=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],z=()=>[e3,eJ,a],j=()=>[eG,"full","auto",...z()],C=()=>[eB,"none","subgrid",e3,eJ],E=()=>["auto",{span:["full",eB,e3,eJ]},eB,e3,eJ],R=()=>[eB,"auto",e3,eJ],M=()=>["auto","min","max","fr",e3,eJ],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],L=()=>["start","end","center","stretch","center-safe","end-safe"],I=()=>["auto",...z()],P=()=>[eG,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],O=()=>[e,e3,eJ],T=()=>[...v(),e9,e2,{position:[e3,eJ]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",e7,eZ,{size:[e3,eJ]}],F=()=>[eV,e6,e0],$=()=>["","none","full",d,e3,eJ],_=()=>["",eW,e6,e0],G=()=>["solid","dashed","dotted","double"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>[eW,eV,e9,e2],V=()=>["","none",h,e3,eJ],K=()=>["none",eW,e3,eJ],H=()=>["none",eW,e3,eJ],U=()=>[eW,e3,eJ],q=()=>[eG,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eK],breakpoint:[eK],color:[eH],container:[eK],"drop-shadow":[eK],ease:["in","out","in-out"],font:[eX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eK],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eK],shadow:[eK],spacing:["px",eW],text:[eK],"text-shadow":[eK],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",eG,eJ,e3,g]}],container:["container"],columns:[{columns:[eW,eJ,e3,i]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"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:w()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[eB,"auto",e3,eJ]}],basis:[{basis:[eG,"full","auto",i,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eW,eG,"auto","initial","none",eJ]}],grow:[{grow:["",eW,e3,eJ]}],shrink:[{shrink:["",eW,e3,eJ]}],order:[{order:[eB,"first","last","none",e3,eJ]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":R()}],"col-end":[{"col-end":R()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":R()}],"row-end":[{"row-end":R()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M()}],"auto-rows":[{"auto-rows":M()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...L(),"normal"]}],"justify-self":[{"justify-self":["auto",...L()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...L(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...L(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...L(),"baseline"]}],"place-self":[{"place-self":["auto",...L()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:I()}],mx:[{mx:I()}],my:[{my:I()}],ms:[{ms:I()}],me:[{me:I()}],mt:[{mt:I()}],mr:[{mr:I()}],mb:[{mb:I()}],ml:[{ml:I()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],w:[{w:[i,"screen",...P()]}],"min-w":[{"min-w":[i,"screen","none",...P()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[s]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",r,e6,e0]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e3,e1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eV,eJ]}],"font-family":[{font:[e8,eJ,t]}],"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:[o,e3,eJ]}],"line-clamp":[{"line-clamp":[eW,"none",e3,e1]}],leading:[{leading:[l,...z()]}],"list-image":[{"list-image":["none",e3,eJ]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e3,eJ]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:[eW,"from-font","auto",e3,e0]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[eW,"auto",e3,eJ]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e3,eJ]}],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",e3,eJ]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},eB,e3,eJ],radial:["",e3,eJ],conic:[eB,e3,eJ]},te,e5]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:$()}],"rounded-s":[{"rounded-s":$()}],"rounded-e":[{"rounded-e":$()}],"rounded-t":[{"rounded-t":$()}],"rounded-r":[{"rounded-r":$()}],"rounded-b":[{"rounded-b":$()}],"rounded-l":[{"rounded-l":$()}],"rounded-ss":[{"rounded-ss":$()}],"rounded-se":[{"rounded-se":$()}],"rounded-ee":[{"rounded-ee":$()}],"rounded-es":[{"rounded-es":$()}],"rounded-tl":[{"rounded-tl":$()}],"rounded-tr":[{"rounded-tr":$()}],"rounded-br":[{"rounded-br":$()}],"rounded-bl":[{"rounded-bl":$()}],"border-w":[{border:_()}],"border-w-x":[{"border-x":_()}],"border-w-y":[{"border-y":_()}],"border-w-s":[{"border-s":_()}],"border-w-e":[{"border-e":_()}],"border-w-t":[{"border-t":_()}],"border-w-r":[{"border-r":_()}],"border-w-b":[{"border-b":_()}],"border-w-l":[{"border-l":_()}],"divide-x":[{"divide-x":_()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":_()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...G(),"hidden","none"]}],"divide-style":[{divide:[...G(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[...G(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eW,e3,eJ]}],"outline-w":[{outline:["",eW,e6,e0]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",u,tt,e4]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",c,tt,e4]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:_()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[eW,e0]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":_()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",f,tt,e4]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[eW,e3,eJ]}],"mix-blend":[{"mix-blend":[...W(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":W()}],"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":[eW]}],"mask-image-linear-from-pos":[{"mask-linear-from":B()}],"mask-image-linear-to-pos":[{"mask-linear-to":B()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":B()}],"mask-image-t-to-pos":[{"mask-t-to":B()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":B()}],"mask-image-r-to-pos":[{"mask-r-to":B()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":B()}],"mask-image-b-to-pos":[{"mask-b-to":B()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":B()}],"mask-image-l-to-pos":[{"mask-l-to":B()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":B()}],"mask-image-x-to-pos":[{"mask-x-to":B()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":B()}],"mask-image-y-to-pos":[{"mask-y-to":B()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[e3,eJ]}],"mask-image-radial-from-pos":[{"mask-radial-from":B()}],"mask-image-radial-to-pos":[{"mask-radial-to":B()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"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":v()}],"mask-image-conic-pos":[{"mask-conic":[eW]}],"mask-image-conic-from-pos":[{"mask-conic-from":B()}],"mask-image-conic-to-pos":[{"mask-conic-to":B()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e3,eJ]}],filter:[{filter:["","none",e3,eJ]}],blur:[{blur:V()}],brightness:[{brightness:[eW,e3,eJ]}],contrast:[{contrast:[eW,e3,eJ]}],"drop-shadow":[{"drop-shadow":["","none",p,tt,e4]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",eW,e3,eJ]}],"hue-rotate":[{"hue-rotate":[eW,e3,eJ]}],invert:[{invert:["",eW,e3,eJ]}],saturate:[{saturate:[eW,e3,eJ]}],sepia:[{sepia:["",eW,e3,eJ]}],"backdrop-filter":[{"backdrop-filter":["","none",e3,eJ]}],"backdrop-blur":[{"backdrop-blur":V()}],"backdrop-brightness":[{"backdrop-brightness":[eW,e3,eJ]}],"backdrop-contrast":[{"backdrop-contrast":[eW,e3,eJ]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eW,e3,eJ]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eW,e3,eJ]}],"backdrop-invert":[{"backdrop-invert":["",eW,e3,eJ]}],"backdrop-opacity":[{"backdrop-opacity":[eW,e3,eJ]}],"backdrop-saturate":[{"backdrop-saturate":[eW,e3,eJ]}],"backdrop-sepia":[{"backdrop-sepia":["",eW,e3,eJ]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e3,eJ]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eW,"initial",e3,eJ]}],ease:[{ease:["linear","initial",y,e3,eJ]}],delay:[{delay:[eW,e3,eJ]}],animate:[{animate:["none",b,e3,eJ]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,e3,eJ]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:U()}],"skew-x":[{"skew-x":U()}],"skew-y":[{"skew-y":U()}],transform:[{transform:[e3,eJ,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q()}],"translate-x":[{"translate-x":q()}],"translate-y":[{"translate-y":q()}],"translate-z":[{"translate-z":q()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"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",e3,eJ]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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",e3,eJ]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[eW,e6,e0,e1]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tf(...e){return tc(em(e))}let tp=({className:e,...t})=>(0,d.jsx)(eu,{className:tf("flex h-full w-full data-[orientation=vertical]:flex-col",e),...t}),th=({withHandle:e,className:t,...r})=>(0,d.jsx)(eh,{className:tf("relative flex w-[3px] items-center justify-center bg-border/50 hover:bg-primary/50 transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-2 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring data-[orientation=vertical]:h-[3px] data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-2 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t),...r,children:e&&(0,d.jsx)("div",{className:"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-secondary",children:(0,d.jsx)(m,{className:"h-3 w-3 text-muted-foreground"})})});var tm=e.i(69941);function tg(e,t,r){let n,o=r.initialDeps??[];function l(){var l,s,i,a;let d,u;r.key&&(null==(l=r.debug)?void 0:l.call(r))&&(d=Date.now());let c=e();if(!(c.length!==o.length||c.some((e,t)=>o[t]!==e)))return n;if(o=c,r.key&&(null==(s=r.debug)?void 0:s.call(r))&&(u=Date.now()),n=t(...c),r.key&&(null==(i=r.debug)?void 0:i.call(r))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-u)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{o=e},l}function ty(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(39057);let tb=e=>{let{offsetWidth:t,offsetHeight:r}=e;return{width:t,height:r}},tx=e=>e,tv=e=>{let t=Math.max(e.startIndex-e.overscan,0),r=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=r;e++)n.push(e);return n},tw=(e,t)=>{let r=e.scrollElement;if(!r)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:r,height:n}=e;t({width:Math.round(r),height:Math.round(n)})};if(o(tb(r)),!n.ResizeObserver)return()=>{};let l=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(tb(r))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return l.observe(r,{box:"border-box"}),()=>{l.unobserve(r)}},tk={passive:!0},tS="undefined"==typeof window||"onscrollend"in window,tz=(e,t)=>{var r,n;let o,l=e.scrollElement;if(!l)return;let s=e.targetWindow;if(!s)return;let i=0,a=e.options.useScrollendEvent&&tS?()=>void 0:(r=()=>{t(i,!1)},n=e.options.isScrollingResetDelay,function(...e){s.clearTimeout(o),o=s.setTimeout(()=>r.apply(this,e),n)}),d=r=>()=>{let{horizontal:n,isRtl:o}=e.options;i=n?l.scrollLeft*(o&&-1||1):l.scrollTop,a(),t(i,r)},u=d(!0),c=d(!1);c(),l.addEventListener("scroll",u,tk);let f=e.options.useScrollendEvent&&tS;return f&&l.addEventListener("scrollend",c,tk),()=>{l.removeEventListener("scroll",u),f&&l.removeEventListener("scrollend",c)}},tj=(e,t,r)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[r.options.horizontal?"inlineSize":"blockSize"])}return e[r.options.horizontal?"offsetWidth":"offsetHeight"]},tC=(e,{adjustments:t=0,behavior:r},n)=>{var o,l;null==(l=null==(o=n.scrollElement)?void 0:o.scrollTo)||l.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:r})};class tE{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var r;null==(r=t())||r.disconnect(),e=null},observe:e=>{var r;return null==(r=t())?void 0:r.observe(e,{box:"border-box"})},unobserve:e=>{var r;return null==(r=t())?void 0:r.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,r])=>{void 0===r&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tx,rangeExtractor:tv,onChange:()=>{},measureElement:tj,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,r;null==(r=(t=this.options).onChange)||r.call(t,this,e)},this.maybeNotify=tg(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let r=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(r.has(t.lane))continue;let l=n.get(t.lane);if(null==l||t.end>l.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=tg(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,r,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=tg(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o},l)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let i=this.measurementsCache.slice(0,s);for(let o=s;othis.options.debug}),this.calculateRange=tg(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,r,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:r,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let l=tR(0,o,t=>e[t].start,r),s=l;if(1===n)for(;s1){let i=Array(n).fill(0);for(;se=0&&a.some(e=>e>=r);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%n),s=Math.min(o,s+(n-1-s%n))}return{startIndex:l,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:r,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=tg(()=>{let e=null,t=null,r=this.calculateRange();return r&&(e=r.startIndex,t=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,r,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,r=e.getAttribute(t);return r?parseInt(r,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let r=this.indexFromElement(e),n=this.measurementsCache[r];if(!n)return;let o=n.key,l=this.elementsCache.get(o);l!==e&&(l&&this.observer.unobserve(l),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(r,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let r=this.measurementsCache[e];if(!r)return;let n=t-(this.itemSizeCache.get(r.key)??r.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(r,n,this):r.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=tg(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let r=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return ty(t[tR(0,t.length-1,e=>ty(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,r=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(r-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.measurementsCache[e];if(!r)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(r.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(r.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let l="end"===t?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,r.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:r})},this.scrollToIndex=(e,{align:t="auto",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,s]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),r=this.getOffsetForIndex(e,s);r?1.01>Math.abs(r[0]-t)||l(s):console.warn("Failed to get offset for index:",e)})},l=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,r=this.getMeasurements();if(0===r.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=r[r.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=r.length-1;for(;n>=0&&e.some(e=>null===e);){let t=r[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:r})=>{this.options.scrollToFn(e,{behavior:r,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let tR=(e,t,r,n)=>{for(;e<=t;){let o=(e+t)/2|0,l=r(o);if(ln))return o;t=o-1}}return e>0?e-1:0},tM="undefined"!=typeof document?u.useLayoutEffect:u.useEffect,tN=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,l={setState:n,getState:o,getInitialState:()=>s,subscribe:e=>(r.add(e),()=>r.delete(e))},s=t=e(n,o,l);return l},tL=e=>{let t=e?tN(e):tN,r=e=>(function(e,t=e=>e){let r=u.default.useSyncExternalStore(e.subscribe,u.default.useCallback(()=>t(e.getState()),[e,t]),u.default.useCallback(()=>t(e.getInitialState()),[e,t]));return u.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},tI=(n=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,samplesLoaded:0,setSamples:(t,r)=>e({samples:t,totalSamples:r,samplesLoaded:t.length}),appendSamples:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id)),o=e.samplesLoaded+t.length;return 0===n.length?{samplesLoaded:o}:{samples:[...e.samples,...n],samplesLoaded:o}}),addSamplesIfMissing:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t,currentLayoutKey:t?.layout_key??null}),currentLayoutKey:null,geometry:"euclidean",setGeometry:t=>e({geometry:t}),selectedIds:new Set,isLassoSelection:!1,selectionSource:null,setSelectedIds:(t,r="grid")=>e({selectedIds:t,selectionSource:t.size>0?r:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let r=new Set(e.selectedIds);return r.has(t)?r.delete(t):r.add(t),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let r=new Set(e.selectedIds);return t.forEach(e=>r.add(e)),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,selectionSource:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,selectionSource:"lasso",lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,r,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:r,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,selectionSource:null,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?tL(n):tL;function tP({children:e,className:t}){return(0,d.jsx)("div",{className:tf("flex flex-col h-full bg-card rounded-sm overflow-hidden border border-border",t),children:e})}function tO({children:e,className:t}){return(0,d.jsx)("div",{className:tf("px-2 py-1.5 text-[11px] text-muted-foreground/70 border-t border-border bg-card font-mono",t),children:e})}function tT({icon:e,title:t,subtitle:r,children:n,className:o}){return(0,d.jsxs)("div",{className:tf("h-9 min-h-[36px] flex items-center justify-between px-2 border-b border-border bg-secondary select-none",o),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[e&&(0,d.jsx)("span",{className:"flex-shrink-0 w-4 h-4 text-muted-foreground",children:e}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:t}),r&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:r})]}),n&&(0,d.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let tA=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"})]}),tD=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"16",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"6",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2"})]}),t$=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-5 h-5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),tF=()=>(0,d.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})}),t_=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1"}),(0,d.jsx)("line",{x1:"2",y1:"8",x2:"14",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"14"})]}),tG=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"3",ry:"5.5"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"5.5",ry:"3"})]});function tW({samples:e,onLoadMore:t,hasMore:r}){let n=(0,u.useRef)(null),{selectedIds:o,isLassoSelection:l,selectionSource:s,lassoTotal:i,toggleSelection:a,addToSelection:c,setHoveredId:f,hoveredId:p}=tI(),[h,m]=(0,u.useState)(4);(0,u.useEffect)(()=>{let e=()=>{n.current&&m(Math.max(1,Math.floor((n.current.clientWidth-16+8)/208)))};e();let t=new ResizeObserver(e);return n.current&&t.observe(n.current),()=>t.disconnect()},[]);let g=function(e){let t=u.useReducer(()=>({}),{})[1],r={...e,onChange:(r,n)=>{var o;n?(0,tm.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,r,n)}},[n]=u.useState(()=>new tE(r));return n.setOptions(r),tM(()=>n._didMount(),[]),tM(()=>n._willUpdate()),n}({observeElementRect:tw,observeElementOffset:tz,scrollToFn:tC,...{count:Math.ceil(e.length/h),getScrollElement:()=>n.current,estimateSize:()=>208,overscan:5,getItemKey:(0,u.useCallback)(t=>{let r=t*h;return e.slice(r,r+h).map(e=>e.id).join("-")||`row-${t}`},[e,h])}});(0,u.useEffect)(()=>{let e=n.current;if(!e||!t||!r)return;let o=()=>{let{scrollTop:r,scrollHeight:n,clientHeight:o}=e;n-r-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,r]),(0,u.useEffect)(()=>{g.measure()},[o,l,g]),(0,u.useEffect)(()=>{if(!l&&"scatter"===s&&0!==o.size)try{g.scrollToIndex(0,{align:"start"})}catch{n.current?.scrollTo({top:0})}},[l,o,s,g]);let y=(0,u.useCallback)((t,r)=>{if(r.metaKey||r.ctrlKey)a(t.id);else if(r.shiftKey&&o.size>0){let r=Array.from(o),n=r[r.length-1],l=e.findIndex(e=>e.id===n),s=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==s){let t=Math.min(l,s),r=Math.max(l,s);c(e.slice(t,r+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),tI.getState().setSelectedIds(e,"grid")}},[e,o,a,c]),b=g.getVirtualItems();return(0,d.jsxs)(tP,{children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tA,{}),title:"Samples",subtitle:l?`${i} selected`:o.size>0?`${o.size} selected`:`${e.length} items`}),(0,d.jsx)("div",{ref:n,className:"flex-1 overflow-auto p-2",children:(0,d.jsx)("div",{style:{height:`${g.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(t=>{let r=t.index*h,n=e.slice(r,r+h);return(0,d.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"200px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=!!l||o.has(e.id),r=p===e.id;return(0,d.jsxs)("div",{className:` + color: hsl(${Math.max(0,Math.min(120-120*n,120))}deg 100% 31%);`,null==r?void 0:r.key)}return null==(a=null==r?void 0:r.onChange)||a.call(r,n),n}return l.updateDeps=e=>{o=e},l}function ty(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(39057);let tb=e=>{let{offsetWidth:t,offsetHeight:r}=e;return{width:t,height:r}},tx=e=>e,tv=e=>{let t=Math.max(e.startIndex-e.overscan,0),r=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=r;e++)n.push(e);return n},tw=(e,t)=>{let r=e.scrollElement;if(!r)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:r,height:n}=e;t({width:Math.round(r),height:Math.round(n)})};if(o(tb(r)),!n.ResizeObserver)return()=>{};let l=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(tb(r))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return l.observe(r,{box:"border-box"}),()=>{l.unobserve(r)}},tk={passive:!0},tS="undefined"==typeof window||"onscrollend"in window,tz=(e,t)=>{var r,n;let o,l=e.scrollElement;if(!l)return;let s=e.targetWindow;if(!s)return;let i=0,a=e.options.useScrollendEvent&&tS?()=>void 0:(r=()=>{t(i,!1)},n=e.options.isScrollingResetDelay,function(...e){s.clearTimeout(o),o=s.setTimeout(()=>r.apply(this,e),n)}),d=r=>()=>{let{horizontal:n,isRtl:o}=e.options;i=n?l.scrollLeft*(o&&-1||1):l.scrollTop,a(),t(i,r)},u=d(!0),c=d(!1);c(),l.addEventListener("scroll",u,tk);let f=e.options.useScrollendEvent&&tS;return f&&l.addEventListener("scrollend",c,tk),()=>{l.removeEventListener("scroll",u),f&&l.removeEventListener("scrollend",c)}},tj=(e,t,r)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[r.options.horizontal?"inlineSize":"blockSize"])}return e[r.options.horizontal?"offsetWidth":"offsetHeight"]},tC=(e,{adjustments:t=0,behavior:r},n)=>{var o,l;null==(l=null==(o=n.scrollElement)?void 0:o.scrollTo)||l.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:r})};class tE{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var r;null==(r=t())||r.disconnect(),e=null},observe:e=>{var r;return null==(r=t())?void 0:r.observe(e,{box:"border-box"})},unobserve:e=>{var r;return null==(r=t())?void 0:r.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,r])=>{void 0===r&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tx,rangeExtractor:tv,onChange:()=>{},measureElement:tj,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,r;null==(r=(t=this.options).onChange)||r.call(t,this,e)},this.maybeNotify=tg(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let r=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(r.has(t.lane))continue;let l=n.get(t.lane);if(null==l||t.end>l.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=tg(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,r,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=tg(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o},l)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let i=this.measurementsCache.slice(0,s);for(let o=s;othis.options.debug}),this.calculateRange=tg(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,r,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:r,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let l=tR(0,o,t=>e[t].start,r),s=l;if(1===n)for(;s1){let i=Array(n).fill(0);for(;se=0&&a.some(e=>e>=r);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%n),s=Math.min(o,s+(n-1-s%n))}return{startIndex:l,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:r,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=tg(()=>{let e=null,t=null,r=this.calculateRange();return r&&(e=r.startIndex,t=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,r,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,r=e.getAttribute(t);return r?parseInt(r,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let r=this.indexFromElement(e),n=this.measurementsCache[r];if(!n)return;let o=n.key,l=this.elementsCache.get(o);l!==e&&(l&&this.observer.unobserve(l),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(r,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let r=this.measurementsCache[e];if(!r)return;let n=t-(this.itemSizeCache.get(r.key)??r.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(r,n,this):r.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=tg(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let r=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return ty(t[tR(0,t.length-1,e=>ty(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,r=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(r-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.measurementsCache[e];if(!r)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(r.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(r.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let l="end"===t?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,r.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:r})},this.scrollToIndex=(e,{align:t="auto",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,s]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),r=this.getOffsetForIndex(e,s);r?1.01>Math.abs(r[0]-t)||l(s):console.warn("Failed to get offset for index:",e)})},l=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,r=this.getMeasurements();if(0===r.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=r[r.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=r.length-1;for(;n>=0&&e.some(e=>null===e);){let t=r[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:r})=>{this.options.scrollToFn(e,{behavior:r,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let tR=(e,t,r,n)=>{for(;e<=t;){let o=(e+t)/2|0,l=r(o);if(ln))return o;t=o-1}}return e>0?e-1:0},tM="undefined"!=typeof document?u.useLayoutEffect:u.useEffect,tN=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,l={setState:n,getState:o,getInitialState:()=>s,subscribe:e=>(r.add(e),()=>r.delete(e))},s=t=e(n,o,l);return l},tL=e=>{let t=e?tN(e):tN,r=e=>(function(e,t=e=>e){let r=u.default.useSyncExternalStore(e.subscribe,u.default.useCallback(()=>t(e.getState()),[e,t]),u.default.useCallback(()=>t(e.getInitialState()),[e,t]));return u.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},tI=(n=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,samplesLoaded:0,setSamples:(t,r)=>e({samples:t,totalSamples:r,samplesLoaded:t.length}),appendSamples:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id)),o=e.samplesLoaded+t.length;return 0===n.length?{samplesLoaded:o}:{samples:[...e.samples,...n],samplesLoaded:o}}),addSamplesIfMissing:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t,currentLayoutKey:t?.layout_key??null}),currentLayoutKey:null,geometry:"euclidean",setGeometry:t=>e({geometry:t}),selectedIds:new Set,isLassoSelection:!1,selectionSource:null,setSelectedIds:(t,r="grid")=>e({selectedIds:t,selectionSource:t.size>0?r:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let r=new Set(e.selectedIds);return r.has(t)?r.delete(t):r.add(t),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let r=new Set(e.selectedIds);return t.forEach(e=>r.add(e)),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,selectionSource:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,selectionSource:"lasso",lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,r,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:r,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,selectionSource:null,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?tL(n):tL;function tP({children:e,className:t}){return(0,d.jsx)("div",{className:tf("flex flex-col h-full bg-card rounded-sm overflow-hidden border border-border",t),children:e})}function tO({children:e,className:t}){return(0,d.jsx)("div",{className:tf("px-2 py-1.5 text-[11px] text-muted-foreground/70 border-t border-border bg-card font-mono",t),children:e})}function tT({icon:e,title:t,subtitle:r,children:n,className:o}){return(0,d.jsxs)("div",{className:tf("h-9 min-h-[36px] flex items-center justify-between px-2 border-b border-border bg-secondary select-none",o),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[e&&(0,d.jsx)("span",{className:"flex-shrink-0 w-4 h-4 text-muted-foreground",children:e}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:t}),r&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:r})]}),n&&(0,d.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let tA=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"})]}),tD=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"16",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"6",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2"})]}),tF=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-5 h-5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),t$=()=>(0,d.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})}),t_=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1"}),(0,d.jsx)("line",{x1:"2",y1:"8",x2:"14",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"14"})]}),tG=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"3",ry:"5.5"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"5.5",ry:"3"})]});function tW({samples:e,onLoadMore:t,hasMore:r}){let n=(0,u.useRef)(null),{selectedIds:o,isLassoSelection:l,selectionSource:s,lassoTotal:i,toggleSelection:a,addToSelection:c,setHoveredId:f,hoveredId:p}=tI(),[h,m]=(0,u.useState)(4);(0,u.useEffect)(()=>{let e=()=>{n.current&&m(Math.max(1,Math.floor((n.current.clientWidth-16+8)/208)))};e();let t=new ResizeObserver(e);return n.current&&t.observe(n.current),()=>t.disconnect()},[]);let g=function(e){let t=u.useReducer(()=>({}),{})[1],r={...e,onChange:(r,n)=>{var o;n?(0,tm.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,r,n)}},[n]=u.useState(()=>new tE(r));return n.setOptions(r),tM(()=>n._didMount(),[]),tM(()=>n._willUpdate()),n}({observeElementRect:tw,observeElementOffset:tz,scrollToFn:tC,...{count:Math.ceil(e.length/h),getScrollElement:()=>n.current,estimateSize:()=>208,overscan:5,getItemKey:(0,u.useCallback)(t=>{let r=t*h;return e.slice(r,r+h).map(e=>e.id).join("-")||`row-${t}`},[e,h])}});(0,u.useEffect)(()=>{let e=n.current;if(!e||!t||!r)return;let o=()=>{let{scrollTop:r,scrollHeight:n,clientHeight:o}=e;n-r-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,r]),(0,u.useEffect)(()=>{g.measure()},[o,l,g]),(0,u.useEffect)(()=>{if(!l&&"scatter"===s&&0!==o.size)try{g.scrollToIndex(0,{align:"start"})}catch{n.current?.scrollTo({top:0})}},[l,o,s,g]);let y=(0,u.useCallback)((t,r)=>{if(r.metaKey||r.ctrlKey)a(t.id);else if(r.shiftKey&&o.size>0){let r=Array.from(o),n=r[r.length-1],l=e.findIndex(e=>e.id===n),s=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==s){let t=Math.min(l,s),r=Math.max(l,s);c(e.slice(t,r+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),tI.getState().setSelectedIds(e,"grid")}},[e,o,a,c]),b=g.getVirtualItems();return(0,d.jsxs)(tP,{children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tA,{}),title:"Samples",subtitle:l?`${i} selected`:o.size>0?`${o.size} selected`:`${e.length} items`}),(0,d.jsx)("div",{ref:n,className:"flex-1 overflow-auto p-2",children:(0,d.jsx)("div",{style:{height:`${g.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(t=>{let r=t.index*h,n=e.slice(r,r+h);return(0,d.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"200px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=!!l||o.has(e.id),r=p===e.id;return(0,d.jsxs)("div",{className:` relative flex-1 rounded-md overflow-hidden cursor-pointer transition-all duration-150 ease-out ${t?"ring-2 ring-primary":""} ${r?"ring-2 ring-primary/50":""} - `,onClick:t=>y(e,t),onMouseEnter:()=>f(e.id),onMouseLeave:()=>f(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(tF,{})})]},e.id)}),Array.from({length:h-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function tB(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function tV(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function tK(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(tV(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let s=t=>{let{scope:r,children:n,...s}=t,i=r?.[e]?.[l]||o,a=u.useMemo(()=>s,Object.values(s));return(0,d.jsx)(i.Provider,{value:a,children:n})};return s.displayName=t+"Provider",[s,function(r,s){let i=s?.[e]?.[l]||o,a=u.useContext(i);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tU(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tq(...e){return t=>{let r=!1,n=e.map(e=>{let n=tU(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,s,i=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(s=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),s=o.find(tX);if(s){let e=s.props.children,r=o.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,s),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?i:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tJ(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function t0(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),s=l.find(t2);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var t1=Symbol("radix.slottable");function t2(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===t1}var t5=new WeakMap;function t4(e,t){var r,n;let o,l,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let i=(r=e,n=t,o=r.length,(s=(l=t3(n))>=0?l:o+l)<0||s>=o?-1:s);return -1===i?void 0:e[i]}function t3(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],t5.set(this,!0)}set(e,t){return t5.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,s=t3(e),i=s>=0?s:l+s,a=i<0||i>=l?-1:i;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;s<0&&i++;let u=[...this.#t],c=!1;for(let e=i;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t6=globalThis?.document?u.useLayoutEffect:()=>{},t8=u[" useId ".trim().toString()]||(()=>void 0),t9=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t7=u[" useInsertionEffect ".trim().toString()]||t6;function re({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,s]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t7(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),i=void 0!==e,a=i?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==i){let t=i?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=i},[i,n])}return[a,u.useCallback(t=>{if(i){let r="function"==typeof t?t(e):t;r!==e&&s.current?.(r)}else l(t)},[i,e,l,s])]}Symbol("RADIX:SYNC_STATE");var rt=u.createContext(void 0);function rr(e){let t=u.useContext(rt);return e||t||"ltr"}var rn="rovingFocusGroup.onEntryFocus",ro={bubbles:!1,cancelable:!0},rl="RovingFocusGroup",[rs,ri,ra]=function(e){let t=e+"CollectionProvider",[r,n]=tH(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};s.displayName=t;let i=e+"CollectionSlot",a=t0(i),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tY(t,l(i,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=i;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=t0(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,s=u.default.useRef(null),i=tY(t,s),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(s,{ref:s,...o}),()=>void a.itemMap.delete(s))),(0,d.jsx)(h,{...{[p]:""},ref:i,children:n})});return m.displayName=f,[{Provider:s,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(rl),[rd,ru]=tH(rl,[ra]),[rc,rf]=rd(rl),rp=u.forwardRef((e,t)=>(0,d.jsx)(rs.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rs.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rh,{...e,ref:t})})}));rp.displayName=rl;var rh=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:s,currentTabStopId:i,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tY(t,m),y=rr(s),[b,x]=re({prop:i,defaultProp:a??null,onChange:c,caller:rl}),[v,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=ri(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(rn,k),()=>e.removeEventListener(rn,k)},[k]),(0,d.jsx)(rc,{scope:n,orientation:o,dir:y,loop:l,currentTabStopId:b,onItemFocus:u.useCallback(e=>x(e),[x]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tZ.div,{tabIndex:v||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tJ(e.onMouseDown,()=>{z.current=!0}),onFocus:tJ(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(rn,ro);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rb([e.find(e=>e.active),e.find(e=>e.id===b),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tJ(e.onBlur,()=>w(!1))})})}),rm="RovingFocusGroupItem",rg=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:s,...i}=e,a=function(e){let[t,r]=u.useState(t8());return t6(()=>{r(e=>e??String(t9++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rf(rm,r),p=f.currentTabStopId===c,h=ri(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:y}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rs.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tZ.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:t,onMouseDown:tJ(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tJ(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tJ(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return ry[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rb(o))}}),children:"function"==typeof s?s({isCurrentTabStop:p,hasTabStop:null!=y}):s})})});rg.displayName=rm;var ry={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rb(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rx="Toggle",rv=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[s,i]=re({prop:r,onChange:o,defaultProp:n??!1,caller:rx});return(0,d.jsx)(tZ.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tJ(e.onClick,()=>{e.disabled||i(!s)})})});rv.displayName=rx;var rw="ToggleGroup",[rk,rS]=tH(rw,[ru]),rz=ru(),rj=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rR,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rM,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rw}\``)});rj.displayName=rw;var[rC,rE]=rk(rw),rR=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??"",onChange:o,caller:rw});return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>s?[s]:[],[s]),onItemActivate:i,onItemDeactivate:u.default.useCallback(()=>i(""),[i]),children:(0,d.jsx)(rI,{...l,ref:t})})}),rM=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??[],onChange:o,caller:rw}),a=u.default.useCallback(e=>i((t=[])=>[...t,e]),[i]),c=u.default.useCallback(e=>i((t=[])=>t.filter(t=>t!==e)),[i]);return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"multiple",value:s,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rI,{...l,ref:t})})});rj.displayName=rw;var[rN,rL]=rk(rw),rI=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:s,loop:i=!0,...a}=e,u=rz(r),c=rr(s),f={role:"group",dir:c,...a};return(0,d.jsx)(rN,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(rp,{asChild:!0,...u,orientation:l,dir:c,loop:i,children:(0,d.jsx)(tZ.div,{...f,ref:t})}):(0,d.jsx)(tZ.div,{...f,ref:t})})}),rP="ToggleGroupItem",rO=u.default.forwardRef((e,t)=>{let r=rE(rP,e.__scopeToggleGroup),n=rL(rP,e.__scopeToggleGroup),o=rz(e.__scopeToggleGroup),l=r.value.includes(e.value),s=n.disabled||e.disabled,i={...e,pressed:l,disabled:s},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rg,{asChild:!0,...o,focusable:!s,active:l,ref:a,children:(0,d.jsx)(rT,{...i,ref:t})}):(0,d.jsx)(rT,{...i,ref:t})});rO.displayName=rP;var rT=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rE(rP,r),s={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},i="single"===l.type?s:void 0;return(0,d.jsx)(rv,{...i,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rA=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rD=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,s=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let s=rA(t)||rA(n);return o[e][s]}),i=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,s,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...i}[t]):({...l,...i})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},r$=rD("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rv,{ref:o,className:tf(r$({variant:t,size:r,className:e})),...n})).displayName=rv.displayName;let rF=u.createContext({size:"default",variant:"default"}),r_=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rj,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(rF.Provider,{value:{variant:t,size:r},children:n})}));r_.displayName=rj.displayName;let rG=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let s=u.useContext(rF);return(0,d.jsx)(rO,{ref:l,className:tf(r$({variant:s.variant||r,size:s.size||n}),e),...o,children:t})});function rW({className:t=""}){let{datasetInfo:r,embeddings:n,selectedIds:o,setSelectedIds:l,beginLassoSelection:s,hoveredId:i,setHoveredId:a,geometry:c,setGeometry:f}=tI(),p=(0,u.useMemo)(()=>{let e=[];return r?.layouts.some(e=>e.includes("euclidean"))&&e.push("euclidean"),r?.layouts.some(e=>e.includes("poincare"))&&e.push("poincare"),e},[r?.layouts]),h=(0,u.useMemo)(()=>{if(!n)return null;let e=n.layout_key,t=e.split("__")[0]||e,o=r?.spaces.find(e=>e.space_key===t)??r?.spaces.find(t=>e.startsWith(`${t.space_key}__`));return o?.model_id??o?.space_key??t},[r?.spaces,n]),m=(0,u.useMemo)(()=>{if(!n)return null;let e=[...new Set(n.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":n.label_colors[e]||"#808080");return{uniqueLabels:e,categories:r,palette:o}},[n]),{canvasRef:g,overlayCanvasRef:y,containerRef:b,handlePointerDown:x,handlePointerMove:v,handlePointerUp:w,handlePointerLeave:k,handleDoubleClick:S,rendererError:z}=function({embeddings:t,labelsInfo:r,selectedIds:n,hoveredId:o,setSelectedIds:l,beginLassoSelection:s,setHoveredId:i}){let a=(0,u.useRef)(null),d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),[p,h]=(0,u.useState)(null),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),y=(0,u.useRef)(!1),b=(0,u.useRef)(0),x=(0,u.useRef)(0),v=(0,u.useRef)(0),w=(0,u.useRef)(0),k=(0,u.useRef)([]),S=(0,u.useRef)(-1),z=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{m.current||(m.current=!0,requestAnimationFrame(()=>{m.current=!1;let e=f.current;if(e){try{e.render()}catch(t){console.error("hyper-scatter renderer.render() failed:",t);try{e.destroy()}catch{}f.current=null,h("This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox."),tV(d.current);return}y.current&&tK(d.current,k.current)}}))},[]),C=(0,u.useCallback)(e=>{let t=a.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),E=(0,u.useCallback)(()=>{g.current=!1,y.current=!1,k.current=[],tV(d.current)},[]);(0,u.useEffect)(()=>{if(!t||!r||!a.current||!c.current)return;let n=!1;return(async()=>{if(h(null),!function(){try{if("undefined"==typeof document)return!1;return!!document.createElement("canvas").getContext("webgl2")}catch{return!1}}())return h("This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox.");try{let o,l=await e.A(20606);if(n)return;let s=c.current,i=a.current;if(!s||!i)return;f.current&&(f.current.destroy(),f.current=null);let u=s.getBoundingClientRect(),p=Math.floor(u.width),m=Math.floor(u.height);d.current&&(d.current.width=Math.max(1,p),d.current.height=Math.max(1,m),d.current.style.width=`${p}px`,d.current.style.height=`${m}px`,tV(d.current));let g=t.coords,y=new Float32Array(2*g.length);for(let e=0;e{n=!0,E(),f.current&&(f.current.destroy(),f.current=null)}},[t,r,j,E]),(0,u.useEffect)(()=>{let e=f.current;if(!e||!t||!z)return;let r=new Set;for(let e of n){let t=z.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let l=o?z.get(o)??-1:-1;e.setHovered(l),S.current=l,j()},[t,o,z,j,n]),(0,u.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;d.current&&(d.current.width=Math.max(1,r),d.current.height=Math.max(1,n),d.current.style.width=`${r}px`,d.current.style.height=`${n}px`);let o=f.current;o&&(o.resize(r,n),j())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[j]),(0,u.useEffect)(()=>{let e=a.current;if(!e)return;let t=e=>{let t=f.current;if(!t)return;e.preventDefault();let r=C(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,tB(e)),j()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[C,j]);let R=(0,u.useCallback)(e=>{if(!f.current||"number"==typeof e.button&&0!==e.button)return;let t=C(e);b.current=t.x,x.current=t.y,v.current=t.x,w.current=t.y,e.shiftKey?(y.current=!0,g.current=!1,k.current=[t.x,t.y],tK(d.current,k.current)):(g.current=!0,y.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[C]),M=(0,u.useCallback)(e=>{let r=f.current;if(!r)return;let n=C(e);if(g.current){let t=n.x-v.current,o=n.y-w.current;v.current=n.x,w.current=n.y,r.pan(t,o,tB(e)),j();return}if(y.current){let e=k.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),tK(d.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===S.current||(S.current=l,r.setHovered(l),t&&(l>=0&&l{let r=f.current;if(!r||!t)return void E();if(y.current){let e=k.current;if(E(),e.length>=6)try{let n=new Float32Array(e),o=r.lassoSelect(n),l=o.geometry?.coords;if(!l||l.length<6)return;r.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({layoutKey:t.layout_key,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}j();return}let o=C(e),i=o.x-b.current,a=o.y-x.current;if(i*i+a*a<=36){let s=r.hitTest(o.x,o.y),i=s?s.index:-1;if(i>=0&&i{let t=f.current;t&&(S.current=-1,i(null),t.setHovered(-1),j()),E()},[j,i,E]),handleDoubleClick:(0,u.useCallback)(e=>{let t=f.current;t&&(E(),t.setSelection(new Set),l(new Set,"scatter"),j())},[j,l,E]),rendererError:p}}({embeddings:n,labelsInfo:m,selectedIds:o,hoveredId:i,setSelectedIds:l,beginLassoSelection:s,setHoveredId:a}),j=m?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:n?h??"":"Loading...",children:p.length>1&&(0,d.jsxs)(r_,{type:"single",value:c,onValueChange:e=>e&&f(e),size:"sm",variant:"outline",className:"bg-muted/50 rounded-md p-0.5 gap-0.5",children:[(0,d.jsxs)(rG,{value:"euclidean","aria-label":"Euclidean geometry",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(t_,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Euclidean"})]}),(0,d.jsxs)(rG,{value:"poincare","aria-label":"Poincaré disk (hyperbolic)",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(tG,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Poincaré"})]})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:b,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:g,className:"absolute inset-0",style:{zIndex:1},onPointerDown:x,onPointerMove:v,onPointerUp:w,onPointerCancel:w,onPointerLeave:k,onDoubleClick:S}),(0,d.jsx)("canvas",{ref:y,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),z?(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/85 z-10 p-6",children:(0,d.jsxs)("div",{className:"max-w-md text-center",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-foreground mb-2",children:"Browser not supported"}),(0,d.jsx)("div",{className:"text-sm text-muted-foreground",children:z})]})}):!n&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),j.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[j.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":n?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),j.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",j.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rG.displayName=rO.displayName;var rB=Symbol.for("react.lazy"),rV=u[" use ".trim().toString()];function rK(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===rB&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rH=((s=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rK(r)&&"function"==typeof rV&&(r=rV(r._payload)),u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=s,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rK(r)&&"function"==typeof rV&&(r=rV(r._payload));let l=u.Children.toArray(r),s=l.find(rq);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rU=Symbol("radix.slottable");function rq(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rU}let rY=rD("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rQ=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rH:"button",{className:tf(rY({variant:t,size:r,className:e})),ref:l,...o}));function rX(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tI();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(t$,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rQ,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rZ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rJ(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function r0(e){let t=new URLSearchParams;e&&t.set("layout_key",e);let r=t.toString(),n=await fetch(`/api/embeddings${r?`?${r}`:""}`);if(!n.ok)throw Error(`Failed to fetch embeddings: ${n.statusText}`);return n.json()}async function r1(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r2(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({layout_key:e.layoutKey,polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r5(){let{datasetInfo:e,samples:t,totalSamples:r,samplesLoaded:n,setSamples:o,appendSamples:l,addSamplesIfMissing:s,setDatasetInfo:i,setEmbeddings:a,setIsLoading:c,isLoading:f,error:p,setError:h,selectedIds:m,isLassoSelection:g,selectionSource:y,lassoQuery:b,lassoSamples:x,lassoTotal:v,lassoIsLoading:w,setLassoResults:k,geometry:S}=tI(),[z,j]=(0,u.useState)(!1),[C,E]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{c(!0),h(null);try{let[e,t,r]=await Promise.all([rZ(),rJ(0,100),r0()]);i(e),o(t.samples,t.total),a(r)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{c(!1)}})()},[]),(0,u.useEffect)(()=>{if(!e)return;let t=e.layouts.find(e=>e.includes(S));t&&tI.getState().currentLayoutKey!==t&&(async()=>{E(!0);try{let e=await r0(t);a(e)}catch(e){console.error("Failed to load geometry:",e)}finally{E(!1)}})()},[S,e,a]),(0,u.useEffect)(()=>{(async()=>{if(g||0===m.size)return;let e=new Set(t.map(e=>e.id)),r=Array.from(m).filter(t=>!e.has(t));if(0!==r.length)try{let e=await r1(r);s(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[m,t,s,g]),(0,u.useEffect)(()=>{if(!g||!b||!w)return;let e=new AbortController;return(async()=>{try{let t=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;k(t.samples,t.total,!1)}catch(e){if(e?.name==="AbortError")return;console.error("Failed to fetch lasso selection:",e),k([],0,!1)}})(),()=>e.abort()},[g,w,b,k]);let R=(0,u.useCallback)(async()=>{if(!z){if(g){if(!b||w||!w&&x.length>=v)return;j(!0);try{let e=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:x.length,limit:100});k(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{j(!1)}return}if(!(n>=r)){j(!0);try{let e=await rJ(n,100);l(e.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{j(!1)}}}},[z,l,g,w,b,x.length,v,n,r,k]),M=(0,u.useMemo)(()=>{if(g)return x;if("scatter"===y&&m.size>0){let e=new Map;for(let r of t)e.set(r.id,r);let r=[];for(let t of m){let n=e.get(t);n&&r.push(n)}if(r.length>0)return[...r,...t.filter(e=>!m.has(e.id))]}return t},[g,x,t,m,y]),N=g?v:r,L=g?M.lengthr5],50912)}]); \ No newline at end of file + `,onClick:t=>y(e,t),onMouseEnter:()=>f(e.id),onMouseLeave:()=>f(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(t$,{})})]},e.id)}),Array.from({length:h-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function tB(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function tV(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function tK(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(tV(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let s=t=>{let{scope:r,children:n,...s}=t,i=r?.[e]?.[l]||o,a=u.useMemo(()=>s,Object.values(s));return(0,d.jsx)(i.Provider,{value:a,children:n})};return s.displayName=t+"Provider",[s,function(r,s){let i=s?.[e]?.[l]||o,a=u.useContext(i);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tU(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tq(...e){return t=>{let r=!1,n=e.map(e=>{let n=tU(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,s,i=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(s=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),s=o.find(tX);if(s){let e=s.props.children,r=o.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,s),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?i:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tJ(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function t0(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),s=l.find(t2);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var t1=Symbol("radix.slottable");function t2(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===t1}var t5=new WeakMap;function t4(e,t){var r,n;let o,l,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let i=(r=e,n=t,o=r.length,(s=(l=t3(n))>=0?l:o+l)<0||s>=o?-1:s);return -1===i?void 0:e[i]}function t3(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],t5.set(this,!0)}set(e,t){return t5.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,s=t3(e),i=s>=0?s:l+s,a=i<0||i>=l?-1:i;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;s<0&&i++;let u=[...this.#t],c=!1;for(let e=i;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t6=globalThis?.document?u.useLayoutEffect:()=>{},t8=u[" useId ".trim().toString()]||(()=>void 0),t9=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t7=u[" useInsertionEffect ".trim().toString()]||t6;function re({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,s]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t7(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),i=void 0!==e,a=i?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==i){let t=i?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=i},[i,n])}return[a,u.useCallback(t=>{if(i){let r="function"==typeof t?t(e):t;r!==e&&s.current?.(r)}else l(t)},[i,e,l,s])]}Symbol("RADIX:SYNC_STATE");var rt=u.createContext(void 0);function rr(e){let t=u.useContext(rt);return e||t||"ltr"}var rn="rovingFocusGroup.onEntryFocus",ro={bubbles:!1,cancelable:!0},rl="RovingFocusGroup",[rs,ri,ra]=function(e){let t=e+"CollectionProvider",[r,n]=tH(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};s.displayName=t;let i=e+"CollectionSlot",a=t0(i),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tY(t,l(i,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=i;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=t0(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,s=u.default.useRef(null),i=tY(t,s),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(s,{ref:s,...o}),()=>void a.itemMap.delete(s))),(0,d.jsx)(h,{...{[p]:""},ref:i,children:n})});return m.displayName=f,[{Provider:s,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(rl),[rd,ru]=tH(rl,[ra]),[rc,rf]=rd(rl),rp=u.forwardRef((e,t)=>(0,d.jsx)(rs.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rs.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rh,{...e,ref:t})})}));rp.displayName=rl;var rh=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:s,currentTabStopId:i,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tY(t,m),y=rr(s),[b,x]=re({prop:i,defaultProp:a??null,onChange:c,caller:rl}),[v,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=ri(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(rn,k),()=>e.removeEventListener(rn,k)},[k]),(0,d.jsx)(rc,{scope:n,orientation:o,dir:y,loop:l,currentTabStopId:b,onItemFocus:u.useCallback(e=>x(e),[x]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tZ.div,{tabIndex:v||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tJ(e.onMouseDown,()=>{z.current=!0}),onFocus:tJ(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(rn,ro);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rb([e.find(e=>e.active),e.find(e=>e.id===b),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tJ(e.onBlur,()=>w(!1))})})}),rm="RovingFocusGroupItem",rg=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:s,...i}=e,a=function(e){let[t,r]=u.useState(t8());return t6(()=>{r(e=>e??String(t9++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rf(rm,r),p=f.currentTabStopId===c,h=ri(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:y}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rs.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tZ.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:t,onMouseDown:tJ(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tJ(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tJ(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return ry[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rb(o))}}),children:"function"==typeof s?s({isCurrentTabStop:p,hasTabStop:null!=y}):s})})});rg.displayName=rm;var ry={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rb(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rx="Toggle",rv=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[s,i]=re({prop:r,onChange:o,defaultProp:n??!1,caller:rx});return(0,d.jsx)(tZ.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tJ(e.onClick,()=>{e.disabled||i(!s)})})});rv.displayName=rx;var rw="ToggleGroup",[rk,rS]=tH(rw,[ru]),rz=ru(),rj=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rR,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rM,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rw}\``)});rj.displayName=rw;var[rC,rE]=rk(rw),rR=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??"",onChange:o,caller:rw});return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>s?[s]:[],[s]),onItemActivate:i,onItemDeactivate:u.default.useCallback(()=>i(""),[i]),children:(0,d.jsx)(rI,{...l,ref:t})})}),rM=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??[],onChange:o,caller:rw}),a=u.default.useCallback(e=>i((t=[])=>[...t,e]),[i]),c=u.default.useCallback(e=>i((t=[])=>t.filter(t=>t!==e)),[i]);return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"multiple",value:s,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rI,{...l,ref:t})})});rj.displayName=rw;var[rN,rL]=rk(rw),rI=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:s,loop:i=!0,...a}=e,u=rz(r),c=rr(s),f={role:"group",dir:c,...a};return(0,d.jsx)(rN,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(rp,{asChild:!0,...u,orientation:l,dir:c,loop:i,children:(0,d.jsx)(tZ.div,{...f,ref:t})}):(0,d.jsx)(tZ.div,{...f,ref:t})})}),rP="ToggleGroupItem",rO=u.default.forwardRef((e,t)=>{let r=rE(rP,e.__scopeToggleGroup),n=rL(rP,e.__scopeToggleGroup),o=rz(e.__scopeToggleGroup),l=r.value.includes(e.value),s=n.disabled||e.disabled,i={...e,pressed:l,disabled:s},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rg,{asChild:!0,...o,focusable:!s,active:l,ref:a,children:(0,d.jsx)(rT,{...i,ref:t})}):(0,d.jsx)(rT,{...i,ref:t})});rO.displayName=rP;var rT=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rE(rP,r),s={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},i="single"===l.type?s:void 0;return(0,d.jsx)(rv,{...i,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rA=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rD=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,s=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let s=rA(t)||rA(n);return o[e][s]}),i=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,s,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...i}[t]):({...l,...i})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},rF=rD("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rv,{ref:o,className:tf(rF({variant:t,size:r,className:e})),...n})).displayName=rv.displayName;let r$=u.createContext({size:"default",variant:"default"}),r_=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rj,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(r$.Provider,{value:{variant:t,size:r},children:n})}));r_.displayName=rj.displayName;let rG=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let s=u.useContext(r$);return(0,d.jsx)(rO,{ref:l,className:tf(rF({variant:s.variant||r,size:s.size||n}),e),...o,children:t})});function rW({className:t=""}){let{datasetInfo:r,embeddings:n,selectedIds:o,setSelectedIds:l,beginLassoSelection:s,hoveredId:i,setHoveredId:a,geometry:c,setGeometry:f}=tI(),p=(0,u.useMemo)(()=>(function(e){let t=new Set;for(let r of e)t.add(r.geometry);return Array.from(t)})(r?.layouts??[]),[r?.layouts]),h=(0,u.useMemo)(()=>{if(!n||!r)return null;let e=n.layout_key,t=r.layouts.find(t=>t.layout_key===e),o=t?.space_key??e.split("__")[0],l=r.spaces.find(e=>e.space_key===o);return l?.model_id??l?.space_key??o},[r,n]),m=(0,u.useMemo)(()=>{if(!n)return null;let e=[...new Set(n.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":n.label_colors[e]||"#808080");return{uniqueLabels:e,categories:r,palette:o}},[n]),{canvasRef:g,overlayCanvasRef:y,containerRef:b,handlePointerDown:x,handlePointerMove:v,handlePointerUp:w,handlePointerLeave:k,handleDoubleClick:S,rendererError:z}=function({embeddings:t,labelsInfo:r,selectedIds:n,hoveredId:o,setSelectedIds:l,beginLassoSelection:s,setHoveredId:i}){let a=(0,u.useRef)(null),d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),[p,h]=(0,u.useState)(null),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),y=(0,u.useRef)(!1),b=(0,u.useRef)(0),x=(0,u.useRef)(0),v=(0,u.useRef)(0),w=(0,u.useRef)(0),k=(0,u.useRef)([]),S=(0,u.useRef)(-1),z=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{m.current||(m.current=!0,requestAnimationFrame(()=>{m.current=!1;let e=f.current;if(e){try{e.render()}catch(t){console.error("hyper-scatter renderer.render() failed:",t);try{e.destroy()}catch{}f.current=null,h("This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox."),tV(d.current);return}y.current&&tK(d.current,k.current)}}))},[]),C=(0,u.useCallback)(e=>{let t=a.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),E=(0,u.useCallback)(()=>{g.current=!1,y.current=!1,k.current=[],tV(d.current)},[]);(0,u.useEffect)(()=>{if(!t||!r||!a.current||!c.current)return;let n=!1;return(async()=>{if(h(null),!function(){try{if("undefined"==typeof document)return!1;return!!document.createElement("canvas").getContext("webgl2")}catch{return!1}}())return h("This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox.");try{let o=await e.A(20606);if(n)return;let l=c.current,s=a.current;if(!l||!s)return;f.current&&(f.current.destroy(),f.current=null);let i=l.getBoundingClientRect(),u=Math.floor(i.width),p=Math.floor(i.height);d.current&&(d.current.width=Math.max(1,u),d.current.height=Math.max(1,p),d.current.style.width=`${u}px`,d.current.style.height=`${p}px`,tV(d.current));let m=t.coords,g=new Float32Array(2*m.length);for(let e=0;e{n=!0,E(),f.current&&(f.current.destroy(),f.current=null)}},[t,r,j,E]),(0,u.useEffect)(()=>{let e=f.current;if(!e||!t||!z)return;let r=new Set;for(let e of n){let t=z.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let l=o?z.get(o)??-1:-1;e.setHovered(l),S.current=l,j()},[t,o,z,j,n]),(0,u.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;d.current&&(d.current.width=Math.max(1,r),d.current.height=Math.max(1,n),d.current.style.width=`${r}px`,d.current.style.height=`${n}px`);let o=f.current;o&&(o.resize(r,n),j())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[j]),(0,u.useEffect)(()=>{let e=a.current;if(!e)return;let t=e=>{let t=f.current;if(!t)return;e.preventDefault();let r=C(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,tB(e)),j()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[C,j]);let R=(0,u.useCallback)(e=>{if(!f.current||"number"==typeof e.button&&0!==e.button)return;let t=C(e);b.current=t.x,x.current=t.y,v.current=t.x,w.current=t.y,e.shiftKey?(y.current=!0,g.current=!1,k.current=[t.x,t.y],tK(d.current,k.current)):(g.current=!0,y.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[C]),M=(0,u.useCallback)(e=>{let r=f.current;if(!r)return;let n=C(e);if(g.current){let t=n.x-v.current,o=n.y-w.current;v.current=n.x,w.current=n.y,r.pan(t,o,tB(e)),j();return}if(y.current){let e=k.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),tK(d.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===S.current||(S.current=l,r.setHovered(l),t&&(l>=0&&l{let r=f.current;if(!r||!t)return void E();if(y.current){let e=k.current;if(E(),e.length>=6)try{let n=new Float32Array(e),o=r.lassoSelect(n),l=o.geometry?.coords;if(!l||l.length<6)return;r.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({layoutKey:t.layout_key,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}j();return}let o=C(e),i=o.x-b.current,a=o.y-x.current;if(i*i+a*a<=36){let s=r.hitTest(o.x,o.y),i=s?s.index:-1;if(i>=0&&i{let t=f.current;t&&(S.current=-1,i(null),t.setHovered(-1),j()),E()},[j,i,E]),handleDoubleClick:(0,u.useCallback)(e=>{let t=f.current;t&&(E(),t.setSelection(new Set),l(new Set,"scatter"),j())},[j,l,E]),rendererError:p}}({embeddings:n,labelsInfo:m,selectedIds:o,hoveredId:i,setSelectedIds:l,beginLassoSelection:s,setHoveredId:a}),j=m?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:n?h??"":"Loading...",children:p.length>1&&(0,d.jsxs)(r_,{type:"single",value:c,onValueChange:e=>e&&f(e),size:"sm",variant:"outline",className:"bg-muted/50 rounded-md p-0.5 gap-0.5",children:[(0,d.jsxs)(rG,{value:"euclidean","aria-label":"Euclidean geometry",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(t_,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Euclidean"})]}),(0,d.jsxs)(rG,{value:"poincare","aria-label":"Poincaré disk (hyperbolic)",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(tG,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Poincaré"})]})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:b,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:g,className:"absolute inset-0",style:{zIndex:1},onPointerDown:x,onPointerMove:v,onPointerUp:w,onPointerCancel:w,onPointerLeave:k,onDoubleClick:S}),(0,d.jsx)("canvas",{ref:y,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),z?(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/85 z-10 p-6",children:(0,d.jsxs)("div",{className:"max-w-md text-center",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-foreground mb-2",children:"Browser not supported"}),(0,d.jsx)("div",{className:"text-sm text-muted-foreground",children:z})]})}):!n&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),j.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[j.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":n?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),j.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",j.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rG.displayName=rO.displayName;var rB=Symbol.for("react.lazy"),rV=u[" use ".trim().toString()];function rK(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===rB&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rH=((s=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rK(r)&&"function"==typeof rV&&(r=rV(r._payload)),u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=s,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rK(r)&&"function"==typeof rV&&(r=rV(r._payload));let l=u.Children.toArray(r),s=l.find(rq);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rU=Symbol("radix.slottable");function rq(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rU}let rY=rD("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rQ=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rH:"button",{className:tf(rY({variant:t,size:r,className:e})),ref:l,...o}));function rX(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tI();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(tF,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rQ,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rZ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rJ(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function r0(e){let t=new URLSearchParams;e&&t.set("layout_key",e);let r=t.toString(),n=await fetch(`/api/embeddings${r?`?${r}`:""}`);if(!n.ok)throw Error(`Failed to fetch embeddings: ${n.statusText}`);return n.json()}async function r1(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r2(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({layout_key:e.layoutKey,polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r5(){let{datasetInfo:e,samples:t,totalSamples:r,samplesLoaded:n,setSamples:o,appendSamples:l,addSamplesIfMissing:s,setDatasetInfo:i,setEmbeddings:a,setIsLoading:c,isLoading:f,error:p,setError:h,selectedIds:m,isLassoSelection:g,selectionSource:y,lassoQuery:b,lassoSamples:x,lassoTotal:v,lassoIsLoading:w,setLassoResults:k,geometry:S}=tI(),[z,j]=(0,u.useState)(!1),[C,E]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{c(!0),h(null);try{let[e,t,r]=await Promise.all([rZ(),rJ(0,100),r0()]);i(e),o(t.samples,t.total),a(r)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{c(!1)}})()},[]),(0,u.useEffect)(()=>{if(!e)return;let t=e.layouts.find(e=>e.geometry===S);t&&tI.getState().currentLayoutKey!==t.layout_key&&(async()=>{E(!0);try{let e=await r0(t.layout_key);a(e)}catch(e){console.error("Failed to load geometry:",e)}finally{E(!1)}})()},[S,e,a]),(0,u.useEffect)(()=>{(async()=>{if(g||0===m.size)return;let e=new Set(t.map(e=>e.id)),r=Array.from(m).filter(t=>!e.has(t));if(0!==r.length)try{let e=await r1(r);s(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[m,t,s,g]),(0,u.useEffect)(()=>{if(!g||!b||!w)return;let e=new AbortController;return(async()=>{try{let t=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;k(t.samples,t.total,!1)}catch(e){if(e?.name==="AbortError")return;console.error("Failed to fetch lasso selection:",e),k([],0,!1)}})(),()=>e.abort()},[g,w,b,k]);let R=(0,u.useCallback)(async()=>{if(!z){if(g){if(!b||w||!w&&x.length>=v)return;j(!0);try{let e=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:x.length,limit:100});k(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{j(!1)}return}if(!(n>=r)){j(!0);try{let e=await rJ(n,100);l(e.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{j(!1)}}}},[z,l,g,w,b,x.length,v,n,r,k]),M=(0,u.useMemo)(()=>{if(g)return x;if("scatter"===y&&m.size>0){let e=new Map;for(let r of t)e.set(r.id,r);let r=[];for(let t of m){let n=e.get(t);n&&r.push(n)}if(r.length>0)return[...r,...t.filter(e=>!m.has(e.id))]}return t},[g,x,t,m,y]),N=g?v:r,L=g?M.lengthr5],50912)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_buildManifest.js b/src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_buildManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_buildManifest.js rename to src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_buildManifest.js diff --git a/src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_clientMiddlewareManifest.json b/src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_clientMiddlewareManifest.json similarity index 100% rename from src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_clientMiddlewareManifest.json rename to src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_clientMiddlewareManifest.json diff --git a/src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_ssgManifest.js b/src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_ssgManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/FkYHqh8bg2HXVZYl26MHt/_ssgManifest.js rename to src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_ssgManifest.js diff --git a/src/hyperview/server/static/_not-found/__next._full.txt b/src/hyperview/server/static/_not-found/__next._full.txt index 7930bff..4e9c940 100644 --- a/src/hyperview/server/static/_not-found/__next._full.txt +++ b/src/hyperview/server/static/_not-found/__next._full.txt @@ -7,7 +7,7 @@ 9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"FkYHqh8bg2HXVZYl26MHt","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +0:{"P":null,"b":"dsfUOjSfrev80UbslOps2","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/_not-found/__next._head.txt b/src/hyperview/server/static/_not-found/__next._head.txt index 8a0c1a9..6a56759 100644 --- a/src/hyperview/server/static/_not-found/__next._head.txt +++ b/src/hyperview/server/static/_not-found/__next._head.txt @@ -2,6 +2,6 @@ 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/_not-found/__next._index.txt b/src/hyperview/server/static/_not-found/__next._index.txt index 7ff2617..f3c6156 100644 --- a/src/hyperview/server/static/_not-found/__next._index.txt +++ b/src/hyperview/server/static/_not-found/__next._index.txt @@ -2,4 +2,4 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt index c0b212e..e0a6ff1 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/src/hyperview/server/static/_not-found/__next._not-found.txt b/src/hyperview/server/static/_not-found/__next._not-found.txt index 9fde546..ac8de9f 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.txt @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._tree.txt b/src/hyperview/server/static/_not-found/__next._tree.txt index 2c9a0b4..130447a 100644 --- a/src/hyperview/server/static/_not-found/__next._tree.txt +++ b/src/hyperview/server/static/_not-found/__next._tree.txt @@ -1,2 +1,2 @@ :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"FkYHqh8bg2HXVZYl26MHt","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +0:{"buildId":"dsfUOjSfrev80UbslOps2","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_not-found/index.html b/src/hyperview/server/static/_not-found/index.html index dcdfe7a..0b4f335 100644 --- a/src/hyperview/server/static/_not-found/index.html +++ b/src/hyperview/server/static/_not-found/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/index.txt b/src/hyperview/server/static/_not-found/index.txt index 7930bff..4e9c940 100644 --- a/src/hyperview/server/static/_not-found/index.txt +++ b/src/hyperview/server/static/_not-found/index.txt @@ -7,7 +7,7 @@ 9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"FkYHqh8bg2HXVZYl26MHt","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +0:{"P":null,"b":"dsfUOjSfrev80UbslOps2","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/index.html b/src/hyperview/server/static/index.html index d443eb7..7496b0f 100644 --- a/src/hyperview/server/static/index.html +++ b/src/hyperview/server/static/index.html @@ -1 +1 @@ -HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file +HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file diff --git a/src/hyperview/server/static/index.txt b/src/hyperview/server/static/index.txt index edf9586..81249c1 100644 --- a/src/hyperview/server/static/index.txt +++ b/src/hyperview/server/static/index.txt @@ -2,14 +2,14 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] 4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/490c8071909f9d06.js"],"default"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/5ee221fbee91a948.js"],"default"] 8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"FkYHqh8bg2HXVZYl26MHt","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/490c8071909f9d06.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +0:{"P":null,"b":"dsfUOjSfrev80UbslOps2","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/5ee221fbee91a948.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] From 5f377896f0e8d4f4c798d108f8f69206ccf048d8 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Wed, 21 Jan 2026 20:54:15 +0100 Subject: [PATCH 34/75] feat: pluggable embedding provider architecture with HyCoCLIP support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add BaseEmbeddingProvider abstraction and ModelSpec config dataclass - Implement EmbedAnything (default), HyCoCLIP (PyTorch), and HyCoCLIP-ONNX providers - Add hyperboloid→Poincaré ball projection in ProjectionEngine - Update pipelines to use provider-aware space keys - Rename 'hyperbolic' extra to 'ml' (torch, torchvision, timm) - Add demo script for CLIP + HyCoCLIP comparison on CIFAR-100 --- .gitignore | 7 +- pyproject.toml | 8 +- scripts/demo_hyperbolic_clip.py | 42 +++ src/hyperview/core/dataset.py | 15 +- src/hyperview/embeddings/__init__.py | 37 ++- src/hyperview/embeddings/pipelines.py | 96 +++--- src/hyperview/embeddings/projection.py | 115 +++++++ .../embeddings/providers/__init__.py | 220 +++++++++++++ .../embeddings/providers/embed_anything.py | 57 ++++ .../embeddings/providers/hycoclip.py | 303 ++++++++++++++++++ .../embeddings/providers/hycoclip_onnx.py | 231 +++++++++++++ src/hyperview/storage/backend.py | 17 +- src/hyperview/storage/lancedb_backend.py | 11 +- src/hyperview/storage/memory_backend.py | 11 +- src/hyperview/storage/schema.py | 1 + 15 files changed, 1112 insertions(+), 59 deletions(-) create mode 100644 scripts/demo_hyperbolic_clip.py create mode 100644 src/hyperview/embeddings/providers/__init__.py create mode 100644 src/hyperview/embeddings/providers/embed_anything.py create mode 100644 src/hyperview/embeddings/providers/hycoclip.py create mode 100644 src/hyperview/embeddings/providers/hycoclip_onnx.py diff --git a/.gitignore b/.gitignore index ce6b733..07a9a77 100644 --- a/.gitignore +++ b/.gitignore @@ -59,4 +59,9 @@ frontend/nohup.out .hyperview-*.log .hyperview-*.pid .playwright-mcp/ -frontend/tsconfig.tsbuildinfo \ No newline at end of file +frontend/tsconfig.tsbuildinfo + +# Hyperbolic model zoo (kept as a separate repo) +hyper_model_zoo/ +hyper_models/ +scripts_ignored/ \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 6633051..4acde4f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,9 +43,10 @@ dev = [ "httpx>=0.28.1", "ruff>=0.14.13", ] -hyperbolic = [ +ml = [ "torch>=2.9.1", - "geoopt>=0.5.1", + "torchvision>=0.24.1", + "timm>=1.0.0", ] [project.scripts] @@ -83,3 +84,6 @@ ignore = ["E501"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] + +[tool.uv.sources] +hycoclip = { git = "https://github.com/PalAvik/hycoclip.git" } diff --git a/scripts/demo_hyperbolic_clip.py b/scripts/demo_hyperbolic_clip.py new file mode 100644 index 0000000..513bd4c --- /dev/null +++ b/scripts/demo_hyperbolic_clip.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +"""Demo: CLIP (Euclidean) + HyCoCLIP (Poincaré) on CIFAR-100.""" + +import hyperview as hv +import hyperview.embeddings.providers.hycoclip # noqa: F401 +from hyperview.embeddings.providers import ModelSpec + +DATASET_NAME = "cifar100_clip_hycoclip" +HF_DATASET = "uoft-cs/cifar100" +HF_SPLIT = "test" +HF_IMAGE_KEY = "img" +HF_LABEL_KEY = "fine_label" +NUM_SAMPLES = 200 +CLIP_MODEL_ID = "openai/clip-vit-base-patch32" +HYCOCLIP_MODEL_ID = "hycoclip_vit_s" + + +def main() -> None: + print("Loading CIFAR-100 from Hugging Face...") + dataset = hv.Dataset(DATASET_NAME, persist=False) + dataset.add_from_huggingface( + HF_DATASET, + split=HF_SPLIT, + image_key=HF_IMAGE_KEY, + label_key=HF_LABEL_KEY, + max_samples=NUM_SAMPLES, + ) + print(f"Loaded {len(dataset)} samples") + + clip_space = dataset.compute_embeddings(CLIP_MODEL_ID) + dataset.compute_visualization(space_key=clip_space, geometry="euclidean") + hycoclip_spec = ModelSpec(provider="hycoclip", model_id=HYCOCLIP_MODEL_ID) + hycoclip_space = dataset.compute_embeddings(hycoclip_spec) + dataset.compute_visualization(space_key=hycoclip_space, geometry="poincare") + + print("Launching at http://127.0.0.1:6262") + + hv.launch(dataset, open_browser=True) + + +if __name__ == "__main__": + main() diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 86446eb..23009b1 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -1,5 +1,7 @@ """Dataset class for managing collections of samples.""" +from __future__ import annotations + import hashlib import json import uuid @@ -335,7 +337,7 @@ def add_from_huggingface( def compute_embeddings( self, - model: str = "openai/clip-vit-base-patch32", + model: str | ModelSpec = "openai/clip-vit-base-patch32", batch_size: int = 32, show_progress: bool = True, ) -> str: @@ -351,11 +353,16 @@ def compute_embeddings( Returns: space_key for the embedding space. """ - from hyperview.embeddings.pipelines import compute_missing_embeddings + from hyperview.embeddings.pipelines import compute_embeddings + from hyperview.embeddings.providers import ModelSpec - space_key, _num_computed, _num_skipped = compute_missing_embeddings( + if isinstance(model, ModelSpec): + model_spec = model + else: + model_spec = ModelSpec(provider="embed_anything", model_id=model) + space_key, _num_computed, _num_skipped = compute_embeddings( storage=self._storage, - model_id=model, + model_spec=model_spec, batch_size=batch_size, show_progress=show_progress, ) diff --git a/src/hyperview/embeddings/__init__.py b/src/hyperview/embeddings/__init__.py index 2d83dcc..14ff04d 100644 --- a/src/hyperview/embeddings/__init__.py +++ b/src/hyperview/embeddings/__init__.py @@ -1,6 +1,37 @@ -"""Embedding computation and projection modules.""" +"""Embedding computation, projection, and provider modules.""" from hyperview.embeddings.compute import EmbeddingComputer -from hyperview.embeddings.projection import ProjectionEngine +from hyperview.embeddings.providers import ( + BaseEmbeddingProvider, + ModelSpec, + get_provider, + list_providers, + make_provider_aware_space_key, + register_provider, +) -__all__ = ["EmbeddingComputer", "ProjectionEngine"] + +def __getattr__(name: str): + """Lazy import for heavy dependencies (UMAP/numba).""" + if name == "ProjectionEngine": + from hyperview.embeddings.projection import ProjectionEngine + return ProjectionEngine + if name == "EmbedAnythingProvider": + from hyperview.embeddings.providers.embed_anything import EmbedAnythingProvider + return EmbedAnythingProvider + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__all__ = [ + "EmbeddingComputer", + "ProjectionEngine", + # Provider types + "BaseEmbeddingProvider", + "EmbedAnythingProvider", + "ModelSpec", + # Provider utilities + "get_provider", + "list_providers", + "register_provider", + "make_provider_aware_space_key", +] diff --git a/src/hyperview/embeddings/pipelines.py b/src/hyperview/embeddings/pipelines.py index fd575cd..578a9f3 100644 --- a/src/hyperview/embeddings/pipelines.py +++ b/src/hyperview/embeddings/pipelines.py @@ -4,15 +4,18 @@ computation, persisting results into the configured storage backend. """ +from __future__ import annotations + import numpy as np +from hyperview.embeddings.providers import ModelSpec, get_provider, make_provider_aware_space_key from hyperview.storage.backend import StorageBackend -from hyperview.storage.schema import make_layout_key, make_space_key +from hyperview.storage.schema import make_layout_key -def compute_missing_embeddings( +def compute_embeddings( storage: StorageBackend, - model_id: str, + model_spec: ModelSpec, batch_size: int = 32, show_progress: bool = True, ) -> tuple[str, int, int]: @@ -20,7 +23,7 @@ def compute_missing_embeddings( Args: storage: Storage backend to read samples from and write embeddings to. - model_id: EmbedAnything HuggingFace model_id to use. + model_spec: Model specification (provider, model_id, geometry, etc.). batch_size: Batch size for processing. show_progress: Whether to show progress bar. @@ -28,48 +31,58 @@ def compute_missing_embeddings( Tuple of (space_key, num_computed, num_skipped). Raises: - ValueError: If no samples in storage. + ValueError: If no samples in storage or provider not found. """ - from hyperview.embeddings.compute import EmbeddingComputer - - computer = EmbeddingComputer(model=model_id) + provider = get_provider(model_spec.provider) all_samples = storage.get_all_samples() if not all_samples: raise ValueError("No samples in storage") - test_embedding = computer.compute_single(all_samples[0]) - dim = len(test_embedding) - - space_key = make_space_key(model_id) - provider_config = { - "provider": "embed_anything", - "geometry": "euclidean", - } - storage.ensure_space(model_id, dim, config=provider_config) + # Generate space key before computing (deterministic from spec) + space_key = make_provider_aware_space_key(model_spec) + # Check which samples need embeddings missing_ids = storage.get_missing_embedding_ids(space_key) + + # If space doesn't exist yet, all samples are missing + if not storage.get_space(space_key): + missing_ids = [s.id for s in all_samples] + num_skipped = len(all_samples) - len(missing_ids) if not missing_ids: if show_progress: - print( - f"All {len(all_samples)} samples already have embeddings in space '{space_key}'" - ) + print(f"All {len(all_samples)} samples already have embeddings in space '{space_key}'") return space_key, 0, num_skipped - samples_needing_embeddings = storage.get_samples_by_ids(missing_ids) + samples_to_embed = storage.get_samples_by_ids(missing_ids) if show_progress and num_skipped > 0: print(f"Skipped {num_skipped} samples with existing embeddings") - embeddings = computer.compute_batch( - samples_needing_embeddings, batch_size=batch_size, show_progress=show_progress + # Compute all embeddings in one pass (no separate probe) + embeddings = provider.compute_embeddings( + samples=samples_to_embed, + model_spec=model_spec, + batch_size=batch_size, + show_progress=show_progress, ) - ids = [s.id for s in samples_needing_embeddings] - vectors = np.array(embeddings, dtype=np.float32) - storage.add_embeddings(space_key, ids, vectors) + dim = embeddings.shape[1] + + # Ensure space exists (create if needed) + config = provider.get_space_config(model_spec, dim) + storage.ensure_space( + model_id=model_spec.model_id, + dim=dim, + config=config, + space_key=space_key, + ) + + # Store embeddings + ids = [s.id for s in samples_to_embed] + storage.add_embeddings(space_key, ids, embeddings) return space_key, len(ids), num_skipped @@ -122,11 +135,12 @@ def compute_layout( if space is None: raise ValueError(f"Space not found: {space_key}") + input_geometry = space.geometry + curvature = (space.config or {}).get("curvature") + ids, vectors = storage.get_embeddings(space_key) if len(ids) == 0: - raise ValueError( - f"No embeddings in space '{space_key}'. Call compute_embeddings() first." - ) + raise ValueError(f"No embeddings in space '{space_key}'. Call compute_embeddings() first.") if len(ids) < 3: raise ValueError(f"Need at least 3 samples for visualization, have {len(ids)}") @@ -161,20 +175,16 @@ def compute_layout( ) engine = ProjectionEngine() - if geometry == "poincare": - coords = engine.project_to_poincare( - vectors, - n_neighbors=n_neighbors, - min_dist=min_dist, - metric=metric, - ) - else: - coords = engine.project_umap( - vectors, - n_neighbors=n_neighbors, - min_dist=min_dist, - metric=metric, - ) + coords = engine.project( + vectors, + input_geometry=input_geometry, + output_geometry=geometry, + curvature=curvature, + method=method, + n_neighbors=n_neighbors, + min_dist=min_dist, + metric=metric, + ) storage.add_layout_coords(layout_key, ids, coords) diff --git a/src/hyperview/embeddings/projection.py b/src/hyperview/embeddings/projection.py index 2ed5e3d..4b81a1c 100644 --- a/src/hyperview/embeddings/projection.py +++ b/src/hyperview/embeddings/projection.py @@ -11,6 +11,121 @@ class ProjectionEngine: """Engine for projecting high-dimensional embeddings to 2D.""" + def to_poincare_ball( + self, + hyperboloid_embeddings: np.ndarray, + curvature: float | None = None, + clamp_radius: float = 0.999999, + ) -> np.ndarray: + """Convert hyperboloid (Lorentz) coordinates to Poincaré ball coordinates. + + Input is expected to be shape (N, D+1) with first coordinate being time-like. + Points are assumed to satisfy: t^2 - ||x||^2 = 1/c (c > 0). + + Returns Poincaré ball coordinates of shape (N, D) in the unit ball. + + Notes: + - Many hyperbolic libraries parameterize curvature as a positive number c + where the manifold has sectional curvature -c. + - We map to the unit ball for downstream distance metrics (UMAP 'poincare'). + """ + if hyperboloid_embeddings.ndim != 2 or hyperboloid_embeddings.shape[1] < 2: + raise ValueError( + "hyperboloid_embeddings must have shape (N, D+1) with D>=1" + ) + + c = float(curvature) if curvature is not None else 1.0 + if c <= 0: + raise ValueError(f"curvature must be > 0, got {c}") + + # Radius R = 1/sqrt(c) for curvature -c + R = 1.0 / np.sqrt(c) + + t = hyperboloid_embeddings[:, :1] + x = hyperboloid_embeddings[:, 1:] + + # Map to ball radius R: u_R = x / (t + R) + denom = t + R + u_R = x / denom + + # Rescale to unit ball: u = u_R / R = sqrt(c) * u_R + u = u_R / R + + # Numerical guard: ensure inside the unit ball + radii = np.linalg.norm(u, axis=1) + mask = radii >= clamp_radius + if np.any(mask): + u[mask] = u[mask] / radii[mask][:, np.newaxis] * clamp_radius + + return u.astype(np.float32) + + def project( + self, + embeddings: np.ndarray, + *, + input_geometry: str = "euclidean", + output_geometry: str = "euclidean", + curvature: float | None = None, + method: str = "umap", + n_neighbors: int = 15, + min_dist: float = 0.1, + metric: str = "cosine", + random_state: int = 42, + ) -> np.ndarray: + """Project embeddings to 2D with geometry-aware preprocessing. + + This separates two concerns: + 1) Geometry/model transforms for the *input* embeddings (e.g. hyperboloid -> Poincaré) + 2) Dimensionality reduction / layout (currently UMAP) + + Args: + embeddings: Input embeddings (N x D) or hyperboloid (N x D+1). + input_geometry: Geometry/model of the input embeddings (euclidean, hyperboloid). + output_geometry: Geometry of the output coordinates (euclidean, poincare). + curvature: Curvature parameter for hyperbolic embeddings (positive c). + method: Layout method (currently only 'umap'). + n_neighbors: UMAP neighbors. + min_dist: UMAP min_dist. + metric: Input metric (used for euclidean inputs). + random_state: Random seed. + + Returns: + 2D coordinates (N x 2). + """ + if method != "umap": + raise ValueError(f"Invalid method: {method}. Only 'umap' is supported.") + + prepared = embeddings + prepared_metric: str = metric + + if input_geometry == "hyperboloid": + # Convert to unit Poincaré ball and use UMAP's built-in hyperbolic distance. + prepared = self.to_poincare_ball(embeddings, curvature=curvature) + prepared_metric = "poincare" + + if output_geometry == "poincare": + return self.project_to_poincare( + prepared, + n_neighbors=n_neighbors, + min_dist=min_dist, + metric=prepared_metric, + random_state=random_state, + ) + + if output_geometry == "euclidean": + return self.project_umap( + prepared, + n_neighbors=n_neighbors, + min_dist=min_dist, + metric=prepared_metric, + n_components=2, + random_state=random_state, + ) + + raise ValueError( + f"Invalid output_geometry: {output_geometry}. Must be 'euclidean' or 'poincare'." + ) + def project_umap( self, embeddings: np.ndarray, diff --git a/src/hyperview/embeddings/providers/__init__.py b/src/hyperview/embeddings/providers/__init__.py new file mode 100644 index 0000000..27f8f87 --- /dev/null +++ b/src/hyperview/embeddings/providers/__init__.py @@ -0,0 +1,220 @@ +"""Embedding provider abstraction for HyperView. + +This module defines a pluggable provider interface for computing embeddings +from different sources (EmbedAnything, HyCoCLIP, HuggingFace Transformers, etc.). + +Design principles: +- Default path stays lightweight (EmbedAnything) +- Heavy integrations are opt-in with clear dependency errors +- Embedding geometry (euclidean, hyperboloid) is tracked explicitly +- ModelSpec provides structured config that persists to SpaceInfo.config_json +- Providers are singletons to preserve model state across calls +""" + +from __future__ import annotations + +import hashlib +import json +from abc import ABC, abstractmethod +from dataclasses import dataclass +from typing import Any + +import numpy as np + +from hyperview.core.sample import Sample + + +# --------------------------------------------------------------------------- +# ModelSpec: structured config for any embedding model +# --------------------------------------------------------------------------- + + +@dataclass +class ModelSpec: + """Structured specification for an embedding model. + + Attributes: + provider: Provider identifier (e.g., "embed_anything", "hycoclip") + model_id: Model identifier (HuggingFace model_id, checkpoint path, etc.) + checkpoint: Optional checkpoint path or URL for weight-only models + config_path: Optional config path for models that need it + output_geometry: Geometry of the embedding space ("euclidean", "hyperboloid") + curvature: Hyperbolic curvature (only relevant for hyperbolic geometries) + """ + + provider: str + model_id: str + checkpoint: str | None = None + config_path: str | None = None + output_geometry: str = "euclidean" + curvature: float | None = None + + def to_dict(self) -> dict[str, Any]: + """Convert to JSON-serializable dict.""" + d: dict[str, Any] = { + "provider": self.provider, + "model_id": self.model_id, + "geometry": self.output_geometry, + } + if self.checkpoint: + d["checkpoint"] = self.checkpoint + if self.config_path: + d["config_path"] = self.config_path + if self.curvature is not None: + d["curvature"] = self.curvature + return d + + @classmethod + def from_dict(cls, d: dict[str, Any]) -> ModelSpec: + """Create from dict (e.g., loaded from JSON).""" + return cls( + provider=d["provider"], + model_id=d["model_id"], + checkpoint=d.get("checkpoint"), + config_path=d.get("config_path"), + output_geometry=d.get("geometry", d.get("output_geometry", "euclidean")), + curvature=d.get("curvature"), + ) + + def content_hash(self) -> str: + """Generate a short hash of the spec for collision-resistant keys.""" + content = json.dumps(self.to_dict(), sort_keys=True) + return hashlib.sha256(content.encode()).hexdigest()[:12] + + +# --------------------------------------------------------------------------- +# Base class for providers +# --------------------------------------------------------------------------- + + +class BaseEmbeddingProvider(ABC): + """Base class for embedding providers.""" + + @property + @abstractmethod + def provider_id(self) -> str: + """Unique identifier for this provider.""" + ... + + @abstractmethod + def compute_embeddings( + self, + samples: list[Sample], + model_spec: ModelSpec, + batch_size: int = 32, + show_progress: bool = True, + ) -> np.ndarray: + """Compute embeddings for samples. + + Returns: + Array of shape (N, D) where N is len(samples) and D is embedding dim. + """ + ... + + def get_space_config(self, model_spec: ModelSpec, dim: int) -> dict[str, Any]: + """Get config dict for SpaceInfo.config_json. + + Args: + model_spec: Model specification. + dim: Embedding dimension. + + Returns: + Config dict with provider, geometry, model_id, dim, and any extras. + """ + return { + **model_spec.to_dict(), + "dim": dim, + } + + +# --------------------------------------------------------------------------- +# Provider registry (singleton instances) +# --------------------------------------------------------------------------- + +# Registry stores provider classes +_PROVIDER_CLASSES: dict[str, type[BaseEmbeddingProvider]] = {} + +# Cache stores singleton instances +_PROVIDER_INSTANCES: dict[str, BaseEmbeddingProvider] = {} + + +def register_provider(provider_id: str, provider_class: type[BaseEmbeddingProvider]) -> None: + """Register a new embedding provider class.""" + _PROVIDER_CLASSES[provider_id] = provider_class + # Clear cached instance if re-registering + _PROVIDER_INSTANCES.pop(provider_id, None) + + +def _try_auto_register(provider_id: str) -> None: + """Attempt to auto-register a provider by importing its module.""" + module_map = { + "embed_anything": "hyperview.embeddings.providers.embed_anything", + "hycoclip": "hyperview.embeddings.providers.hycoclip", + "hycoclip_onnx": "hyperview.embeddings.providers.hycoclip_onnx", + } + if provider_id in module_map: + try: + __import__(module_map[provider_id]) + except ImportError: + pass + + +def get_provider(provider_id: str) -> BaseEmbeddingProvider: + """Get a provider singleton instance by ID. + + Providers are cached to preserve model state across calls. + """ + if provider_id not in _PROVIDER_CLASSES: + _try_auto_register(provider_id) + + if provider_id not in _PROVIDER_CLASSES: + available = ", ".join(sorted(_PROVIDER_CLASSES.keys())) or "(none registered)" + raise ValueError( + f"Unknown embedding provider: '{provider_id}'. " + f"Available: {available}" + ) + + if provider_id not in _PROVIDER_INSTANCES: + _PROVIDER_INSTANCES[provider_id] = _PROVIDER_CLASSES[provider_id]() + + return _PROVIDER_INSTANCES[provider_id] + + +def list_providers() -> list[str]: + """List available provider IDs.""" + # Trigger auto-registration for known providers + for pid in ["embed_anything", "hycoclip", "hycoclip_onnx"]: + _try_auto_register(pid) + return list(_PROVIDER_CLASSES.keys()) + + +# --------------------------------------------------------------------------- +# Helper: generate provider-aware space_key +# --------------------------------------------------------------------------- + + +def make_provider_aware_space_key(model_spec: ModelSpec) -> str: + """Generate a collision-resistant space_key from a ModelSpec. + + Format: {provider}__{slugified_model_id}__{content_hash} + """ + from hyperview.storage.schema import slugify_model_id + + slug = slugify_model_id(model_spec.model_id) + content_hash = model_spec.content_hash() + + return f"{model_spec.provider}__{slug}__{content_hash}" + + +# --------------------------------------------------------------------------- +# Public exports +# --------------------------------------------------------------------------- + +__all__ = [ + "BaseEmbeddingProvider", + "ModelSpec", + "get_provider", + "list_providers", + "make_provider_aware_space_key", + "register_provider", +] diff --git a/src/hyperview/embeddings/providers/embed_anything.py b/src/hyperview/embeddings/providers/embed_anything.py new file mode 100644 index 0000000..60370df --- /dev/null +++ b/src/hyperview/embeddings/providers/embed_anything.py @@ -0,0 +1,57 @@ +"""EmbedAnything embedding provider - default lightweight provider.""" + +from __future__ import annotations + +from typing import Any + +import numpy as np + +from hyperview.core.sample import Sample +from hyperview.embeddings.providers import ( + BaseEmbeddingProvider, + ModelSpec, + register_provider, +) + +__all__ = ["EmbedAnythingProvider"] + + +class EmbedAnythingProvider(BaseEmbeddingProvider): + """Default embedding provider using EmbedAnything. + + Supports HuggingFace vision models via EmbedAnything's inference engine. + Model is cached per model_id to avoid repeated initialization. + """ + + def __init__(self) -> None: + self._computers: dict[str, Any] = {} # model_id -> EmbeddingComputer + + @property + def provider_id(self) -> str: + return "embed_anything" + + def _get_computer(self, model_id: str) -> Any: + """Get or create an EmbeddingComputer for the given model_id.""" + if model_id not in self._computers: + from hyperview.embeddings.compute import EmbeddingComputer + + self._computers[model_id] = EmbeddingComputer(model=model_id) + return self._computers[model_id] + + def compute_embeddings( + self, + samples: list[Sample], + model_spec: ModelSpec, + batch_size: int = 32, + show_progress: bool = True, + ) -> np.ndarray: + """Compute embeddings using EmbedAnything.""" + computer = self._get_computer(model_spec.model_id) + embeddings = computer.compute_batch( + samples, batch_size=batch_size, show_progress=show_progress + ) + return np.array(embeddings, dtype=np.float32) + + +# Auto-register on import +register_provider("embed_anything", EmbedAnythingProvider) diff --git a/src/hyperview/embeddings/providers/hycoclip.py b/src/hyperview/embeddings/providers/hycoclip.py new file mode 100644 index 0000000..7f4f267 --- /dev/null +++ b/src/hyperview/embeddings/providers/hycoclip.py @@ -0,0 +1,303 @@ +"""Clean HyCoCLIP embedding provider (PyTorch) - no external hycoclip package. + +This is a minimal reimplementation that loads HyCoCLIP weights directly. +Only depends on torch, timm, and numpy. + +Architecture: +- ViT backbone (timm) +- Linear projection to embedding space +- Exponential map to hyperboloid (Lorentz model) + +Checkpoints: https://huggingface.co/avik-pal/hycoclip + +Requirements: + uv sync --extra ml +""" + +from __future__ import annotations + +import math +from pathlib import Path +from typing import Any + +import numpy as np + +from hyperview.core.sample import Sample +from hyperview.embeddings.providers import ( + BaseEmbeddingProvider, + ModelSpec, + register_provider, +) + +__all__ = ["HyCoCLIPProvider"] + + +# ----------------------------------------------------------------------------- +# Known checkpoints (auto-download from HuggingFace) +# ----------------------------------------------------------------------------- + +HYCOCLIP_CHECKPOINTS: dict[str, str] = { + "hycoclip_vit_s": "hf://avik-pal/hycoclip#hycoclip_vit_s.pth", + "hycoclip_vit_b": "hf://avik-pal/hycoclip#hycoclip_vit_b.pth", + "meru_vit_s": "hf://avik-pal/hycoclip#meru_vit_s.pth", + "meru_vit_b": "hf://avik-pal/hycoclip#meru_vit_b.pth", +} + + +# ----------------------------------------------------------------------------- +# Hyperboloid math +# ----------------------------------------------------------------------------- + + +def _exp_map_lorentz(x: "torch.Tensor", c: float) -> "torch.Tensor": + """Exponential map from tangent space at the hyperboloid vertex. + + Maps Euclidean tangent vectors at the origin onto the Lorentz (hyperboloid) + model of hyperbolic space with curvature -c. + + Output is ordered as (t, x1, ..., xD) and satisfies: + t^2 - ||x||^2 = 1/c + + This matches HyCoCLIP/MERU exp_map0 numerics by clamping the sinh input for + stability and inferring the time component from the hyperboloid constraint. + + Args: + x: Euclidean tangent vectors at the origin, shape (..., D). + c: Positive curvature parameter (hyperbolic curvature is -c). + + Returns: + Hyperboloid coordinates, shape (..., D + 1). + """ + import torch + + if c <= 0: + raise ValueError(f"curvature c must be > 0, got {c}") + + # Compute in float32 under AMP to avoid float16/bfloat16 overflow. + if x.dtype in (torch.float16, torch.bfloat16): + x = x.float() + + sqrt_c = math.sqrt(c) + rc_xnorm = sqrt_c * torch.norm(x, dim=-1, keepdim=True) + + eps = 1e-8 + sinh_input = torch.clamp(rc_xnorm, min=eps, max=math.asinh(2**15)) + spatial = torch.sinh(sinh_input) * x / torch.clamp(rc_xnorm, min=eps) + + t = torch.sqrt((1.0 / c) + torch.sum(spatial * spatial, dim=-1, keepdim=True)) + return torch.cat([t, spatial], dim=-1) + +# ----------------------------------------------------------------------------- +# ViT Image Encoder +# ----------------------------------------------------------------------------- + + +def _create_encoder( + embed_dim: int = 512, + curvature: float = 0.1, + vit_model: str = "vit_small_patch16_224", +) -> "nn.Module": + """Create HyCoCLIP image encoder using timm ViT backbone.""" + import timm + import torch.nn as nn + + class HyCoCLIPImageEncoder(nn.Module): + def __init__(self) -> None: + super().__init__() + self.backbone = timm.create_model(vit_model, pretrained=False, num_classes=0) + backbone_dim = int(getattr(self.backbone, "embed_dim")) + self.proj = nn.Linear(backbone_dim, embed_dim, bias=False) + self.curvature = curvature + self.embed_dim = embed_dim + + def forward(self, x: "torch.Tensor") -> "torch.Tensor": + features = self.backbone(x) + spatial = self.proj(features) + return _exp_map_lorentz(spatial, self.curvature) + + return HyCoCLIPImageEncoder() + + +def _load_encoder(checkpoint_path: str, device: str = "cpu") -> Any: + """Load HyCoCLIP image encoder from checkpoint.""" + import torch + + ckpt = torch.load(checkpoint_path, map_location="cpu", weights_only=False) + state = ckpt["model"] + + # Extract curvature (stored as log) + curvature = torch.exp(state["curv"]).item() + + # Determine model variant from checkpoint + proj_shape = state["visual_proj.weight"].shape + embed_dim = proj_shape[0] + backbone_dim = proj_shape[1] + + vit_models = { + 384: "vit_small_patch16_224", + 768: "vit_base_patch16_224", + 1024: "vit_large_patch16_224", + } + vit_model = vit_models.get(backbone_dim, "vit_small_patch16_224") + + model = _create_encoder(embed_dim=embed_dim, curvature=curvature, vit_model=vit_model) + + # Remap checkpoint keys + new_state = {} + for key, value in state.items(): + if key.startswith("visual."): + new_state["backbone." + key[7:]] = value + elif key == "visual_proj.weight": + new_state["proj.weight"] = value + + model.load_state_dict(new_state, strict=False) + return model.to(device).eval() + + +# ----------------------------------------------------------------------------- +# Provider +# ----------------------------------------------------------------------------- + + +class HyCoCLIPProvider(BaseEmbeddingProvider): + """Clean HyCoCLIP provider (PyTorch) - no hycoclip package dependency. + + Requires: torch, torchvision, timm (install via `uv sync --extra ml`) + """ + + def __init__(self) -> None: + self._model: Any = None + self._model_spec: ModelSpec | None = None + self._device: Any = None + self._transform: Any = None + + @property + def provider_id(self) -> str: + return "hycoclip" + + def _get_device(self) -> Any: + import torch + + if self._device is None: + self._device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + return self._device + + def _get_transform(self) -> Any: + if self._transform is None: + from torchvision import transforms + + self._transform = transforms.Compose([ + transforms.Resize(224, transforms.InterpolationMode.BICUBIC), + transforms.CenterCrop(224), + transforms.ToTensor(), + transforms.Normalize( + mean=[0.48145466, 0.4578275, 0.40821073], + std=[0.26862954, 0.26130258, 0.27577711], + ), + ]) + return self._transform + + def _resolve_checkpoint(self, checkpoint: str) -> Path: + """Resolve checkpoint path, downloading from HuggingFace if needed.""" + # Handle HuggingFace Hub URLs: hf://repo_id#filename + if checkpoint.startswith("hf://"): + try: + from huggingface_hub import hf_hub_download + except ImportError as exc: + raise ImportError( + "hf:// checkpoints require huggingface_hub. " + "Install with: uv add huggingface-hub" + ) from exc + + path = checkpoint[5:] + if "#" not in path: + raise ValueError(f"HF checkpoint must include filename: {checkpoint}") + repo_id, filename = path.split("#", 1) + return Path(hf_hub_download(repo_id=repo_id, filename=filename)).resolve() + + # Local path + path = Path(checkpoint).expanduser().resolve() + if not path.exists(): + raise FileNotFoundError(f"Checkpoint not found: {path}") + return path + + def _load_model(self, model_spec: ModelSpec) -> None: + if self._model is not None and self._model_spec == model_spec: + return + + # Auto-resolve checkpoint from model_id if not provided + checkpoint = model_spec.checkpoint + if not checkpoint: + checkpoint = HYCOCLIP_CHECKPOINTS.get(model_spec.model_id) + if not checkpoint: + available = ", ".join(sorted(HYCOCLIP_CHECKPOINTS.keys())) + raise ValueError( + f"Unknown HyCoCLIP model_id: '{model_spec.model_id}'. " + f"Known models: {available}. " + f"Or provide 'checkpoint' path explicitly." + ) + + checkpoint_path = self._resolve_checkpoint(checkpoint) + self._model = _load_encoder(str(checkpoint_path), str(self._get_device())) + self._model_spec = model_spec + + def compute_embeddings( + self, + samples: list["Sample"], + model_spec: ModelSpec, + batch_size: int = 32, + show_progress: bool = True, + ) -> np.ndarray: + """Compute hyperboloid embeddings for samples.""" + import torch + + self._load_model(model_spec) + assert self._model is not None + + device = self._get_device() + transform = self._get_transform() + + if show_progress: + print(f"Computing HyCoCLIP embeddings for {len(samples)} samples...") + + all_embeddings = [] + + for i in range(0, len(samples), batch_size): + batch_samples = samples[i : i + batch_size] + + images = [] + for sample in batch_samples: + img = sample.load_image() + if img.mode != "RGB": + img = img.convert("RGB") + images.append(transform(img)) + + batch_tensor = torch.stack(images).to(device) + + with torch.no_grad(), torch.amp.autocast( + device_type=device.type, enabled=device.type == "cuda" + ): + embeddings = self._model(batch_tensor) + + all_embeddings.append(embeddings.cpu().numpy()) + + return np.concatenate(all_embeddings, axis=0) + + def get_space_config(self, model_spec: ModelSpec, dim: int) -> dict[str, Any]: + """Return embedding space configuration with curvature.""" + self._load_model(model_spec) + assert self._model is not None + + return { + "provider": self.provider_id, + "model_id": model_spec.model_id, + "geometry": "hyperboloid", + "checkpoint": model_spec.checkpoint, + "dim": dim, + "curvature": self._model.curvature, + "spatial_dim": self._model.embed_dim, + } + + +# Auto-register on import +register_provider("hycoclip", HyCoCLIPProvider) diff --git a/src/hyperview/embeddings/providers/hycoclip_onnx.py b/src/hyperview/embeddings/providers/hycoclip_onnx.py new file mode 100644 index 0000000..e02f6aa --- /dev/null +++ b/src/hyperview/embeddings/providers/hycoclip_onnx.py @@ -0,0 +1,231 @@ +"""HyCoCLIP ONNX embedding provider - torch-free runtime. + +This provider runs an ONNX-exported HyCoCLIP/MERU image encoder with +`onnxruntime` to compute *hyperboloid (Lorentz)* embeddings. + +Outputs: +- Embeddings are returned in hyperboloid format with shape (N, D+1), where the + first coordinate is the time component. + +Requirements: +- onnxruntime (already included via embed-anything) +- An exported ONNX model (and its external weights .data file) produced by + `hyperbolic_model_zoo/hycoclip_onnx/export_onnx.py`. + +Why this exists: +- Torch is required to *export* HyCoCLIP to ONNX. +- Torch is NOT required at runtime once you have the ONNX artifacts. +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any + +import numpy as np + +from hyperview.core.sample import Sample +from hyperview.embeddings.providers import ( + BaseEmbeddingProvider, + ModelSpec, + register_provider, +) + +__all__ = ["HyCoCLIPOnnxProvider"] + + +# --------------------------------------------------------------------------- +# Dependency checking +# --------------------------------------------------------------------------- + + +def _check_onnxruntime() -> bool: + try: + import onnxruntime # noqa: F401 + + return True + except ImportError: + return False + + +def _require_dependencies() -> None: + if not _check_onnxruntime(): + raise ImportError( + "HyCoCLIP ONNX provider requires onnxruntime.\n\n" + "It should already be installed via embed-anything.\n" + "If not, install with: uv add onnxruntime" + ) + + +# --------------------------------------------------------------------------- +# Preprocessing (pure PIL+numpy) +# --------------------------------------------------------------------------- + + +def _preprocess_rgb_image_to_bchw_float01(img: Any, size: int = 224) -> np.ndarray: + """Resize shortest side to 224, center crop, return (1,3,H,W) float32 in [0,1].""" + from PIL import Image + + if not isinstance(img, Image.Image): + raise TypeError(f"Expected PIL.Image.Image, got {type(img)}") + + w, h = img.size + if w <= 0 or h <= 0: + raise ValueError(f"Invalid image size: {w}x{h}") + + # Resize shortest side to `size`. + scale = float(size) / float(min(w, h)) + new_w = int(round(w * scale)) + new_h = int(round(h * scale)) + img = img.resize((new_w, new_h), resample=Image.Resampling.BICUBIC) + + # Center crop. + left = int(round((new_w - size) / 2.0)) + top = int(round((new_h - size) / 2.0)) + img = img.crop((left, top, left + size, top + size)) + + arr = np.asarray(img, dtype=np.float32) / 255.0 # HWC in [0,1] + arr = np.transpose(arr, (2, 0, 1)) # CHW + return arr[None, ...] # BCHW + + +# --------------------------------------------------------------------------- +# Provider +# --------------------------------------------------------------------------- + + +class HyCoCLIPOnnxProvider(BaseEmbeddingProvider): + """ONNX HyCoCLIP provider - torch-free runtime. + + Uses onnxruntime for inference. No PyTorch required at runtime. + """ + + def __init__(self) -> None: + self._session: Any = None + self._model_spec: ModelSpec | None = None + self._input_name: str | None = None + self._output_names: list[str] | None = None + self._curvature: float | None = None + + @property + def provider_id(self) -> str: + return "hycoclip_onnx" + + def _resolve_onnx_path(self, model_spec: ModelSpec) -> Path: + if not model_spec.checkpoint: + raise ValueError( + "HyCoCLIP ONNX provider requires 'checkpoint' to be a path/URL to a .onnx file." + ) + + checkpoint = model_spec.checkpoint + + # Handle HuggingFace Hub URLs (hf://repo_id#filename) + if checkpoint.startswith("hf://"): + raise NotImplementedError( + "WIP: hf:// checkpoints are disabled until ONNX external weights are published. " + "Use a local .onnx path with its .onnx.data file present." + ) + + path = Path(checkpoint).expanduser().resolve() + if not path.exists(): + raise FileNotFoundError(f"ONNX model not found: {path}") + if path.suffix.lower() != ".onnx": + raise ValueError(f"Expected a .onnx file, got: {path}") + return path + + def _ensure_session(self, model_spec: ModelSpec) -> None: + _require_dependencies() + + if self._session is not None and self._model_spec == model_spec: + return + + import onnxruntime as ort + + onnx_path = self._resolve_onnx_path(model_spec) + + # Default to CPU for maximum compatibility. + get_available = getattr(ort, "get_available_providers", None) + available = get_available() if callable(get_available) else ["CPUExecutionProvider"] + providers = ["CPUExecutionProvider"] if "CPUExecutionProvider" in available else list(available) + + self._session = ort.InferenceSession(str(onnx_path), providers=providers) + self._input_name = self._session.get_inputs()[0].name + self._output_names = [o.name for o in self._session.get_outputs()] + self._curvature = None + self._model_spec = model_spec + + def compute_embeddings( + self, + samples: list[Sample], + model_spec: ModelSpec, + batch_size: int = 32, + show_progress: bool = True, + ) -> np.ndarray: + """Compute hyperboloid embeddings (t, x) with shape (N, D+1).""" + self._ensure_session(model_spec) + + assert self._session is not None + assert self._input_name is not None + + output_names = self._output_names or [] + if not output_names: + raise RuntimeError("ONNX session has no outputs") + + # Prefer named outputs if present. + emb_name = "embedding_hyperboloid" if "embedding_hyperboloid" in output_names else output_names[0] + curv_name = "curvature" if "curvature" in output_names else None + + # NOTE: Current torch.onnx export is only reliable for batch_size=1. + if batch_size != 1 and show_progress: + print("HyCoCLIP-ONNX export currently runs with batch_size=1; overriding") + batch_size = 1 + + all_embeddings: list[np.ndarray] = [] + + if show_progress: + print(f"Computing HyCoCLIP-ONNX embeddings for {len(samples)} samples...") + + for i in range(0, len(samples), batch_size): + batch_samples = samples[i : i + batch_size] + + images = [] + for sample in batch_samples: + with sample.load_image() as img: + img.load() + if img.mode != "RGB": + img = img.convert("RGB") + bchw = _preprocess_rgb_image_to_bchw_float01(img.copy(), size=224) + images.append(bchw[0]) # CHW + + batch_np = np.stack(images, axis=0).astype(np.float32) + + outputs = self._session.run( + [name for name in (emb_name, curv_name) if name is not None], + {self._input_name: batch_np}, + ) + + hyper = np.asarray(outputs[0], dtype=np.float32) + if hyper.ndim != 2: + raise RuntimeError(f"Expected (B,D) embeddings, got shape={hyper.shape}") + + # Capture curvature once. + if curv_name is not None and self._curvature is None and len(outputs) > 1: + curv_arr = np.asarray(outputs[1]).reshape(-1) + if curv_arr.size > 0: + self._curvature = float(curv_arr[0]) + + all_embeddings.append(hyper) + + return np.vstack(all_embeddings) + + def get_space_config(self, model_spec: ModelSpec, dim: int) -> dict[str, Any]: + config = super().get_space_config(model_spec, dim) + config["geometry"] = "hyperboloid" + if self._curvature is not None: + config["curvature"] = self._curvature + config["spatial_dim"] = dim - 1 + return config + + +# Auto-register on import +register_provider("hycoclip_onnx", HyCoCLIPOnnxProvider) diff --git a/src/hyperview/storage/backend.py b/src/hyperview/storage/backend.py index 518d1af..04cb05e 100644 --- a/src/hyperview/storage/backend.py +++ b/src/hyperview/storage/backend.py @@ -90,8 +90,21 @@ def get_space(self, space_key: str) -> Any | None: """Get info for a specific embedding space.""" @abstractmethod - def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> Any: - """Ensure an embedding space exists, creating if needed.""" + def ensure_space( + self, + model_id: str, + dim: int, + config: dict | None = None, + space_key: str | None = None, + ) -> Any: + """Ensure an embedding space exists, creating if needed. + + Args: + model_id: Model identifier for this space. + dim: Vector dimension. + config: Optional config dict for SpaceInfo.config_json. + space_key: Optional explicit space key. If None, derived from model_id. + """ @abstractmethod def delete_space(self, space_key: str) -> bool: diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py index c0de354..cf30faa 100644 --- a/src/hyperview/storage/lancedb_backend.py +++ b/src/hyperview/storage/lancedb_backend.py @@ -191,8 +191,15 @@ def get_space(self, space_key: str) -> SpaceInfo | None: results = self._spaces_table.search().where(f"space_key = '{safe_key}'").limit(1).to_list() return SpaceInfo.from_dict(results[0]) if results else None - def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> SpaceInfo: - space_key = make_space_key(model_id) + def ensure_space( + self, + model_id: str, + dim: int, + config: dict | None = None, + space_key: str | None = None, + ) -> SpaceInfo: + if space_key is None: + space_key = make_space_key(model_id) existing = self.get_space(space_key) if existing is not None: if existing.dim != dim: diff --git a/src/hyperview/storage/memory_backend.py b/src/hyperview/storage/memory_backend.py index a1453bc..7189e08 100644 --- a/src/hyperview/storage/memory_backend.py +++ b/src/hyperview/storage/memory_backend.py @@ -89,8 +89,15 @@ def list_spaces(self) -> list[SpaceInfo]: def get_space(self, space_key: str) -> SpaceInfo | None: return self._spaces.get(space_key) - def ensure_space(self, model_id: str, dim: int, config: dict | None = None) -> SpaceInfo: - space_key = make_space_key(model_id) + def ensure_space( + self, + model_id: str, + dim: int, + config: dict | None = None, + space_key: str | None = None, + ) -> SpaceInfo: + if space_key is None: + space_key = make_space_key(model_id) if space_key in self._spaces: existing = self._spaces[space_key] if existing.dim != dim: diff --git a/src/hyperview/storage/schema.py b/src/hyperview/storage/schema.py index 1f1a14d..aea9551 100644 --- a/src/hyperview/storage/schema.py +++ b/src/hyperview/storage/schema.py @@ -233,6 +233,7 @@ def make_space_key(model_id: str) -> str: """Generate a space_key from a model_id. For simplicity, this is just the slugified model_id. + For provider-aware keys, use `make_provider_aware_space_key` from providers.py. """ return slugify_model_id(model_id) From ce7e7ac770d6a562840b8cf4f303fa622a4800b8 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Wed, 21 Jan 2026 21:47:09 +0100 Subject: [PATCH 35/75] refactor: code cleanup and quality improvements Backend: - Extract _sql_escape() helper in LanceDB backend, unify chunk sizes - Introduce FastAPI Depends(get_dataset) pattern in server/app.py - Simplify Sample class: extract _encode_thumbnail(), remove SampleFromArray - Clean up projection.py: suppress UMAP gradient warning, streamline comments - Simplify provider registry: add silent param to _try_auto_register() - Remove redundant dependency checks in hycoclip_onnx provider - Use specific ImportError instead of broad Exception in api.py Frontend: - Fix error type checking: use instanceof DOMException for AbortError - Remove unnecessary 'as any' cast in useHyperScatter cleanup --- frontend/src/app/page.tsx | 3 +- frontend/src/components/useHyperScatter.ts | 2 +- src/hyperview/api.py | 2 +- src/hyperview/core/dataset.py | 5 - src/hyperview/core/sample.py | 48 +------ src/hyperview/embeddings/compute.py | 20 +-- src/hyperview/embeddings/projection.py | 126 ++++-------------- .../embeddings/providers/__init__.py | 84 +++++------- .../embeddings/providers/hycoclip.py | 26 +--- .../embeddings/providers/hycoclip_onnx.py | 53 ++------ src/hyperview/server/app.py | 94 +++++-------- src/hyperview/storage/lancedb_backend.py | 52 +++----- 12 files changed, 134 insertions(+), 381 deletions(-) diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index 9dd6c5c..12dd689 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -148,8 +148,7 @@ export default function Home() { if (abort.signal.aborted) return; setLassoResults(res.samples, res.total, false); } catch (err) { - // Ignore cancellation. - if ((err as any)?.name === "AbortError") return; + if (err instanceof DOMException && err.name === "AbortError") return; console.error("Failed to fetch lasso selection:", err); setLassoResults([], 0, false); } diff --git a/frontend/src/components/useHyperScatter.ts b/frontend/src/components/useHyperScatter.ts index e501f3a..ca20649 100644 --- a/frontend/src/components/useHyperScatter.ts +++ b/frontend/src/components/useHyperScatter.ts @@ -359,7 +359,7 @@ export function useHyperScatter({ }; canvas.addEventListener("wheel", onWheel, { passive: false }); - return () => canvas.removeEventListener("wheel", onWheel as any); + return () => canvas.removeEventListener("wheel", onWheel); }, [getCanvasPos, requestRender]); // Pointer interactions diff --git a/src/hyperview/api.py b/src/hyperview/api.py index 0ca9516..9042970 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -391,5 +391,5 @@ def _is_colab() -> bool: import google.colab # type: ignore[import-not-found] return True - except Exception: + except ImportError: return False diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 23009b1..18ee2fb 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -598,16 +598,11 @@ def get_lasso_candidates_aabb( def save(self, filepath: str, include_thumbnails: bool = True) -> None: """Export dataset to a JSON file. - Note: For persistent datasets (default), data is automatically saved. - This method is for exporting to JSON format for sharing or backup. - Args: filepath: Path to save the JSON file. include_thumbnails: Whether to include cached thumbnails. """ samples = self._storage.get_all_samples() - - # Cache thumbnails before saving if requested if include_thumbnails: for s in samples: s.cache_thumbnail() diff --git a/src/hyperview/core/sample.py b/src/hyperview/core/sample.py index cd4c84e..78623ba 100644 --- a/src/hyperview/core/sample.py +++ b/src/hyperview/core/sample.py @@ -5,7 +5,6 @@ from pathlib import Path from typing import Any -import numpy as np from PIL import Image from pydantic import BaseModel, Field @@ -40,29 +39,23 @@ def get_thumbnail(self, size: tuple[int, int] = (128, 128)) -> Image.Image: img.thumbnail(size, Image.Resampling.LANCZOS) return img - def get_thumbnail_base64(self, size: tuple[int, int] = (128, 128)) -> str: - """Get thumbnail as base64 encoded string.""" - # Return cached thumbnail if available - if self.thumbnail_base64: - return self.thumbnail_base64 - + def _encode_thumbnail(self, size: tuple[int, int] = (128, 128)) -> str: + """Encode thumbnail as base64 JPEG.""" thumb = self.get_thumbnail(size) - # Convert to RGB if necessary (for PNG with alpha) if thumb.mode in ("RGBA", "P"): thumb = thumb.convert("RGB") buffer = io.BytesIO() thumb.save(buffer, format="JPEG", quality=85) return base64.b64encode(buffer.getvalue()).decode("utf-8") + def get_thumbnail_base64(self, size: tuple[int, int] = (128, 128)) -> str: + """Get thumbnail as base64 encoded string.""" + return self.thumbnail_base64 or self._encode_thumbnail(size) + def cache_thumbnail(self, size: tuple[int, int] = (128, 128)) -> None: """Cache the thumbnail as base64 for persistence.""" if self.thumbnail_base64 is None: - thumb = self.get_thumbnail(size) - if thumb.mode in ("RGBA", "P"): - thumb = thumb.convert("RGB") - buffer = io.BytesIO() - thumb.save(buffer, format="JPEG", quality=85) - self.thumbnail_base64 = base64.b64encode(buffer.getvalue()).decode("utf-8") + self.thumbnail_base64 = self._encode_thumbnail(size) def to_api_dict(self, include_thumbnail: bool = True) -> dict[str, Any]: """Convert to dictionary for API response.""" @@ -78,31 +71,4 @@ def to_api_dict(self, include_thumbnail: bool = True) -> dict[str, Any]: return data -class SampleFromArray(Sample): - """A sample created from a numpy array (e.g., from HuggingFace datasets).""" - - _image_array: np.ndarray | None = None - - @classmethod - def from_array( - cls, - id: str, - image_array: np.ndarray, - label: str | None = None, - metadata: dict[str, Any] | None = None, - ) -> "SampleFromArray": - """Create a sample from a numpy array.""" - sample = cls( - id=id, - filepath=f"memory://{id}", - label=label, - metadata=metadata or {}, - ) - sample._image_array = image_array - return sample - def load_image(self) -> Image.Image: - """Load the image from the array.""" - if self._image_array is not None: - return Image.fromarray(self._image_array) - return super().load_image() diff --git a/src/hyperview/embeddings/compute.py b/src/hyperview/embeddings/compute.py index 78444b4..d2026b5 100644 --- a/src/hyperview/embeddings/compute.py +++ b/src/hyperview/embeddings/compute.py @@ -1,10 +1,4 @@ -"""Image embedding computation via EmbedAnything. - -This module is intentionally minimal: -- Callers pass a HuggingFace `model_id` string. -- We delegate model loading + inference to EmbedAnything. - -""" +"""Image embedding computation via EmbedAnything.""" import os import tempfile @@ -74,14 +68,8 @@ def _embed_pil_image(self, image: Image.Image) -> np.ndarray: def compute_single(self, sample: Sample) -> np.ndarray: """Compute embedding for a single sample.""" - try: - image = self._load_rgb_image(sample) - return self._embed_pil_image(image) - except Exception as exc: - raise RuntimeError( - f"Failed to compute embedding for sample {sample.id} " - f"(filepath={sample.filepath}, model_id={self.model_id})" - ) from exc + image = self._load_rgb_image(sample) + return self._embed_pil_image(image) def compute_batch( self, @@ -92,8 +80,6 @@ def compute_batch( """Compute embeddings for a list of samples.""" if batch_size <= 0: raise ValueError("batch_size must be > 0") - - # Prime model init so download errors happen before work starts. self._get_model() if show_progress: diff --git a/src/hyperview/embeddings/projection.py b/src/hyperview/embeddings/projection.py index 4b81a1c..83dff50 100644 --- a/src/hyperview/embeddings/projection.py +++ b/src/hyperview/embeddings/projection.py @@ -1,6 +1,7 @@ """Projection methods for dimensionality reduction.""" import logging +import warnings import numpy as np import umap @@ -135,20 +136,7 @@ def project_umap( n_components: int = 2, random_state: int = 42, ) -> np.ndarray: - """Project embeddings to Euclidean 2D using UMAP. - - Args: - embeddings: High-dimensional embeddings (N x D). - n_neighbors: Number of neighbors for UMAP. - min_dist: Minimum distance between points. - metric: Distance metric to use. - n_components: Number of output dimensions. - random_state: Random seed for reproducibility. - - Returns: - 2D coordinates (N x 2). - """ - # Safety check for small datasets + """Project embeddings to Euclidean 2D using UMAP.""" n_neighbors = min(n_neighbors, len(embeddings) - 1) if n_neighbors < 2: n_neighbors = 2 @@ -165,8 +153,6 @@ def project_umap( ) coords = reducer.fit_transform(embeddings) - - # Normalize to [-1, 1] range for visualization consistency coords = self._normalize_coords(coords) return coords @@ -179,56 +165,35 @@ def project_to_poincare( metric: str = "cosine", random_state: int = 42, ) -> np.ndarray: - """Project embeddings to the Poincaré disk. - - This uses UMAP with a hyperbolic output metric. UMAP computes the embedding - in the Hyperboloid model (Lorentz model). We then project this to the - Poincaré disk. - - Args: - embeddings: High-dimensional embeddings (N x D). - n_neighbors: Number of neighbors for UMAP. - min_dist: Minimum distance between points. - metric: Input distance metric. - random_state: Random seed for reproducibility. - - Returns: - 2D coordinates in Poincaré disk (N x 2), with norm < 1. - """ - # Safety check for small datasets + """Project embeddings to the Poincaré disk using UMAP with hyperboloid output.""" n_neighbors = min(n_neighbors, len(embeddings) - 1) if n_neighbors < 2: n_neighbors = 2 n_jobs = 1 if random_state is not None else -1 - # The time-like coordinate t is implicit: t = sqrt(1 + x^2 + y^2). - reducer = umap.UMAP( - n_neighbors=n_neighbors, - min_dist=min_dist, - n_components=2, # We want a 2D manifold - metric=metric, - output_metric="hyperboloid", - random_state=random_state, - n_jobs=n_jobs, - ) - # These are spatial coordinates (x, y) in the Hyperboloid model - spatial_coords = reducer.fit_transform(embeddings) + # Suppress warning about missing gradient for poincare metric (only affects inverse_transform) + with warnings.catch_warnings(): + warnings.filterwarnings("ignore", message="gradient function is not yet implemented") + reducer = umap.UMAP( + n_neighbors=n_neighbors, + min_dist=min_dist, + n_components=2, + metric=metric, + output_metric="hyperboloid", + random_state=random_state, + n_jobs=n_jobs, + ) + spatial_coords = reducer.fit_transform(embeddings) - # Calculate implicit time coordinate t - # t = sqrt(1 + x^2 + y^2) - # Note: In some conventions it's t^2 - x^2 - y^2 = 1, so t = sqrt(1 + r^2) squared_norm = np.sum(spatial_coords**2, axis=1) t = np.sqrt(1 + squared_norm) - # Project to Poincaré disk - # Formula: u = x / (1 + t) - # This maps the upper sheet of the hyperboloid (t >= 1) to the unit disk. + # Project to Poincaré disk: u = x / (1 + t) denom = 1 + t poincare_coords = spatial_coords / denom[:, np.newaxis] - # Ensure numerical stability - clamp to slightly less than 1.0 if needed - # theoretically it should be < 1, but float precision might cause issues + # Clamp to unit disk for numerical stability radii = np.linalg.norm(poincare_coords, axis=1) max_radius = 0.999 mask = radii > max_radius @@ -238,12 +203,7 @@ def project_to_poincare( poincare_coords[mask] / radii[mask][:, np.newaxis] * max_radius ) - # Center the embeddings in the Poincaré disk poincare_coords = self._center_poincare(poincare_coords) - - # Apply radial scaling to reduce crowding at the boundary - # This effectively "zooms out" in hyperbolic space, pulling points - # towards the center for better visualization. poincare_coords = self._scale_poincare(poincare_coords, factor=0.65) return poincare_coords @@ -251,57 +211,32 @@ def project_to_poincare( def _scale_poincare(self, coords: np.ndarray, factor: float) -> np.ndarray: """Scale points towards the origin in hyperbolic space. - This scales the hyperbolic distance from the origin by `factor`. - If factor < 1, points move closer to the center. + Scales hyperbolic distance from origin by `factor`. If factor < 1, points move closer to center. """ radii = np.linalg.norm(coords, axis=1) - # Avoid division by zero mask = radii > 1e-6 - # Calculate hyperbolic distance from origin - # d = 2 * arctanh(r) - # We want d_new = factor * d - # r_new = tanh(d_new / 2) = tanh(factor * arctanh(r)) - - # Use numpy operations for efficiency r = radii[mask] - # Clip r to avoid infinity in arctanh r = np.minimum(r, 0.9999999) - - # d = 2 * np.arctanh(r) - # r_new = np.tanh(factor * d / 2) - # Simplified: r_new = tanh(factor * arctanh(r)) r_new = np.tanh(factor * np.arctanh(r)) - # Update coordinates - # new_coords = coords * (r_new / r) scale_ratios = np.ones_like(radii) scale_ratios[mask] = r_new / r return coords * scale_ratios[:, np.newaxis] def _center_poincare(self, coords: np.ndarray) -> np.ndarray: - """Center points in the Poincaré disk using a Möbius transformation. - - This moves the geometric centroid of the points to the origin. - """ + """Center points in the Poincaré disk using a Möbius transformation.""" if len(coords) == 0: return coords - # Treat as complex numbers for easier Möbius math z = coords[:, 0] + 1j * coords[:, 1] - - # Compute the centroid (Euclidean mean in the disk) - # This is a heuristic; the true hyperbolic center of mass is harder - # but this works well for visualization centering. centroid = np.mean(z) - # If centroid is too close to boundary, don't center (unstable) if np.abs(centroid) > 0.99 or np.abs(centroid) < 1e-6: return coords - # Möbius transformation to move centroid to origin: - # w = (z - a) / (1 - conj(a) * z) + # Möbius transformation: w = (z - a) / (1 - conj(a) * z) a = centroid w = (z - a) / (1 - np.conj(a) * z) @@ -312,34 +247,19 @@ def _normalize_coords(self, coords: np.ndarray) -> np.ndarray: if len(coords) == 0: return coords - # Center the coordinates coords = coords - coords.mean(axis=0) - - # Scale to fit in [-1, 1] max_abs = np.abs(coords).max() if max_abs > 0: - coords = coords / max_abs * 0.95 # Leave some margin + coords = coords / max_abs * 0.95 return coords def poincare_distance(self, u: np.ndarray, v: np.ndarray) -> float: - """Compute the Poincaré distance between two points. - - Args: - u: First point in Poincaré disk. - v: Second point in Poincaré disk. - - Returns: - Hyperbolic distance. - """ + """Compute the Poincaré distance between two points.""" u_norm_sq = np.sum(u**2) v_norm_sq = np.sum(v**2) diff_norm_sq = np.sum((u - v) ** 2) - # Poincaré distance formula - # d(u, v) = arccosh(1 + 2 * |u-v|^2 / ((1-|u|^2)(1-|v|^2))) - - # Clip values to avoid division by zero or negative logs u_norm_sq = min(u_norm_sq, 0.99999) v_norm_sq = min(v_norm_sq, 0.99999) diff --git a/src/hyperview/embeddings/providers/__init__.py b/src/hyperview/embeddings/providers/__init__.py index 27f8f87..55fca86 100644 --- a/src/hyperview/embeddings/providers/__init__.py +++ b/src/hyperview/embeddings/providers/__init__.py @@ -1,19 +1,9 @@ -"""Embedding provider abstraction for HyperView. - -This module defines a pluggable provider interface for computing embeddings -from different sources (EmbedAnything, HyCoCLIP, HuggingFace Transformers, etc.). - -Design principles: -- Default path stays lightweight (EmbedAnything) -- Heavy integrations are opt-in with clear dependency errors -- Embedding geometry (euclidean, hyperboloid) is tracked explicitly -- ModelSpec provides structured config that persists to SpaceInfo.config_json -- Providers are singletons to preserve model state across calls -""" +"""Embedding provider abstraction for HyperView.""" from __future__ import annotations import hashlib +from importlib import import_module import json from abc import ABC, abstractmethod from dataclasses import dataclass @@ -24,11 +14,6 @@ from hyperview.core.sample import Sample -# --------------------------------------------------------------------------- -# ModelSpec: structured config for any embedding model -# --------------------------------------------------------------------------- - - @dataclass class ModelSpec: """Structured specification for an embedding model. @@ -72,7 +57,7 @@ def from_dict(cls, d: dict[str, Any]) -> ModelSpec: model_id=d["model_id"], checkpoint=d.get("checkpoint"), config_path=d.get("config_path"), - output_geometry=d.get("geometry", d.get("output_geometry", "euclidean")), + output_geometry=d.get("geometry", "euclidean"), curvature=d.get("curvature"), ) @@ -82,11 +67,6 @@ def content_hash(self) -> str: return hashlib.sha256(content.encode()).hexdigest()[:12] -# --------------------------------------------------------------------------- -# Base class for providers -# --------------------------------------------------------------------------- - - class BaseEmbeddingProvider(ABC): """Base class for embedding providers.""" @@ -127,17 +107,17 @@ def get_space_config(self, model_spec: ModelSpec, dim: int) -> dict[str, Any]: } -# --------------------------------------------------------------------------- -# Provider registry (singleton instances) -# --------------------------------------------------------------------------- - -# Registry stores provider classes _PROVIDER_CLASSES: dict[str, type[BaseEmbeddingProvider]] = {} - -# Cache stores singleton instances _PROVIDER_INSTANCES: dict[str, BaseEmbeddingProvider] = {} +_KNOWN_PROVIDER_MODULES: dict[str, str] = { + "embed_anything": "hyperview.embeddings.providers.embed_anything", + "hycoclip": "hyperview.embeddings.providers.hycoclip", + "hycoclip_onnx": "hyperview.embeddings.providers.hycoclip_onnx", +} + + def register_provider(provider_id: str, provider_class: type[BaseEmbeddingProvider]) -> None: """Register a new embedding provider class.""" _PROVIDER_CLASSES[provider_id] = provider_class @@ -145,18 +125,27 @@ def register_provider(provider_id: str, provider_class: type[BaseEmbeddingProvid _PROVIDER_INSTANCES.pop(provider_id, None) -def _try_auto_register(provider_id: str) -> None: - """Attempt to auto-register a provider by importing its module.""" - module_map = { - "embed_anything": "hyperview.embeddings.providers.embed_anything", - "hycoclip": "hyperview.embeddings.providers.hycoclip", - "hycoclip_onnx": "hyperview.embeddings.providers.hycoclip_onnx", - } - if provider_id in module_map: +def _try_auto_register(provider_id: str, *, silent: bool = True) -> None: + """Attempt to auto-register a provider by importing its module. + + Args: + provider_id: Provider identifier. + silent: If True, swallow ImportError (used when listing providers). + If False, let ImportError propagate (used when explicitly requesting + a provider via get_provider()). + """ + + module_name = _KNOWN_PROVIDER_MODULES.get(provider_id) + if not module_name: + return + + if silent: try: - __import__(module_map[provider_id]) + import_module(module_name) except ImportError: - pass + return + else: + import_module(module_name) def get_provider(provider_id: str) -> BaseEmbeddingProvider: @@ -165,7 +154,7 @@ def get_provider(provider_id: str) -> BaseEmbeddingProvider: Providers are cached to preserve model state across calls. """ if provider_id not in _PROVIDER_CLASSES: - _try_auto_register(provider_id) + _try_auto_register(provider_id, silent=False) if provider_id not in _PROVIDER_CLASSES: available = ", ".join(sorted(_PROVIDER_CLASSES.keys())) or "(none registered)" @@ -183,16 +172,11 @@ def get_provider(provider_id: str) -> BaseEmbeddingProvider: def list_providers() -> list[str]: """List available provider IDs.""" # Trigger auto-registration for known providers - for pid in ["embed_anything", "hycoclip", "hycoclip_onnx"]: - _try_auto_register(pid) + for pid in _KNOWN_PROVIDER_MODULES: + _try_auto_register(pid, silent=True) return list(_PROVIDER_CLASSES.keys()) -# --------------------------------------------------------------------------- -# Helper: generate provider-aware space_key -# --------------------------------------------------------------------------- - - def make_provider_aware_space_key(model_spec: ModelSpec) -> str: """Generate a collision-resistant space_key from a ModelSpec. @@ -206,10 +190,6 @@ def make_provider_aware_space_key(model_spec: ModelSpec) -> str: return f"{model_spec.provider}__{slug}__{content_hash}" -# --------------------------------------------------------------------------- -# Public exports -# --------------------------------------------------------------------------- - __all__ = [ "BaseEmbeddingProvider", "ModelSpec", diff --git a/src/hyperview/embeddings/providers/hycoclip.py b/src/hyperview/embeddings/providers/hycoclip.py index 7f4f267..3f8a81c 100644 --- a/src/hyperview/embeddings/providers/hycoclip.py +++ b/src/hyperview/embeddings/providers/hycoclip.py @@ -32,10 +32,6 @@ __all__ = ["HyCoCLIPProvider"] -# ----------------------------------------------------------------------------- -# Known checkpoints (auto-download from HuggingFace) -# ----------------------------------------------------------------------------- - HYCOCLIP_CHECKPOINTS: dict[str, str] = { "hycoclip_vit_s": "hf://avik-pal/hycoclip#hycoclip_vit_s.pth", "hycoclip_vit_b": "hf://avik-pal/hycoclip#hycoclip_vit_b.pth", @@ -44,11 +40,6 @@ } -# ----------------------------------------------------------------------------- -# Hyperboloid math -# ----------------------------------------------------------------------------- - - def _exp_map_lorentz(x: "torch.Tensor", c: float) -> "torch.Tensor": """Exponential map from tangent space at the hyperboloid vertex. @@ -87,10 +78,6 @@ def _exp_map_lorentz(x: "torch.Tensor", c: float) -> "torch.Tensor": t = torch.sqrt((1.0 / c) + torch.sum(spatial * spatial, dim=-1, keepdim=True)) return torch.cat([t, spatial], dim=-1) -# ----------------------------------------------------------------------------- -# ViT Image Encoder -# ----------------------------------------------------------------------------- - def _create_encoder( embed_dim: int = 512, @@ -154,11 +141,6 @@ def _load_encoder(checkpoint_path: str, device: str = "cpu") -> Any: return model.to(device).eval() -# ----------------------------------------------------------------------------- -# Provider -# ----------------------------------------------------------------------------- - - class HyCoCLIPProvider(BaseEmbeddingProvider): """Clean HyCoCLIP provider (PyTorch) - no hycoclip package dependency. @@ -201,13 +183,7 @@ def _resolve_checkpoint(self, checkpoint: str) -> Path: """Resolve checkpoint path, downloading from HuggingFace if needed.""" # Handle HuggingFace Hub URLs: hf://repo_id#filename if checkpoint.startswith("hf://"): - try: - from huggingface_hub import hf_hub_download - except ImportError as exc: - raise ImportError( - "hf:// checkpoints require huggingface_hub. " - "Install with: uv add huggingface-hub" - ) from exc + from huggingface_hub import hf_hub_download path = checkpoint[5:] if "#" not in path: diff --git a/src/hyperview/embeddings/providers/hycoclip_onnx.py b/src/hyperview/embeddings/providers/hycoclip_onnx.py index e02f6aa..4333063 100644 --- a/src/hyperview/embeddings/providers/hycoclip_onnx.py +++ b/src/hyperview/embeddings/providers/hycoclip_onnx.py @@ -34,36 +34,8 @@ __all__ = ["HyCoCLIPOnnxProvider"] -# --------------------------------------------------------------------------- -# Dependency checking -# --------------------------------------------------------------------------- - - -def _check_onnxruntime() -> bool: - try: - import onnxruntime # noqa: F401 - - return True - except ImportError: - return False - - -def _require_dependencies() -> None: - if not _check_onnxruntime(): - raise ImportError( - "HyCoCLIP ONNX provider requires onnxruntime.\n\n" - "It should already be installed via embed-anything.\n" - "If not, install with: uv add onnxruntime" - ) - - -# --------------------------------------------------------------------------- -# Preprocessing (pure PIL+numpy) -# --------------------------------------------------------------------------- - - -def _preprocess_rgb_image_to_bchw_float01(img: Any, size: int = 224) -> np.ndarray: - """Resize shortest side to 224, center crop, return (1,3,H,W) float32 in [0,1].""" +def _preprocess_rgb_image_to_chw_float01(img: Any, size: int = 224) -> np.ndarray: + """Resize shortest side to `size`, center crop, return (3,H,W) float32 in [0,1].""" from PIL import Image if not isinstance(img, Image.Image): @@ -84,14 +56,9 @@ def _preprocess_rgb_image_to_bchw_float01(img: Any, size: int = 224) -> np.ndarr top = int(round((new_h - size) / 2.0)) img = img.crop((left, top, left + size, top + size)) - arr = np.asarray(img, dtype=np.float32) / 255.0 # HWC in [0,1] - arr = np.transpose(arr, (2, 0, 1)) # CHW - return arr[None, ...] # BCHW - - -# --------------------------------------------------------------------------- -# Provider -# --------------------------------------------------------------------------- + arr = np.asarray(img, dtype=np.float32) / 255.0 + arr = np.transpose(arr, (2, 0, 1)) + return arr class HyCoCLIPOnnxProvider(BaseEmbeddingProvider): @@ -134,8 +101,6 @@ def _resolve_onnx_path(self, model_spec: ModelSpec) -> Path: return path def _ensure_session(self, model_spec: ModelSpec) -> None: - _require_dependencies() - if self._session is not None and self._model_spec == model_spec: return @@ -144,8 +109,7 @@ def _ensure_session(self, model_spec: ModelSpec) -> None: onnx_path = self._resolve_onnx_path(model_spec) # Default to CPU for maximum compatibility. - get_available = getattr(ort, "get_available_providers", None) - available = get_available() if callable(get_available) else ["CPUExecutionProvider"] + available = ort.get_available_providers() providers = ["CPUExecutionProvider"] if "CPUExecutionProvider" in available else list(available) self._session = ort.InferenceSession(str(onnx_path), providers=providers) @@ -175,7 +139,6 @@ def compute_embeddings( emb_name = "embedding_hyperboloid" if "embedding_hyperboloid" in output_names else output_names[0] curv_name = "curvature" if "curvature" in output_names else None - # NOTE: Current torch.onnx export is only reliable for batch_size=1. if batch_size != 1 and show_progress: print("HyCoCLIP-ONNX export currently runs with batch_size=1; overriding") batch_size = 1 @@ -194,8 +157,8 @@ def compute_embeddings( img.load() if img.mode != "RGB": img = img.convert("RGB") - bchw = _preprocess_rgb_image_to_bchw_float01(img.copy(), size=224) - images.append(bchw[0]) # CHW + chw = _preprocess_rgb_image_to_chw_float01(img.copy(), size=224) + images.append(chw) batch_np = np.stack(images, axis=0).astype(np.float32) diff --git a/src/hyperview/server/app.py b/src/hyperview/server/app.py index cb10f2d..3607d18 100644 --- a/src/hyperview/server/app.py +++ b/src/hyperview/server/app.py @@ -4,7 +4,7 @@ from pathlib import Path from typing import Any -from fastapi import FastAPI, HTTPException, Query +from fastapi import Depends, FastAPI, HTTPException, Query from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import JSONResponse from fastapi.staticfiles import StaticFiles @@ -134,6 +134,12 @@ def create_app(dataset: Dataset | None = None, session_id: str | None = None) -> version="0.1.0", ) + def get_dataset() -> Dataset: + """Dependency that returns the current dataset or raises 404.""" + if _current_dataset is None: + raise HTTPException(status_code=404, detail="No dataset loaded") + return _current_dataset + # CORS middleware for development app.add_middleware( CORSMiddleware, @@ -154,38 +160,32 @@ async def hyperview_health(): } @app.get("/api/dataset", response_model=DatasetResponse) - async def get_dataset_info(): + async def get_dataset_info(ds: Dataset = Depends(get_dataset)): """Get dataset metadata.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - - spaces = _current_dataset.list_spaces() + spaces = ds.list_spaces() space_dicts = [s.to_api_dict() for s in spaces] - layouts = _current_dataset.list_layouts() + layouts = ds.list_layouts() layout_dicts = [l.to_api_dict() for l in layouts] return DatasetResponse( - name=_current_dataset.name, - num_samples=len(_current_dataset), - labels=_current_dataset.labels, - label_colors=_current_dataset.get_label_colors(), + name=ds.name, + num_samples=len(ds), + labels=ds.labels, + label_colors=ds.get_label_colors(), spaces=space_dicts, layouts=layout_dicts, ) @app.get("/api/samples") async def get_samples( + ds: Dataset = Depends(get_dataset), offset: int = Query(0, ge=0), limit: int = Query(100, ge=1, le=1000), label: str | None = None, ): """Get paginated samples with thumbnails.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - - # Use backend-native pagination (avoids loading all samples) - samples, total = _current_dataset.get_samples_paginated( + samples, total = ds.get_samples_paginated( offset=offset, limit=limit, label=label ) @@ -197,34 +197,24 @@ async def get_samples( } @app.get("/api/samples/{sample_id}", response_model=SampleResponse) - async def get_sample(sample_id: str): + async def get_sample(sample_id: str, ds: Dataset = Depends(get_dataset)): """Get a single sample by ID.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - try: - sample = _current_dataset[sample_id] + sample = ds[sample_id] return SampleResponse(**sample.to_api_dict()) except KeyError: raise HTTPException(status_code=404, detail=f"Sample not found: {sample_id}") @app.post("/api/samples/batch") - async def get_samples_batch(request: SelectionRequest): + async def get_samples_batch(request: SelectionRequest, ds: Dataset = Depends(get_dataset)): """Get multiple samples by their IDs.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - - samples = _current_dataset.get_samples_by_ids(request.sample_ids) - + samples = ds.get_samples_by_ids(request.sample_ids) return {"samples": [s.to_api_dict(include_thumbnail=True) for s in samples]} @app.get("/api/embeddings", response_model=EmbeddingsResponse) - async def get_embeddings(layout_key: str | None = None): + async def get_embeddings(ds: Dataset = Depends(get_dataset), layout_key: str | None = None): """Get embedding coordinates for visualization.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - - layouts = _current_dataset.list_layouts() + layouts = ds.list_layouts() if not layouts: raise HTTPException( status_code=400, detail="No layouts computed. Call compute_visualization() first." @@ -240,7 +230,7 @@ async def get_embeddings(layout_key: str | None = None): if layout_info is None: raise HTTPException(status_code=404, detail=f"Layout not found: {layout_key}") - ids, labels, coords = _current_dataset.get_visualization_data(layout_key) + ids, labels, coords = ds.get_visualization_data(layout_key) if not ids: raise HTTPException(status_code=400, detail=f"No data in layout '{layout_key}'.") @@ -251,25 +241,19 @@ async def get_embeddings(layout_key: str | None = None): ids=ids, labels=labels, coords=coords.tolist(), - label_colors=_current_dataset.get_label_colors(), + label_colors=ds.get_label_colors(), ) @app.get("/api/spaces") - async def get_spaces(): + async def get_spaces(ds: Dataset = Depends(get_dataset)): """Get all embedding spaces.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - - spaces = _current_dataset.list_spaces() + spaces = ds.list_spaces() return {"spaces": [s.to_api_dict() for s in spaces]} @app.get("/api/layouts") - async def get_layouts(): + async def get_layouts(ds: Dataset = Depends(get_dataset)): """Get all available layouts.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - - layouts = _current_dataset.list_layouts() + layouts = ds.list_layouts() return {"layouts": [l.to_api_dict() for l in layouts]} @app.post("/api/selection") @@ -278,7 +262,7 @@ async def sync_selection(request: SelectionRequest): return {"status": "ok", "selected": request.sample_ids} @app.post("/api/selection/lasso") - async def lasso_selection(request: LassoSelectionRequest): + async def lasso_selection(request: LassoSelectionRequest, ds: Dataset = Depends(get_dataset)): """Compute a lasso selection over the current embeddings. Returns a total selected count and a paginated page of selected samples. @@ -288,9 +272,6 @@ async def lasso_selection(request: LassoSelectionRequest): by /api/embeddings). - For now we use an in-memory scan with a tight AABB prefilter. """ - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - if request.offset < 0: raise HTTPException(status_code=400, detail="offset must be >= 0") if request.limit < 1 or request.limit > 2000: @@ -312,7 +293,7 @@ async def lasso_selection(request: LassoSelectionRequest): y_min = float(np.min(poly[:, 1])) y_max = float(np.max(poly[:, 1])) - candidate_ids, candidate_coords = _current_dataset.get_lasso_candidates_aabb( + candidate_ids, candidate_coords = ds.get_lasso_candidates_aabb( layout_key=request.layout_key, x_min=x_min, x_max=x_max, @@ -334,7 +315,7 @@ async def lasso_selection(request: LassoSelectionRequest): end = int(request.offset + request.limit) sample_ids = selected_ids[start:end] - samples = _current_dataset.get_samples_by_ids(sample_ids) + samples = ds.get_samples_by_ids(sample_ids) sample_dicts = [s.to_api_dict(include_thumbnail=request.include_thumbnails) for s in samples] return { @@ -348,15 +329,13 @@ async def lasso_selection(request: LassoSelectionRequest): @app.get("/api/search/similar/{sample_id}", response_model=SimilaritySearchResponse) async def search_similar( sample_id: str, + ds: Dataset = Depends(get_dataset), k: int = Query(10, ge=1, le=100), space_key: str | None = None, ): """Return k nearest neighbors for a given sample.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - try: - similar = _current_dataset.find_similar( + similar = ds.find_similar( sample_id, k=k, space_key=space_key ) except ValueError as e: @@ -390,13 +369,10 @@ async def search_similar( ) @app.get("/api/thumbnail/{sample_id}") - async def get_thumbnail(sample_id: str): + async def get_thumbnail(sample_id: str, ds: Dataset = Depends(get_dataset)): """Get thumbnail image for a sample.""" - if _current_dataset is None: - raise HTTPException(status_code=404, detail="No dataset loaded") - try: - sample = _current_dataset[sample_id] + sample = ds[sample_id] thumbnail_b64 = sample.get_thumbnail_base64() return JSONResponse({"thumbnail": thumbnail_b64}) except KeyError: diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py index cf30faa..e9e9eb0 100644 --- a/src/hyperview/storage/lancedb_backend.py +++ b/src/hyperview/storage/lancedb_backend.py @@ -24,6 +24,11 @@ ) +def _sql_escape(value: str) -> str: + """Escape single quotes for SQL WHERE clauses.""" + return value.replace("'", "''") + + class LanceDBBackend(StorageBackend): """LanceDB-based storage backend for HyperView datasets.""" @@ -75,8 +80,7 @@ def add_samples_batch(self, samples: list[Sample]) -> None: def get_sample(self, sample_id: str) -> Sample | None: if self._samples_table is None: return None - safe_id = sample_id.replace("'", "''") - results = self._samples_table.search().where(f"id = '{safe_id}'").limit(1).to_list() + results = self._samples_table.search().where(f"id = '{_sql_escape(sample_id)}'").limit(1).to_list() return dict_to_sample(results[0]) if results else None def get_samples_paginated( @@ -94,8 +98,7 @@ def get_samples_paginated( arrow_table = self._samples_table.search().select(["label"]).to_arrow() mask = pc.fill_null(pc.equal(arrow_table.column("label"), pa.scalar(label)), False) total = pc.sum(pc.cast(mask, pa.int64())).as_py() - safe_label = label.replace("'", "''") - results = self._samples_table.search().where(f"label = '{safe_label}'").offset(offset).limit(limit).to_list() + results = self._samples_table.search().where(f"label = '{_sql_escape(label)}'").offset(offset).limit(limit).to_list() else: total = self._samples_table.count_rows() results = self._samples_table.search().offset(offset).limit(limit).to_list() @@ -116,8 +119,7 @@ def update_samples_batch(self, samples: list[Sample]) -> None: def delete_sample(self, sample_id: str) -> bool: if self._samples_table is None: return False - safe_id = sample_id.replace("'", "''") - self._samples_table.delete(f"id = '{safe_id}'") + self._samples_table.delete(f"id = '{_sql_escape(sample_id)}'") return True def __len__(self) -> int: @@ -134,8 +136,7 @@ def __iter__(self) -> Iterator[Sample]: def __contains__(self, sample_id: str) -> bool: if self._samples_table is None: return False - safe_id = sample_id.replace("'", "''") - return len(self._samples_table.search().where(f"id = '{safe_id}'").limit(1).to_list()) > 0 + return len(self._samples_table.search().where(f"id = '{_sql_escape(sample_id)}'").limit(1).to_list()) > 0 def get_unique_labels(self) -> list[str]: if self._samples_table is None: @@ -150,8 +151,7 @@ def get_existing_ids(self, sample_ids: list[str]) -> set[str]: existing: set[str] = set() for i in range(0, len(sample_ids), 1000): chunk = sample_ids[i : i + 1000] - escaped = [sid.replace("'", "''") for sid in chunk] - id_list = "', '".join(escaped) + id_list = "', '".join(_sql_escape(sid) for sid in chunk) results = self._samples_table.search().where(f"id IN ('{id_list}')").select(["id"]).to_list() existing.update(r["id"] for r in results) return existing @@ -160,10 +160,9 @@ def get_samples_by_ids(self, sample_ids: list[str]) -> list[Sample]: if self._samples_table is None or not sample_ids: return [] rows_by_id: dict[str, dict] = {} - for i in range(0, len(sample_ids), 500): - chunk = sample_ids[i : i + 500] - escaped = [sid.replace("'", "''") for sid in chunk] - id_list = "', '".join(escaped) + for i in range(0, len(sample_ids), 1000): + chunk = sample_ids[i : i + 1000] + id_list = "', '".join(_sql_escape(sid) for sid in chunk) for r in self._samples_table.search().where(f"id IN ('{id_list}')").to_list(): rows_by_id[r["id"]] = r return [dict_to_sample(rows_by_id[sid]) for sid in sample_ids if sid in rows_by_id] @@ -174,8 +173,7 @@ def get_labels_by_ids(self, sample_ids: list[str]) -> dict[str, str | None]: labels: dict[str, str | None] = {} for i in range(0, len(sample_ids), 1000): chunk = sample_ids[i : i + 1000] - escaped = [sid.replace("'", "''") for sid in chunk] - id_list = "', '".join(escaped) + id_list = "', '".join(_sql_escape(sid) for sid in chunk) for r in self._samples_table.search().select(["id", "label"]).where(f"id IN ('{id_list}')").to_list(): labels[r["id"]] = r.get("label") return labels @@ -187,8 +185,7 @@ def list_spaces(self) -> list[SpaceInfo]: return [SpaceInfo.from_dict(r) for r in self._spaces_table.to_arrow().to_pylist()] def get_space(self, space_key: str) -> SpaceInfo | None: - safe_key = space_key.replace("'", "''") - results = self._spaces_table.search().where(f"space_key = '{safe_key}'").limit(1).to_list() + results = self._spaces_table.search().where(f"space_key = '{_sql_escape(space_key)}'").limit(1).to_list() return SpaceInfo.from_dict(results[0]) if results else None def ensure_space( @@ -216,8 +213,7 @@ def ensure_space( return space_info def delete_space(self, space_key: str) -> bool: - safe_key = space_key.replace("'", "''") - self._spaces_table.delete(f"space_key = '{safe_key}'") + self._spaces_table.delete(f"space_key = '{_sql_escape(space_key)}'") emb_table = f"embeddings__{space_key}" if emb_table in self._db.table_names(): self._db.drop_table(emb_table) @@ -241,8 +237,7 @@ def add_embeddings(self, space_key: str, ids: list[str], vectors: np.ndarray) -> ) # Update space count - safe_key = space_key.replace("'", "''") - self._spaces_table.update(where=f"space_key = '{safe_key}'", values={ + self._spaces_table.update(where=f"space_key = '{_sql_escape(space_key)}'", values={ "count": emb_table.count_rows(), "updated_at": int(time.time()) }) @@ -257,8 +252,7 @@ def get_embeddings(self, space_key: str, ids: list[str] | None = None) -> tuple[ emb_table = self._db.open_table(emb_table_name) if ids is not None: - escaped = [sid.replace("'", "''") for sid in ids] - id_list = "', '".join(escaped) + id_list = "', '".join(_sql_escape(sid) for sid in ids) rows = emb_table.search().where(f"id IN ('{id_list}')").to_list() else: rows = emb_table.to_arrow().to_pylist() @@ -295,8 +289,7 @@ def get_layout(self, layout_key: str) -> LayoutInfo | None: table = self._get_layouts_registry_table() if table is None: return None - safe_key = layout_key.replace("'", "''") - rows = table.search().where(f"layout_key = '{safe_key}'").limit(1).to_list() + rows = table.search().where(f"layout_key = '{_sql_escape(layout_key)}'").limit(1).to_list() return LayoutInfo.from_dict(rows[0]) if rows else None def ensure_layout( @@ -329,7 +322,7 @@ def delete_layout(self, layout_key: str) -> bool: self._db.drop_table(table_name) registry = self._get_layouts_registry_table() if registry: - registry.delete(f"layout_key = '{layout_key.replace(chr(39), chr(39)+chr(39))}'") + registry.delete(f"layout_key = '{_sql_escape(layout_key)}'") return True def add_layout_coords(self, layout_key: str, ids: list[str], coords: np.ndarray) -> None: @@ -351,7 +344,7 @@ def add_layout_coords(self, layout_key: str, ids: list[str], coords: np.ndarray) # Update count registry = self._get_layouts_registry_table() if registry: - registry.update(where=f"layout_key = '{layout_key.replace(chr(39), chr(39)+chr(39))}'", values={"count": table.count_rows()}) + registry.update(where=f"layout_key = '{_sql_escape(layout_key)}'", values={"count": table.count_rows()}) def get_layout_coords(self, layout_key: str, ids: list[str] | None = None) -> tuple[list[str], np.ndarray]: table_name = f"layouts__{layout_key}" @@ -360,8 +353,7 @@ def get_layout_coords(self, layout_key: str, ids: list[str] | None = None) -> tu table = self._db.open_table(table_name) if ids is not None: - escaped = [sid.replace("'", "''") for sid in ids] - id_list = "', '".join(escaped) + id_list = "', '".join(_sql_escape(sid) for sid in ids) rows = table.search().where(f"id IN ('{id_list}')").to_list() else: rows = table.to_arrow().to_pylist() From 281a6c9a2b26da2774b0be44f15aa2c334cf6dc5 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Wed, 21 Jan 2026 21:50:42 +0100 Subject: [PATCH 36/75] chore: update frontend static build --- src/hyperview/server/static/404.html | 2 +- src/hyperview/server/static/404/index.html | 2 +- src/hyperview/server/static/__next.__PAGE__.txt | 4 ++-- src/hyperview/server/static/__next._full.txt | 4 ++-- src/hyperview/server/static/__next._head.txt | 2 +- src/hyperview/server/static/__next._index.txt | 2 +- src/hyperview/server/static/__next._tree.txt | 2 +- .../_buildManifest.js | 0 .../_clientMiddlewareManifest.json | 0 .../_ssgManifest.js | 0 .../chunks/{5ee221fbee91a948.js => a096ec8e6ed56d42.js} | 6 +++--- src/hyperview/server/static/_not-found/__next._full.txt | 2 +- src/hyperview/server/static/_not-found/__next._head.txt | 2 +- src/hyperview/server/static/_not-found/__next._index.txt | 2 +- .../server/static/_not-found/__next._not-found.__PAGE__.txt | 2 +- .../server/static/_not-found/__next._not-found.txt | 2 +- src/hyperview/server/static/_not-found/__next._tree.txt | 2 +- src/hyperview/server/static/_not-found/index.html | 2 +- src/hyperview/server/static/_not-found/index.txt | 2 +- src/hyperview/server/static/index.html | 2 +- src/hyperview/server/static/index.txt | 4 ++-- 21 files changed, 23 insertions(+), 23 deletions(-) rename src/hyperview/server/static/_next/static/{dsfUOjSfrev80UbslOps2 => 8FqA-ERyePplcUaEYWohc}/_buildManifest.js (100%) rename src/hyperview/server/static/_next/static/{dsfUOjSfrev80UbslOps2 => 8FqA-ERyePplcUaEYWohc}/_clientMiddlewareManifest.json (100%) rename src/hyperview/server/static/_next/static/{dsfUOjSfrev80UbslOps2 => 8FqA-ERyePplcUaEYWohc}/_ssgManifest.js (100%) rename src/hyperview/server/static/_next/static/chunks/{5ee221fbee91a948.js => a096ec8e6ed56d42.js} (95%) diff --git a/src/hyperview/server/static/404.html b/src/hyperview/server/static/404.html index 0b4f335..7d84c46 100644 --- a/src/hyperview/server/static/404.html +++ b/src/hyperview/server/static/404.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/404/index.html b/src/hyperview/server/static/404/index.html index 0b4f335..7d84c46 100644 --- a/src/hyperview/server/static/404/index.html +++ b/src/hyperview/server/static/404/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/__next.__PAGE__.txt b/src/hyperview/server/static/__next.__PAGE__.txt index 6307709..e475e57 100644 --- a/src/hyperview/server/static/__next.__PAGE__.txt +++ b/src/hyperview/server/static/__next.__PAGE__.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" 2:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/5ee221fbee91a948.js"],"default"] +3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/a096ec8e6ed56d42.js"],"default"] 6:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 7:"$Sreact.suspense" -0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/5ee221fbee91a948.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/a096ec8e6ed56d42.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 8:null diff --git a/src/hyperview/server/static/__next._full.txt b/src/hyperview/server/static/__next._full.txt index 81249c1..119a8ae 100644 --- a/src/hyperview/server/static/__next._full.txt +++ b/src/hyperview/server/static/__next._full.txt @@ -2,14 +2,14 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] 4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/5ee221fbee91a948.js"],"default"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/a096ec8e6ed56d42.js"],"default"] 8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"dsfUOjSfrev80UbslOps2","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/5ee221fbee91a948.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +0:{"P":null,"b":"8FqA-ERyePplcUaEYWohc","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/a096ec8e6ed56d42.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] diff --git a/src/hyperview/server/static/__next._head.txt b/src/hyperview/server/static/__next._head.txt index 9f7894b..a58ca70 100644 --- a/src/hyperview/server/static/__next._head.txt +++ b/src/hyperview/server/static/__next._head.txt @@ -2,6 +2,6 @@ 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/__next._index.txt b/src/hyperview/server/static/__next._index.txt index d86f7a3..2378d67 100644 --- a/src/hyperview/server/static/__next._index.txt +++ b/src/hyperview/server/static/__next._index.txt @@ -2,4 +2,4 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/__next._tree.txt b/src/hyperview/server/static/__next._tree.txt index 812387a..3fa1db9 100644 --- a/src/hyperview/server/static/__next._tree.txt +++ b/src/hyperview/server/static/__next._tree.txt @@ -1,2 +1,2 @@ :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"dsfUOjSfrev80UbslOps2","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_buildManifest.js b/src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_buildManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_buildManifest.js rename to src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_buildManifest.js diff --git a/src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_clientMiddlewareManifest.json b/src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_clientMiddlewareManifest.json similarity index 100% rename from src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_clientMiddlewareManifest.json rename to src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_clientMiddlewareManifest.json diff --git a/src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_ssgManifest.js b/src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_ssgManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/dsfUOjSfrev80UbslOps2/_ssgManifest.js rename to src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_ssgManifest.js diff --git a/src/hyperview/server/static/_next/static/chunks/5ee221fbee91a948.js b/src/hyperview/server/static/_next/static/chunks/a096ec8e6ed56d42.js similarity index 95% rename from src/hyperview/server/static/_next/static/chunks/5ee221fbee91a948.js rename to src/hyperview/server/static/_next/static/chunks/a096ec8e6ed56d42.js index 0c44d77..411bf1b 100644 --- a/src/hyperview/server/static/_next/static/chunks/5ee221fbee91a948.js +++ b/src/hyperview/server/static/_next/static/chunks/a096ec8e6ed56d42.js @@ -1,9 +1,9 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50912,e=>{"use strict";let t,r,n,o,l,s;var i,a,d=e.i(48277),u=e.i(30668);let c=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},f=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var p={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,u.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:s,...i},a)=>(0,u.createElement)("svg",{ref:a,...p,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:f("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(i)&&{"aria-hidden":"true"},...i},[...s.map(([e,t])=>(0,u.createElement)(e,t)),...Array.isArray(l)?l:[l]])),m=(i="grip-vertical",a=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],(r=(0,u.forwardRef)(({className:e,...t},r)=>(0,u.createElement)(h,{ref:r,iconNode:a,className:f(`lucide-${c(i).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${i}`,e),...t}))).displayName=c(i),r);function g(e,t="Assertion error"){if(!e)throw Error(t)}function y({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function b(e,t){return t.sort("horizontal"===e?x:v)}function x(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function v(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function w(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function k(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function S(e){let{element:t,orientation:r,panels:n,separators:o}=e,l=b(r,Array.from(t.children).filter(w).map(e=>({element:e}))).map(({element:e})=>e),s=[],i=!1,a,d=[];for(let t of l)if(t.hasAttribute("data-panel")){let o=n.find(e=>e.element===t);if(o){if(a){let n,l=a.element.getBoundingClientRect(),u=t.getBoundingClientRect();if(i){let e="horizontal"===r?new DOMRect(l.right,l.top,0,l.height):new DOMRect(l.left,l.bottom,l.width,0),t="horizontal"===r?new DOMRect(u.left,u.top,0,u.height):new DOMRect(u.left,u.top,u.width,0);switch(d.length){case 0:n=[e,t];break;case 1:{let o=d[0],s=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},o,l=Number.MAX_VALUE;for(let r of t){let{x:t,y:s}=k(n,r),i="horizontal"===e?t:s;ie.element===t);e?d.push(e):(a=void 0,d=[])}else i=!0;return s}function z({groupSize:e,panelElement:t,styleProp:r}){let n,[o,l]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(l){case"%":n=o/100*e;break;case"px":n=o;break;case"rem":n=o*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=o*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=o/100*window.innerHeight;break;case"vw":n=o/100*window.innerWidth}return n}function j(e){return parseFloat(e.toFixed(3))}function C(e){let{panels:t}=e,r=y({group:e});return 0===r?t.map(e=>({collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:o}=e,l=0;void 0!==o.collapsedSize&&(l=j(z({groupSize:r,panelElement:n,styleProp:o.collapsedSize})/r*100)),void 0!==o.defaultSize&&(t=j(z({groupSize:r,panelElement:n,styleProp:o.defaultSize})/r*100));let s=0;void 0!==o.minSize&&(s=j(z({groupSize:r,panelElement:n,styleProp:o.minSize})/r*100));let i=100;return void 0!==o.maxSize&&(i=j(z({groupSize:r,panelElement:n,styleProp:o.maxSize})/r*100)),{collapsedSize:l,collapsible:!0===o.collapsible,defaultSize:t,minSize:s,maxSize:i,panelId:e.id}})}function E(e,t,r=0){return Math.abs(j(e)-j(t))<=r}let R={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map},M=new class{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,o=Array.from(r);for(let r=0;r=0&&r.splice(e,1)}}};function N(e){let t="function"==typeof e?e(R):e;if(R===t)return R;let r=R;return R={...R,...t},void 0!==t.cursorFlags&&M.emit("cursorFlagsChange",R.cursorFlags),void 0!==t.interactionState&&M.emit("interactionStateChange",R.interactionState),void 0!==t.mountedGroups&&(R.mountedGroups.forEach((e,t)=>{e.derivedPanelConstraints.forEach(n=>{if(n.collapsible){let{layout:o}=r.mountedGroups.get(t)??{};if(o){let r=E(n.collapsedSize,e.layout[n.panelId]),l=E(n.collapsedSize,o[n.panelId]);r&&!l&&(t.inMemoryLastExpandedPanelSizes[n.panelId]=o[n.panelId])}}})}),M.emit("mountedGroupsChange",R.mountedGroups)),R}function L(e,t){return E(e,t)?0:e>t?1:-1}function I({panelConstraints:e,size:t}){let{collapsedSize:r=0,collapsible:n,maxSize:o=100,minSize:l=0}=e;return 0>L(t,l)&&(t=n&&0>L(t,(r+l)/2)?r:l),j(t=Math.min(o,t))}function P({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:o,trigger:l}){if(E(e,0))return t;let s=Object.values(t),i=Object.values(o),a=[...s],[d,u]=n;g(null!=d,"Invalid first pivot index"),g(null!=u,"Invalid second pivot index");let c=0;if("keyboard"===l){{let t=e<0?u:d,n=r[t];g(n,`Panel constraints not found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,o)){let t=i-r;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?d:u,n=r[t];g(n,`No panel constraints found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,i)){let t=r-o;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let t=e<0?1:-1,n=e<0?u:d,o=0;for(;;){let e=s[n];if(g(null!=e,`Previous layout not found for panel index ${n}`),o+=I({panelConstraints:r[n],size:100})-e,(n+=t)<0||n>=r.length)break}let l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let t=e<0?d:u;for(;t>=0&&t=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r=0&&n0?n--:n++}}}if(!E(Object.values(a).reduce((e,t)=>t+e,0),100,.1))return o;let f=Object.keys(o);return a.reduce((e,t,r)=>(e[f[r]]=t,e),{})}function O(e){let{mountedGroups:t}=R;for(let[r]of t)if(r.separators.some(t=>t.element===e))return r;throw Error("Could not find parent Group for separator element")}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==L(e[r],t[r]))return!1;return!0}function A({layout:e,panelConstraints:t}){let r=[...Object.values(e)],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!E(n,100)&&r.length>0)for(let e=0;e(e[l[r]]=t,e),{})}function D({groupId:e}){let t=()=>{let{mountedGroups:t}=R;for(let[r,n]of t)if(r.id===e)return{group:r,...n};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:o,layout:l,separatorToPanels:s}=t(),i=A({layout:e,panelConstraints:n});return r?l:(T(l,i)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(o,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:i,separatorToPanels:s})})),i)}}}function F(e){let{mountedGroups:t}=R,r=t.get(e);return g(r,`Mounted Group ${e.id} not found`),r}function $(e,t){let r=O(e),n=F(r),o=r.separators.find(t=>t.element===e);g(o,"Matching separator not found");let l=n.separatorToPanels.get(o);g(l,"Matching panels not found");let s=l.map(e=>r.panels.indexOf(e)),i=D({groupId:r.id}).getLayout(),a=A({layout:P({delta:t,initialLayout:i,panelConstraints:n.derivedPanelConstraints,pivotIndices:s,prevLayout:i,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(i,a)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,layout:a,separatorToPanels:n.separatorToPanels})}))}function _(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=O(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&$(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&$(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&$(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&$(t,-5);break;case"End":e.preventDefault(),$(t,100);break;case"Enter":{e.preventDefault();let r=O(t),{derivedPanelConstraints:n,layout:o,separatorToPanels:l}=F(r),s=r.separators.find(e=>e.element===t);g(s,"Matching separator not found");let i=l.get(s);g(i,"Matching panels not found");let a=i[0],d=n.find(e=>e.panelId===a.id);if(g(d,"Panel metadata not found"),d.collapsible){let e=o[a.id];$(t,(d.collapsedSize===e?r.inMemoryLastExpandedPanelSizes[a.id]??d.minSize:d.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=O(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);g(null!==n,"Index not found");let o=e.shiftKey?n>0?n-1:r.length-1:n+1e,W=()=>{},B=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function V(e){let t=e.length;for(;t--;){let r=e[t];if(g(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(U(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||B.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function K(e){return e&&Number(getComputedStyle(e).zIndex)||0}function H(e){let t=[];for(;e;)t.push(e),e=U(e);return t}function U(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function q(e,r){let n=[];return r.forEach((r,o)=>{if(o.disabled)return;let l=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?10:5,s=S(o),i=function(e,t,r){let n,o={x:1/0,y:1/0};for(let l of t){let t=k(r,l.rect);switch(e){case"horizontal":t.x<=o.x&&(n=l,o=t);break;case"vertical":t.y<=o.y&&(n=l,o=t)}}return n?{distance:o,hitRegion:n}:void 0}(o.orientation,s,{x:e.clientX,y:e.clientY});i&&i.distance.x<=l&&i.distance.y<=l&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!w(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:H(e),b:H(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;g(r,"Stacking order can only be calculated for elements with a common ancestor");let o={a:K(V(n.a)),b:K(V(n.b))};if(o.a===o.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},o=e.length;for(;o--;){let r=e[o];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(o.a-o.b)}(r,e)>0){let o=r;for(;o;){var n;if(o.contains(e))break;if(n=o.getBoundingClientRect(),n.xt.x&&n.yt.y)return!1;o=o.parentElement}}return!0}({groupElement:o.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function Y(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{mountedGroups:t}=R,r=q(e,t),n=new Set,o=new Set,l=new Set,s=new Map,i=!1;r.forEach(e=>{n.add(e.group),e.panels.forEach(e=>{o.add(e)}),e.separator&&(l.add(e.separator),i||(i=!0,e.separator.element.focus()));let r=t.get(e.group);r&&s.set(e.group,r.layout)}),N({interactionState:{hitRegions:r,initialLayoutMap:s,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),r.length&&e.preventDefault()}let Q=new WeakMap;function X(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=Q.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[r]);let{cursorFlags:n,interactionState:o}=R;switch(o.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,o=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":o++}})}if(0===n&&0===o)return null;if("active"===r){let t=(4&e)!=0,r=(8&e)!=0;if(e){if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}}return n>0&&o>0?"move":n>0?"ew-resize":"ns-resize"}({cursorFlags:n,groups:o.hitRegions.map(e=>e.group),state:o.state}),l=`*{cursor: ${e} !important; ${"active"===o.state?"touch-action: none;":""} }`;if(t===l)return;t=l,e?0===r.cssRules.length?r.insertRule(l):r.replaceSync(l):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}Q.set(e,{prevStyle:t,styleSheet:r})}function Z({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:l}){let s=0,i=new Map(o);r.forEach(e=>{let{group:r,groupSize:a}=e,{disableCursor:d,orientation:u,panels:c}=r,f=0;f=l?"horizontal"===u?(t.clientX-l.x)/a*100:(t.clientY-l.y)/a*100:"horizontal"===u?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:g,separatorToPanels:y}=o.get(r)??{defaultLayoutDeferred:!1};if(m&&p&&g&&y){let t=P({delta:f,initialLayout:p,panelConstraints:m,pivotIndices:e.panels.map(e=>c.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==f&&!d)switch(u){case"horizontal":s|=f<0?1:2;break;case"vertical":s|=f<0?4:8}}else{i.set(e.group,{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:t,separatorToPanels:y});let r=e.group.panels.map(({id:e})=>e).join(",");e.group.inMemoryLayouts[r]=t}}}),N({cursorFlags:s,mountedGroups:i}),X(e)}function J(e){let{interactionState:t,mountedGroups:r}=R;"active"===t.state&&Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r})}function ee(e){if(e.defaultPrevented)return;let{interactionState:t,mountedGroups:r}=R;if("active"===t.state){if(0===e.buttons){N(e=>"inactive"===e.interactionState.state?e:{cursorFlags:0,interactionState:{state:"inactive"}}),N(e=>({mountedGroups:new Map(e.mountedGroups)}));return}Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint})}else{let n=q(e,r);0===n.length?"inactive"!==t.state&&N({interactionState:{state:"inactive"}}):N({interactionState:{hitRegions:n,state:"hover"}}),X(e.currentTarget)}}function et(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{interactionState:t}=R;"active"===t.state&&(N({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(X(e.currentTarget),N(e=>({mountedGroups:new Map(e.mountedGroups)})),e.preventDefault()))}function er(e){let t=0,r=0,n={};for(let o of e)if(void 0!==o.defaultSize){t++;let e=j(o.defaultSize);r+=e,n[o.panelId]=e}else n[o.panelId]=void 0;let o=e.length-t;if(0!==o){let t=j((100-r)/o);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let en=new Map;function eo(){let[e,t]=(0,u.useState)({});return[e,(0,u.useCallback)(()=>t({}),[])]}function el(e){let t=(0,u.useId)();return`${e??t}`}let es="u">typeof window?u.useLayoutEffect:u.useEffect;function ei(e){let t=(0,u.useRef)(e);return es(()=>{t.current=e},[e]),(0,u.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return ei(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}let ed=(0,u.createContext)(null);function eu({children:e,className:t,defaultLayout:r,disableCursor:n,disabled:o,elementRef:l,groupRef:s,id:i,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",style:p,...h}){var m;let x,v,w=(0,u.useRef)({onLayoutChange:{},onLayoutChanged:{}}),k=ei(e=>{T(w.current.onLayoutChange,e)||(w.current.onLayoutChange=e,a?.(e))}),z=ei(e=>{T(w.current.onLayoutChanged,e)||(w.current.onLayoutChanged=e,c?.(e))}),E=el(i),L=(0,u.useRef)(null),[I,P]=eo(),O=(0,u.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),F=ea(L,l);x=(0,u.useRef)({getLayout:()=>({}),setLayout:G}),(0,u.useImperativeHandle)(s,()=>x.current,[]),es(()=>{Object.assign(x.current,D({groupId:E}))});let $=ei((e,t)=>{let{interactionState:n,mountedGroups:o}=R;for(let r of o.keys())if(r.id===e){let e=o.get(r);if(e){let o=!1;return"active"===n.state&&(o=n.hitRegions.some(e=>e.group===r)),{flexGrow:e.layout[t]??1,pointerEvents:o?"none":void 0}}}return{flexGrow:r?.[t]??1}}),W=(0,u.useMemo)(()=>({getPanelStyles:$,id:E,orientation:f,registerPanel:e=>{let t=O.current;return t.panels=b(f,[...t.panels,e]),P(),()=>{t.panels=t.panels.filter(t=>t!==e),P()}},registerSeparator:e=>{let t=O.current;return t.separators=b(f,[...t.separators,e]),P(),()=>{t.separators=t.separators.filter(t=>t!==e),P()}}}),[$,E,P,f]),B=(m={defaultLayout:r,disableCursor:n},v=(0,u.useRef)({...m}),es(()=>{for(let e in m)v.current[e]=m[e]},[m]),v.current),V=(0,u.useRef)(null);return es(()=>{let e,t,r,n,l,s,i,a,d,u,c,p,h=L.current;if(null===h)return;let m=O.current,b={defaultLayout:B.defaultLayout,disableCursor:!!B.disableCursor,disabled:!!o,element:h,id:E,inMemoryLastExpandedPanelSizes:O.current.lastExpandedPanelSizes,inMemoryLayouts:O.current.layouts,orientation:f,panels:m.panels,separators:m.separators};V.current=b;let x=(e=!0,g(b.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),t=b.element.ownerDocument.defaultView.ResizeObserver,r=new Set,n=new Set,(l=new t(t=>{for(let r of t){let{borderBoxSize:t,target:n}=r;if(n===b.element){if(e){if(0===y({group:b}))return;N(e=>{let t=e.mountedGroups.get(b);if(t){let r=C(b),n=t.defaultLayoutDeferred?er(r):t.layout,o=A({layout:n,panelConstraints:r});return!t.defaultLayoutDeferred&&T(n,o)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)?e:{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,layout:o,separatorToPanels:t.separatorToPanels})}}return e})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let o=y({group:e}),l="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,s=n.mutableValues.prevSize,i={asPercentage:j(l/o*100),inPixels:l};n.mutableValues.prevSize=i,n.onResize(i,n.id,s)}(b,n,t)}})).observe(b.element),b.panels.forEach(e=>{g(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&l.observe(e.element)}),s=y({group:b}),i=C(b),a=b.panels.map(({id:e})=>e).join(","),(d=b.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(b.panels,d)||(d=void 0)),u=A({layout:b.inMemoryLayouts[a]??d??er(i),panelConstraints:i}),c=S(b),p=b.element.ownerDocument,N(e=>{let t=new Map;return en.set(p,(en.get(p)??0)+1),c.forEach(e=>{e.separator&&t.set(e.separator,e.panels)}),{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:0===s,derivedPanelConstraints:i,layout:u,separatorToPanels:t})}}),b.separators.forEach(e=>{g(!n.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.element.addEventListener("keydown",_)}),1===en.get(p)&&(p.addEventListener("pointerdown",Y,!0),p.addEventListener("pointerleave",J),p.addEventListener("pointermove",ee),p.addEventListener("pointerup",et,!0)),function(){e=!1,en.set(p,Math.max(0,(en.get(p)??0)-1)),N(e=>{let t=new Map(e.mountedGroups);return t.delete(b),{mountedGroups:t}}),b.separators.forEach(e=>{e.element.removeEventListener("keydown",_)}),en.get(p)||(p.removeEventListener("pointerdown",Y,!0),p.removeEventListener("pointerleave",J),p.removeEventListener("pointermove",ee),p.removeEventListener("pointerup",et,!0)),l.disconnect()}),v=R.mountedGroups.get(b);if(v){let{defaultLayoutDeferred:e,derivedPanelConstraints:t,layout:r}=v;!e&&t.length>0&&(k(r),z(r),m.panels.forEach(e=>{e.scheduleUpdate()}))}let w=M.addListener("interactionStateChange",()=>{m.panels.forEach(e=>{e.scheduleUpdate()})}),I=M.addListener("mountedGroupsChange",e=>{let t=e.get(b);if(t){let{defaultLayoutDeferred:e,derivedPanelConstraints:r,layout:n}=t;if(e||0===r.length)return;let{interactionState:o}=R,l="active"!==o.state;k(n),l&&z(n),m.panels.forEach(e=>{e.scheduleUpdate()})}});return()=>{V.current=null,x(),w(),I()}},[o,E,z,k,f,I,B]),(0,u.useEffect)(()=>{let e=V.current;e&&(e.defaultLayout=r,e.disableCursor=!!n)}),(0,d.jsx)(ed.Provider,{value:W,children:(0,d.jsx)("div",{...h,"aria-orientation":f,className:t,"data-group":!0,"data-testid":E,id:E,ref:F,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:"horizontal"===f?"row":"column",flexWrap:"nowrap"},children:e})})}function ec(){let e=(0,u.useContext)(ed);return g(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ef({children:e,className:t,collapsedSize:r="0%",collapsible:n=!1,defaultSize:o,elementRef:l,id:s,maxSize:i="100%",minSize:a="0%",onResize:c,panelRef:f,style:p,...h}){let m=!!s,g=el(s),b=(0,u.useRef)(null),x=ea(b,l),[,v]=eo(),{getPanelStyles:w,id:k,registerPanel:S}=ec(),z=null!==c,C=ei((e,t,r)=>{c?.(e,s,r)});es(()=>{let e=b.current;if(null!==e)return S({element:e,id:g,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?C:void 0,panelConstraints:{collapsedSize:r,collapsible:n,defaultSize:o,maxSize:i,minSize:a},scheduleUpdate:v})},[r,n,o,v,z,g,m,i,a,C,S]),function(e,t){let{id:r}=ec(),n=(0,u.useRef)({collapse:W,expand:W,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:W});(0,u.useImperativeHandle)(t,()=>n.current,[]),es(()=>{Object.assign(n.current,function({groupId:e,panelId:t}){let r=()=>{let{mountedGroups:t}=R;for(let[r,{defaultLayoutDeferred:n,derivedPanelConstraints:o,layout:l,separatorToPanels:s}]of t)if(r.id===e)return{defaultLayoutDeferred:n,derivedPanelConstraints:o,group:r,layout:l,separatorToPanels:s};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},l=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},s=e=>{let n=l();if(e===n)return;let{defaultLayoutDeferred:o,derivedPanelConstraints:s,group:i,layout:a,separatorToPanels:d}=r(),u=i.panels.findIndex(e=>e.id===t),c=u===i.panels.length-1,f=A({layout:P({delta:c?n-e:e-n,initialLayout:a,panelConstraints:s,pivotIndices:c?[u-1,u]:[u,u+1],prevLayout:a,trigger:"imperative-api"}),panelConstraints:s});T(a,f)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(i,{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:f,separatorToPanels:d})}))};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=o(),i=l();e&&i!==t&&(r.expandToSize=i,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:i}=o(),a=l();if(e&&a===t){let e=i.expandToSize??r;0===e&&(e=1),s(e)}},getSize:()=>{let{group:e}=r(),t=l(),{element:n}=o();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=l();return e&&E(t,r)},resize:e=>{if(l()!==e){let t;switch(typeof e){case"number":{let{group:n}=r();t=j(e/y({group:n})*100);break}case"string":t=parseFloat(e)}s(t)}}}}({groupId:r,panelId:e}))})}(g,f);let M=w(k,g);return(0,d.jsx)("div",{...h,"data-panel":!0,"data-testid":g,id:g,ref:x,style:{...ep,flexBasis:0,flexShrink:1,overflow:"hidden",...M},children:(0,d.jsx)("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}eu.displayName="Group",ef.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function eh({children:e,className:t,elementRef:r,id:n,style:o,...l}){let s=el(n),[i,a]=(0,u.useState)({}),[c,f]=(0,u.useState)("inactive"),p=(0,u.useRef)(null),h=ea(p,r),{id:m,orientation:g,registerSeparator:y}=ec();return es(()=>{let e=p.current;if(null!==e){let t={element:e,id:s},r=y(t),n=M.addListener("interactionStateChange",e=>{f("inactive"!==e.state&&e.hitRegions.some(e=>e.separator===t)?e.state:"inactive")}),o=M.addListener("mountedGroupsChange",e=>{e.forEach(({derivedPanelConstraints:e,layout:r,separatorToPanels:n},o)=>{if(o.id===m){let l=n.get(t);if(l){let t=l[0],n=o.panels.indexOf(t);a(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let o,l,s=e[r],i=t.find(e=>e.panelId===r);if(i){let a=i.maxSize,d=l=i.collapsible?i.collapsedSize:i.minSize,u=[n,n+1];l=A({layout:P({delta:d-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r],o=A({layout:P({delta:a-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r]}return{valueControls:r,valueMax:o,valueMin:l,valueNow:s}}({layout:r,panelConstraints:e,panelId:t.id,panelIndex:n}))}}})});return()=>{n(),o(),r()}}},[m,s,y]),(0,d.jsx)("div",{...l,"aria-controls":i.valueControls,"aria-orientation":"horizontal"===g?"vertical":"horizontal","aria-valuemax":i.valueMax,"aria-valuemin":i.valueMin,"aria-valuenow":i.valueNow,children:e,className:t,"data-separator":c,"data-testid":s,id:s,ref:h,role:"separator",style:{flexBasis:"auto",...o,flexGrow:0,flexShrink:0},tabIndex:0})}function em(){for(var e,t,r=0,n="",o=arguments.length;r({nextPart:e,validators:t,classGroupId:r}),ey=[],eb=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],o=r.nextPart.get(n);if(o){let r=eb(e,t+1,o);if(r)return r}let l=r.validators;if(null===l)return;let s=0===t?e.join("-"):e.slice(t).join("-"),i=l.length;for(let e=0;e{let r=eg();for(let n in e)ev(e[n],r,n,t);return r},ev=(e,t,r,n)=>{let o=e.length;for(let l=0;l{"string"==typeof e?ek(e,t,r):"function"==typeof e?eS(e,t,r,n):ez(e,t,r,n)},ek=(e,t,r)=>{(""===e?t:ej(t,e)).classGroupId=r},eS=(e,t,r,n)=>{eC(e)?ev(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},ez=(e,t,r,n)=>{let o=Object.entries(e),l=o.length;for(let e=0;e{let r=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,eE=[],eR=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),eM=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n{let t=t=>t[e]||eL;return t.isThemeGetter=!0,t},eP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eO=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,eA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eD=/\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$/,eF=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,e$=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e_=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eG=e=>eT.test(e),eW=e=>!!e&&!Number.isNaN(Number(e)),eB=e=>!!e&&Number.isInteger(Number(e)),eV=e=>e.endsWith("%")&&eW(e.slice(0,-1)),eK=e=>eA.test(e),eH=()=>!0,eU=e=>eD.test(e)&&!eF.test(e),eq=()=>!1,eY=e=>e$.test(e),eQ=e=>e_.test(e),eX=e=>!eJ(e)&&!e3(e),eZ=e=>tr(e,ts,eq),eJ=e=>eP.test(e),e0=e=>tr(e,ti,eU),e1=e=>tr(e,ta,eW),e2=e=>tr(e,to,eq),e5=e=>tr(e,tl,eQ),e4=e=>tr(e,tu,eY),e3=e=>eO.test(e),e6=e=>tn(e,ti),e8=e=>tn(e,td),e9=e=>tn(e,to),e7=e=>tn(e,ts),te=e=>tn(e,tl),tt=e=>tn(e,tu,!0),tr=(e,t,r)=>{let n=eP.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},tn=(e,t,r=!1)=>{let n=eO.exec(e);return!!n&&(n[1]?t(n[1]):r)},to=e=>"position"===e||"percentage"===e,tl=e=>"image"===e||"url"===e,ts=e=>"length"===e||"size"===e||"bg-size"===e,ti=e=>"length"===e,ta=e=>"number"===e,td=e=>"family-name"===e,tu=e=>"shadow"===e,tc=((e,...t)=>{let r,n,o,l,s=e=>{let t=n(e);if(t)return t;let l=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:l}=t,s=[],i=e.trim().split(eM),a="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{isExternal:d,modifiers:u,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:p}=r(t);if(d){a=t+(a.length>0?" "+a:a);continue}let h=!!p,m=n(h?f.substring(0,p):f);if(!m){if(!h||!(m=n(f))){a=t+(a.length>0?" "+a:a);continue}h=!1}let g=0===u.length?"":1===u.length?u[0]:l(u).join(":"),y=c?g+"!":g,b=y+m;if(s.indexOf(b)>-1)continue;s.push(b);let x=o(m,h);for(let e=0;e0?" "+a:a)}return a})(e,r);return o(e,l),l};return l=i=>{var a;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,l)=>{r[o]=l,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((a=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,l=0,s=e.length;for(let i=0;il?t-l:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):eR(eE,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(a),sortModifiers:(d=new Map,a.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n0&&(r.sort(),t.push(...r),r=[]),t.push(o)):r.push(o)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return ex(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,o;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return eb(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=r[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tl(((...e)=>{let t,r,n=0,o="";for(;n{let e=eI("color"),t=eI("font"),r=eI("text"),n=eI("font-weight"),o=eI("tracking"),l=eI("leading"),s=eI("breakpoint"),i=eI("container"),a=eI("spacing"),d=eI("radius"),u=eI("shadow"),c=eI("inset-shadow"),f=eI("text-shadow"),p=eI("drop-shadow"),h=eI("blur"),m=eI("perspective"),g=eI("aspect"),y=eI("ease"),b=eI("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...v(),e3,eJ],k=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],z=()=>[e3,eJ,a],j=()=>[eG,"full","auto",...z()],C=()=>[eB,"none","subgrid",e3,eJ],E=()=>["auto",{span:["full",eB,e3,eJ]},eB,e3,eJ],R=()=>[eB,"auto",e3,eJ],M=()=>["auto","min","max","fr",e3,eJ],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],L=()=>["start","end","center","stretch","center-safe","end-safe"],I=()=>["auto",...z()],P=()=>[eG,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],O=()=>[e,e3,eJ],T=()=>[...v(),e9,e2,{position:[e3,eJ]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",e7,eZ,{size:[e3,eJ]}],F=()=>[eV,e6,e0],$=()=>["","none","full",d,e3,eJ],_=()=>["",eW,e6,e0],G=()=>["solid","dashed","dotted","double"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>[eW,eV,e9,e2],V=()=>["","none",h,e3,eJ],K=()=>["none",eW,e3,eJ],H=()=>["none",eW,e3,eJ],U=()=>[eW,e3,eJ],q=()=>[eG,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eK],breakpoint:[eK],color:[eH],container:[eK],"drop-shadow":[eK],ease:["in","out","in-out"],font:[eX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eK],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eK],shadow:[eK],spacing:["px",eW],text:[eK],"text-shadow":[eK],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",eG,eJ,e3,g]}],container:["container"],columns:[{columns:[eW,eJ,e3,i]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"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:w()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[eB,"auto",e3,eJ]}],basis:[{basis:[eG,"full","auto",i,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eW,eG,"auto","initial","none",eJ]}],grow:[{grow:["",eW,e3,eJ]}],shrink:[{shrink:["",eW,e3,eJ]}],order:[{order:[eB,"first","last","none",e3,eJ]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":R()}],"col-end":[{"col-end":R()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":R()}],"row-end":[{"row-end":R()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":M()}],"auto-rows":[{"auto-rows":M()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...L(),"normal"]}],"justify-self":[{"justify-self":["auto",...L()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...L(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...L(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...L(),"baseline"]}],"place-self":[{"place-self":["auto",...L()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:I()}],mx:[{mx:I()}],my:[{my:I()}],ms:[{ms:I()}],me:[{me:I()}],mt:[{mt:I()}],mr:[{mr:I()}],mb:[{mb:I()}],ml:[{ml:I()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],w:[{w:[i,"screen",...P()]}],"min-w":[{"min-w":[i,"screen","none",...P()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[s]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",r,e6,e0]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e3,e1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eV,eJ]}],"font-family":[{font:[e8,eJ,t]}],"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:[o,e3,eJ]}],"line-clamp":[{"line-clamp":[eW,"none",e3,e1]}],leading:[{leading:[l,...z()]}],"list-image":[{"list-image":["none",e3,eJ]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e3,eJ]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:[eW,"from-font","auto",e3,e0]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[eW,"auto",e3,eJ]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e3,eJ]}],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",e3,eJ]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},eB,e3,eJ],radial:["",e3,eJ],conic:[eB,e3,eJ]},te,e5]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:$()}],"rounded-s":[{"rounded-s":$()}],"rounded-e":[{"rounded-e":$()}],"rounded-t":[{"rounded-t":$()}],"rounded-r":[{"rounded-r":$()}],"rounded-b":[{"rounded-b":$()}],"rounded-l":[{"rounded-l":$()}],"rounded-ss":[{"rounded-ss":$()}],"rounded-se":[{"rounded-se":$()}],"rounded-ee":[{"rounded-ee":$()}],"rounded-es":[{"rounded-es":$()}],"rounded-tl":[{"rounded-tl":$()}],"rounded-tr":[{"rounded-tr":$()}],"rounded-br":[{"rounded-br":$()}],"rounded-bl":[{"rounded-bl":$()}],"border-w":[{border:_()}],"border-w-x":[{"border-x":_()}],"border-w-y":[{"border-y":_()}],"border-w-s":[{"border-s":_()}],"border-w-e":[{"border-e":_()}],"border-w-t":[{"border-t":_()}],"border-w-r":[{"border-r":_()}],"border-w-b":[{"border-b":_()}],"border-w-l":[{"border-l":_()}],"divide-x":[{"divide-x":_()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":_()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...G(),"hidden","none"]}],"divide-style":[{divide:[...G(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[...G(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eW,e3,eJ]}],"outline-w":[{outline:["",eW,e6,e0]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",u,tt,e4]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",c,tt,e4]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:_()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[eW,e0]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":_()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",f,tt,e4]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[eW,e3,eJ]}],"mix-blend":[{"mix-blend":[...W(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":W()}],"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":[eW]}],"mask-image-linear-from-pos":[{"mask-linear-from":B()}],"mask-image-linear-to-pos":[{"mask-linear-to":B()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":B()}],"mask-image-t-to-pos":[{"mask-t-to":B()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":B()}],"mask-image-r-to-pos":[{"mask-r-to":B()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":B()}],"mask-image-b-to-pos":[{"mask-b-to":B()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":B()}],"mask-image-l-to-pos":[{"mask-l-to":B()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":B()}],"mask-image-x-to-pos":[{"mask-x-to":B()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":B()}],"mask-image-y-to-pos":[{"mask-y-to":B()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[e3,eJ]}],"mask-image-radial-from-pos":[{"mask-radial-from":B()}],"mask-image-radial-to-pos":[{"mask-radial-to":B()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"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":v()}],"mask-image-conic-pos":[{"mask-conic":[eW]}],"mask-image-conic-from-pos":[{"mask-conic-from":B()}],"mask-image-conic-to-pos":[{"mask-conic-to":B()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e3,eJ]}],filter:[{filter:["","none",e3,eJ]}],blur:[{blur:V()}],brightness:[{brightness:[eW,e3,eJ]}],contrast:[{contrast:[eW,e3,eJ]}],"drop-shadow":[{"drop-shadow":["","none",p,tt,e4]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",eW,e3,eJ]}],"hue-rotate":[{"hue-rotate":[eW,e3,eJ]}],invert:[{invert:["",eW,e3,eJ]}],saturate:[{saturate:[eW,e3,eJ]}],sepia:[{sepia:["",eW,e3,eJ]}],"backdrop-filter":[{"backdrop-filter":["","none",e3,eJ]}],"backdrop-blur":[{"backdrop-blur":V()}],"backdrop-brightness":[{"backdrop-brightness":[eW,e3,eJ]}],"backdrop-contrast":[{"backdrop-contrast":[eW,e3,eJ]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eW,e3,eJ]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eW,e3,eJ]}],"backdrop-invert":[{"backdrop-invert":["",eW,e3,eJ]}],"backdrop-opacity":[{"backdrop-opacity":[eW,e3,eJ]}],"backdrop-saturate":[{"backdrop-saturate":[eW,e3,eJ]}],"backdrop-sepia":[{"backdrop-sepia":["",eW,e3,eJ]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e3,eJ]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eW,"initial",e3,eJ]}],ease:[{ease:["linear","initial",y,e3,eJ]}],delay:[{delay:[eW,e3,eJ]}],animate:[{animate:["none",b,e3,eJ]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,e3,eJ]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:U()}],"skew-x":[{"skew-x":U()}],"skew-y":[{"skew-y":U()}],transform:[{transform:[e3,eJ,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q()}],"translate-x":[{"translate-x":q()}],"translate-y":[{"translate-y":q()}],"translate-z":[{"translate-z":q()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"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",e3,eJ]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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",e3,eJ]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[eW,e6,e0,e1]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tf(...e){return tc(em(e))}let tp=({className:e,...t})=>(0,d.jsx)(eu,{className:tf("flex h-full w-full data-[orientation=vertical]:flex-col",e),...t}),th=({withHandle:e,className:t,...r})=>(0,d.jsx)(eh,{className:tf("relative flex w-[3px] items-center justify-center bg-border/50 hover:bg-primary/50 transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-2 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring data-[orientation=vertical]:h-[3px] data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-2 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t),...r,children:e&&(0,d.jsx)("div",{className:"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-secondary",children:(0,d.jsx)(m,{className:"h-3 w-3 text-muted-foreground"})})});var tm=e.i(69941);function tg(e,t,r){let n,o=r.initialDeps??[];function l(){var l,s,i,a;let d,u;r.key&&(null==(l=r.debug)?void 0:l.call(r))&&(d=Date.now());let c=e();if(!(c.length!==o.length||c.some((e,t)=>o[t]!==e)))return n;if(o=c,r.key&&(null==(s=r.debug)?void 0:s.call(r))&&(u=Date.now()),n=t(...c),r.key&&(null==(i=r.debug)?void 0:i.call(r))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-u)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{"use strict";let t,r,n,o,l,s;var i,a,d=e.i(48277),u=e.i(30668);let c=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},f=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var p={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,u.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:s,...i},a)=>(0,u.createElement)("svg",{ref:a,...p,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:f("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(i)&&{"aria-hidden":"true"},...i},[...s.map(([e,t])=>(0,u.createElement)(e,t)),...Array.isArray(l)?l:[l]])),m=(i="grip-vertical",a=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],(r=(0,u.forwardRef)(({className:e,...t},r)=>(0,u.createElement)(h,{ref:r,iconNode:a,className:f(`lucide-${c(i).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${i}`,e),...t}))).displayName=c(i),r);function g(e,t="Assertion error"){if(!e)throw Error(t)}function y({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function b(e,t){return t.sort("horizontal"===e?x:v)}function x(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function v(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function w(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function k(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function S(e){let{element:t,orientation:r,panels:n,separators:o}=e,l=b(r,Array.from(t.children).filter(w).map(e=>({element:e}))).map(({element:e})=>e),s=[],i=!1,a,d=[];for(let t of l)if(t.hasAttribute("data-panel")){let o=n.find(e=>e.element===t);if(o){if(a){let n,l=a.element.getBoundingClientRect(),u=t.getBoundingClientRect();if(i){let e="horizontal"===r?new DOMRect(l.right,l.top,0,l.height):new DOMRect(l.left,l.bottom,l.width,0),t="horizontal"===r?new DOMRect(u.left,u.top,0,u.height):new DOMRect(u.left,u.top,u.width,0);switch(d.length){case 0:n=[e,t];break;case 1:{let o=d[0],s=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},o,l=Number.MAX_VALUE;for(let r of t){let{x:t,y:s}=k(n,r),i="horizontal"===e?t:s;ie.element===t);e?d.push(e):(a=void 0,d=[])}else i=!0;return s}function z({groupSize:e,panelElement:t,styleProp:r}){let n,[o,l]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(l){case"%":n=o/100*e;break;case"px":n=o;break;case"rem":n=o*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=o*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=o/100*window.innerHeight;break;case"vw":n=o/100*window.innerWidth}return n}function j(e){return parseFloat(e.toFixed(3))}function C(e){let{panels:t}=e,r=y({group:e});return 0===r?t.map(e=>({collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:o}=e,l=0;void 0!==o.collapsedSize&&(l=j(z({groupSize:r,panelElement:n,styleProp:o.collapsedSize})/r*100)),void 0!==o.defaultSize&&(t=j(z({groupSize:r,panelElement:n,styleProp:o.defaultSize})/r*100));let s=0;void 0!==o.minSize&&(s=j(z({groupSize:r,panelElement:n,styleProp:o.minSize})/r*100));let i=100;return void 0!==o.maxSize&&(i=j(z({groupSize:r,panelElement:n,styleProp:o.maxSize})/r*100)),{collapsedSize:l,collapsible:!0===o.collapsible,defaultSize:t,minSize:s,maxSize:i,panelId:e.id}})}function E(e,t,r=0){return Math.abs(j(e)-j(t))<=r}let M={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map},R=new class{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,o=Array.from(r);for(let r=0;r=0&&r.splice(e,1)}}};function N(e){let t="function"==typeof e?e(M):e;if(M===t)return M;let r=M;return M={...M,...t},void 0!==t.cursorFlags&&R.emit("cursorFlagsChange",M.cursorFlags),void 0!==t.interactionState&&R.emit("interactionStateChange",M.interactionState),void 0!==t.mountedGroups&&(M.mountedGroups.forEach((e,t)=>{e.derivedPanelConstraints.forEach(n=>{if(n.collapsible){let{layout:o}=r.mountedGroups.get(t)??{};if(o){let r=E(n.collapsedSize,e.layout[n.panelId]),l=E(n.collapsedSize,o[n.panelId]);r&&!l&&(t.inMemoryLastExpandedPanelSizes[n.panelId]=o[n.panelId])}}})}),R.emit("mountedGroupsChange",M.mountedGroups)),M}function L(e,t){return E(e,t)?0:e>t?1:-1}function I({panelConstraints:e,size:t}){let{collapsedSize:r=0,collapsible:n,maxSize:o=100,minSize:l=0}=e;return 0>L(t,l)&&(t=n&&0>L(t,(r+l)/2)?r:l),j(t=Math.min(o,t))}function P({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:o,trigger:l}){if(E(e,0))return t;let s=Object.values(t),i=Object.values(o),a=[...s],[d,u]=n;g(null!=d,"Invalid first pivot index"),g(null!=u,"Invalid second pivot index");let c=0;if("keyboard"===l){{let t=e<0?u:d,n=r[t];g(n,`Panel constraints not found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,o)){let t=i-r;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?d:u,n=r[t];g(n,`No panel constraints found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,i)){let t=r-o;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let t=e<0?1:-1,n=e<0?u:d,o=0;for(;;){let e=s[n];if(g(null!=e,`Previous layout not found for panel index ${n}`),o+=I({panelConstraints:r[n],size:100})-e,(n+=t)<0||n>=r.length)break}let l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let t=e<0?d:u;for(;t>=0&&t=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r=0&&n0?n--:n++}}}if(!E(Object.values(a).reduce((e,t)=>t+e,0),100,.1))return o;let f=Object.keys(o);return a.reduce((e,t,r)=>(e[f[r]]=t,e),{})}function O(e){let{mountedGroups:t}=M;for(let[r]of t)if(r.separators.some(t=>t.element===e))return r;throw Error("Could not find parent Group for separator element")}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==L(e[r],t[r]))return!1;return!0}function A({layout:e,panelConstraints:t}){let r=[...Object.values(e)],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!E(n,100)&&r.length>0)for(let e=0;e(e[l[r]]=t,e),{})}function D({groupId:e}){let t=()=>{let{mountedGroups:t}=M;for(let[r,n]of t)if(r.id===e)return{group:r,...n};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:o,layout:l,separatorToPanels:s}=t(),i=A({layout:e,panelConstraints:n});return r?l:(T(l,i)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(o,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:i,separatorToPanels:s})})),i)}}}function F(e){let{mountedGroups:t}=M,r=t.get(e);return g(r,`Mounted Group ${e.id} not found`),r}function $(e,t){let r=O(e),n=F(r),o=r.separators.find(t=>t.element===e);g(o,"Matching separator not found");let l=n.separatorToPanels.get(o);g(l,"Matching panels not found");let s=l.map(e=>r.panels.indexOf(e)),i=D({groupId:r.id}).getLayout(),a=A({layout:P({delta:t,initialLayout:i,panelConstraints:n.derivedPanelConstraints,pivotIndices:s,prevLayout:i,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(i,a)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,layout:a,separatorToPanels:n.separatorToPanels})}))}function _(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=O(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&$(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&$(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&$(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&$(t,-5);break;case"End":e.preventDefault(),$(t,100);break;case"Enter":{e.preventDefault();let r=O(t),{derivedPanelConstraints:n,layout:o,separatorToPanels:l}=F(r),s=r.separators.find(e=>e.element===t);g(s,"Matching separator not found");let i=l.get(s);g(i,"Matching panels not found");let a=i[0],d=n.find(e=>e.panelId===a.id);if(g(d,"Panel metadata not found"),d.collapsible){let e=o[a.id];$(t,(d.collapsedSize===e?r.inMemoryLastExpandedPanelSizes[a.id]??d.minSize:d.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=O(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);g(null!==n,"Index not found");let o=e.shiftKey?n>0?n-1:r.length-1:n+1e,W=()=>{},B=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function V(e){let t=e.length;for(;t--;){let r=e[t];if(g(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(U(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||B.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function K(e){return e&&Number(getComputedStyle(e).zIndex)||0}function H(e){let t=[];for(;e;)t.push(e),e=U(e);return t}function U(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function q(e,r){let n=[];return r.forEach((r,o)=>{if(o.disabled)return;let l=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?10:5,s=S(o),i=function(e,t,r){let n,o={x:1/0,y:1/0};for(let l of t){let t=k(r,l.rect);switch(e){case"horizontal":t.x<=o.x&&(n=l,o=t);break;case"vertical":t.y<=o.y&&(n=l,o=t)}}return n?{distance:o,hitRegion:n}:void 0}(o.orientation,s,{x:e.clientX,y:e.clientY});i&&i.distance.x<=l&&i.distance.y<=l&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!w(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:H(e),b:H(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;g(r,"Stacking order can only be calculated for elements with a common ancestor");let o={a:K(V(n.a)),b:K(V(n.b))};if(o.a===o.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},o=e.length;for(;o--;){let r=e[o];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(o.a-o.b)}(r,e)>0){let o=r;for(;o;){var n;if(o.contains(e))break;if(n=o.getBoundingClientRect(),n.xt.x&&n.yt.y)return!1;o=o.parentElement}}return!0}({groupElement:o.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function Y(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{mountedGroups:t}=M,r=q(e,t),n=new Set,o=new Set,l=new Set,s=new Map,i=!1;r.forEach(e=>{n.add(e.group),e.panels.forEach(e=>{o.add(e)}),e.separator&&(l.add(e.separator),i||(i=!0,e.separator.element.focus()));let r=t.get(e.group);r&&s.set(e.group,r.layout)}),N({interactionState:{hitRegions:r,initialLayoutMap:s,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),r.length&&e.preventDefault()}let Q=new WeakMap;function X(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=Q.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[r]);let{cursorFlags:n,interactionState:o}=M;switch(o.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,o=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":o++}})}if(0===n&&0===o)return null;if("active"===r){let t=(4&e)!=0,r=(8&e)!=0;if(e){if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}}return n>0&&o>0?"move":n>0?"ew-resize":"ns-resize"}({cursorFlags:n,groups:o.hitRegions.map(e=>e.group),state:o.state}),l=`*{cursor: ${e} !important; ${"active"===o.state?"touch-action: none;":""} }`;if(t===l)return;t=l,e?0===r.cssRules.length?r.insertRule(l):r.replaceSync(l):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}Q.set(e,{prevStyle:t,styleSheet:r})}function Z({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:l}){let s=0,i=new Map(o);r.forEach(e=>{let{group:r,groupSize:a}=e,{disableCursor:d,orientation:u,panels:c}=r,f=0;f=l?"horizontal"===u?(t.clientX-l.x)/a*100:(t.clientY-l.y)/a*100:"horizontal"===u?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:g,separatorToPanels:y}=o.get(r)??{defaultLayoutDeferred:!1};if(m&&p&&g&&y){let t=P({delta:f,initialLayout:p,panelConstraints:m,pivotIndices:e.panels.map(e=>c.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==f&&!d)switch(u){case"horizontal":s|=f<0?1:2;break;case"vertical":s|=f<0?4:8}}else{i.set(e.group,{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:t,separatorToPanels:y});let r=e.group.panels.map(({id:e})=>e).join(",");e.group.inMemoryLayouts[r]=t}}}),N({cursorFlags:s,mountedGroups:i}),X(e)}function J(e){let{interactionState:t,mountedGroups:r}=M;"active"===t.state&&Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r})}function ee(e){if(e.defaultPrevented)return;let{interactionState:t,mountedGroups:r}=M;if("active"===t.state){if(0===e.buttons){N(e=>"inactive"===e.interactionState.state?e:{cursorFlags:0,interactionState:{state:"inactive"}}),N(e=>({mountedGroups:new Map(e.mountedGroups)}));return}Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint})}else{let n=q(e,r);0===n.length?"inactive"!==t.state&&N({interactionState:{state:"inactive"}}):N({interactionState:{hitRegions:n,state:"hover"}}),X(e.currentTarget)}}function et(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{interactionState:t}=M;"active"===t.state&&(N({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(X(e.currentTarget),N(e=>({mountedGroups:new Map(e.mountedGroups)})),e.preventDefault()))}function er(e){let t=0,r=0,n={};for(let o of e)if(void 0!==o.defaultSize){t++;let e=j(o.defaultSize);r+=e,n[o.panelId]=e}else n[o.panelId]=void 0;let o=e.length-t;if(0!==o){let t=j((100-r)/o);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let en=new Map;function eo(){let[e,t]=(0,u.useState)({});return[e,(0,u.useCallback)(()=>t({}),[])]}function el(e){let t=(0,u.useId)();return`${e??t}`}let es="u">typeof window?u.useLayoutEffect:u.useEffect;function ei(e){let t=(0,u.useRef)(e);return es(()=>{t.current=e},[e]),(0,u.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return ei(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}let ed=(0,u.createContext)(null);function eu({children:e,className:t,defaultLayout:r,disableCursor:n,disabled:o,elementRef:l,groupRef:s,id:i,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",style:p,...h}){var m;let x,v,w=(0,u.useRef)({onLayoutChange:{},onLayoutChanged:{}}),k=ei(e=>{T(w.current.onLayoutChange,e)||(w.current.onLayoutChange=e,a?.(e))}),z=ei(e=>{T(w.current.onLayoutChanged,e)||(w.current.onLayoutChanged=e,c?.(e))}),E=el(i),L=(0,u.useRef)(null),[I,P]=eo(),O=(0,u.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),F=ea(L,l);x=(0,u.useRef)({getLayout:()=>({}),setLayout:G}),(0,u.useImperativeHandle)(s,()=>x.current,[]),es(()=>{Object.assign(x.current,D({groupId:E}))});let $=ei((e,t)=>{let{interactionState:n,mountedGroups:o}=M;for(let r of o.keys())if(r.id===e){let e=o.get(r);if(e){let o=!1;return"active"===n.state&&(o=n.hitRegions.some(e=>e.group===r)),{flexGrow:e.layout[t]??1,pointerEvents:o?"none":void 0}}}return{flexGrow:r?.[t]??1}}),W=(0,u.useMemo)(()=>({getPanelStyles:$,id:E,orientation:f,registerPanel:e=>{let t=O.current;return t.panels=b(f,[...t.panels,e]),P(),()=>{t.panels=t.panels.filter(t=>t!==e),P()}},registerSeparator:e=>{let t=O.current;return t.separators=b(f,[...t.separators,e]),P(),()=>{t.separators=t.separators.filter(t=>t!==e),P()}}}),[$,E,P,f]),B=(m={defaultLayout:r,disableCursor:n},v=(0,u.useRef)({...m}),es(()=>{for(let e in m)v.current[e]=m[e]},[m]),v.current),V=(0,u.useRef)(null);return es(()=>{let e,t,r,n,l,s,i,a,d,u,c,p,h=L.current;if(null===h)return;let m=O.current,b={defaultLayout:B.defaultLayout,disableCursor:!!B.disableCursor,disabled:!!o,element:h,id:E,inMemoryLastExpandedPanelSizes:O.current.lastExpandedPanelSizes,inMemoryLayouts:O.current.layouts,orientation:f,panels:m.panels,separators:m.separators};V.current=b;let x=(e=!0,g(b.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),t=b.element.ownerDocument.defaultView.ResizeObserver,r=new Set,n=new Set,(l=new t(t=>{for(let r of t){let{borderBoxSize:t,target:n}=r;if(n===b.element){if(e){if(0===y({group:b}))return;N(e=>{let t=e.mountedGroups.get(b);if(t){let r=C(b),n=t.defaultLayoutDeferred?er(r):t.layout,o=A({layout:n,panelConstraints:r});return!t.defaultLayoutDeferred&&T(n,o)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)?e:{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,layout:o,separatorToPanels:t.separatorToPanels})}}return e})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let o=y({group:e}),l="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,s=n.mutableValues.prevSize,i={asPercentage:j(l/o*100),inPixels:l};n.mutableValues.prevSize=i,n.onResize(i,n.id,s)}(b,n,t)}})).observe(b.element),b.panels.forEach(e=>{g(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&l.observe(e.element)}),s=y({group:b}),i=C(b),a=b.panels.map(({id:e})=>e).join(","),(d=b.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(b.panels,d)||(d=void 0)),u=A({layout:b.inMemoryLayouts[a]??d??er(i),panelConstraints:i}),c=S(b),p=b.element.ownerDocument,N(e=>{let t=new Map;return en.set(p,(en.get(p)??0)+1),c.forEach(e=>{e.separator&&t.set(e.separator,e.panels)}),{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:0===s,derivedPanelConstraints:i,layout:u,separatorToPanels:t})}}),b.separators.forEach(e=>{g(!n.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.element.addEventListener("keydown",_)}),1===en.get(p)&&(p.addEventListener("pointerdown",Y,!0),p.addEventListener("pointerleave",J),p.addEventListener("pointermove",ee),p.addEventListener("pointerup",et,!0)),function(){e=!1,en.set(p,Math.max(0,(en.get(p)??0)-1)),N(e=>{let t=new Map(e.mountedGroups);return t.delete(b),{mountedGroups:t}}),b.separators.forEach(e=>{e.element.removeEventListener("keydown",_)}),en.get(p)||(p.removeEventListener("pointerdown",Y,!0),p.removeEventListener("pointerleave",J),p.removeEventListener("pointermove",ee),p.removeEventListener("pointerup",et,!0)),l.disconnect()}),v=M.mountedGroups.get(b);if(v){let{defaultLayoutDeferred:e,derivedPanelConstraints:t,layout:r}=v;!e&&t.length>0&&(k(r),z(r),m.panels.forEach(e=>{e.scheduleUpdate()}))}let w=R.addListener("interactionStateChange",()=>{m.panels.forEach(e=>{e.scheduleUpdate()})}),I=R.addListener("mountedGroupsChange",e=>{let t=e.get(b);if(t){let{defaultLayoutDeferred:e,derivedPanelConstraints:r,layout:n}=t;if(e||0===r.length)return;let{interactionState:o}=M,l="active"!==o.state;k(n),l&&z(n),m.panels.forEach(e=>{e.scheduleUpdate()})}});return()=>{V.current=null,x(),w(),I()}},[o,E,z,k,f,I,B]),(0,u.useEffect)(()=>{let e=V.current;e&&(e.defaultLayout=r,e.disableCursor=!!n)}),(0,d.jsx)(ed.Provider,{value:W,children:(0,d.jsx)("div",{...h,"aria-orientation":f,className:t,"data-group":!0,"data-testid":E,id:E,ref:F,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:"horizontal"===f?"row":"column",flexWrap:"nowrap"},children:e})})}function ec(){let e=(0,u.useContext)(ed);return g(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ef({children:e,className:t,collapsedSize:r="0%",collapsible:n=!1,defaultSize:o,elementRef:l,id:s,maxSize:i="100%",minSize:a="0%",onResize:c,panelRef:f,style:p,...h}){let m=!!s,g=el(s),b=(0,u.useRef)(null),x=ea(b,l),[,v]=eo(),{getPanelStyles:w,id:k,registerPanel:S}=ec(),z=null!==c,C=ei((e,t,r)=>{c?.(e,s,r)});es(()=>{let e=b.current;if(null!==e)return S({element:e,id:g,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?C:void 0,panelConstraints:{collapsedSize:r,collapsible:n,defaultSize:o,maxSize:i,minSize:a},scheduleUpdate:v})},[r,n,o,v,z,g,m,i,a,C,S]),function(e,t){let{id:r}=ec(),n=(0,u.useRef)({collapse:W,expand:W,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:W});(0,u.useImperativeHandle)(t,()=>n.current,[]),es(()=>{Object.assign(n.current,function({groupId:e,panelId:t}){let r=()=>{let{mountedGroups:t}=M;for(let[r,{defaultLayoutDeferred:n,derivedPanelConstraints:o,layout:l,separatorToPanels:s}]of t)if(r.id===e)return{defaultLayoutDeferred:n,derivedPanelConstraints:o,group:r,layout:l,separatorToPanels:s};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},l=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},s=e=>{let n=l();if(e===n)return;let{defaultLayoutDeferred:o,derivedPanelConstraints:s,group:i,layout:a,separatorToPanels:d}=r(),u=i.panels.findIndex(e=>e.id===t),c=u===i.panels.length-1,f=A({layout:P({delta:c?n-e:e-n,initialLayout:a,panelConstraints:s,pivotIndices:c?[u-1,u]:[u,u+1],prevLayout:a,trigger:"imperative-api"}),panelConstraints:s});T(a,f)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(i,{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:f,separatorToPanels:d})}))};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=o(),i=l();e&&i!==t&&(r.expandToSize=i,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:i}=o(),a=l();if(e&&a===t){let e=i.expandToSize??r;0===e&&(e=1),s(e)}},getSize:()=>{let{group:e}=r(),t=l(),{element:n}=o();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=l();return e&&E(t,r)},resize:e=>{if(l()!==e){let t;switch(typeof e){case"number":{let{group:n}=r();t=j(e/y({group:n})*100);break}case"string":t=parseFloat(e)}s(t)}}}}({groupId:r,panelId:e}))})}(g,f);let R=w(k,g);return(0,d.jsx)("div",{...h,"data-panel":!0,"data-testid":g,id:g,ref:x,style:{...ep,flexBasis:0,flexShrink:1,overflow:"hidden",...R},children:(0,d.jsx)("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}eu.displayName="Group",ef.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function eh({children:e,className:t,elementRef:r,id:n,style:o,...l}){let s=el(n),[i,a]=(0,u.useState)({}),[c,f]=(0,u.useState)("inactive"),p=(0,u.useRef)(null),h=ea(p,r),{id:m,orientation:g,registerSeparator:y}=ec();return es(()=>{let e=p.current;if(null!==e){let t={element:e,id:s},r=y(t),n=R.addListener("interactionStateChange",e=>{f("inactive"!==e.state&&e.hitRegions.some(e=>e.separator===t)?e.state:"inactive")}),o=R.addListener("mountedGroupsChange",e=>{e.forEach(({derivedPanelConstraints:e,layout:r,separatorToPanels:n},o)=>{if(o.id===m){let l=n.get(t);if(l){let t=l[0],n=o.panels.indexOf(t);a(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let o,l,s=e[r],i=t.find(e=>e.panelId===r);if(i){let a=i.maxSize,d=l=i.collapsible?i.collapsedSize:i.minSize,u=[n,n+1];l=A({layout:P({delta:d-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r],o=A({layout:P({delta:a-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r]}return{valueControls:r,valueMax:o,valueMin:l,valueNow:s}}({layout:r,panelConstraints:e,panelId:t.id,panelIndex:n}))}}})});return()=>{n(),o(),r()}}},[m,s,y]),(0,d.jsx)("div",{...l,"aria-controls":i.valueControls,"aria-orientation":"horizontal"===g?"vertical":"horizontal","aria-valuemax":i.valueMax,"aria-valuemin":i.valueMin,"aria-valuenow":i.valueNow,children:e,className:t,"data-separator":c,"data-testid":s,id:s,ref:h,role:"separator",style:{flexBasis:"auto",...o,flexGrow:0,flexShrink:0},tabIndex:0})}function em(){for(var e,t,r=0,n="",o=arguments.length;r({nextPart:e,validators:t,classGroupId:r}),ey=[],eb=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],o=r.nextPart.get(n);if(o){let r=eb(e,t+1,o);if(r)return r}let l=r.validators;if(null===l)return;let s=0===t?e.join("-"):e.slice(t).join("-"),i=l.length;for(let e=0;e{let r=eg();for(let n in e)ev(e[n],r,n,t);return r},ev=(e,t,r,n)=>{let o=e.length;for(let l=0;l{"string"==typeof e?ek(e,t,r):"function"==typeof e?eS(e,t,r,n):ez(e,t,r,n)},ek=(e,t,r)=>{(""===e?t:ej(t,e)).classGroupId=r},eS=(e,t,r,n)=>{eC(e)?ev(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},ez=(e,t,r,n)=>{let o=Object.entries(e),l=o.length;for(let e=0;e{let r=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,eE=[],eM=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),eR=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n{let t=t=>t[e]||eL;return t.isThemeGetter=!0,t},eP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eO=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,eA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eD=/\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$/,eF=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,e$=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e_=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eG=e=>eT.test(e),eW=e=>!!e&&!Number.isNaN(Number(e)),eB=e=>!!e&&Number.isInteger(Number(e)),eV=e=>e.endsWith("%")&&eW(e.slice(0,-1)),eK=e=>eA.test(e),eH=()=>!0,eU=e=>eD.test(e)&&!eF.test(e),eq=()=>!1,eY=e=>e$.test(e),eQ=e=>e_.test(e),eX=e=>!eJ(e)&&!e3(e),eZ=e=>tr(e,ts,eq),eJ=e=>eP.test(e),e0=e=>tr(e,ti,eU),e1=e=>tr(e,ta,eW),e2=e=>tr(e,to,eq),e5=e=>tr(e,tl,eQ),e4=e=>tr(e,tu,eY),e3=e=>eO.test(e),e6=e=>tn(e,ti),e8=e=>tn(e,td),e9=e=>tn(e,to),e7=e=>tn(e,ts),te=e=>tn(e,tl),tt=e=>tn(e,tu,!0),tr=(e,t,r)=>{let n=eP.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},tn=(e,t,r=!1)=>{let n=eO.exec(e);return!!n&&(n[1]?t(n[1]):r)},to=e=>"position"===e||"percentage"===e,tl=e=>"image"===e||"url"===e,ts=e=>"length"===e||"size"===e||"bg-size"===e,ti=e=>"length"===e,ta=e=>"number"===e,td=e=>"family-name"===e,tu=e=>"shadow"===e,tc=((e,...t)=>{let r,n,o,l,s=e=>{let t=n(e);if(t)return t;let l=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:l}=t,s=[],i=e.trim().split(eR),a="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{isExternal:d,modifiers:u,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:p}=r(t);if(d){a=t+(a.length>0?" "+a:a);continue}let h=!!p,m=n(h?f.substring(0,p):f);if(!m){if(!h||!(m=n(f))){a=t+(a.length>0?" "+a:a);continue}h=!1}let g=0===u.length?"":1===u.length?u[0]:l(u).join(":"),y=c?g+"!":g,b=y+m;if(s.indexOf(b)>-1)continue;s.push(b);let x=o(m,h);for(let e=0;e0?" "+a:a)}return a})(e,r);return o(e,l),l};return l=i=>{var a;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,l)=>{r[o]=l,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((a=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,l=0,s=e.length;for(let i=0;il?t-l:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):eM(eE,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(a),sortModifiers:(d=new Map,a.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n0&&(r.sort(),t.push(...r),r=[]),t.push(o)):r.push(o)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return ex(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,o;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return eb(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=r[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tl(((...e)=>{let t,r,n=0,o="";for(;n{let e=eI("color"),t=eI("font"),r=eI("text"),n=eI("font-weight"),o=eI("tracking"),l=eI("leading"),s=eI("breakpoint"),i=eI("container"),a=eI("spacing"),d=eI("radius"),u=eI("shadow"),c=eI("inset-shadow"),f=eI("text-shadow"),p=eI("drop-shadow"),h=eI("blur"),m=eI("perspective"),g=eI("aspect"),y=eI("ease"),b=eI("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...v(),e3,eJ],k=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],z=()=>[e3,eJ,a],j=()=>[eG,"full","auto",...z()],C=()=>[eB,"none","subgrid",e3,eJ],E=()=>["auto",{span:["full",eB,e3,eJ]},eB,e3,eJ],M=()=>[eB,"auto",e3,eJ],R=()=>["auto","min","max","fr",e3,eJ],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],L=()=>["start","end","center","stretch","center-safe","end-safe"],I=()=>["auto",...z()],P=()=>[eG,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],O=()=>[e,e3,eJ],T=()=>[...v(),e9,e2,{position:[e3,eJ]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",e7,eZ,{size:[e3,eJ]}],F=()=>[eV,e6,e0],$=()=>["","none","full",d,e3,eJ],_=()=>["",eW,e6,e0],G=()=>["solid","dashed","dotted","double"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>[eW,eV,e9,e2],V=()=>["","none",h,e3,eJ],K=()=>["none",eW,e3,eJ],H=()=>["none",eW,e3,eJ],U=()=>[eW,e3,eJ],q=()=>[eG,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eK],breakpoint:[eK],color:[eH],container:[eK],"drop-shadow":[eK],ease:["in","out","in-out"],font:[eX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eK],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eK],shadow:[eK],spacing:["px",eW],text:[eK],"text-shadow":[eK],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",eG,eJ,e3,g]}],container:["container"],columns:[{columns:[eW,eJ,e3,i]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"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:w()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[eB,"auto",e3,eJ]}],basis:[{basis:[eG,"full","auto",i,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eW,eG,"auto","initial","none",eJ]}],grow:[{grow:["",eW,e3,eJ]}],shrink:[{shrink:["",eW,e3,eJ]}],order:[{order:[eB,"first","last","none",e3,eJ]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":R()}],"auto-rows":[{"auto-rows":R()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...L(),"normal"]}],"justify-self":[{"justify-self":["auto",...L()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...L(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...L(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...L(),"baseline"]}],"place-self":[{"place-self":["auto",...L()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:I()}],mx:[{mx:I()}],my:[{my:I()}],ms:[{ms:I()}],me:[{me:I()}],mt:[{mt:I()}],mr:[{mr:I()}],mb:[{mb:I()}],ml:[{ml:I()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],w:[{w:[i,"screen",...P()]}],"min-w":[{"min-w":[i,"screen","none",...P()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[s]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",r,e6,e0]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e3,e1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eV,eJ]}],"font-family":[{font:[e8,eJ,t]}],"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:[o,e3,eJ]}],"line-clamp":[{"line-clamp":[eW,"none",e3,e1]}],leading:[{leading:[l,...z()]}],"list-image":[{"list-image":["none",e3,eJ]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e3,eJ]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:[eW,"from-font","auto",e3,e0]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[eW,"auto",e3,eJ]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e3,eJ]}],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",e3,eJ]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},eB,e3,eJ],radial:["",e3,eJ],conic:[eB,e3,eJ]},te,e5]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:$()}],"rounded-s":[{"rounded-s":$()}],"rounded-e":[{"rounded-e":$()}],"rounded-t":[{"rounded-t":$()}],"rounded-r":[{"rounded-r":$()}],"rounded-b":[{"rounded-b":$()}],"rounded-l":[{"rounded-l":$()}],"rounded-ss":[{"rounded-ss":$()}],"rounded-se":[{"rounded-se":$()}],"rounded-ee":[{"rounded-ee":$()}],"rounded-es":[{"rounded-es":$()}],"rounded-tl":[{"rounded-tl":$()}],"rounded-tr":[{"rounded-tr":$()}],"rounded-br":[{"rounded-br":$()}],"rounded-bl":[{"rounded-bl":$()}],"border-w":[{border:_()}],"border-w-x":[{"border-x":_()}],"border-w-y":[{"border-y":_()}],"border-w-s":[{"border-s":_()}],"border-w-e":[{"border-e":_()}],"border-w-t":[{"border-t":_()}],"border-w-r":[{"border-r":_()}],"border-w-b":[{"border-b":_()}],"border-w-l":[{"border-l":_()}],"divide-x":[{"divide-x":_()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":_()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...G(),"hidden","none"]}],"divide-style":[{divide:[...G(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[...G(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eW,e3,eJ]}],"outline-w":[{outline:["",eW,e6,e0]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",u,tt,e4]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",c,tt,e4]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:_()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[eW,e0]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":_()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",f,tt,e4]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[eW,e3,eJ]}],"mix-blend":[{"mix-blend":[...W(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":W()}],"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":[eW]}],"mask-image-linear-from-pos":[{"mask-linear-from":B()}],"mask-image-linear-to-pos":[{"mask-linear-to":B()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":B()}],"mask-image-t-to-pos":[{"mask-t-to":B()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":B()}],"mask-image-r-to-pos":[{"mask-r-to":B()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":B()}],"mask-image-b-to-pos":[{"mask-b-to":B()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":B()}],"mask-image-l-to-pos":[{"mask-l-to":B()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":B()}],"mask-image-x-to-pos":[{"mask-x-to":B()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":B()}],"mask-image-y-to-pos":[{"mask-y-to":B()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[e3,eJ]}],"mask-image-radial-from-pos":[{"mask-radial-from":B()}],"mask-image-radial-to-pos":[{"mask-radial-to":B()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"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":v()}],"mask-image-conic-pos":[{"mask-conic":[eW]}],"mask-image-conic-from-pos":[{"mask-conic-from":B()}],"mask-image-conic-to-pos":[{"mask-conic-to":B()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e3,eJ]}],filter:[{filter:["","none",e3,eJ]}],blur:[{blur:V()}],brightness:[{brightness:[eW,e3,eJ]}],contrast:[{contrast:[eW,e3,eJ]}],"drop-shadow":[{"drop-shadow":["","none",p,tt,e4]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",eW,e3,eJ]}],"hue-rotate":[{"hue-rotate":[eW,e3,eJ]}],invert:[{invert:["",eW,e3,eJ]}],saturate:[{saturate:[eW,e3,eJ]}],sepia:[{sepia:["",eW,e3,eJ]}],"backdrop-filter":[{"backdrop-filter":["","none",e3,eJ]}],"backdrop-blur":[{"backdrop-blur":V()}],"backdrop-brightness":[{"backdrop-brightness":[eW,e3,eJ]}],"backdrop-contrast":[{"backdrop-contrast":[eW,e3,eJ]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eW,e3,eJ]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eW,e3,eJ]}],"backdrop-invert":[{"backdrop-invert":["",eW,e3,eJ]}],"backdrop-opacity":[{"backdrop-opacity":[eW,e3,eJ]}],"backdrop-saturate":[{"backdrop-saturate":[eW,e3,eJ]}],"backdrop-sepia":[{"backdrop-sepia":["",eW,e3,eJ]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e3,eJ]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eW,"initial",e3,eJ]}],ease:[{ease:["linear","initial",y,e3,eJ]}],delay:[{delay:[eW,e3,eJ]}],animate:[{animate:["none",b,e3,eJ]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,e3,eJ]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:U()}],"skew-x":[{"skew-x":U()}],"skew-y":[{"skew-y":U()}],transform:[{transform:[e3,eJ,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q()}],"translate-x":[{"translate-x":q()}],"translate-y":[{"translate-y":q()}],"translate-z":[{"translate-z":q()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"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",e3,eJ]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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",e3,eJ]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[eW,e6,e0,e1]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tf(...e){return tc(em(e))}let tp=({className:e,...t})=>(0,d.jsx)(eu,{className:tf("flex h-full w-full data-[orientation=vertical]:flex-col",e),...t}),th=({withHandle:e,className:t,...r})=>(0,d.jsx)(eh,{className:tf("relative flex w-[3px] items-center justify-center bg-border/50 hover:bg-primary/50 transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-2 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring data-[orientation=vertical]:h-[3px] data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-2 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t),...r,children:e&&(0,d.jsx)("div",{className:"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-secondary",children:(0,d.jsx)(m,{className:"h-3 w-3 text-muted-foreground"})})});var tm=e.i(69941);function tg(e,t,r){let n,o=r.initialDeps??[];function l(){var l,s,i,a;let d,u;r.key&&(null==(l=r.debug)?void 0:l.call(r))&&(d=Date.now());let c=e();if(!(c.length!==o.length||c.some((e,t)=>o[t]!==e)))return n;if(o=c,r.key&&(null==(s=r.debug)?void 0:s.call(r))&&(u=Date.now()),n=t(...c),r.key&&(null==(i=r.debug)?void 0:i.call(r))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-u)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{o=e},l}function ty(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(39057);let tb=e=>{let{offsetWidth:t,offsetHeight:r}=e;return{width:t,height:r}},tx=e=>e,tv=e=>{let t=Math.max(e.startIndex-e.overscan,0),r=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=r;e++)n.push(e);return n},tw=(e,t)=>{let r=e.scrollElement;if(!r)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:r,height:n}=e;t({width:Math.round(r),height:Math.round(n)})};if(o(tb(r)),!n.ResizeObserver)return()=>{};let l=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(tb(r))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return l.observe(r,{box:"border-box"}),()=>{l.unobserve(r)}},tk={passive:!0},tS="undefined"==typeof window||"onscrollend"in window,tz=(e,t)=>{var r,n;let o,l=e.scrollElement;if(!l)return;let s=e.targetWindow;if(!s)return;let i=0,a=e.options.useScrollendEvent&&tS?()=>void 0:(r=()=>{t(i,!1)},n=e.options.isScrollingResetDelay,function(...e){s.clearTimeout(o),o=s.setTimeout(()=>r.apply(this,e),n)}),d=r=>()=>{let{horizontal:n,isRtl:o}=e.options;i=n?l.scrollLeft*(o&&-1||1):l.scrollTop,a(),t(i,r)},u=d(!0),c=d(!1);c(),l.addEventListener("scroll",u,tk);let f=e.options.useScrollendEvent&&tS;return f&&l.addEventListener("scrollend",c,tk),()=>{l.removeEventListener("scroll",u),f&&l.removeEventListener("scrollend",c)}},tj=(e,t,r)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[r.options.horizontal?"inlineSize":"blockSize"])}return e[r.options.horizontal?"offsetWidth":"offsetHeight"]},tC=(e,{adjustments:t=0,behavior:r},n)=>{var o,l;null==(l=null==(o=n.scrollElement)?void 0:o.scrollTo)||l.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:r})};class tE{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var r;null==(r=t())||r.disconnect(),e=null},observe:e=>{var r;return null==(r=t())?void 0:r.observe(e,{box:"border-box"})},unobserve:e=>{var r;return null==(r=t())?void 0:r.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,r])=>{void 0===r&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tx,rangeExtractor:tv,onChange:()=>{},measureElement:tj,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,r;null==(r=(t=this.options).onChange)||r.call(t,this,e)},this.maybeNotify=tg(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let r=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(r.has(t.lane))continue;let l=n.get(t.lane);if(null==l||t.end>l.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=tg(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,r,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=tg(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o},l)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let i=this.measurementsCache.slice(0,s);for(let o=s;othis.options.debug}),this.calculateRange=tg(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,r,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:r,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let l=tR(0,o,t=>e[t].start,r),s=l;if(1===n)for(;s1){let i=Array(n).fill(0);for(;se=0&&a.some(e=>e>=r);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%n),s=Math.min(o,s+(n-1-s%n))}return{startIndex:l,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:r,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=tg(()=>{let e=null,t=null,r=this.calculateRange();return r&&(e=r.startIndex,t=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,r,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,r=e.getAttribute(t);return r?parseInt(r,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let r=this.indexFromElement(e),n=this.measurementsCache[r];if(!n)return;let o=n.key,l=this.elementsCache.get(o);l!==e&&(l&&this.observer.unobserve(l),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(r,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let r=this.measurementsCache[e];if(!r)return;let n=t-(this.itemSizeCache.get(r.key)??r.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(r,n,this):r.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=tg(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let r=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return ty(t[tR(0,t.length-1,e=>ty(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,r=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(r-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.measurementsCache[e];if(!r)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(r.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(r.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let l="end"===t?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,r.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:r})},this.scrollToIndex=(e,{align:t="auto",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,s]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),r=this.getOffsetForIndex(e,s);r?1.01>Math.abs(r[0]-t)||l(s):console.warn("Failed to get offset for index:",e)})},l=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,r=this.getMeasurements();if(0===r.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=r[r.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=r.length-1;for(;n>=0&&e.some(e=>null===e);){let t=r[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:r})=>{this.options.scrollToFn(e,{behavior:r,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let tR=(e,t,r,n)=>{for(;e<=t;){let o=(e+t)/2|0,l=r(o);if(ln))return o;t=o-1}}return e>0?e-1:0},tM="undefined"!=typeof document?u.useLayoutEffect:u.useEffect,tN=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,l={setState:n,getState:o,getInitialState:()=>s,subscribe:e=>(r.add(e),()=>r.delete(e))},s=t=e(n,o,l);return l},tL=e=>{let t=e?tN(e):tN,r=e=>(function(e,t=e=>e){let r=u.default.useSyncExternalStore(e.subscribe,u.default.useCallback(()=>t(e.getState()),[e,t]),u.default.useCallback(()=>t(e.getInitialState()),[e,t]));return u.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},tI=(n=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,samplesLoaded:0,setSamples:(t,r)=>e({samples:t,totalSamples:r,samplesLoaded:t.length}),appendSamples:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id)),o=e.samplesLoaded+t.length;return 0===n.length?{samplesLoaded:o}:{samples:[...e.samples,...n],samplesLoaded:o}}),addSamplesIfMissing:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t,currentLayoutKey:t?.layout_key??null}),currentLayoutKey:null,geometry:"euclidean",setGeometry:t=>e({geometry:t}),selectedIds:new Set,isLassoSelection:!1,selectionSource:null,setSelectedIds:(t,r="grid")=>e({selectedIds:t,selectionSource:t.size>0?r:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let r=new Set(e.selectedIds);return r.has(t)?r.delete(t):r.add(t),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let r=new Set(e.selectedIds);return t.forEach(e=>r.add(e)),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,selectionSource:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,selectionSource:"lasso",lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,r,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:r,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,selectionSource:null,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?tL(n):tL;function tP({children:e,className:t}){return(0,d.jsx)("div",{className:tf("flex flex-col h-full bg-card rounded-sm overflow-hidden border border-border",t),children:e})}function tO({children:e,className:t}){return(0,d.jsx)("div",{className:tf("px-2 py-1.5 text-[11px] text-muted-foreground/70 border-t border-border bg-card font-mono",t),children:e})}function tT({icon:e,title:t,subtitle:r,children:n,className:o}){return(0,d.jsxs)("div",{className:tf("h-9 min-h-[36px] flex items-center justify-between px-2 border-b border-border bg-secondary select-none",o),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[e&&(0,d.jsx)("span",{className:"flex-shrink-0 w-4 h-4 text-muted-foreground",children:e}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:t}),r&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:r})]}),n&&(0,d.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let tA=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"})]}),tD=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"16",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"6",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2"})]}),tF=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-5 h-5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),t$=()=>(0,d.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})}),t_=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1"}),(0,d.jsx)("line",{x1:"2",y1:"8",x2:"14",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"14"})]}),tG=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"3",ry:"5.5"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"5.5",ry:"3"})]});function tW({samples:e,onLoadMore:t,hasMore:r}){let n=(0,u.useRef)(null),{selectedIds:o,isLassoSelection:l,selectionSource:s,lassoTotal:i,toggleSelection:a,addToSelection:c,setHoveredId:f,hoveredId:p}=tI(),[h,m]=(0,u.useState)(4);(0,u.useEffect)(()=>{let e=()=>{n.current&&m(Math.max(1,Math.floor((n.current.clientWidth-16+8)/208)))};e();let t=new ResizeObserver(e);return n.current&&t.observe(n.current),()=>t.disconnect()},[]);let g=function(e){let t=u.useReducer(()=>({}),{})[1],r={...e,onChange:(r,n)=>{var o;n?(0,tm.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,r,n)}},[n]=u.useState(()=>new tE(r));return n.setOptions(r),tM(()=>n._didMount(),[]),tM(()=>n._willUpdate()),n}({observeElementRect:tw,observeElementOffset:tz,scrollToFn:tC,...{count:Math.ceil(e.length/h),getScrollElement:()=>n.current,estimateSize:()=>208,overscan:5,getItemKey:(0,u.useCallback)(t=>{let r=t*h;return e.slice(r,r+h).map(e=>e.id).join("-")||`row-${t}`},[e,h])}});(0,u.useEffect)(()=>{let e=n.current;if(!e||!t||!r)return;let o=()=>{let{scrollTop:r,scrollHeight:n,clientHeight:o}=e;n-r-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,r]),(0,u.useEffect)(()=>{g.measure()},[o,l,g]),(0,u.useEffect)(()=>{if(!l&&"scatter"===s&&0!==o.size)try{g.scrollToIndex(0,{align:"start"})}catch{n.current?.scrollTo({top:0})}},[l,o,s,g]);let y=(0,u.useCallback)((t,r)=>{if(r.metaKey||r.ctrlKey)a(t.id);else if(r.shiftKey&&o.size>0){let r=Array.from(o),n=r[r.length-1],l=e.findIndex(e=>e.id===n),s=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==s){let t=Math.min(l,s),r=Math.max(l,s);c(e.slice(t,r+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),tI.getState().setSelectedIds(e,"grid")}},[e,o,a,c]),b=g.getVirtualItems();return(0,d.jsxs)(tP,{children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tA,{}),title:"Samples",subtitle:l?`${i} selected`:o.size>0?`${o.size} selected`:`${e.length} items`}),(0,d.jsx)("div",{ref:n,className:"flex-1 overflow-auto p-2",children:(0,d.jsx)("div",{style:{height:`${g.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(t=>{let r=t.index*h,n=e.slice(r,r+h);return(0,d.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"200px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=!!l||o.has(e.id),r=p===e.id;return(0,d.jsxs)("div",{className:` + color: hsl(${Math.max(0,Math.min(120-120*n,120))}deg 100% 31%);`,null==r?void 0:r.key)}return null==(a=null==r?void 0:r.onChange)||a.call(r,n),n}return l.updateDeps=e=>{o=e},l}function ty(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(39057);let tb=e=>{let{offsetWidth:t,offsetHeight:r}=e;return{width:t,height:r}},tx=e=>e,tv=e=>{let t=Math.max(e.startIndex-e.overscan,0),r=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=r;e++)n.push(e);return n},tw=(e,t)=>{let r=e.scrollElement;if(!r)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:r,height:n}=e;t({width:Math.round(r),height:Math.round(n)})};if(o(tb(r)),!n.ResizeObserver)return()=>{};let l=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(tb(r))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return l.observe(r,{box:"border-box"}),()=>{l.unobserve(r)}},tk={passive:!0},tS="undefined"==typeof window||"onscrollend"in window,tz=(e,t)=>{var r,n;let o,l=e.scrollElement;if(!l)return;let s=e.targetWindow;if(!s)return;let i=0,a=e.options.useScrollendEvent&&tS?()=>void 0:(r=()=>{t(i,!1)},n=e.options.isScrollingResetDelay,function(...e){s.clearTimeout(o),o=s.setTimeout(()=>r.apply(this,e),n)}),d=r=>()=>{let{horizontal:n,isRtl:o}=e.options;i=n?l.scrollLeft*(o&&-1||1):l.scrollTop,a(),t(i,r)},u=d(!0),c=d(!1);c(),l.addEventListener("scroll",u,tk);let f=e.options.useScrollendEvent&&tS;return f&&l.addEventListener("scrollend",c,tk),()=>{l.removeEventListener("scroll",u),f&&l.removeEventListener("scrollend",c)}},tj=(e,t,r)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[r.options.horizontal?"inlineSize":"blockSize"])}return e[r.options.horizontal?"offsetWidth":"offsetHeight"]},tC=(e,{adjustments:t=0,behavior:r},n)=>{var o,l;null==(l=null==(o=n.scrollElement)?void 0:o.scrollTo)||l.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:r})};class tE{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var r;null==(r=t())||r.disconnect(),e=null},observe:e=>{var r;return null==(r=t())?void 0:r.observe(e,{box:"border-box"})},unobserve:e=>{var r;return null==(r=t())?void 0:r.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,r])=>{void 0===r&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tx,rangeExtractor:tv,onChange:()=>{},measureElement:tj,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,r;null==(r=(t=this.options).onChange)||r.call(t,this,e)},this.maybeNotify=tg(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let r=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(r.has(t.lane))continue;let l=n.get(t.lane);if(null==l||t.end>l.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=tg(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,r,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=tg(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o},l)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let i=this.measurementsCache.slice(0,s);for(let o=s;othis.options.debug}),this.calculateRange=tg(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,r,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:r,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let l=tM(0,o,t=>e[t].start,r),s=l;if(1===n)for(;s1){let i=Array(n).fill(0);for(;se=0&&a.some(e=>e>=r);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%n),s=Math.min(o,s+(n-1-s%n))}return{startIndex:l,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:r,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=tg(()=>{let e=null,t=null,r=this.calculateRange();return r&&(e=r.startIndex,t=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,r,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,r=e.getAttribute(t);return r?parseInt(r,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let r=this.indexFromElement(e),n=this.measurementsCache[r];if(!n)return;let o=n.key,l=this.elementsCache.get(o);l!==e&&(l&&this.observer.unobserve(l),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(r,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let r=this.measurementsCache[e];if(!r)return;let n=t-(this.itemSizeCache.get(r.key)??r.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(r,n,this):r.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=tg(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let r=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return ty(t[tM(0,t.length-1,e=>ty(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,r=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(r-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.measurementsCache[e];if(!r)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(r.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(r.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let l="end"===t?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,r.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:r})},this.scrollToIndex=(e,{align:t="auto",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,s]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),r=this.getOffsetForIndex(e,s);r?1.01>Math.abs(r[0]-t)||l(s):console.warn("Failed to get offset for index:",e)})},l=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,r=this.getMeasurements();if(0===r.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=r[r.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=r.length-1;for(;n>=0&&e.some(e=>null===e);){let t=r[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:r})=>{this.options.scrollToFn(e,{behavior:r,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let tM=(e,t,r,n)=>{for(;e<=t;){let o=(e+t)/2|0,l=r(o);if(ln))return o;t=o-1}}return e>0?e-1:0},tR="undefined"!=typeof document?u.useLayoutEffect:u.useEffect,tN=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,l={setState:n,getState:o,getInitialState:()=>s,subscribe:e=>(r.add(e),()=>r.delete(e))},s=t=e(n,o,l);return l},tL=e=>{let t=e?tN(e):tN,r=e=>(function(e,t=e=>e){let r=u.default.useSyncExternalStore(e.subscribe,u.default.useCallback(()=>t(e.getState()),[e,t]),u.default.useCallback(()=>t(e.getInitialState()),[e,t]));return u.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},tI=(n=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,samplesLoaded:0,setSamples:(t,r)=>e({samples:t,totalSamples:r,samplesLoaded:t.length}),appendSamples:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id)),o=e.samplesLoaded+t.length;return 0===n.length?{samplesLoaded:o}:{samples:[...e.samples,...n],samplesLoaded:o}}),addSamplesIfMissing:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t,currentLayoutKey:t?.layout_key??null}),currentLayoutKey:null,geometry:"euclidean",setGeometry:t=>e({geometry:t}),selectedIds:new Set,isLassoSelection:!1,selectionSource:null,setSelectedIds:(t,r="grid")=>e({selectedIds:t,selectionSource:t.size>0?r:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let r=new Set(e.selectedIds);return r.has(t)?r.delete(t):r.add(t),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let r=new Set(e.selectedIds);return t.forEach(e=>r.add(e)),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,selectionSource:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,selectionSource:"lasso",lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,r,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:r,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,selectionSource:null,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?tL(n):tL;function tP({children:e,className:t}){return(0,d.jsx)("div",{className:tf("flex flex-col h-full bg-card rounded-sm overflow-hidden border border-border",t),children:e})}function tO({children:e,className:t}){return(0,d.jsx)("div",{className:tf("px-2 py-1.5 text-[11px] text-muted-foreground/70 border-t border-border bg-card font-mono",t),children:e})}function tT({icon:e,title:t,subtitle:r,children:n,className:o}){return(0,d.jsxs)("div",{className:tf("h-9 min-h-[36px] flex items-center justify-between px-2 border-b border-border bg-secondary select-none",o),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[e&&(0,d.jsx)("span",{className:"flex-shrink-0 w-4 h-4 text-muted-foreground",children:e}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:t}),r&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:r})]}),n&&(0,d.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let tA=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"})]}),tD=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"16",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"6",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2"})]}),tF=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-5 h-5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),t$=()=>(0,d.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})}),t_=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1"}),(0,d.jsx)("line",{x1:"2",y1:"8",x2:"14",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"14"})]}),tG=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"3",ry:"5.5"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"5.5",ry:"3"})]});function tW({samples:e,onLoadMore:t,hasMore:r}){let n=(0,u.useRef)(null),{selectedIds:o,isLassoSelection:l,selectionSource:s,lassoTotal:i,toggleSelection:a,addToSelection:c,setHoveredId:f,hoveredId:p}=tI(),[h,m]=(0,u.useState)(4);(0,u.useEffect)(()=>{let e=()=>{n.current&&m(Math.max(1,Math.floor((n.current.clientWidth-16+8)/208)))};e();let t=new ResizeObserver(e);return n.current&&t.observe(n.current),()=>t.disconnect()},[]);let g=function(e){let t=u.useReducer(()=>({}),{})[1],r={...e,onChange:(r,n)=>{var o;n?(0,tm.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,r,n)}},[n]=u.useState(()=>new tE(r));return n.setOptions(r),tR(()=>n._didMount(),[]),tR(()=>n._willUpdate()),n}({observeElementRect:tw,observeElementOffset:tz,scrollToFn:tC,...{count:Math.ceil(e.length/h),getScrollElement:()=>n.current,estimateSize:()=>208,overscan:5,getItemKey:(0,u.useCallback)(t=>{let r=t*h;return e.slice(r,r+h).map(e=>e.id).join("-")||`row-${t}`},[e,h])}});(0,u.useEffect)(()=>{let e=n.current;if(!e||!t||!r)return;let o=()=>{let{scrollTop:r,scrollHeight:n,clientHeight:o}=e;n-r-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,r]),(0,u.useEffect)(()=>{g.measure()},[o,l,g]),(0,u.useEffect)(()=>{if(!l&&"scatter"===s&&0!==o.size)try{g.scrollToIndex(0,{align:"start"})}catch{n.current?.scrollTo({top:0})}},[l,o,s,g]);let y=(0,u.useCallback)((t,r)=>{if(r.metaKey||r.ctrlKey)a(t.id);else if(r.shiftKey&&o.size>0){let r=Array.from(o),n=r[r.length-1],l=e.findIndex(e=>e.id===n),s=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==s){let t=Math.min(l,s),r=Math.max(l,s);c(e.slice(t,r+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),tI.getState().setSelectedIds(e,"grid")}},[e,o,a,c]),b=g.getVirtualItems();return(0,d.jsxs)(tP,{children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tA,{}),title:"Samples",subtitle:l?`${i} selected`:o.size>0?`${o.size} selected`:`${e.length} items`}),(0,d.jsx)("div",{ref:n,className:"flex-1 overflow-auto p-2",children:(0,d.jsx)("div",{style:{height:`${g.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(t=>{let r=t.index*h,n=e.slice(r,r+h);return(0,d.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"200px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=!!l||o.has(e.id),r=p===e.id;return(0,d.jsxs)("div",{className:` relative flex-1 rounded-md overflow-hidden cursor-pointer transition-all duration-150 ease-out ${t?"ring-2 ring-primary":""} ${r?"ring-2 ring-primary/50":""} - `,onClick:t=>y(e,t),onMouseEnter:()=>f(e.id),onMouseLeave:()=>f(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(t$,{})})]},e.id)}),Array.from({length:h-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function tB(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function tV(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function tK(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(tV(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let s=t=>{let{scope:r,children:n,...s}=t,i=r?.[e]?.[l]||o,a=u.useMemo(()=>s,Object.values(s));return(0,d.jsx)(i.Provider,{value:a,children:n})};return s.displayName=t+"Provider",[s,function(r,s){let i=s?.[e]?.[l]||o,a=u.useContext(i);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tU(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tq(...e){return t=>{let r=!1,n=e.map(e=>{let n=tU(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,s,i=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(s=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),s=o.find(tX);if(s){let e=s.props.children,r=o.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,s),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?i:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tJ(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function t0(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),s=l.find(t2);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var t1=Symbol("radix.slottable");function t2(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===t1}var t5=new WeakMap;function t4(e,t){var r,n;let o,l,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let i=(r=e,n=t,o=r.length,(s=(l=t3(n))>=0?l:o+l)<0||s>=o?-1:s);return -1===i?void 0:e[i]}function t3(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],t5.set(this,!0)}set(e,t){return t5.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,s=t3(e),i=s>=0?s:l+s,a=i<0||i>=l?-1:i;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;s<0&&i++;let u=[...this.#t],c=!1;for(let e=i;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t6=globalThis?.document?u.useLayoutEffect:()=>{},t8=u[" useId ".trim().toString()]||(()=>void 0),t9=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t7=u[" useInsertionEffect ".trim().toString()]||t6;function re({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,s]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t7(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),i=void 0!==e,a=i?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==i){let t=i?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=i},[i,n])}return[a,u.useCallback(t=>{if(i){let r="function"==typeof t?t(e):t;r!==e&&s.current?.(r)}else l(t)},[i,e,l,s])]}Symbol("RADIX:SYNC_STATE");var rt=u.createContext(void 0);function rr(e){let t=u.useContext(rt);return e||t||"ltr"}var rn="rovingFocusGroup.onEntryFocus",ro={bubbles:!1,cancelable:!0},rl="RovingFocusGroup",[rs,ri,ra]=function(e){let t=e+"CollectionProvider",[r,n]=tH(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};s.displayName=t;let i=e+"CollectionSlot",a=t0(i),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tY(t,l(i,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=i;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=t0(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,s=u.default.useRef(null),i=tY(t,s),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(s,{ref:s,...o}),()=>void a.itemMap.delete(s))),(0,d.jsx)(h,{...{[p]:""},ref:i,children:n})});return m.displayName=f,[{Provider:s,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(rl),[rd,ru]=tH(rl,[ra]),[rc,rf]=rd(rl),rp=u.forwardRef((e,t)=>(0,d.jsx)(rs.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rs.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rh,{...e,ref:t})})}));rp.displayName=rl;var rh=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:s,currentTabStopId:i,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tY(t,m),y=rr(s),[b,x]=re({prop:i,defaultProp:a??null,onChange:c,caller:rl}),[v,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=ri(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(rn,k),()=>e.removeEventListener(rn,k)},[k]),(0,d.jsx)(rc,{scope:n,orientation:o,dir:y,loop:l,currentTabStopId:b,onItemFocus:u.useCallback(e=>x(e),[x]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tZ.div,{tabIndex:v||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tJ(e.onMouseDown,()=>{z.current=!0}),onFocus:tJ(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(rn,ro);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rb([e.find(e=>e.active),e.find(e=>e.id===b),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tJ(e.onBlur,()=>w(!1))})})}),rm="RovingFocusGroupItem",rg=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:s,...i}=e,a=function(e){let[t,r]=u.useState(t8());return t6(()=>{r(e=>e??String(t9++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rf(rm,r),p=f.currentTabStopId===c,h=ri(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:y}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rs.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tZ.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:t,onMouseDown:tJ(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tJ(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tJ(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return ry[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rb(o))}}),children:"function"==typeof s?s({isCurrentTabStop:p,hasTabStop:null!=y}):s})})});rg.displayName=rm;var ry={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rb(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rx="Toggle",rv=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[s,i]=re({prop:r,onChange:o,defaultProp:n??!1,caller:rx});return(0,d.jsx)(tZ.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tJ(e.onClick,()=>{e.disabled||i(!s)})})});rv.displayName=rx;var rw="ToggleGroup",[rk,rS]=tH(rw,[ru]),rz=ru(),rj=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rR,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rM,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rw}\``)});rj.displayName=rw;var[rC,rE]=rk(rw),rR=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??"",onChange:o,caller:rw});return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>s?[s]:[],[s]),onItemActivate:i,onItemDeactivate:u.default.useCallback(()=>i(""),[i]),children:(0,d.jsx)(rI,{...l,ref:t})})}),rM=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??[],onChange:o,caller:rw}),a=u.default.useCallback(e=>i((t=[])=>[...t,e]),[i]),c=u.default.useCallback(e=>i((t=[])=>t.filter(t=>t!==e)),[i]);return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"multiple",value:s,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rI,{...l,ref:t})})});rj.displayName=rw;var[rN,rL]=rk(rw),rI=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:s,loop:i=!0,...a}=e,u=rz(r),c=rr(s),f={role:"group",dir:c,...a};return(0,d.jsx)(rN,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(rp,{asChild:!0,...u,orientation:l,dir:c,loop:i,children:(0,d.jsx)(tZ.div,{...f,ref:t})}):(0,d.jsx)(tZ.div,{...f,ref:t})})}),rP="ToggleGroupItem",rO=u.default.forwardRef((e,t)=>{let r=rE(rP,e.__scopeToggleGroup),n=rL(rP,e.__scopeToggleGroup),o=rz(e.__scopeToggleGroup),l=r.value.includes(e.value),s=n.disabled||e.disabled,i={...e,pressed:l,disabled:s},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rg,{asChild:!0,...o,focusable:!s,active:l,ref:a,children:(0,d.jsx)(rT,{...i,ref:t})}):(0,d.jsx)(rT,{...i,ref:t})});rO.displayName=rP;var rT=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rE(rP,r),s={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},i="single"===l.type?s:void 0;return(0,d.jsx)(rv,{...i,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rA=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rD=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,s=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let s=rA(t)||rA(n);return o[e][s]}),i=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,s,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...i}[t]):({...l,...i})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},rF=rD("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rv,{ref:o,className:tf(rF({variant:t,size:r,className:e})),...n})).displayName=rv.displayName;let r$=u.createContext({size:"default",variant:"default"}),r_=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rj,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(r$.Provider,{value:{variant:t,size:r},children:n})}));r_.displayName=rj.displayName;let rG=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let s=u.useContext(r$);return(0,d.jsx)(rO,{ref:l,className:tf(rF({variant:s.variant||r,size:s.size||n}),e),...o,children:t})});function rW({className:t=""}){let{datasetInfo:r,embeddings:n,selectedIds:o,setSelectedIds:l,beginLassoSelection:s,hoveredId:i,setHoveredId:a,geometry:c,setGeometry:f}=tI(),p=(0,u.useMemo)(()=>(function(e){let t=new Set;for(let r of e)t.add(r.geometry);return Array.from(t)})(r?.layouts??[]),[r?.layouts]),h=(0,u.useMemo)(()=>{if(!n||!r)return null;let e=n.layout_key,t=r.layouts.find(t=>t.layout_key===e),o=t?.space_key??e.split("__")[0],l=r.spaces.find(e=>e.space_key===o);return l?.model_id??l?.space_key??o},[r,n]),m=(0,u.useMemo)(()=>{if(!n)return null;let e=[...new Set(n.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":n.label_colors[e]||"#808080");return{uniqueLabels:e,categories:r,palette:o}},[n]),{canvasRef:g,overlayCanvasRef:y,containerRef:b,handlePointerDown:x,handlePointerMove:v,handlePointerUp:w,handlePointerLeave:k,handleDoubleClick:S,rendererError:z}=function({embeddings:t,labelsInfo:r,selectedIds:n,hoveredId:o,setSelectedIds:l,beginLassoSelection:s,setHoveredId:i}){let a=(0,u.useRef)(null),d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),[p,h]=(0,u.useState)(null),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),y=(0,u.useRef)(!1),b=(0,u.useRef)(0),x=(0,u.useRef)(0),v=(0,u.useRef)(0),w=(0,u.useRef)(0),k=(0,u.useRef)([]),S=(0,u.useRef)(-1),z=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{m.current||(m.current=!0,requestAnimationFrame(()=>{m.current=!1;let e=f.current;if(e){try{e.render()}catch(t){console.error("hyper-scatter renderer.render() failed:",t);try{e.destroy()}catch{}f.current=null,h("This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox."),tV(d.current);return}y.current&&tK(d.current,k.current)}}))},[]),C=(0,u.useCallback)(e=>{let t=a.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),E=(0,u.useCallback)(()=>{g.current=!1,y.current=!1,k.current=[],tV(d.current)},[]);(0,u.useEffect)(()=>{if(!t||!r||!a.current||!c.current)return;let n=!1;return(async()=>{if(h(null),!function(){try{if("undefined"==typeof document)return!1;return!!document.createElement("canvas").getContext("webgl2")}catch{return!1}}())return h("This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox.");try{let o=await e.A(20606);if(n)return;let l=c.current,s=a.current;if(!l||!s)return;f.current&&(f.current.destroy(),f.current=null);let i=l.getBoundingClientRect(),u=Math.floor(i.width),p=Math.floor(i.height);d.current&&(d.current.width=Math.max(1,u),d.current.height=Math.max(1,p),d.current.style.width=`${u}px`,d.current.style.height=`${p}px`,tV(d.current));let m=t.coords,g=new Float32Array(2*m.length);for(let e=0;e{n=!0,E(),f.current&&(f.current.destroy(),f.current=null)}},[t,r,j,E]),(0,u.useEffect)(()=>{let e=f.current;if(!e||!t||!z)return;let r=new Set;for(let e of n){let t=z.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let l=o?z.get(o)??-1:-1;e.setHovered(l),S.current=l,j()},[t,o,z,j,n]),(0,u.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;d.current&&(d.current.width=Math.max(1,r),d.current.height=Math.max(1,n),d.current.style.width=`${r}px`,d.current.style.height=`${n}px`);let o=f.current;o&&(o.resize(r,n),j())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[j]),(0,u.useEffect)(()=>{let e=a.current;if(!e)return;let t=e=>{let t=f.current;if(!t)return;e.preventDefault();let r=C(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,tB(e)),j()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[C,j]);let R=(0,u.useCallback)(e=>{if(!f.current||"number"==typeof e.button&&0!==e.button)return;let t=C(e);b.current=t.x,x.current=t.y,v.current=t.x,w.current=t.y,e.shiftKey?(y.current=!0,g.current=!1,k.current=[t.x,t.y],tK(d.current,k.current)):(g.current=!0,y.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[C]),M=(0,u.useCallback)(e=>{let r=f.current;if(!r)return;let n=C(e);if(g.current){let t=n.x-v.current,o=n.y-w.current;v.current=n.x,w.current=n.y,r.pan(t,o,tB(e)),j();return}if(y.current){let e=k.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),tK(d.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===S.current||(S.current=l,r.setHovered(l),t&&(l>=0&&l{let r=f.current;if(!r||!t)return void E();if(y.current){let e=k.current;if(E(),e.length>=6)try{let n=new Float32Array(e),o=r.lassoSelect(n),l=o.geometry?.coords;if(!l||l.length<6)return;r.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({layoutKey:t.layout_key,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}j();return}let o=C(e),i=o.x-b.current,a=o.y-x.current;if(i*i+a*a<=36){let s=r.hitTest(o.x,o.y),i=s?s.index:-1;if(i>=0&&i{let t=f.current;t&&(S.current=-1,i(null),t.setHovered(-1),j()),E()},[j,i,E]),handleDoubleClick:(0,u.useCallback)(e=>{let t=f.current;t&&(E(),t.setSelection(new Set),l(new Set,"scatter"),j())},[j,l,E]),rendererError:p}}({embeddings:n,labelsInfo:m,selectedIds:o,hoveredId:i,setSelectedIds:l,beginLassoSelection:s,setHoveredId:a}),j=m?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:n?h??"":"Loading...",children:p.length>1&&(0,d.jsxs)(r_,{type:"single",value:c,onValueChange:e=>e&&f(e),size:"sm",variant:"outline",className:"bg-muted/50 rounded-md p-0.5 gap-0.5",children:[(0,d.jsxs)(rG,{value:"euclidean","aria-label":"Euclidean geometry",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(t_,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Euclidean"})]}),(0,d.jsxs)(rG,{value:"poincare","aria-label":"Poincaré disk (hyperbolic)",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(tG,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Poincaré"})]})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:b,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:g,className:"absolute inset-0",style:{zIndex:1},onPointerDown:x,onPointerMove:v,onPointerUp:w,onPointerCancel:w,onPointerLeave:k,onDoubleClick:S}),(0,d.jsx)("canvas",{ref:y,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),z?(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/85 z-10 p-6",children:(0,d.jsxs)("div",{className:"max-w-md text-center",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-foreground mb-2",children:"Browser not supported"}),(0,d.jsx)("div",{className:"text-sm text-muted-foreground",children:z})]})}):!n&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),j.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[j.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":n?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),j.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",j.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rG.displayName=rO.displayName;var rB=Symbol.for("react.lazy"),rV=u[" use ".trim().toString()];function rK(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===rB&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rH=((s=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rK(r)&&"function"==typeof rV&&(r=rV(r._payload)),u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=s,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rK(r)&&"function"==typeof rV&&(r=rV(r._payload));let l=u.Children.toArray(r),s=l.find(rq);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rU=Symbol("radix.slottable");function rq(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rU}let rY=rD("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rQ=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rH:"button",{className:tf(rY({variant:t,size:r,className:e})),ref:l,...o}));function rX(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tI();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(tF,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rQ,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rZ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rJ(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function r0(e){let t=new URLSearchParams;e&&t.set("layout_key",e);let r=t.toString(),n=await fetch(`/api/embeddings${r?`?${r}`:""}`);if(!n.ok)throw Error(`Failed to fetch embeddings: ${n.statusText}`);return n.json()}async function r1(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r2(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({layout_key:e.layoutKey,polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r5(){let{datasetInfo:e,samples:t,totalSamples:r,samplesLoaded:n,setSamples:o,appendSamples:l,addSamplesIfMissing:s,setDatasetInfo:i,setEmbeddings:a,setIsLoading:c,isLoading:f,error:p,setError:h,selectedIds:m,isLassoSelection:g,selectionSource:y,lassoQuery:b,lassoSamples:x,lassoTotal:v,lassoIsLoading:w,setLassoResults:k,geometry:S}=tI(),[z,j]=(0,u.useState)(!1),[C,E]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{c(!0),h(null);try{let[e,t,r]=await Promise.all([rZ(),rJ(0,100),r0()]);i(e),o(t.samples,t.total),a(r)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{c(!1)}})()},[]),(0,u.useEffect)(()=>{if(!e)return;let t=e.layouts.find(e=>e.geometry===S);t&&tI.getState().currentLayoutKey!==t.layout_key&&(async()=>{E(!0);try{let e=await r0(t.layout_key);a(e)}catch(e){console.error("Failed to load geometry:",e)}finally{E(!1)}})()},[S,e,a]),(0,u.useEffect)(()=>{(async()=>{if(g||0===m.size)return;let e=new Set(t.map(e=>e.id)),r=Array.from(m).filter(t=>!e.has(t));if(0!==r.length)try{let e=await r1(r);s(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[m,t,s,g]),(0,u.useEffect)(()=>{if(!g||!b||!w)return;let e=new AbortController;return(async()=>{try{let t=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;k(t.samples,t.total,!1)}catch(e){if(e?.name==="AbortError")return;console.error("Failed to fetch lasso selection:",e),k([],0,!1)}})(),()=>e.abort()},[g,w,b,k]);let R=(0,u.useCallback)(async()=>{if(!z){if(g){if(!b||w||!w&&x.length>=v)return;j(!0);try{let e=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:x.length,limit:100});k(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{j(!1)}return}if(!(n>=r)){j(!0);try{let e=await rJ(n,100);l(e.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{j(!1)}}}},[z,l,g,w,b,x.length,v,n,r,k]),M=(0,u.useMemo)(()=>{if(g)return x;if("scatter"===y&&m.size>0){let e=new Map;for(let r of t)e.set(r.id,r);let r=[];for(let t of m){let n=e.get(t);n&&r.push(n)}if(r.length>0)return[...r,...t.filter(e=>!m.has(e.id))]}return t},[g,x,t,m,y]),N=g?v:r,L=g?M.lengthr5],50912)}]); \ No newline at end of file + `,onClick:t=>y(e,t),onMouseEnter:()=>f(e.id),onMouseLeave:()=>f(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(t$,{})})]},e.id)}),Array.from({length:h-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function tB(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function tV(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function tK(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(tV(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let s=t=>{let{scope:r,children:n,...s}=t,i=r?.[e]?.[l]||o,a=u.useMemo(()=>s,Object.values(s));return(0,d.jsx)(i.Provider,{value:a,children:n})};return s.displayName=t+"Provider",[s,function(r,s){let i=s?.[e]?.[l]||o,a=u.useContext(i);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tU(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tq(...e){return t=>{let r=!1,n=e.map(e=>{let n=tU(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,s,i=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(s=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),s=o.find(tX);if(s){let e=s.props.children,r=o.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,s),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?i:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tJ(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function t0(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),s=l.find(t2);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var t1=Symbol("radix.slottable");function t2(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===t1}var t5=new WeakMap;function t4(e,t){var r,n;let o,l,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let i=(r=e,n=t,o=r.length,(s=(l=t3(n))>=0?l:o+l)<0||s>=o?-1:s);return -1===i?void 0:e[i]}function t3(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],t5.set(this,!0)}set(e,t){return t5.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,s=t3(e),i=s>=0?s:l+s,a=i<0||i>=l?-1:i;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;s<0&&i++;let u=[...this.#t],c=!1;for(let e=i;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t6=globalThis?.document?u.useLayoutEffect:()=>{},t8=u[" useId ".trim().toString()]||(()=>void 0),t9=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t7=u[" useInsertionEffect ".trim().toString()]||t6;function re({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,s]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t7(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),i=void 0!==e,a=i?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==i){let t=i?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=i},[i,n])}return[a,u.useCallback(t=>{if(i){let r="function"==typeof t?t(e):t;r!==e&&s.current?.(r)}else l(t)},[i,e,l,s])]}Symbol("RADIX:SYNC_STATE");var rt=u.createContext(void 0);function rr(e){let t=u.useContext(rt);return e||t||"ltr"}var rn="rovingFocusGroup.onEntryFocus",ro={bubbles:!1,cancelable:!0},rl="RovingFocusGroup",[rs,ri,ra]=function(e){let t=e+"CollectionProvider",[r,n]=tH(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};s.displayName=t;let i=e+"CollectionSlot",a=t0(i),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tY(t,l(i,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=i;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=t0(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,s=u.default.useRef(null),i=tY(t,s),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(s,{ref:s,...o}),()=>void a.itemMap.delete(s))),(0,d.jsx)(h,{...{[p]:""},ref:i,children:n})});return m.displayName=f,[{Provider:s,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(rl),[rd,ru]=tH(rl,[ra]),[rc,rf]=rd(rl),rp=u.forwardRef((e,t)=>(0,d.jsx)(rs.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rs.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rh,{...e,ref:t})})}));rp.displayName=rl;var rh=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:s,currentTabStopId:i,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tY(t,m),y=rr(s),[b,x]=re({prop:i,defaultProp:a??null,onChange:c,caller:rl}),[v,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=ri(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(rn,k),()=>e.removeEventListener(rn,k)},[k]),(0,d.jsx)(rc,{scope:n,orientation:o,dir:y,loop:l,currentTabStopId:b,onItemFocus:u.useCallback(e=>x(e),[x]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tZ.div,{tabIndex:v||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tJ(e.onMouseDown,()=>{z.current=!0}),onFocus:tJ(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(rn,ro);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rb([e.find(e=>e.active),e.find(e=>e.id===b),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tJ(e.onBlur,()=>w(!1))})})}),rm="RovingFocusGroupItem",rg=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:s,...i}=e,a=function(e){let[t,r]=u.useState(t8());return t6(()=>{r(e=>e??String(t9++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rf(rm,r),p=f.currentTabStopId===c,h=ri(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:y}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rs.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tZ.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:t,onMouseDown:tJ(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tJ(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tJ(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return ry[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rb(o))}}),children:"function"==typeof s?s({isCurrentTabStop:p,hasTabStop:null!=y}):s})})});rg.displayName=rm;var ry={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rb(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rx="Toggle",rv=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[s,i]=re({prop:r,onChange:o,defaultProp:n??!1,caller:rx});return(0,d.jsx)(tZ.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tJ(e.onClick,()=>{e.disabled||i(!s)})})});rv.displayName=rx;var rw="ToggleGroup",[rk,rS]=tH(rw,[ru]),rz=ru(),rj=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rM,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rR,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rw}\``)});rj.displayName=rw;var[rC,rE]=rk(rw),rM=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??"",onChange:o,caller:rw});return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>s?[s]:[],[s]),onItemActivate:i,onItemDeactivate:u.default.useCallback(()=>i(""),[i]),children:(0,d.jsx)(rI,{...l,ref:t})})}),rR=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??[],onChange:o,caller:rw}),a=u.default.useCallback(e=>i((t=[])=>[...t,e]),[i]),c=u.default.useCallback(e=>i((t=[])=>t.filter(t=>t!==e)),[i]);return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"multiple",value:s,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rI,{...l,ref:t})})});rj.displayName=rw;var[rN,rL]=rk(rw),rI=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:s,loop:i=!0,...a}=e,u=rz(r),c=rr(s),f={role:"group",dir:c,...a};return(0,d.jsx)(rN,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(rp,{asChild:!0,...u,orientation:l,dir:c,loop:i,children:(0,d.jsx)(tZ.div,{...f,ref:t})}):(0,d.jsx)(tZ.div,{...f,ref:t})})}),rP="ToggleGroupItem",rO=u.default.forwardRef((e,t)=>{let r=rE(rP,e.__scopeToggleGroup),n=rL(rP,e.__scopeToggleGroup),o=rz(e.__scopeToggleGroup),l=r.value.includes(e.value),s=n.disabled||e.disabled,i={...e,pressed:l,disabled:s},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rg,{asChild:!0,...o,focusable:!s,active:l,ref:a,children:(0,d.jsx)(rT,{...i,ref:t})}):(0,d.jsx)(rT,{...i,ref:t})});rO.displayName=rP;var rT=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rE(rP,r),s={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},i="single"===l.type?s:void 0;return(0,d.jsx)(rv,{...i,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rA=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rD=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,s=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let s=rA(t)||rA(n);return o[e][s]}),i=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,s,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...i}[t]):({...l,...i})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},rF=rD("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rv,{ref:o,className:tf(rF({variant:t,size:r,className:e})),...n})).displayName=rv.displayName;let r$=u.createContext({size:"default",variant:"default"}),r_=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rj,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(r$.Provider,{value:{variant:t,size:r},children:n})}));r_.displayName=rj.displayName;let rG=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let s=u.useContext(r$);return(0,d.jsx)(rO,{ref:l,className:tf(rF({variant:s.variant||r,size:s.size||n}),e),...o,children:t})});function rW({className:t=""}){let{datasetInfo:r,embeddings:n,selectedIds:o,setSelectedIds:l,beginLassoSelection:s,hoveredId:i,setHoveredId:a,geometry:c,setGeometry:f}=tI(),p=(0,u.useMemo)(()=>(function(e){let t=new Set;for(let r of e)t.add(r.geometry);return Array.from(t)})(r?.layouts??[]),[r?.layouts]),h=(0,u.useMemo)(()=>{if(!n||!r)return null;let e=n.layout_key,t=r.layouts.find(t=>t.layout_key===e),o=t?.space_key??e.split("__")[0],l=r.spaces.find(e=>e.space_key===o);return l?.model_id??l?.space_key??o},[r,n]),m=(0,u.useMemo)(()=>{if(!n)return null;let e=[...new Set(n.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":n.label_colors[e]||"#808080");return{uniqueLabels:e,categories:r,palette:o}},[n]),{canvasRef:g,overlayCanvasRef:y,containerRef:b,handlePointerDown:x,handlePointerMove:v,handlePointerUp:w,handlePointerLeave:k,handleDoubleClick:S,rendererError:z}=function({embeddings:t,labelsInfo:r,selectedIds:n,hoveredId:o,setSelectedIds:l,beginLassoSelection:s,setHoveredId:i}){let a=(0,u.useRef)(null),d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),[p,h]=(0,u.useState)(null),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),y=(0,u.useRef)(!1),b=(0,u.useRef)(0),x=(0,u.useRef)(0),v=(0,u.useRef)(0),w=(0,u.useRef)(0),k=(0,u.useRef)([]),S=(0,u.useRef)(-1),z=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{m.current||(m.current=!0,requestAnimationFrame(()=>{m.current=!1;let e=f.current;if(e){try{e.render()}catch(t){console.error("hyper-scatter renderer.render() failed:",t);try{e.destroy()}catch{}f.current=null,h("This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox."),tV(d.current);return}y.current&&tK(d.current,k.current)}}))},[]),C=(0,u.useCallback)(e=>{let t=a.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),E=(0,u.useCallback)(()=>{g.current=!1,y.current=!1,k.current=[],tV(d.current)},[]);(0,u.useEffect)(()=>{if(!t||!r||!a.current||!c.current)return;let n=!1;return(async()=>{if(h(null),!function(){try{if("undefined"==typeof document)return!1;return!!document.createElement("canvas").getContext("webgl2")}catch{return!1}}())return h("This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox.");try{let o=await e.A(20606);if(n)return;let l=c.current,s=a.current;if(!l||!s)return;f.current&&(f.current.destroy(),f.current=null);let i=l.getBoundingClientRect(),u=Math.floor(i.width),p=Math.floor(i.height);d.current&&(d.current.width=Math.max(1,u),d.current.height=Math.max(1,p),d.current.style.width=`${u}px`,d.current.style.height=`${p}px`,tV(d.current));let m=t.coords,g=new Float32Array(2*m.length);for(let e=0;e{n=!0,E(),f.current&&(f.current.destroy(),f.current=null)}},[t,r,j,E]),(0,u.useEffect)(()=>{let e=f.current;if(!e||!t||!z)return;let r=new Set;for(let e of n){let t=z.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let l=o?z.get(o)??-1:-1;e.setHovered(l),S.current=l,j()},[t,o,z,j,n]),(0,u.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;d.current&&(d.current.width=Math.max(1,r),d.current.height=Math.max(1,n),d.current.style.width=`${r}px`,d.current.style.height=`${n}px`);let o=f.current;o&&(o.resize(r,n),j())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[j]),(0,u.useEffect)(()=>{let e=a.current;if(!e)return;let t=e=>{let t=f.current;if(!t)return;e.preventDefault();let r=C(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,tB(e)),j()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[C,j]);let M=(0,u.useCallback)(e=>{if(!f.current||"number"==typeof e.button&&0!==e.button)return;let t=C(e);b.current=t.x,x.current=t.y,v.current=t.x,w.current=t.y,e.shiftKey?(y.current=!0,g.current=!1,k.current=[t.x,t.y],tK(d.current,k.current)):(g.current=!0,y.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[C]),R=(0,u.useCallback)(e=>{let r=f.current;if(!r)return;let n=C(e);if(g.current){let t=n.x-v.current,o=n.y-w.current;v.current=n.x,w.current=n.y,r.pan(t,o,tB(e)),j();return}if(y.current){let e=k.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),tK(d.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===S.current||(S.current=l,r.setHovered(l),t&&(l>=0&&l{let r=f.current;if(!r||!t)return void E();if(y.current){let e=k.current;if(E(),e.length>=6)try{let n=new Float32Array(e),o=r.lassoSelect(n),l=o.geometry?.coords;if(!l||l.length<6)return;r.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({layoutKey:t.layout_key,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}j();return}let o=C(e),i=o.x-b.current,a=o.y-x.current;if(i*i+a*a<=36){let s=r.hitTest(o.x,o.y),i=s?s.index:-1;if(i>=0&&i{let t=f.current;t&&(S.current=-1,i(null),t.setHovered(-1),j()),E()},[j,i,E]),handleDoubleClick:(0,u.useCallback)(e=>{let t=f.current;t&&(E(),t.setSelection(new Set),l(new Set,"scatter"),j())},[j,l,E]),rendererError:p}}({embeddings:n,labelsInfo:m,selectedIds:o,hoveredId:i,setSelectedIds:l,beginLassoSelection:s,setHoveredId:a}),j=m?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:n?h??"":"Loading...",children:p.length>1&&(0,d.jsxs)(r_,{type:"single",value:c,onValueChange:e=>e&&f(e),size:"sm",variant:"outline",className:"bg-muted/50 rounded-md p-0.5 gap-0.5",children:[(0,d.jsxs)(rG,{value:"euclidean","aria-label":"Euclidean geometry",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(t_,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Euclidean"})]}),(0,d.jsxs)(rG,{value:"poincare","aria-label":"Poincaré disk (hyperbolic)",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(tG,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Poincaré"})]})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:b,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:g,className:"absolute inset-0",style:{zIndex:1},onPointerDown:x,onPointerMove:v,onPointerUp:w,onPointerCancel:w,onPointerLeave:k,onDoubleClick:S}),(0,d.jsx)("canvas",{ref:y,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),z?(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/85 z-10 p-6",children:(0,d.jsxs)("div",{className:"max-w-md text-center",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-foreground mb-2",children:"Browser not supported"}),(0,d.jsx)("div",{className:"text-sm text-muted-foreground",children:z})]})}):!n&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),j.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[j.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":n?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),j.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",j.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rG.displayName=rO.displayName;var rB=Symbol.for("react.lazy"),rV=u[" use ".trim().toString()];function rK(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===rB&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rH=((s=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rK(r)&&"function"==typeof rV&&(r=rV(r._payload)),u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=s,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rK(r)&&"function"==typeof rV&&(r=rV(r._payload));let l=u.Children.toArray(r),s=l.find(rq);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rU=Symbol("radix.slottable");function rq(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rU}let rY=rD("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rQ=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rH:"button",{className:tf(rY({variant:t,size:r,className:e})),ref:l,...o}));function rX(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tI();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(tF,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rQ,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rZ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rJ(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function r0(e){let t=new URLSearchParams;e&&t.set("layout_key",e);let r=t.toString(),n=await fetch(`/api/embeddings${r?`?${r}`:""}`);if(!n.ok)throw Error(`Failed to fetch embeddings: ${n.statusText}`);return n.json()}async function r1(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r2(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({layout_key:e.layoutKey,polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r5(){let{datasetInfo:e,samples:t,totalSamples:r,samplesLoaded:n,setSamples:o,appendSamples:l,addSamplesIfMissing:s,setDatasetInfo:i,setEmbeddings:a,setIsLoading:c,isLoading:f,error:p,setError:h,selectedIds:m,isLassoSelection:g,selectionSource:y,lassoQuery:b,lassoSamples:x,lassoTotal:v,lassoIsLoading:w,setLassoResults:k,geometry:S}=tI(),[z,j]=(0,u.useState)(!1),[C,E]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{c(!0),h(null);try{let[e,t,r]=await Promise.all([rZ(),rJ(0,100),r0()]);i(e),o(t.samples,t.total),a(r)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{c(!1)}})()},[]),(0,u.useEffect)(()=>{if(!e)return;let t=e.layouts.find(e=>e.geometry===S);t&&tI.getState().currentLayoutKey!==t.layout_key&&(async()=>{E(!0);try{let e=await r0(t.layout_key);a(e)}catch(e){console.error("Failed to load geometry:",e)}finally{E(!1)}})()},[S,e,a]),(0,u.useEffect)(()=>{(async()=>{if(g||0===m.size)return;let e=new Set(t.map(e=>e.id)),r=Array.from(m).filter(t=>!e.has(t));if(0!==r.length)try{let e=await r1(r);s(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[m,t,s,g]),(0,u.useEffect)(()=>{if(!g||!b||!w)return;let e=new AbortController;return(async()=>{try{let t=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;k(t.samples,t.total,!1)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return;console.error("Failed to fetch lasso selection:",e),k([],0,!1)}})(),()=>e.abort()},[g,w,b,k]);let M=(0,u.useCallback)(async()=>{if(!z){if(g){if(!b||w||!w&&x.length>=v)return;j(!0);try{let e=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:x.length,limit:100});k(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{j(!1)}return}if(!(n>=r)){j(!0);try{let e=await rJ(n,100);l(e.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{j(!1)}}}},[z,l,g,w,b,x.length,v,n,r,k]),R=(0,u.useMemo)(()=>{if(g)return x;if("scatter"===y&&m.size>0){let e=new Map;for(let r of t)e.set(r.id,r);let r=[];for(let t of m){let n=e.get(t);n&&r.push(n)}if(r.length>0)return[...r,...t.filter(e=>!m.has(e.id))]}return t},[g,x,t,m,y]),N=g?v:r,L=g?R.lengthr5],50912)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/__next._full.txt b/src/hyperview/server/static/_not-found/__next._full.txt index 4e9c940..3c90da5 100644 --- a/src/hyperview/server/static/_not-found/__next._full.txt +++ b/src/hyperview/server/static/_not-found/__next._full.txt @@ -7,7 +7,7 @@ 9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"dsfUOjSfrev80UbslOps2","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +0:{"P":null,"b":"8FqA-ERyePplcUaEYWohc","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/_not-found/__next._head.txt b/src/hyperview/server/static/_not-found/__next._head.txt index 6a56759..7feb987 100644 --- a/src/hyperview/server/static/_not-found/__next._head.txt +++ b/src/hyperview/server/static/_not-found/__next._head.txt @@ -2,6 +2,6 @@ 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] 4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/_not-found/__next._index.txt b/src/hyperview/server/static/_not-found/__next._index.txt index f3c6156..9a2da05 100644 --- a/src/hyperview/server/static/_not-found/__next._index.txt +++ b/src/hyperview/server/static/_not-found/__next._index.txt @@ -2,4 +2,4 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt index e0a6ff1..1b5253f 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/src/hyperview/server/static/_not-found/__next._not-found.txt b/src/hyperview/server/static/_not-found/__next._not-found.txt index ac8de9f..1528054 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.txt @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -0:{"buildId":"dsfUOjSfrev80UbslOps2","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._tree.txt b/src/hyperview/server/static/_not-found/__next._tree.txt index 130447a..068e4b3 100644 --- a/src/hyperview/server/static/_not-found/__next._tree.txt +++ b/src/hyperview/server/static/_not-found/__next._tree.txt @@ -1,2 +1,2 @@ :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"dsfUOjSfrev80UbslOps2","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +0:{"buildId":"8FqA-ERyePplcUaEYWohc","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_not-found/index.html b/src/hyperview/server/static/_not-found/index.html index 0b4f335..7d84c46 100644 --- a/src/hyperview/server/static/_not-found/index.html +++ b/src/hyperview/server/static/_not-found/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/index.txt b/src/hyperview/server/static/_not-found/index.txt index 4e9c940..3c90da5 100644 --- a/src/hyperview/server/static/_not-found/index.txt +++ b/src/hyperview/server/static/_not-found/index.txt @@ -7,7 +7,7 @@ 9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"dsfUOjSfrev80UbslOps2","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +0:{"P":null,"b":"8FqA-ERyePplcUaEYWohc","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/index.html b/src/hyperview/server/static/index.html index 7496b0f..73ff68f 100644 --- a/src/hyperview/server/static/index.html +++ b/src/hyperview/server/static/index.html @@ -1 +1 @@ -HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file +HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file diff --git a/src/hyperview/server/static/index.txt b/src/hyperview/server/static/index.txt index 81249c1..119a8ae 100644 --- a/src/hyperview/server/static/index.txt +++ b/src/hyperview/server/static/index.txt @@ -2,14 +2,14 @@ 2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] 3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] 4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/5ee221fbee91a948.js"],"default"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/a096ec8e6ed56d42.js"],"default"] 8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] 9:"$Sreact.suspense" b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] :HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"dsfUOjSfrev80UbslOps2","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/5ee221fbee91a948.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +0:{"P":null,"b":"8FqA-ERyePplcUaEYWohc","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/a096ec8e6ed56d42.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] From 7458d4d7ca7a900b255a7ecfa0a573b5404848c9 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Fri, 23 Jan 2026 15:29:55 +0100 Subject: [PATCH 37/75] Add GitHub Actions workflow for Devin Review --- .github/workflows/devin-review.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .github/workflows/devin-review.yml diff --git a/.github/workflows/devin-review.yml b/.github/workflows/devin-review.yml new file mode 100644 index 0000000..5754ba5 --- /dev/null +++ b/.github/workflows/devin-review.yml @@ -0,0 +1,23 @@ +name: Devin Review + +on: + pull_request: + types: [opened, synchronize, reopened] + +jobs: + devin-review: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Run Devin Review + run: npx devin-review ${{ github.event.pull_request.html_url }} From 92d7b50e6504e335a27622ae505a456af0e71fe8 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Tue, 27 Jan 2026 23:47:03 +0100 Subject: [PATCH 38/75] feat: dockview workspace, label legend, HF offline-first, Hyper3Labs rebrand - Frontend: Added dockview-based panel layout system - Frontend: Label legend with color palette for scatter plots - Frontend: New Radix UI components (dialog, dropdown, popover, etc.) - Backend: HuggingFace datasets offline-first loading for faster startup - Backend: Sample now stores width/height image dimensions - Backend: LanceDB compatibility fix for list_tables() API changes - Rebrand: Updated all URLs from HackerRoomAI to Hyper3Labs - Cleanup: Removed react-resizable-panels (replaced by dockview) --- .gitignore | 19 +- README.md | 85 +- docs/colab.md | 2 +- frontend/next-env.d.ts | 2 +- frontend/package-lock.json | 938 +++++++++++++++++- frontend/package.json | 15 +- frontend/src/app/globals.css | 147 ++- frontend/src/app/layout.tsx | 11 +- frontend/src/app/page.tsx | 134 +-- frontend/src/components/DockviewWorkspace.tsx | 765 ++++++++++++++ frontend/src/components/ExplorerPanel.tsx | 181 ++++ frontend/src/components/Header.tsx | 261 ++++- frontend/src/components/ImageGrid.tsx | 395 +++++--- frontend/src/components/Panel.tsx | 5 +- frontend/src/components/PanelHeader.tsx | 20 +- frontend/src/components/PlaceholderPanel.tsx | 39 + frontend/src/components/ScatterPanel.tsx | 186 ++-- frontend/src/components/icons.tsx | 11 +- frontend/src/components/index.ts | 3 + frontend/src/components/ui/collapsible.tsx | 11 + frontend/src/components/ui/command.tsx | 153 +++ frontend/src/components/ui/dialog.tsx | 122 +++ frontend/src/components/ui/dropdown-menu.tsx | 201 ++++ frontend/src/components/ui/popover.tsx | 33 + frontend/src/components/ui/radio-group.tsx | 44 + frontend/src/components/ui/resizable.tsx | 45 - frontend/src/components/ui/scroll-area.tsx | 49 + frontend/src/components/ui/separator.tsx | 31 + frontend/src/components/ui/tooltip.tsx | 32 + frontend/src/components/useHyperScatter.ts | 81 +- frontend/src/components/useLabelLegend.ts | 85 ++ frontend/src/lib/labelColors.ts | 153 +++ frontend/src/lib/labelLegend.ts | 248 +++++ frontend/src/store/useStore.ts | 124 ++- frontend/src/types/index.ts | 6 +- pyproject.toml | 13 +- scripts/demo.py | 10 +- src/hyperview/cli.py | 10 +- src/hyperview/core/dataset.py | 18 +- src/hyperview/core/sample.py | 19 +- src/hyperview/server/app.py | 2 + src/hyperview/storage/lancedb_backend.py | 39 +- 42 files changed, 4122 insertions(+), 626 deletions(-) create mode 100644 frontend/src/components/DockviewWorkspace.tsx create mode 100644 frontend/src/components/ExplorerPanel.tsx create mode 100644 frontend/src/components/PlaceholderPanel.tsx create mode 100644 frontend/src/components/ui/collapsible.tsx create mode 100644 frontend/src/components/ui/command.tsx create mode 100644 frontend/src/components/ui/dialog.tsx create mode 100644 frontend/src/components/ui/dropdown-menu.tsx create mode 100644 frontend/src/components/ui/popover.tsx create mode 100644 frontend/src/components/ui/radio-group.tsx delete mode 100644 frontend/src/components/ui/resizable.tsx create mode 100644 frontend/src/components/ui/scroll-area.tsx create mode 100644 frontend/src/components/ui/separator.tsx create mode 100644 frontend/src/components/ui/tooltip.tsx create mode 100644 frontend/src/components/useLabelLegend.ts create mode 100644 frontend/src/lib/labelColors.ts create mode 100644 frontend/src/lib/labelLegend.ts diff --git a/.gitignore b/.gitignore index 07a9a77..5b94b3c 100644 --- a/.gitignore +++ b/.gitignore @@ -22,10 +22,6 @@ htmlcov/ # VS Code .vscode/ -# Local Context (Agent files) -.claude/ -context/ - # Generated assets assets/demo_animation_frames/ *.gif @@ -48,7 +44,7 @@ build/ *.hf/ .cache/ -# external repo (https://github.com/HackerRoomAI/hyper-scatter) +# external repo (https://github.com/Hyper3Labs/hyper-scatter) hyper-scatter/ # nohup @@ -64,4 +60,15 @@ frontend/tsconfig.tsbuildinfo # Hyperbolic model zoo (kept as a separate repo) hyper_model_zoo/ hyper_models/ -scripts_ignored/ \ No newline at end of file +scripts_ignored/ + +# AI Context (Agent files) +.claude/ +context/ +CLAUDE.md +TASKS.md +TESTS.md +AGENTS.md +**/AGENTS.md +.github/agents/ +.specstory/ \ No newline at end of file diff --git a/README.md b/README.md index 9fef293..dbf7dfc 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # HyperView -> **Open-source dataset curation with hyperbolic embeddings visualization** +> **Open-source dataset curation + embedding visualization (Euclidean + Poincaré disk)** -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/HackerRoomAI/HyperView) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hyper3Labs/HyperView)

@@ -17,23 +17,24 @@ ## Features - **Dual-Panel UI**: Image grid + scatter plot with bidirectional selection -- **Euclidean/Hyperbolic Toggle**: Switch between standard 2D UMAP and Poincaré disk visualization +- **Euclidean/Poincaré Toggle**: Switch between standard 2D UMAP and Poincaré disk visualization - **HuggingFace Integration**: Load datasets directly from HuggingFace Hub - **Fast Embeddings**: Uses EmbedAnything for CLIP-based image embeddings -- **FiftyOne-like API**: Familiar workflow for dataset exploration ## Quick Start +**Docs:** [docs/datasets.md](docs/datasets.md) · [docs/colab.md](docs/colab.md) · [CONTRIBUTING.md](CONTRIBUTING.md) · [TESTS.md](TESTS.md) + ### Installation ```bash -git clone https://github.com/HackerRoomAI/HyperView.git +git clone https://github.com/Hyper3Labs/HyperView.git cd HyperView # Install with uv uv venv .venv source .venv/bin/activate -uv pip install -e . +uv pip install -e ".[dev]" ``` ### Run the Demo @@ -45,7 +46,7 @@ hyperview demo --samples 500 This will: 1. Load 500 samples from CIFAR-100 2. Compute CLIP embeddings -3. Generate Euclidean and Hyperbolic visualizations +3. Generate Euclidean and Poincaré visualizations 4. Start the server at **http://127.0.0.1:6262** ### Python API @@ -99,79 +100,19 @@ Traditional Euclidean embeddings struggle with hierarchical data. In Euclidean s Euclidean vs Hyperbolic

-## Architecture - -``` -hyperview/ -├── src/hyperview/ -│ ├── core/ # Dataset, Sample classes -│ ├── embeddings/ # EmbedAnything + UMAP + Poincaré projection -│ └── server/ # FastAPI + static frontend -├── frontend/ # React/Next.js (compiled to static) -└── scripts/ - └── demo.py # Demo script -``` - -**Tech Stack:** -- **Backend**: Python, FastAPI, EmbedAnything, UMAP -- **Frontend**: Next.js 16, React 18, regl-scatterplot, Zustand, Tailwind CSS -- **Package Manager**: uv - -## Development - -### Frontend Development (with Hot Reloading) - -For the best development experience, run the backend and frontend separately: - -**Terminal 1 - Start the Python backend:** -```bash -# Activate your virtual environment first -source .venv/bin/activate - -# Run the demo script in no-browser mode -python scripts/demo.py --samples 200 --no-browser -``` -This runs the API on **http://127.0.0.1:6262** - -**Terminal 2 - Start the frontend dev server:** -```bash -cd frontend -npm install # First time only -npm run dev -``` -This runs the frontend on **http://localhost:3000** with hot reloading. - -Open **http://localhost:3000** in your browser. The frontend automatically proxies `/api/*` requests to the backend at port 6262 (configured in `next.config.ts`). - -Now you can: -- Edit React components and see changes instantly -- Edit Python backend and restart Terminal 1 -- No need to rebuild/export the frontend during development - -### Export Frontend for Production - -When you're ready to bundle the frontend into the Python package: - -```bash -./scripts/export_frontend.sh -``` +## Contributing -This compiles the frontend and copies it to `src/hyperview/server/static/`. After this, `hv.launch()` serves the bundled frontend directly from the Python server. +Development setup, frontend hot-reload, and backend API notes live in [CONTRIBUTING.md](CONTRIBUTING.md). -## API Endpoints +## Related projects -| Endpoint | Description | -|----------|-------------| -| `GET /api/dataset` | Dataset metadata (name, labels, colors) | -| `GET /api/samples` | Paginated samples with thumbnails | -| `GET /api/embeddings` | 2D coordinates (Euclidean + Hyperbolic) | -| `POST /api/selection` | Sync selection state | +- **hyper-scatter**: High-performance WebGL scatterplot engine (Euclidean + Poincaré) used by the frontend: https://github.com/Hyper3Labs/hyper-scatter +- **hyper-models**: Non-Euclidean model zoo + ONNX exports (e.g. for hyperbolic VLM experiments): https://github.com/Hyper3Labs/hyper-models ## References - [Poincaré Embeddings for Learning Hierarchical Representations](https://arxiv.org/abs/1705.08039) (Nickel & Kiela, 2017) - [Hyperbolic Neural Networks](https://arxiv.org/abs/1805.09112) (Ganea et al., 2018) -- [FiftyOne](https://github.com/voxel51/fiftyone) - Inspiration for the UI/API design ## License diff --git a/docs/colab.md b/docs/colab.md index bef3f7c..eef4e27 100644 --- a/docs/colab.md +++ b/docs/colab.md @@ -7,7 +7,7 @@ HyperView works natively in Google Colab. Because Colab runs on a remote VM, you ### 1. Install HyperView ```bash -!pip install -q git+https://github.com/HackerRoomAI/HyperView.git +!pip install -q git+https://github.com/Hyper3Labs/HyperView.git ``` ### 2. Launch the visualizer diff --git a/frontend/next-env.d.ts b/frontend/next-env.d.ts index 9edff1c..c4b7818 100644 --- a/frontend/next-env.d.ts +++ b/frontend/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/types/routes.d.ts"; +import "./.next/dev/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/frontend/package-lock.json b/frontend/package-lock.json index c7de89d..c193d55 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,23 +8,34 @@ "name": "hyperview-frontend", "version": "0.1.0", "dependencies": { + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-radio-group": "^1.3.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-toggle": "^1.1.10", "@radix-ui/react-toggle-group": "^1.1.11", + "@radix-ui/react-tooltip": "^1.2.8", "@tanstack/react-virtual": "^3.10.9", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "dockview": "^4.13.1", "hyper-scatter": "^0.1.0", + "justified-layout": "^4.1.0", "lucide-react": "^0.562.0", "next": "^16.0.7", "react": "18.3.1", "react-dom": "18.3.1", - "react-resizable-panels": "^4.4.1", "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", "zustand": "^5.0.1" }, "devDependencies": { + "@types/justified-layout": "^4.1.4", "@types/node": "^22.9.0", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", @@ -248,6 +259,44 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", + "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1003,12 +1052,71 @@ "node": ">=12.4.0" } }, + "node_modules/@radix-ui/number": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", + "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", + "license": "MIT" + }, "node_modules/@radix-ui/primitive": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", "license": "MIT" }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", + "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", + "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, "node_modules/@radix-ui/react-collection": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", @@ -1083,6 +1191,60 @@ } } }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", + "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-direction": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", @@ -1098,6 +1260,102 @@ } } }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", + "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.16.tgz", + "integrity": "sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.16", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", + "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", + "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "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 + } + } + }, "node_modules/@radix-ui/react-id": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", @@ -1116,6 +1374,199 @@ } } }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.16.tgz", + "integrity": "sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.15.tgz", + "integrity": "sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-focus-guards": "1.1.3", + "@radix-ui/react-focus-scope": "1.1.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", + "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", + "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", + "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, "node_modules/@radix-ui/react-primitive": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", @@ -1139,39 +1590,148 @@ } } }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", + "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-roving-focus": "1.1.11", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-use-size": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", + "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-collection": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.10.tgz", + "integrity": "sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.1", + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.8.tgz", + "integrity": "sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" + "@radix-ui/react-primitive": "2.1.4" }, "peerDependencies": { "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "@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 } } }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", - "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", + "node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", + "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2" + "@radix-ui/react-slot": "1.2.4" }, "peerDependencies": { "@types/react": "*", @@ -1260,6 +1820,58 @@ } } }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", + "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.11", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.8", + "@radix-ui/react-portal": "1.1.9", + "@radix-ui/react-presence": "1.1.5", + "@radix-ui/react-primitive": "2.1.3", + "@radix-ui/react-slot": "1.2.3", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", @@ -1312,6 +1924,24 @@ } } }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-layout-effect": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", @@ -1327,6 +1957,86 @@ } } }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", + "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -1409,6 +2119,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/justified-layout": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@types/justified-layout/-/justified-layout-4.1.4.tgz", + "integrity": "sha512-q2ybP0u0NVj87oMnGZOGxY2iUN8ddr48zPOBHBdbOLpsMTA/keGj+93ou+OMCnJk0xewzlNIaVEkxM6VBD3E2w==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "22.19.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", @@ -2061,6 +2778,18 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/aria-query": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", @@ -2577,6 +3306,22 @@ "node": ">=6" } }, + "node_modules/cmdk": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz", + "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "^1.1.1", + "@radix-ui/react-dialog": "^1.1.6", + "@radix-ui/react-id": "^1.1.0", + "@radix-ui/react-primitive": "^2.0.2" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2779,6 +3524,12 @@ "node": ">=8" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -2791,6 +3542,24 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "license": "MIT" }, + "node_modules/dockview": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/dockview/-/dockview-4.13.1.tgz", + "integrity": "sha512-K8xnYt3Rvkx8MYKHaEsb8aFaPyQclKRRkXS9JcpQPZUgqxumTLnSidgdd6uIfzEps6yJsXoZGQGJ9PtcaKyDcQ==", + "license": "MIT", + "dependencies": { + "dockview-core": "^4.13.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/dockview-core": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/dockview-core/-/dockview-core-4.13.1.tgz", + "integrity": "sha512-+7vR0ZEoL8CNck6NqDVUMqBT22niwBu5CMMI137dZ3c8NDc7c5Si+3dGEqQgM4lNtHBLAtvypo1C4p21J2wkiQ==", + "license": "MIT" + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -3700,6 +4469,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -4476,6 +5254,12 @@ "node": ">=4.0" } }, + "node_modules/justified-layout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/justified-layout/-/justified-layout-4.1.0.tgz", + "integrity": "sha512-M5FimNMXgiOYerVRGsXZ2YK9YNCaTtwtYp7Hb2308U1Q9TXXHx5G0p08mcVR5O53qf8bWY4NJcPBxE6zuayXSg==", + "license": "ISC" + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -5326,14 +6110,73 @@ "dev": true, "license": "MIT" }, - "node_modules/react-resizable-panels": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-4.4.1.tgz", - "integrity": "sha512-dpM9oI6rGlAq7VYDeafSRA1JmkJv8aNuKySR+tZLQQLfaeqTnQLSM52EcoI/QdowzsjVUCk6jViKS0xHWITVRQ==", + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "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 + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/read-cache": { @@ -6387,6 +7230,49 @@ "punycode": "^2.1.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "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 + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "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 + } + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index 5b0c4ee..918a0ce 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,23 +10,34 @@ "export": "next build && cp -r out/* ../src/hyperview/server/static/" }, "dependencies": { + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-radio-group": "^1.3.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slot": "^1.2.4", "@radix-ui/react-toggle": "^1.1.10", "@radix-ui/react-toggle-group": "^1.1.11", + "@radix-ui/react-tooltip": "^1.2.8", "@tanstack/react-virtual": "^3.10.9", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "dockview": "^4.13.1", + "hyper-scatter": "^0.1.0", + "justified-layout": "^4.1.0", "lucide-react": "^0.562.0", "next": "^16.0.7", "react": "18.3.1", "react-dom": "18.3.1", - "react-resizable-panels": "^4.4.1", "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", - "hyper-scatter": "^0.1.0", "zustand": "^5.0.1" }, "devDependencies": { + "@types/justified-layout": "^4.1.4", "@types/node": "^22.9.0", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", diff --git a/frontend/src/app/globals.css b/frontend/src/app/globals.css index b25953f..4272f94 100644 --- a/frontend/src/app/globals.css +++ b/frontend/src/app/globals.css @@ -1,8 +1,18 @@ +@import "dockview/dist/styles/dockview.css"; + @tailwind base; @tailwind components; @tailwind utilities; @layer base { + html, + body { + height: 100%; + margin: 0; + padding: 0; + overflow: hidden; + } + :root { /* Rerun-inspired dark theme as default (dark-first) */ --background: 215 28% 7%; /* #0d1117 */ @@ -54,17 +64,20 @@ } body { @apply bg-background text-foreground; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-size: 12px; + line-height: 16px; + letter-spacing: -0.15px; + font-weight: 500; + font-feature-settings: "liga" 1, "calt" 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } } -/* Custom scrollbar - Rerun style */ +/* Custom scrollbar - Rerun style: 6px bar, 2px inner margin, 2px outer margin */ ::-webkit-scrollbar { - width: 6px; - height: 6px; + width: 10px; /* 6px bar + 2px inner margin on each side */ + height: 10px; } ::-webkit-scrollbar-track { @@ -72,12 +85,22 @@ } ::-webkit-scrollbar-thumb { - background: hsl(var(--surface-elevated)); + background: hsl(var(--muted-foreground) / 0.2); border-radius: 3px; + border: 2px solid transparent; + background-clip: padding-box; } ::-webkit-scrollbar-thumb:hover { - background: hsl(var(--text-subtle)); + background: hsl(var(--muted-foreground) / 0.35); + border: 2px solid transparent; + background-clip: padding-box; +} + +/* Firefox scrollbar */ +* { + scrollbar-width: thin; + scrollbar-color: hsl(var(--muted-foreground) / 0.25) transparent; } /* Hide scrollbar for some elements */ @@ -89,3 +112,113 @@ -ms-overflow-style: none; scrollbar-width: none; } + +/* Scroll containers inside panels should keep scrollbars inset */ +.panel-scroll { + scrollbar-gutter: stable; +} + +/* Dockview theme overrides (match HyperView tokens) */ +.hyperview-dockview { + --dv-background-color: hsl(var(--background)); + --dv-group-view-background-color: hsl(var(--card)); + --dv-tabs-and-actions-container-background-color: hsl(var(--secondary)); + --dv-activegroup-visiblepanel-tab-background-color: hsl(var(--card)); + --dv-activegroup-hiddenpanel-tab-background-color: hsl(var(--secondary)); + --dv-inactivegroup-visiblepanel-tab-background-color: hsl(var(--secondary)); + --dv-inactivegroup-hiddenpanel-tab-background-color: hsl(var(--secondary)); + --dv-activegroup-visiblepanel-tab-color: hsl(var(--foreground)); + --dv-activegroup-hiddenpanel-tab-color: hsl(var(--muted-foreground)); + --dv-inactivegroup-visiblepanel-tab-color: hsl(var(--muted-foreground)); + --dv-inactivegroup-hiddenpanel-tab-color: hsl(var(--muted-foreground)); + --dv-tabs-and-actions-container-font-size: 12px; + --dv-tabs-and-actions-container-height: 24px; + --dv-tab-font-size: 12px; + --dv-tabs-container-scrollbar-color: hsl(var(--muted-foreground) / 0.25); + --dv-scrollbar-background-color: hsl(var(--muted-foreground) / 0.25); + --dv-tab-divider-color: hsl(var(--border)); + --dv-separator-border: transparent; + --dv-paneview-header-border-color: hsl(var(--border)); + --dv-sash-color: hsl(var(--border)); + --dv-icon-hover-background-color: hsl(var(--accent)); + --dv-active-sash-color: hsl(var(--primary)); + --dv-drag-over-background-color: hsl(var(--primary) / 0.15); + --dv-drag-over-border-color: hsl(var(--primary) / 0.6); + /* Remove tab margins for flush appearance */ + --dv-tab-margin: 0; +} + +/* Remove any gaps between panels - Rerun-style flush layout */ +.hyperview-dockview .dv-groupview { + border: none; +} + +.hyperview-dockview .dv-tabs-and-actions-container { + border-bottom: 1px solid hsl(var(--border)); +} + +.hyperview-dockview .dv-tab { + padding: 0 8px; + height: 100%; + display: flex; + align-items: center; + line-height: 16px; +} + +.hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal { + height: 6px; + border-radius: 3px; +} + +/* Hide Dockview tab scrollbars (avoid extra bar under tabs) */ +.hyperview-dockview .dv-tabs-container { + scrollbar-width: none; +} + +.hyperview-dockview .dv-tabs-container::-webkit-scrollbar { + height: 0; +} + +.hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal { + display: none; +} + +/* Sash styling: transparent hit area with centered 1px visible line via pseudo-element */ +.hyperview-dockview .dv-split-view-container > .dv-sash-container > .dv-sash { + /* Keep the sash itself transparent - we'll draw the line with ::after */ + background-color: transparent !important; +} + +/* Horizontal sash (vertical divider line) */ +.hyperview-dockview .dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash::after { + content: ""; + position: absolute; + top: 0; + bottom: 0; + left: 50%; + transform: translateX(-50%); + width: 1px; + background-color: hsl(var(--border)); + pointer-events: none; +} + +.hyperview-dockview .dv-split-view-container.dv-horizontal > .dv-sash-container > .dv-sash.dv-enabled:hover::after { + background-color: hsl(var(--primary)); +} + +/* Vertical sash (horizontal divider line) */ +.hyperview-dockview .dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash::after { + content: ""; + position: absolute; + left: 0; + right: 0; + top: 50%; + transform: translateY(-50%); + height: 1px; + background-color: hsl(var(--border)); + pointer-events: none; +} + +.hyperview-dockview .dv-split-view-container.dv-vertical > .dv-sash-container > .dv-sash.dv-enabled:hover::after { + background-color: hsl(var(--primary)); +} diff --git a/frontend/src/app/layout.tsx b/frontend/src/app/layout.tsx index cbfbe73..6af29df 100644 --- a/frontend/src/app/layout.tsx +++ b/frontend/src/app/layout.tsx @@ -1,6 +1,13 @@ import type { Metadata } from "next"; +import { Inter } from "next/font/google"; import "./globals.css"; +const inter = Inter({ + subsets: ["latin"], + display: "swap", + weight: ["400", "500"], +}); + export const metadata: Metadata = { title: "HyperView", description: "Dataset visualization with hyperbolic embeddings", @@ -12,8 +19,8 @@ export default function RootLayout({ children: React.ReactNode; }>) { return ( - - {children} + + {children} ); } diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index 12dd689..a04d188 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -1,18 +1,13 @@ "use client"; -import { useEffect, useCallback, useMemo, useState } from "react"; -import { - ResizablePanelGroup, - ResizablePanel, - ResizableHandle, -} from "@/components/ui/resizable"; -import { Header, ImageGrid, ScatterPanel } from "@/components"; +import { useEffect, useCallback, useMemo, useRef, useState } from "react"; +import { Header } from "@/components"; +import { DockviewWorkspace, DockviewProvider } from "@/components/DockviewWorkspace"; import { useStore } from "@/store/useStore"; import type { Sample } from "@/types"; import { fetchDataset, fetchSamples, - fetchEmbeddings, fetchSamplesBatch, fetchLassoSelection, } from "@/lib/api"; @@ -21,7 +16,6 @@ const SAMPLES_PER_PAGE = 100; export default function Home() { const { - datasetInfo, samples, totalSamples, samplesLoaded, @@ -29,7 +23,6 @@ export default function Home() { appendSamples, addSamplesIfMissing, setDatasetInfo, - setEmbeddings, setIsLoading, isLoading, error, @@ -42,11 +35,11 @@ export default function Home() { lassoTotal, lassoIsLoading, setLassoResults, - geometry, + labelFilter, } = useStore(); const [loadingMore, setLoadingMore] = useState(false); - const [geometryLoading, setGeometryLoading] = useState(false); + const labelFilterRef = useRef(labelFilter ?? null); // Initial data load - runs once on mount // Store setters are stable and don't need to be in deps @@ -56,16 +49,14 @@ export default function Home() { setError(null); try { - // Fetch dataset info, samples, and embeddings in parallel - const [datasetInfo, samplesRes, embeddingsData] = await Promise.all([ + // Fetch dataset info and samples in parallel + const [datasetInfo, samplesRes] = await Promise.all([ fetchDataset(), fetchSamples(0, SAMPLES_PER_PAGE), - fetchEmbeddings(), ]); setDatasetInfo(datasetInfo); setSamples(samplesRes.samples, samplesRes.total); - setEmbeddings(embeddingsData); } catch (err) { console.error("Failed to load data:", err); setError(err instanceof Error ? err.message : "Failed to load data"); @@ -78,38 +69,12 @@ export default function Home() { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - // Fetch new embeddings when geometry changes - useEffect(() => { - if (!datasetInfo) return; - - // Find layout for current geometry (using LayoutInfo.geometry directly) - const targetLayout = datasetInfo.layouts.find((l) => l.geometry === geometry); - if (!targetLayout) return; - - // Skip if already showing this layout - const currentLayout = useStore.getState().currentLayoutKey; - if (currentLayout === targetLayout.layout_key) return; - - const loadGeometry = async () => { - setGeometryLoading(true); - try { - const embeddingsData = await fetchEmbeddings(targetLayout.layout_key); - setEmbeddings(embeddingsData); - } catch (err) { - console.error("Failed to load geometry:", err); - } finally { - setGeometryLoading(false); - } - }; - - loadGeometry(); - }, [geometry, datasetInfo, setEmbeddings]); - // Fetch selected samples that aren't already loaded useEffect(() => { const fetchSelectedSamples = async () => { if (isLassoSelection) return; if (selectedIds.size === 0) return; + if (selectionSource === "label") return; // Find IDs that are selected but not in our samples array const loadedIds = new Set(samples.map((s) => s.id)); @@ -126,7 +91,32 @@ export default function Home() { }; fetchSelectedSamples(); - }, [selectedIds, samples, addSamplesIfMissing, isLassoSelection]); + }, [selectedIds, samples, addSamplesIfMissing, isLassoSelection, selectionSource]); + + // Refetch samples when label filter changes (non-lasso mode) + useEffect(() => { + if (labelFilterRef.current === labelFilter) return; + if (isLassoSelection) return; + + labelFilterRef.current = labelFilter ?? null; + + let cancelled = false; + const run = async () => { + try { + const res = await fetchSamples(0, SAMPLES_PER_PAGE, labelFilter ?? undefined); + if (cancelled) return; + setSamples(res.samples, res.total); + } catch (err) { + if (cancelled) return; + console.error("Failed to load filtered samples:", err); + } + }; + + run(); + return () => { + cancelled = true; + }; + }, [isLassoSelection, labelFilter, setSamples]); // Fetch initial lasso selection page when a new lasso query begins. useEffect(() => { @@ -189,7 +179,7 @@ export default function Home() { setLoadingMore(true); try { - const res = await fetchSamples(samplesLoaded, SAMPLES_PER_PAGE); + const res = await fetchSamples(samplesLoaded, SAMPLES_PER_PAGE, labelFilter ?? undefined); appendSamples(res.samples); } catch (err) { console.error("Failed to load more samples:", err); @@ -207,6 +197,7 @@ export default function Home() { samplesLoaded, totalSamples, setLassoResults, + labelFilter, ]); const displayedSamples = useMemo(() => { @@ -268,46 +259,19 @@ export default function Home() { } return ( -
-
- - {/* Main content - resizable panels with Rerun-style spacing */} -
- - {/* Left panel - Image Grid */} - - - - - {/* Resizable handle with grip */} - - - {/* Right panel - Scatter Plot */} - - - - + +
+
+ + {/* Main content - dockable panels */} +
+ +
-
+ ); } diff --git a/frontend/src/components/DockviewWorkspace.tsx b/frontend/src/components/DockviewWorkspace.tsx new file mode 100644 index 0000000..42d3f41 --- /dev/null +++ b/frontend/src/components/DockviewWorkspace.tsx @@ -0,0 +1,765 @@ +"use client"; + +import React, { + useCallback, + useEffect, + useMemo, + useState, + createContext, + useContext, + type ReactNode, +} from "react"; +import { + DockviewReact, + type DockviewApi, + type DockviewReadyEvent, + type IDockviewPanelProps, + type IDockviewPanelHeaderProps, + type IWatermarkPanelProps, + themeAbyss, +} from "dockview"; +import { Circle, Disc, Grid3X3 } from "lucide-react"; + +import type { Geometry, Sample } from "@/types"; +import { useStore } from "@/store/useStore"; +import { findLayoutByGeometry } from "@/lib/layouts"; +import { ImageGrid } from "./ImageGrid"; +import { ScatterPanel } from "./ScatterPanel"; +import { ExplorerPanel } from "./ExplorerPanel"; +import { PlaceholderPanel } from "./PlaceholderPanel"; +import { HyperViewLogo } from "./icons"; + +const LAYOUT_STORAGE_KEY = "hyperview:dockview-layout:v4"; + +// Panel IDs +const PANEL = { + EXPLORER: "explorer", + GRID: "grid", + SCATTER_EUCLIDEAN: "scatter-euclidean", + SCATTER_POINCARE: "scatter-poincare", + SCATTER_DEFAULT: "scatter-default", + RIGHT_PLACEHOLDER: "right-placeholder", + BOTTOM_PLACEHOLDER: "bottom-placeholder", +} as const; + +const CENTER_PANEL_IDS = [ + PANEL.GRID, + PANEL.SCATTER_EUCLIDEAN, + PANEL.SCATTER_POINCARE, + PANEL.SCATTER_DEFAULT, +] as const; + +export const CENTER_PANEL_DEFS = [ + { id: PANEL.GRID, label: "Samples", icon: Grid3X3 }, + { id: PANEL.SCATTER_EUCLIDEAN, label: "Euclidean", icon: Circle }, + { id: PANEL.SCATTER_POINCARE, label: "Hyperbolic", icon: Disc }, +] as const; + +const NON_ANCHOR_PANEL_IDS = new Set([ + PANEL.EXPLORER, + PANEL.RIGHT_PLACEHOLDER, + PANEL.BOTTOM_PLACEHOLDER, +]); + +const DRAG_LOCKED_PANEL_IDS = new Set([PANEL.EXPLORER]); + +const DEFAULT_CONTAINER_WIDTH = 1200; +const DEFAULT_CONTAINER_HEIGHT = 800; +const MIN_SIDE_PANEL_WIDTH = 120; +const MIN_BOTTOM_PANEL_HEIGHT = 150; + +const getContainerWidth = (api?: DockviewApi | null) => + api?.width ?? + (typeof window === "undefined" ? DEFAULT_CONTAINER_WIDTH : window.innerWidth); +const getContainerHeight = (api?: DockviewApi | null) => + api?.height ?? + (typeof window === "undefined" ? DEFAULT_CONTAINER_HEIGHT : window.innerHeight); + +const getDefaultLeftPanelWidth = (screenWidth: number) => + Math.round(Math.min(0.35 * screenWidth, 200)); +const getDefaultRightPanelWidth = (screenWidth: number) => + Math.round(Math.min(0.45 * screenWidth, 300)); +const getDefaultBottomPanelHeight = (containerHeight: number) => + Math.round( + Math.min(Math.max(0.25 * containerHeight, MIN_BOTTOM_PANEL_HEIGHT), 250) + ); +const getBottomPanelMaxHeight = (containerHeight: number) => + Math.round( + Math.max(containerHeight - MIN_BOTTOM_PANEL_HEIGHT, MIN_BOTTOM_PANEL_HEIGHT) + ); + +function getCenterAnchorPanel(api: DockviewApi) { + for (const id of CENTER_PANEL_IDS) { + const panel = api.getPanel(id); + if (panel) return panel; + } + + const fallback = api.panels.find((panel) => !NON_ANCHOR_PANEL_IDS.has(panel.id)); + return fallback ?? api.activePanel; +} + +function getZonePosition(zone: "left" | "right" | "bottom") { + return { direction: zone === "bottom" ? "below" : zone }; +} + +function getCenterTabPosition(api: DockviewApi) { + const anchor = getCenterAnchorPanel(api); + if (!anchor) return undefined; + return { referencePanel: anchor, direction: "within" as const }; +} + +// ----------------------------------------------------------------------------- +// Context for sharing dockview API across components +// ----------------------------------------------------------------------------- +interface DockviewContextValue { + api: DockviewApi | null; + setApi: (api: DockviewApi) => void; + samples: Sample[]; + onLoadMore: () => void; + hasMore: boolean; +} + +const DockviewContext = createContext(null); + +function useDockviewContext() { + const ctx = useContext(DockviewContext); + if (!ctx) throw new Error("useDockviewContext must be used within DockviewProvider"); + return ctx; +} + +// Public hook for components like Header +export function useDockviewApi() { + const ctx = useContext(DockviewContext); + const datasetInfo = useStore((state) => state.datasetInfo); + const { + leftPanelOpen, + rightPanelOpen, + bottomPanelOpen, + setLeftPanelOpen, + setRightPanelOpen, + setBottomPanelOpen, + } = useStore(); + + const addPanel = useCallback( + (panelId: string) => { + if (!ctx?.api) return; + + const api = ctx.api; + const position = getCenterTabPosition(api); + const baseOptions = position ? { position } : {}; + + const layouts = datasetInfo?.layouts ?? []; + const euclideanLayout = findLayoutByGeometry(layouts, "euclidean"); + const poincareLayout = findLayoutByGeometry(layouts, "poincare"); + + // Don't add if already exists - just focus it + if (api.getPanel(panelId)) { + api.getPanel(panelId)?.focus(); + return; + } + + switch (panelId) { + case PANEL.GRID: + api.addPanel({ + id: PANEL.GRID, + component: "grid", + title: "Samples", + tabComponent: "samplesTab", + renderer: "always", + ...baseOptions, + }); + break; + + case PANEL.SCATTER_EUCLIDEAN: + api.addPanel({ + id: PANEL.SCATTER_EUCLIDEAN, + component: "scatter", + title: "Euclidean", + tabComponent: "euclideanTab", + params: { + layoutKey: euclideanLayout?.layout_key, + geometry: "euclidean" as Geometry, + }, + renderer: "always", + ...baseOptions, + }); + break; + + case PANEL.SCATTER_POINCARE: + api.addPanel({ + id: PANEL.SCATTER_POINCARE, + component: "scatter", + title: "Hyperbolic", + tabComponent: "hyperbolicTab", + params: { + layoutKey: poincareLayout?.layout_key, + geometry: "poincare" as Geometry, + }, + renderer: "always", + ...baseOptions, + }); + break; + } + }, + [ctx?.api, datasetInfo] + ); + + const resetLayout = useCallback(() => { + localStorage.removeItem(LAYOUT_STORAGE_KEY); + window.location.reload(); + }, []); + + // Toggle zone visibility + const toggleZone = useCallback( + (zone: "left" | "right" | "bottom") => { + if (!ctx?.api) return; + + const api = ctx.api; + const panelId = + zone === "left" + ? PANEL.EXPLORER + : zone === "right" + ? PANEL.RIGHT_PLACEHOLDER + : PANEL.BOTTOM_PLACEHOLDER; + const setOpen = + zone === "left" + ? setLeftPanelOpen + : zone === "right" + ? setRightPanelOpen + : setBottomPanelOpen; + const isOpen = + zone === "left" + ? leftPanelOpen + : zone === "right" + ? rightPanelOpen + : bottomPanelOpen; + + const existingPanel = api.getPanel(panelId); + + if (isOpen && existingPanel) { + existingPanel.api.close(); + setOpen(false); + return; + } + + if (isOpen) return; + + const containerWidth = getContainerWidth(api); + const containerHeight = getContainerHeight(api); + const position = getZonePosition(zone); + + let newPanel; + if (zone === "left") { + const targetWidth = getDefaultLeftPanelWidth(containerWidth); + newPanel = api.addPanel({ + id: panelId, + component: "explorer", + title: "Explorer", + position, + initialWidth: targetWidth, + minimumWidth: MIN_SIDE_PANEL_WIDTH, + maximumWidth: targetWidth, + }); + + if (newPanel) { + newPanel.group.locked = true; + newPanel.group.header.hidden = true; + // Explicitly set the width to ensure it's applied + newPanel.api.setSize({ width: targetWidth }); + } + } else if (zone === "right") { + newPanel = api.addPanel({ + id: panelId, + component: "placeholder", + title: "Blank", + position, + initialWidth: getDefaultRightPanelWidth(containerWidth), + minimumWidth: MIN_SIDE_PANEL_WIDTH, + maximumWidth: Math.round(containerWidth * 0.65), + }); + } else { + newPanel = api.addPanel({ + id: panelId, + component: "placeholder", + title: "Blank", + position, + initialHeight: getDefaultBottomPanelHeight(containerHeight), + minimumHeight: MIN_BOTTOM_PANEL_HEIGHT, + maximumHeight: getBottomPanelMaxHeight(containerHeight), + }); + } + + if (newPanel) { + setOpen(true); + // Activate the panel so its content renders immediately + newPanel.api.setActive(); + } + }, + [ + ctx?.api, + leftPanelOpen, + rightPanelOpen, + bottomPanelOpen, + setLeftPanelOpen, + setRightPanelOpen, + setBottomPanelOpen, + ] + ); + + if (!ctx) return null; + + return { + api: ctx.api, + addPanel, + resetLayout, + toggleZone, + }; +} + +// ----------------------------------------------------------------------------- +// Panel Components - stable references defined outside component +// ----------------------------------------------------------------------------- +type ScatterPanelParams = { + layoutKey?: string; + geometry?: Geometry; +}; + +const ScatterDockPanel = React.memo(function ScatterDockPanel( + props: IDockviewPanelProps +) { + const params = props.params ?? {}; + return ( + + ); +}); + +// Custom tab component with icon (like Rerun's "Image and segmentation mask" tab) +type TabWithIconProps = IDockviewPanelHeaderProps & { + icon: React.ReactNode; +}; + +const TabWithIcon = React.memo(function TabWithIcon({ api, icon }: TabWithIconProps) { + return ( +
+ {icon} + {api.title} +
+ ); +}); + +// Tab components for different panel types +const EuclideanTab = React.memo(function EuclideanTab(props: IDockviewPanelHeaderProps) { + return } />; +}); + +const HyperbolicTab = React.memo(function HyperbolicTab(props: IDockviewPanelHeaderProps) { + return } />; +}); + +const SamplesTab = React.memo(function SamplesTab(props: IDockviewPanelHeaderProps) { + return } />; +}); + +// Grid panel uses context to get samples +const GridDockPanel = React.memo(function GridDockPanel() { + const ctx = useDockviewContext(); + return ( + + ); +}); + +// Explorer panel for left zone +const ExplorerDockPanel = React.memo(function ExplorerDockPanel() { + return ; +}); + +// Placeholder panel for right/bottom zones +const PlaceholderDockPanel = React.memo(function PlaceholderDockPanel( + props: IDockviewPanelProps +) { + const handleClose = React.useCallback(() => { + props.api.close(); + }, [props.api]); + + return ; +}); + +// Watermark shown when dock is empty - just the logo, no text +const Watermark = React.memo(function Watermark(_props: IWatermarkPanelProps) { + return ( +
+
+ +
+
+ ); +}); + +// Stable components object - never changes +const COMPONENTS = { + grid: GridDockPanel, + scatter: ScatterDockPanel, + explorer: ExplorerDockPanel, + placeholder: PlaceholderDockPanel, +}; + +// Tab components with icons +const TAB_COMPONENTS = { + euclideanTab: EuclideanTab, + hyperbolicTab: HyperbolicTab, + samplesTab: SamplesTab, +}; + +// ----------------------------------------------------------------------------- +// Provider Component +// ----------------------------------------------------------------------------- +interface DockviewProviderProps { + children: ReactNode; + samples: Sample[]; + onLoadMore: () => void; + hasMore: boolean; +} + +export function DockviewProvider({ + children, + samples, + onLoadMore, + hasMore, +}: DockviewProviderProps) { + const [api, setApi] = useState(null); + + const contextValue = useMemo( + () => ({ + api, + setApi, + samples, + onLoadMore, + hasMore, + }), + [api, samples, onLoadMore, hasMore] + ); + + return ( + + {children} + + ); +} + +function applyZonePolicies(api: DockviewApi) { + const explorer = api.getPanel(PANEL.EXPLORER); + if (explorer) { + explorer.group.locked = true; + explorer.group.header.hidden = true; + } + + // Hide tab headers for placeholder panels + const rightPlaceholder = api.getPanel(PANEL.RIGHT_PLACEHOLDER); + if (rightPlaceholder) { + rightPlaceholder.group.header.hidden = true; + } + + const bottomPlaceholder = api.getPanel(PANEL.BOTTOM_PLACEHOLDER); + if (bottomPlaceholder) { + bottomPlaceholder.group.header.hidden = true; + } +} + +// ----------------------------------------------------------------------------- +// Workspace Component - the actual dockview renderer +// ----------------------------------------------------------------------------- +export function DockviewWorkspace() { + const ctx = useDockviewContext(); + const datasetInfo = useStore((state) => state.datasetInfo); + const { setLeftPanelOpen, setRightPanelOpen, setBottomPanelOpen } = useStore(); + + const buildDefaultLayout = useCallback( + (api: DockviewApi) => { + const layouts = datasetInfo?.layouts ?? []; + const euclideanLayout = findLayoutByGeometry(layouts, "euclidean"); + const poincareLayout = findLayoutByGeometry(layouts, "poincare"); + const fallbackLayout = !euclideanLayout && !poincareLayout ? layouts[0] : null; + const hasLayouts = layouts.length > 0; + + // Create the grid panel first (center zone) + const gridPanel = + api.getPanel(PANEL.GRID) ?? + api.addPanel({ + id: PANEL.GRID, + component: "grid", + title: "Samples", + tabComponent: "samplesTab", + renderer: "always", + }); + + let scatterPanel: typeof gridPanel | null = null; + + if (hasLayouts && euclideanLayout) { + scatterPanel = + api.getPanel(PANEL.SCATTER_EUCLIDEAN) ?? + api.addPanel({ + id: PANEL.SCATTER_EUCLIDEAN, + component: "scatter", + title: "Euclidean", + tabComponent: "euclideanTab", + params: { + layoutKey: euclideanLayout.layout_key, + geometry: "euclidean" as Geometry, + }, + position: { + referencePanel: gridPanel.id, + direction: "right", + }, + renderer: "always", + }); + } + + if (hasLayouts && poincareLayout) { + const position = scatterPanel + ? { referencePanel: scatterPanel.id, direction: "within" as const } + : { referencePanel: gridPanel.id, direction: "right" as const }; + + const poincarePanel = + api.getPanel(PANEL.SCATTER_POINCARE) ?? + api.addPanel({ + id: PANEL.SCATTER_POINCARE, + component: "scatter", + title: "Hyperbolic", + tabComponent: "hyperbolicTab", + params: { + layoutKey: poincareLayout.layout_key, + geometry: "poincare" as Geometry, + }, + position, + renderer: "always", + }); + + if (!scatterPanel) { + scatterPanel = poincarePanel; + } + } + + if (!hasLayouts) { + const euclideanPanel = + api.getPanel(PANEL.SCATTER_EUCLIDEAN) ?? + api.addPanel({ + id: PANEL.SCATTER_EUCLIDEAN, + component: "scatter", + title: "Euclidean", + tabComponent: "euclideanTab", + params: { + geometry: "euclidean" as Geometry, + }, + position: { + referencePanel: gridPanel.id, + direction: "right", + }, + renderer: "always", + }); + + api.getPanel(PANEL.SCATTER_POINCARE) ?? + api.addPanel({ + id: PANEL.SCATTER_POINCARE, + component: "scatter", + title: "Hyperbolic", + tabComponent: "hyperbolicTab", + params: { + geometry: "poincare" as Geometry, + }, + position: { + referencePanel: euclideanPanel.id, + direction: "within" as const, + }, + renderer: "always", + }); + + scatterPanel = euclideanPanel; + } + + if (fallbackLayout && !scatterPanel) { + api.getPanel(PANEL.SCATTER_DEFAULT) ?? + api.addPanel({ + id: PANEL.SCATTER_DEFAULT, + component: "scatter", + title: "Embeddings", + params: { + layoutKey: fallbackLayout.layout_key, + }, + position: { + referencePanel: gridPanel.id, + direction: "right", + }, + renderer: "always", + }); + } + + const containerWidth = getContainerWidth(api); + const explorerPanel = + api.getPanel(PANEL.EXPLORER) ?? + api.addPanel({ + id: PANEL.EXPLORER, + component: "explorer", + title: "Explorer", + position: getZonePosition("left"), + initialWidth: getDefaultLeftPanelWidth(containerWidth), + minimumWidth: MIN_SIDE_PANEL_WIDTH, + maximumWidth: getDefaultLeftPanelWidth(containerWidth), + inactive: true, + }); + + if (explorerPanel) { + explorerPanel.group.locked = true; + explorerPanel.group.header.hidden = true; + } + + setLeftPanelOpen(!!explorerPanel); + setRightPanelOpen(false); + setBottomPanelOpen(false); + }, + [datasetInfo, setLeftPanelOpen, setRightPanelOpen, setBottomPanelOpen] + ); + + const onReady = useCallback( + (event: DockviewReadyEvent) => { + ctx.setApi(event.api); + + const stored = localStorage.getItem(LAYOUT_STORAGE_KEY); + if (stored) { + try { + event.api.fromJSON(JSON.parse(stored)); + if (event.api.totalPanels === 0) { + localStorage.removeItem(LAYOUT_STORAGE_KEY); + buildDefaultLayout(event.api); + } + + // Re-apply side-zone policies after restore (header hidden, no-drop targets, etc) + applyZonePolicies(event.api); + + // Sync store state with restored layout + setLeftPanelOpen(!!event.api.getPanel(PANEL.EXPLORER)); + setRightPanelOpen(!!event.api.getPanel(PANEL.RIGHT_PLACEHOLDER)); + setBottomPanelOpen(!!event.api.getPanel(PANEL.BOTTOM_PLACEHOLDER)); + return; + } catch (err) { + console.warn("Failed to restore dock layout, resetting.", err); + localStorage.removeItem(LAYOUT_STORAGE_KEY); + } + } + + if (event.api.totalPanels === 0) { + buildDefaultLayout(event.api); + } + }, + [buildDefaultLayout, ctx, setLeftPanelOpen, setRightPanelOpen, setBottomPanelOpen] + ); + + // Save layout on changes + useEffect(() => { + const api = ctx.api; + if (!api) return; + + const disposable = api.onDidLayoutChange(() => { + if (api.totalPanels === 0) return; + const layout = api.toJSON(); + localStorage.setItem(LAYOUT_STORAGE_KEY, JSON.stringify(layout)); + }); + + return () => disposable.dispose(); + }, [ctx.api]); + + // Sync panel state when panels are closed + useEffect(() => { + const api = ctx.api; + if (!api) return; + + const disposable = api.onDidRemovePanel((e) => { + if (e.id === PANEL.EXPLORER) setLeftPanelOpen(false); + if (e.id === PANEL.RIGHT_PLACEHOLDER) setRightPanelOpen(false); + if (e.id === PANEL.BOTTOM_PLACEHOLDER) setBottomPanelOpen(false); + }); + + return () => disposable.dispose(); + }, [ctx.api, setLeftPanelOpen, setRightPanelOpen, setBottomPanelOpen]); + + // When a real panel is dropped into a placeholder group, close the placeholder + useEffect(() => { + const api = ctx.api; + if (!api) return; + + const disposable = api.onDidAddPanel((e) => { + // Skip if the added panel is a placeholder itself + if (e.id === PANEL.RIGHT_PLACEHOLDER || e.id === PANEL.BOTTOM_PLACEHOLDER) { + return; + } + + // Check if this panel was added to the same group as a placeholder + const group = e.group; + if (!group) return; + + // Find and close any placeholder panels in the same group + const rightPlaceholder = api.getPanel(PANEL.RIGHT_PLACEHOLDER); + const bottomPlaceholder = api.getPanel(PANEL.BOTTOM_PLACEHOLDER); + + if (rightPlaceholder && rightPlaceholder.group?.id === group.id) { + rightPlaceholder.api.close(); + } + if (bottomPlaceholder && bottomPlaceholder.group?.id === group.id) { + bottomPlaceholder.api.close(); + } + }); + + return () => disposable.dispose(); + }, [ctx.api]); + + // Prevent dragging locked panels (explorer only) + useEffect(() => { + const api = ctx.api; + if (!api) return; + + const disposable = api.onWillDragPanel((event) => { + if (DRAG_LOCKED_PANEL_IDS.has(event.panel.id)) { + event.nativeEvent.preventDefault(); + } + }); + + return () => disposable.dispose(); + }, [ctx.api]); + + // Rebuild layout when dataset info changes + useEffect(() => { + if (!ctx.api) return; + if (!datasetInfo) return; + + const hasScatter = + ctx.api.getPanel(PANEL.SCATTER_EUCLIDEAN) || + ctx.api.getPanel(PANEL.SCATTER_POINCARE) || + ctx.api.getPanel(PANEL.SCATTER_DEFAULT); + + if (!hasScatter) { + buildDefaultLayout(ctx.api); + } + }, [buildDefaultLayout, datasetInfo, ctx.api]); + + return ( +
+ +
+ ); +} diff --git a/frontend/src/components/ExplorerPanel.tsx b/frontend/src/components/ExplorerPanel.tsx new file mode 100644 index 0000000..4942f72 --- /dev/null +++ b/frontend/src/components/ExplorerPanel.tsx @@ -0,0 +1,181 @@ +"use client"; + +import React from "react"; +import { useStore } from "@/store/useStore"; +import { Panel } from "./Panel"; +import { PanelHeader } from "./PanelHeader"; +import { Tag, Search, ChevronDown, ChevronRight } from "lucide-react"; +import { cn } from "@/lib/utils"; +import { FALLBACK_LABEL_COLOR, MISSING_LABEL_COLOR, normalizeLabel } from "@/lib/labelColors"; +import { useLabelLegend } from "./useLabelLegend"; + +interface ExplorerPanelProps { + className?: string; +} + +export function ExplorerPanel({ className }: ExplorerPanelProps) { + const { + datasetInfo, + embeddingsByLayoutKey, + activeLayoutKey, + labelFilter, + setLabelFilter, + } = useStore(); + const [labelSearch, setLabelSearch] = React.useState(""); + const [isSearchOpen, setIsSearchOpen] = React.useState(false); + const [isLabelsExpanded, setIsLabelsExpanded] = React.useState(true); + const searchInputRef = React.useRef(null); + + const resolvedLayoutKey = + activeLayoutKey ?? datasetInfo?.layouts?.[0]?.layout_key ?? null; + const embeddings = resolvedLayoutKey + ? embeddingsByLayoutKey[resolvedLayoutKey] ?? null + : null; + + const { + labelCounts, + labelUniverse, + distinctLabelCount, + distinctColoringDisabled, + labelColorMap, + legendLabels, + } = useLabelLegend({ datasetInfo, embeddings, labelSearch, labelFilter }); + + const hasCounts = labelCounts.size > 0; + const baseLabelCount = labelUniverse.length > 0 + ? labelUniverse.filter((label) => label !== "undefined").length + : distinctLabelCount; + const displayCount = labelSearch.trim().length > 0 + ? legendLabels.length + : baseLabelCount; + + const activeLabel = labelFilter ? normalizeLabel(labelFilter) : null; + + // Focus search input when opened + React.useEffect(() => { + if (isSearchOpen && searchInputRef.current) { + searchInputRef.current.focus(); + } + }, [isSearchOpen]); + + const handleSearchToggle = () => { + setIsSearchOpen(!isSearchOpen); + if (isSearchOpen) { + setLabelSearch(""); + } + }; + + return ( + + + + {/* Scrollable content area */} +
+ {/* Labels section */} +
+ {/* Section header - collapsible with search icon */} +
+ + + {/* Search toggle button */} + +
+ + {/* Search input - shown when search is toggled */} + {isSearchOpen && ( +
+ setLabelSearch(e.target.value)} + placeholder="Filter labels..." + className="w-full h-6 px-2 rounded bg-background border border-border text-[12px] leading-[16px] text-foreground placeholder:text-muted-foreground/50 outline-none focus:ring-1 focus:ring-ring focus:border-ring" + /> +
+ )} + + {/* Labels list - collapsible */} + {isLabelsExpanded && ( +
+ {distinctColoringDisabled && ( +
+ Too many labels ({distinctLabelCount}) to color distinctly; using one color. +
+ )} + + {legendLabels.length === 0 ? ( +
+ No labels available +
+ ) : ( +
+ {legendLabels.map((label) => { + const color = + label === "undefined" + ? MISSING_LABEL_COLOR + : labelColorMap[label] ?? FALLBACK_LABEL_COLOR; + const normalized = normalizeLabel(label); + const isActive = activeLabel === normalized; + const isDimmed = activeLabel && !isActive; + + return ( + + ); + })} +
+ )} +
+ )} +
+
+
+ ); +} diff --git a/frontend/src/components/Header.tsx b/frontend/src/components/Header.tsx index 9aa44c7..5970969 100644 --- a/frontend/src/components/Header.tsx +++ b/frontend/src/components/Header.tsx @@ -2,54 +2,243 @@ import { useStore } from "@/store/useStore"; import { Button } from "@/components/ui/button"; -import { HyperViewLogo } from "./icons"; +import { HyperViewLogo, DiscordIcon } from "./icons"; +import { CENTER_PANEL_DEFS, useDockviewApi } from "./DockviewWorkspace"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; +import { + Popover, + PopoverContent, + PopoverTrigger, +} from "@/components/ui/popover"; +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, +} from "@/components/ui/command"; +import { + ChevronDown, + RotateCcw, + Check, + PanelLeft, + PanelBottom, + PanelRight, + Settings, + Search, +} from "lucide-react"; +import { useState } from "react"; +import { cn } from "@/lib/utils"; + +const PANEL_CONFIG = CENTER_PANEL_DEFS; +const DISCORD_URL = process.env.NEXT_PUBLIC_DISCORD_URL ?? "https://discord.gg/Qf2pXtY4Vf"; export function Header() { - const { datasetInfo, selectedIds, clearSelection } = useStore(); + const { datasetInfo, leftPanelOpen, rightPanelOpen, bottomPanelOpen } = useStore(); + const dockview = useDockviewApi(); + const [datasetPickerOpen, setDatasetPickerOpen] = useState(false); + + const handlePanelToggle = (panelId: string) => { + if (!dockview?.api) return; + const panel = dockview.api.getPanel(panelId); + if (panel) { + panel.api.close(); + return; + } + dockview.addPanel(panelId); + }; + + // Check which panels are currently open + const openPanels = new Set( + PANEL_CONFIG.map((p) => p.id).filter((id) => dockview?.api?.getPanel(id)) + ); return ( -
- {/* Logo and title */} -
-
- -
+
+ {/* Left side: Logo + View menu */}
-

HyperView

- {datasetInfo && ( - - {datasetInfo.name} - + {/* Logo */} +
+ +
+ + {/* View dropdown */} + {dockview && ( + + + + + + {/* Panel toggles - no section header, similar to Rerun */} + {PANEL_CONFIG.map((panel) => { + const Icon = panel.icon; + const isOpen = openPanels.has(panel.id); + return ( + handlePanelToggle(panel.id)} + className="flex items-center justify-between h-7 text-[12px] leading-[16px]" + > + + + {panel.label} + + {isOpen && } + + ); + })} + + {/* Spacer */} +
+ + {/* Reset layout */} + dockview.resetLayout()} + className="flex items-center gap-2 h-7 text-[12px] leading-[16px]" + > + + Reset Layout + + + )}
-
- - {/* Dataset info and actions */} -
- {datasetInfo && ( -
-
- samples - {datasetInfo.num_samples.toLocaleString()} -
-
- labels - {datasetInfo.labels.length} -
-
- )} - {selectedIds.size > 0 && ( + {/* Center: Dataset picker (VS Code style command palette trigger) */} +
+ + + + + + + + + + No datasets found. + + + {/* Currently only show the loaded dataset */} + {datasetInfo && ( + setDatasetPickerOpen(false)} + className="text-[12px] leading-[16px]" + > + {datasetInfo.name} + + {datasetInfo.num_samples.toLocaleString()} samples + + + + )} + + + + + +
+ + {/* Right side: Discord + Panel toggles + Settings */} +
+ {/* Discord link */} + + + + + {/* Separator */} +
+ + {/* Left panel toggle */} + + + {/* Bottom panel toggle */} + + + {/* Right panel toggle */} + + + {/* Separator */} +
+ + {/* Settings button */} - )} -
+
); } diff --git a/frontend/src/components/ImageGrid.tsx b/frontend/src/components/ImageGrid.tsx index 8a01399..7e1e457 100644 --- a/frontend/src/components/ImageGrid.tsx +++ b/frontend/src/components/ImageGrid.tsx @@ -1,11 +1,11 @@ "use client"; -import { useCallback, useEffect, useRef, useState } from "react"; +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useVirtualizer } from "@tanstack/react-virtual"; +import justifiedLayout from "justified-layout"; import { useStore } from "@/store/useStore"; -import { Panel, PanelFooter } from "./Panel"; -import { PanelHeader } from "./PanelHeader"; -import { GridIcon, CheckIcon } from "./icons"; +import { Panel } from "./Panel"; +import { CheckIcon } from "./icons"; import type { Sample } from "@/types"; interface ImageGridProps { @@ -14,69 +14,161 @@ interface ImageGridProps { hasMore?: boolean; } -const GAP = 8; -const ITEM_HEIGHT = 200; -const MIN_ITEM_WIDTH = 200; // Minimum width for each image +// Justified layout config +const BOX_SPACING = 2; // Tight spacing between images +const TARGET_ROW_HEIGHT = 180; // Target height for rows +const DEFAULT_ASPECT_RATIO = 1; // Fallback for samples without dimensions + +/** + * Get aspect ratio from sample, with fallback + */ +function getAspectRatio(sample: Sample): number { + if (sample.width && sample.height && sample.height > 0) { + return sample.width / sample.height; + } + return DEFAULT_ASPECT_RATIO; +} + +/** + * Compute justified layout geometry for samples + */ +function computeLayout( + samples: Sample[], + containerWidth: number +): { boxes: Array<{ width: number; height: number; top: number; left: number }>; containerHeight: number } { + if (samples.length === 0 || containerWidth <= 0) { + return { boxes: [], containerHeight: 0 }; + } + + const aspectRatios = samples.map(getAspectRatio); + + const geometry = justifiedLayout(aspectRatios, { + containerWidth, + containerPadding: 0, + boxSpacing: BOX_SPACING, + targetRowHeight: TARGET_ROW_HEIGHT, + targetRowHeightTolerance: 0.25, + showWidows: true, // Always show last row even if incomplete + }); + + return { + boxes: geometry.boxes, + containerHeight: geometry.containerHeight, + }; +} + +/** + * Group boxes into rows for virtualization + */ +interface RowData { + startIndex: number; + endIndex: number; // exclusive + top: number; + height: number; +} + +function groupIntoRows( + boxes: Array<{ width: number; height: number; top: number; left: number }> +): RowData[] { + if (boxes.length === 0) return []; + + const rows: RowData[] = []; + let currentRowTop = boxes[0].top; + let currentRowStart = 0; + let currentRowHeight = boxes[0].height; + + for (let i = 1; i < boxes.length; i++) { + const box = boxes[i]; + // New row if top position changes significantly + if (Math.abs(box.top - currentRowTop) > 1) { + rows.push({ + startIndex: currentRowStart, + endIndex: i, + top: currentRowTop, + height: currentRowHeight, + }); + currentRowStart = i; + currentRowTop = box.top; + currentRowHeight = box.height; + } else { + // Same row - take max height in case of slight variations + currentRowHeight = Math.max(currentRowHeight, box.height); + } + } + + // Push final row + rows.push({ + startIndex: currentRowStart, + endIndex: boxes.length, + top: currentRowTop, + height: currentRowHeight, + }); + + return rows; +} export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { const containerRef = useRef(null); + const [containerWidth, setContainerWidth] = useState(0); + const { selectedIds, isLassoSelection, selectionSource, - lassoTotal, toggleSelection, addToSelection, setHoveredId, hoveredId, + labelFilter, } = useStore(); - const [columnCount, setColumnCount] = useState(4); - // Calculate column count based on container width + // Track container width for layout computation useEffect(() => { - const updateColumnCount = () => { - if (!containerRef.current) return; - const containerWidth = containerRef.current.clientWidth; - const padding = 16; // Total horizontal padding (8px each side) - const availableWidth = containerWidth - padding; - - // Calculate how many columns can fit - const columns = Math.max(1, Math.floor((availableWidth + GAP) / (MIN_ITEM_WIDTH + GAP))); - setColumnCount(columns); + const container = containerRef.current; + if (!container) return; + + const updateWidth = () => { + const width = container.clientWidth; + if (width > 0 && width !== containerWidth) { + setContainerWidth(width); + } }; - updateColumnCount(); + updateWidth(); - const resizeObserver = new ResizeObserver(updateColumnCount); - if (containerRef.current) { - resizeObserver.observe(containerRef.current); - } + const resizeObserver = new ResizeObserver(() => { + requestAnimationFrame(updateWidth); + }); + resizeObserver.observe(container); return () => resizeObserver.disconnect(); - }, []); - - // In lasso mode, `samples` is already the selected-page list. - const rowCount = Math.ceil(samples.length / columnCount); + }, [containerWidth]); - // Create stable row keys based on the sample IDs in each row - const getRowKey = useCallback( - (index: number) => { - const startIndex = index * columnCount; - const rowSamples = samples.slice(startIndex, startIndex + columnCount); - return rowSamples.map((s) => s.id).join("-") || `row-${index}`; - }, - [samples, columnCount] + // Compute justified layout + const { boxes, containerHeight } = useMemo( + () => computeLayout(samples, containerWidth), + [samples, containerWidth] ); + // Group into rows for virtualization + const rows = useMemo(() => groupIntoRows(boxes), [boxes]); + + // Virtualizer for rows const virtualizer = useVirtualizer({ - count: rowCount, + count: rows.length, getScrollElement: () => containerRef.current, - estimateSize: () => ITEM_HEIGHT + GAP, - overscan: 5, - getItemKey: getRowKey, + estimateSize: (index) => rows[index]?.height ?? TARGET_ROW_HEIGHT, + overscan: 3, + getItemKey: (index) => { + const row = rows[index]; + if (!row) return `row-${index}`; + // Create stable key from sample IDs in this row + const rowSamples = samples.slice(row.startIndex, row.endIndex); + return rowSamples.map((s) => s.id).join("-") || `row-${index}`; + }, }); - // Load more when scrolling near the bottom + // Load more when scrolling near bottom useEffect(() => { const container = containerRef.current; if (!container || !onLoadMore || !hasMore) return; @@ -92,13 +184,12 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { return () => container.removeEventListener("scroll", handleScroll); }, [onLoadMore, hasMore]); - // Reset virtualizer measurements when selection or filter mode changes + // Reset scroll on filter change useEffect(() => { - virtualizer.measure(); - }, [selectedIds, isLassoSelection, virtualizer]); + containerRef.current?.scrollTo({ top: 0 }); + }, [labelFilter]); - // If a selection was made in the scatter plot, jump the image grid to the top - // so the selected sample(s) are immediately visible. + // Scroll to top when scatter selection made useEffect(() => { if (isLassoSelection) return; if (selectionSource !== "scatter") return; @@ -107,18 +198,16 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { try { virtualizer.scrollToIndex(0, { align: "start" }); } catch { - // Fallback if the virtualizer isn't ready yet. containerRef.current?.scrollTo({ top: 0 }); } }, [isLassoSelection, selectedIds, selectionSource, virtualizer]); + // Handle click with selection logic const handleClick = useCallback( (sample: Sample, event: React.MouseEvent) => { if (event.metaKey || event.ctrlKey) { - // Multi-select with Cmd/Ctrl toggleSelection(sample.id); } else if (event.shiftKey && selectedIds.size > 0) { - // Range select with Shift - use original samples array, not filtered const selectedArray = Array.from(selectedIds); const lastSelected = selectedArray[selectedArray.length - 1]; const lastIndex = samples.findIndex((s) => s.id === lastSelected); @@ -131,7 +220,6 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { addToSelection(rangeIds); } } else { - // Single select const newSet = new Set(); newSet.add(sample.id); useStore.getState().setSelectedIds(newSet, "grid"); @@ -140,118 +228,111 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { [samples, selectedIds, toggleSelection, addToSelection] ); - const items = virtualizer.getVirtualItems(); + const virtualRows = virtualizer.getVirtualItems(); return ( - } - title="Samples" - subtitle={ - isLassoSelection - ? `${lassoTotal} selected` - : selectedIds.size > 0 - ? `${selectedIds.size} selected` - : `${samples.length} items` - } - /> - - {/* Grid Container */} -
-
- {items.map((virtualRow) => { - const rowIndex = virtualRow.index; - const startIndex = rowIndex * columnCount; - const rowSamples = samples.slice(startIndex, startIndex + columnCount); - - return ( -
- {rowSamples.map((sample) => { - const isSelected = isLassoSelection ? true : selectedIds.has(sample.id); - const isHovered = hoveredId === sample.id; - - return ( -
handleClick(sample, e)} - onMouseEnter={() => setHoveredId(sample.id)} - onMouseLeave={() => setHoveredId(null)} - > - {/* Image - using native img for base64 data (Next Image doesn't support this) */} - {sample.thumbnail ? ( - // eslint-disable-next-line @next/next/no-img-element - {sample.filename} - ) : ( -
- No image -
- )} - - {/* Label badge */} - {sample.label && ( -
- - {sample.label} - -
- )} - - {/* Selection indicator */} - {isSelected && ( -
- -
- )} -
- ); - })} - {/* Fill empty cells */} - {Array.from({ length: columnCount - rowSamples.length }).map((_, i) => ( -
- ))} -
- ); - })} +
+
+
+ {virtualRows.map((virtualRow) => { + const row = rows[virtualRow.index]; + if (!row) return null; + + const rowSamples = samples.slice(row.startIndex, row.endIndex); + const rowBoxes = boxes.slice(row.startIndex, row.endIndex); + + return ( +
+ {rowSamples.map((sample, i) => { + const box = rowBoxes[i]; + if (!box) return null; + + const isSelected = isLassoSelection ? true : selectedIds.has(sample.id); + const isHovered = hoveredId === sample.id; + + return ( +
handleClick(sample, e)} + onMouseEnter={() => setHoveredId(sample.id)} + onMouseLeave={() => setHoveredId(null)} + > + {/* Image container - justified layout sizes tile to preserve aspect ratio */} + {/* Future: overlays (segmentations, bboxes) will be absolutely positioned here */} + {sample.thumbnail ? ( + // eslint-disable-next-line @next/next/no-img-element + {sample.filename} + ) : ( +
+ No image +
+ )} + + {/* Label badge */} + {sample.label && ( +
+ + {sample.label} + +
+ )} + + {/* Selection indicator */} + {isSelected && ( +
+ +
+ )} +
+ ); + })} +
+ ); + })} +
- - - Click • ⌘+click multi • ⇧+click range - ); } diff --git a/frontend/src/components/Panel.tsx b/frontend/src/components/Panel.tsx index 1112dc5..5058fa5 100644 --- a/frontend/src/components/Panel.tsx +++ b/frontend/src/components/Panel.tsx @@ -10,11 +10,12 @@ interface PanelProps { /** * Base panel container with consistent Rerun-style appearance. + * No borders or rounded corners - panels should be flush against each other. */ export function Panel({ children, className }: PanelProps) { return (
{children} @@ -33,7 +34,7 @@ interface PanelFooterProps { export function PanelFooter({ children, className }: PanelFooterProps) { return (
{children} diff --git a/frontend/src/components/PanelHeader.tsx b/frontend/src/components/PanelHeader.tsx index dea1edd..78201c4 100644 --- a/frontend/src/components/PanelHeader.tsx +++ b/frontend/src/components/PanelHeader.tsx @@ -13,20 +13,30 @@ interface PanelHeaderProps { /** * Rerun-style panel header with icon, title, and optional toolbar. + * + * Design tokens (from Rerun): + * - Title bar height: 24px + * - Icon size: 14px (3.5 tailwind units) + * - Icon-to-text gap: 4px (gap-1) + * - Font size: 12px with -0.15px tracking + * - Section header font: 11px uppercase */ export function PanelHeader({ icon, title, subtitle, children, className }: PanelHeaderProps) { return (
-
+
{icon && ( - {icon} + // 14px icon (3.5 tailwind units) with 4px gap to text + {icon} )} - {title} + {/* 12px font, medium weight, tight tracking */} + {title} {subtitle && ( - {subtitle} + {subtitle} )}
{children && ( diff --git a/frontend/src/components/PlaceholderPanel.tsx b/frontend/src/components/PlaceholderPanel.tsx new file mode 100644 index 0000000..bf760fa --- /dev/null +++ b/frontend/src/components/PlaceholderPanel.tsx @@ -0,0 +1,39 @@ +"use client"; + +import React from "react"; +import { HyperViewLogo } from "./icons"; +import { Panel } from "./Panel"; +import { cn } from "@/lib/utils"; +import { X } from "lucide-react"; + +interface PlaceholderPanelProps { + className?: string; + onClose?: () => void; +} + +/** + * Empty placeholder panel with centered HyperView logo and a close button. + * Used for right and bottom zones that are reserved for future features. + * The close button is always visible in the top-right corner of the panel content. + */ +export function PlaceholderPanel({ className, onClose }: PlaceholderPanelProps) { + return ( + + {/* Close button always visible in top right */} + {onClose && ( + + )} +
+
+ +
+
+
+ ); +} diff --git a/frontend/src/components/ScatterPanel.tsx b/frontend/src/components/ScatterPanel.tsx index dd3f275..fc68cd6 100644 --- a/frontend/src/components/ScatterPanel.tsx +++ b/frontend/src/components/ScatterPanel.tsx @@ -1,75 +1,96 @@ "use client"; -import { useMemo } from "react"; +import { useCallback, useEffect, useMemo, useState } from "react"; import { useStore } from "@/store/useStore"; -import { Panel, PanelFooter } from "./Panel"; -import { PanelHeader } from "./PanelHeader"; -import { EuclideanIcon, PoincareIcon, ScatterIcon } from "./icons"; -import { type ScatterLabelsInfo, useHyperScatter } from "./useHyperScatter"; -import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"; +import { Panel } from "./Panel"; +import { useHyperScatter } from "./useHyperScatter"; +import { useLabelLegend } from "./useLabelLegend"; import type { Geometry } from "@/types"; -import { listAvailableGeometries } from "@/lib/layouts"; +import { findLayoutByGeometry, listAvailableGeometries } from "@/lib/layouts"; +import { fetchEmbeddings } from "@/lib/api"; interface ScatterPanelProps { className?: string; + layoutKey?: string; + geometry?: Geometry; } -export function ScatterPanel({ className = "" }: ScatterPanelProps) { +export function ScatterPanel({ + className = "", + layoutKey, + geometry, +}: ScatterPanelProps) { const { datasetInfo, - embeddings, + embeddingsByLayoutKey, + setEmbeddingsForLayout, selectedIds, setSelectedIds, beginLassoSelection, hoveredId, setHoveredId, - geometry, - setGeometry, + setActiveLayoutKey, + labelFilter, } = useStore(); + const [localGeometry, setLocalGeometry] = useState("euclidean"); + // Check which geometries are available const availableGeometries = useMemo(() => { return listAvailableGeometries(datasetInfo?.layouts ?? []); }, [datasetInfo?.layouts]); - const embeddingModelName = useMemo(() => { - if (!embeddings || !datasetInfo) return null; + useEffect(() => { + if (geometry) return; + if (availableGeometries.length === 0) return; + if (!availableGeometries.includes(localGeometry)) { + setLocalGeometry(availableGeometries[0]); + } + }, [availableGeometries, geometry, localGeometry]); - const layoutKey = embeddings.layout_key; + const resolvedGeometry = geometry ?? localGeometry; - // Find the LayoutInfo for current layout to get space_key directly - const layoutInfo = datasetInfo.layouts.find((l) => l.layout_key === layoutKey); - const spaceKey = layoutInfo?.space_key ?? layoutKey.split("__")[0]; + const resolvedLayoutKey = useMemo(() => { + if (!datasetInfo) return layoutKey ?? null; - const space = datasetInfo.spaces.find((s) => s.space_key === spaceKey); + if (layoutKey) { + const exists = datasetInfo.layouts.some((layout) => layout.layout_key === layoutKey); + if (exists) return layoutKey; + } - return space?.model_id ?? space?.space_key ?? spaceKey; - }, [datasetInfo, embeddings]); + const layout = findLayoutByGeometry(datasetInfo.layouts, resolvedGeometry); + return layout?.layout_key ?? datasetInfo.layouts[0]?.layout_key ?? null; + }, [datasetInfo, layoutKey, resolvedGeometry]); - const labelsInfo = useMemo(() => { - if (!embeddings) return null; + const embeddings = resolvedLayoutKey ? embeddingsByLayoutKey[resolvedLayoutKey] ?? null : null; - // Stable label order for palette and legend. - const uniqueLabels = [...new Set(embeddings.labels.map((l) => l || "undefined"))]; + useEffect(() => { + if (!resolvedLayoutKey) return; + setActiveLayoutKey(resolvedLayoutKey); + }, [resolvedLayoutKey, setActiveLayoutKey]); - const labelToCategory: Record = {}; - for (let i = 0; i < uniqueLabels.length; i++) { - labelToCategory[uniqueLabels[i]] = i; - } + useEffect(() => { + if (!resolvedLayoutKey) return; + if (embeddingsByLayoutKey[resolvedLayoutKey]) return; - const categories = new Uint16Array(embeddings.labels.length); - for (let i = 0; i < embeddings.labels.length; i++) { - const key = embeddings.labels[i] || "undefined"; - categories[i] = labelToCategory[key] ?? 0; - } + let cancelled = false; + + fetchEmbeddings(resolvedLayoutKey) + .then((data) => { + if (cancelled) return; + setEmbeddingsForLayout(resolvedLayoutKey, data); + }) + .catch((err) => { + if (cancelled) return; + console.error("Failed to load embeddings:", err); + }) - const palette = uniqueLabels.map((label) => { - if (label === "undefined") return "#008080"; - return embeddings.label_colors[label] || "#808080"; - }); + return () => { + cancelled = true; + }; + }, [embeddingsByLayoutKey, resolvedLayoutKey, setEmbeddingsForLayout]); - return { uniqueLabels, categories, palette }; - }, [embeddings]); + const { labelsInfo } = useLabelLegend({ datasetInfo, embeddings, labelFilter }); const { canvasRef, @@ -89,61 +110,38 @@ export function ScatterPanel({ className = "" }: ScatterPanelProps) { setSelectedIds, beginLassoSelection, setHoveredId, + hoverEnabled: !labelFilter, }); - const uniqueLabels = labelsInfo?.uniqueLabels ?? []; + const focusLayout = useCallback(() => { + if (!resolvedLayoutKey) return; + setActiveLayoutKey(resolvedLayoutKey); + }, [resolvedLayoutKey, setActiveLayoutKey]); + + const loadingLabel = resolvedLayoutKey + ? "Loading embeddings..." + : "No embeddings layout available"; return ( - } - title="Embeddings" - subtitle={embeddings ? embeddingModelName ?? "" : "Loading..."} - > - {/* Geometry toggle */} - {availableGeometries.length > 1 && ( - value && setGeometry(value as Geometry)} - size="sm" - variant="outline" - className="bg-muted/50 rounded-md p-0.5 gap-0.5" - > - - - Euclidean - - - - Poincaré - - - )} - - - {/* Main content area */} -
+ {/* Main content area - min-h-0 prevents flex overflow */} +
{/* Canvas container */} -
+
{ + focusLayout(); + handlePointerDown(e); + }} onPointerMove={handlePointerMove} onPointerUp={handlePointerUp} onPointerCancel={handlePointerUp} onPointerLeave={handlePointerLeave} onDoubleClick={handleDoubleClick} + onPointerEnter={focusLayout} /> {/* Lasso overlay (screen-space) */} @@ -164,41 +162,13 @@ export function ScatterPanel({ className = "" }: ScatterPanelProps) { ) : ( !embeddings && (
-
Loading embeddings...
+
{loadingLabel}
) )}
- {/* Legend */} - {uniqueLabels.length > 0 && ( -
-
Labels
-
- {uniqueLabels.slice(0, 20).map((label) => ( -
-
- - {label} - -
- ))} - {uniqueLabels.length > 20 && ( -
+{uniqueLabels.length - 20} more
- )} -
-
- )}
- - - ⇧+drag lasso • scroll zoom • drag pan - ); } diff --git a/frontend/src/components/icons.tsx b/frontend/src/components/icons.tsx index 20a4634..2d38561 100644 --- a/frontend/src/components/icons.tsx +++ b/frontend/src/components/icons.tsx @@ -24,8 +24,8 @@ export const ScatterIcon = () => ( ); -export const HyperViewLogo = () => ( - +export const HyperViewLogo = ({ className = "w-5 h-5" }: { className?: string }) => ( + @@ -64,3 +64,10 @@ export const SphericalIcon = () => ( ); + +/** Discord icon - official simplified logo */ +export const DiscordIcon = ({ className = "w-4 h-4" }: { className?: string }) => ( + + + +); diff --git a/frontend/src/components/index.ts b/frontend/src/components/index.ts index a36acea..f178483 100644 --- a/frontend/src/components/index.ts +++ b/frontend/src/components/index.ts @@ -1,6 +1,9 @@ export { ImageGrid } from "./ImageGrid"; export { ScatterPanel } from "./ScatterPanel"; +export { DockviewWorkspace } from "./DockviewWorkspace"; export { Header } from "./Header"; export { Panel, PanelFooter } from "./Panel"; export { PanelHeader } from "./PanelHeader"; +export { ExplorerPanel } from "./ExplorerPanel"; +export { PlaceholderPanel } from "./PlaceholderPanel"; export * from "./icons"; diff --git a/frontend/src/components/ui/collapsible.tsx b/frontend/src/components/ui/collapsible.tsx new file mode 100644 index 0000000..9fa4894 --- /dev/null +++ b/frontend/src/components/ui/collapsible.tsx @@ -0,0 +1,11 @@ +"use client" + +import * as CollapsiblePrimitive from "@radix-ui/react-collapsible" + +const Collapsible = CollapsiblePrimitive.Root + +const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger + +const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent + +export { Collapsible, CollapsibleTrigger, CollapsibleContent } diff --git a/frontend/src/components/ui/command.tsx b/frontend/src/components/ui/command.tsx new file mode 100644 index 0000000..2cecd91 --- /dev/null +++ b/frontend/src/components/ui/command.tsx @@ -0,0 +1,153 @@ +"use client" + +import * as React from "react" +import { type DialogProps } from "@radix-ui/react-dialog" +import { Command as CommandPrimitive } from "cmdk" +import { Search } from "lucide-react" + +import { cn } from "@/lib/utils" +import { Dialog, DialogContent } from "@/components/ui/dialog" + +const Command = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +Command.displayName = CommandPrimitive.displayName + +const CommandDialog = ({ children, ...props }: DialogProps) => { + return ( + + + + {children} + + + + ) +} + +const CommandInput = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( +
+ + +
+)) + +CommandInput.displayName = CommandPrimitive.Input.displayName + +const CommandList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandList.displayName = CommandPrimitive.List.displayName + +const CommandEmpty = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>((props, ref) => ( + +)) + +CommandEmpty.displayName = CommandPrimitive.Empty.displayName + +const CommandGroup = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandGroup.displayName = CommandPrimitive.Group.displayName + +const CommandSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +CommandSeparator.displayName = CommandPrimitive.Separator.displayName + +const CommandItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandItem.displayName = CommandPrimitive.Item.displayName + +const CommandShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ) +} +CommandShortcut.displayName = "CommandShortcut" + +export { + Command, + CommandDialog, + CommandInput, + CommandList, + CommandEmpty, + CommandGroup, + CommandItem, + CommandShortcut, + CommandSeparator, +} diff --git a/frontend/src/components/ui/dialog.tsx b/frontend/src/components/ui/dialog.tsx new file mode 100644 index 0000000..1647513 --- /dev/null +++ b/frontend/src/components/ui/dialog.tsx @@ -0,0 +1,122 @@ +"use client" + +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/frontend/src/components/ui/dropdown-menu.tsx b/frontend/src/components/ui/dropdown-menu.tsx new file mode 100644 index 0000000..5a20503 --- /dev/null +++ b/frontend/src/components/ui/dropdown-menu.tsx @@ -0,0 +1,201 @@ +"use client" + +import * as React from "react" +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" +import { Check, ChevronRight, Circle } from "lucide-react" + +import { cn } from "@/lib/utils" + +const DropdownMenu = DropdownMenuPrimitive.Root + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger + +const DropdownMenuGroup = DropdownMenuPrimitive.Group + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal + +const DropdownMenuSub = DropdownMenuPrimitive.Sub + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + + +)) +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName + +const DropdownMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName + +const DropdownMenuItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + svg]:size-4 [&>svg]:shrink-0", + inset && "pl-8", + className + )} + {...props} + /> +)) +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + +)) +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ) +} +DropdownMenuShortcut.displayName = "DropdownMenuShortcut" + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +} diff --git a/frontend/src/components/ui/popover.tsx b/frontend/src/components/ui/popover.tsx new file mode 100644 index 0000000..70a28f6 --- /dev/null +++ b/frontend/src/components/ui/popover.tsx @@ -0,0 +1,33 @@ +"use client" + +import * as React from "react" +import * as PopoverPrimitive from "@radix-ui/react-popover" + +import { cn } from "@/lib/utils" + +const Popover = PopoverPrimitive.Root + +const PopoverTrigger = PopoverPrimitive.Trigger + +const PopoverAnchor = PopoverPrimitive.Anchor + +const PopoverContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } diff --git a/frontend/src/components/ui/radio-group.tsx b/frontend/src/components/ui/radio-group.tsx new file mode 100644 index 0000000..0bdf685 --- /dev/null +++ b/frontend/src/components/ui/radio-group.tsx @@ -0,0 +1,44 @@ +"use client" + +import * as React from "react" +import * as RadioGroupPrimitive from "@radix-ui/react-radio-group" +import { Circle } from "lucide-react" + +import { cn } from "@/lib/utils" + +const RadioGroup = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + return ( + + ) +}) +RadioGroup.displayName = RadioGroupPrimitive.Root.displayName + +const RadioGroupItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => { + return ( + + + + + + ) +}) +RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName + +export { RadioGroup, RadioGroupItem } diff --git a/frontend/src/components/ui/resizable.tsx b/frontend/src/components/ui/resizable.tsx deleted file mode 100644 index 1ef04c0..0000000 --- a/frontend/src/components/ui/resizable.tsx +++ /dev/null @@ -1,45 +0,0 @@ -"use client" - -import { GripVertical } from "lucide-react" -import { Group, Panel, Separator } from "react-resizable-panels" - -import { cn } from "@/lib/utils" - -const ResizablePanelGroup = ({ - className, - ...props -}: React.ComponentProps) => ( - -) - -const ResizablePanel = Panel - -const ResizableHandle = ({ - withHandle, - className, - ...props -}: React.ComponentProps & { - withHandle?: boolean -}) => ( - div]:rotate-90", - className - )} - {...props} - > - {withHandle && ( -
- -
- )} -
-) - -export { ResizablePanelGroup, ResizablePanel, ResizableHandle } diff --git a/frontend/src/components/ui/scroll-area.tsx b/frontend/src/components/ui/scroll-area.tsx new file mode 100644 index 0000000..b1e223f --- /dev/null +++ b/frontend/src/components/ui/scroll-area.tsx @@ -0,0 +1,49 @@ +"use client" + +import * as React from "react" +import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area" + +import { cn } from "@/lib/utils" + +const ScrollArea = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + {children} + + + + +)) +ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName + +const ScrollBar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, orientation = "vertical", ...props }, ref) => ( + + + +)) +ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName + +export { ScrollArea, ScrollBar } diff --git a/frontend/src/components/ui/separator.tsx b/frontend/src/components/ui/separator.tsx new file mode 100644 index 0000000..12d81c4 --- /dev/null +++ b/frontend/src/components/ui/separator.tsx @@ -0,0 +1,31 @@ +"use client" + +import * as React from "react" +import * as SeparatorPrimitive from "@radix-ui/react-separator" + +import { cn } from "@/lib/utils" + +const Separator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>( + ( + { className, orientation = "horizontal", decorative = true, ...props }, + ref + ) => ( + + ) +) +Separator.displayName = SeparatorPrimitive.Root.displayName + +export { Separator } diff --git a/frontend/src/components/ui/tooltip.tsx b/frontend/src/components/ui/tooltip.tsx new file mode 100644 index 0000000..28e1918 --- /dev/null +++ b/frontend/src/components/ui/tooltip.tsx @@ -0,0 +1,32 @@ +"use client" + +import * as React from "react" +import * as TooltipPrimitive from "@radix-ui/react-tooltip" + +import { cn } from "@/lib/utils" + +const TooltipProvider = TooltipPrimitive.Provider + +const Tooltip = TooltipPrimitive.Root + +const TooltipTrigger = TooltipPrimitive.Trigger + +const TooltipContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +TooltipContent.displayName = TooltipPrimitive.Content.displayName + +export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } diff --git a/frontend/src/components/useHyperScatter.ts b/frontend/src/components/useHyperScatter.ts index ca20649..3801a70 100644 --- a/frontend/src/components/useHyperScatter.ts +++ b/frontend/src/components/useHyperScatter.ts @@ -2,16 +2,11 @@ import type React from "react"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import type { EmbeddingsData } from "@/types"; +import type { ScatterLabelsInfo } from "@/lib/labelLegend"; import type { Dataset, GeometryMode, Modifiers, Renderer } from "hyper-scatter"; type HyperScatterModule = typeof import("hyper-scatter"); -export interface ScatterLabelsInfo { - uniqueLabels: string[]; - categories: Uint16Array; - palette: string[]; -} - const MAX_LASSO_VERTS = 512; function supportsWebGL2(): boolean { @@ -46,6 +41,7 @@ interface UseHyperScatterArgs { setSelectedIds: (ids: Set, source?: "scatter" | "grid") => void; beginLassoSelection: (query: { layoutKey: string; polygon: number[] }) => void; setHoveredId: (id: string | null) => void; + hoverEnabled?: boolean; } function toModifiers(e: { shiftKey: boolean; ctrlKey: boolean; altKey: boolean; metaKey: boolean }): Modifiers { @@ -97,6 +93,7 @@ export function useHyperScatter({ setSelectedIds, beginLassoSelection, setHoveredId, + hoverEnabled = true, }: UseHyperScatterArgs) { const canvasRef = useRef(null); const overlayCanvasRef = useRef(null); @@ -116,6 +113,7 @@ export function useHyperScatter({ const lastPointerXRef = useRef(0); const lastPointerYRef = useRef(0); const lassoPointsRef = useRef([]); + const persistentLassoRef = useRef(null); const hoveredIndexRef = useRef(-1); @@ -171,12 +169,30 @@ export function useHyperScatter({ }; }, []); + const redrawOverlay = useCallback(() => { + if (!overlayCanvasRef.current) return; + clearOverlay(overlayCanvasRef.current); + const persistent = persistentLassoRef.current; + if (persistent && persistent.length >= 6) { + drawLassoOverlay(overlayCanvasRef.current, persistent); + } + }, []); + + const clearPersistentLasso = useCallback(() => { + persistentLassoRef.current = null; + clearOverlay(overlayCanvasRef.current); + }, []); + const stopInteraction = useCallback(() => { isPanningRef.current = false; isLassoingRef.current = false; lassoPointsRef.current = []; + if (persistentLassoRef.current) { + redrawOverlay(); + return; + } clearOverlay(overlayCanvasRef.current); - }, []); + }, [redrawOverlay]); // Initialize renderer when embeddings change. useEffect(() => { @@ -218,7 +234,7 @@ export function useHyperScatter({ overlayCanvasRef.current.height = Math.max(1, height); overlayCanvasRef.current.style.width = `${width}px`; overlayCanvasRef.current.style.height = `${height}px`; - clearOverlay(overlayCanvasRef.current); + redrawOverlay(); } // Use coords from embeddings response directly @@ -288,7 +304,7 @@ export function useHyperScatter({ rendererRef.current = null; } }; - }, [embeddings, labelsInfo, requestRender, stopInteraction]); + }, [embeddings, labelsInfo, redrawOverlay, requestRender, stopInteraction]); // Store -> renderer sync useEffect(() => { @@ -303,12 +319,19 @@ export function useHyperScatter({ renderer.setSelection(indices); + if (!hoverEnabled) { + renderer.setHovered(-1); + hoveredIndexRef.current = -1; + requestRender(); + return; + } + const hoveredIdx = hoveredId ? (idToIndex.get(hoveredId) ?? -1) : -1; renderer.setHovered(hoveredIdx); hoveredIndexRef.current = hoveredIdx; requestRender(); - }, [embeddings, hoveredId, idToIndex, requestRender, selectedIds]); + }, [embeddings, hoveredId, hoverEnabled, idToIndex, requestRender, selectedIds]); // Resize handling useEffect(() => { @@ -326,6 +349,7 @@ export function useHyperScatter({ overlayCanvasRef.current.height = Math.max(1, height); overlayCanvasRef.current.style.width = `${width}px`; overlayCanvasRef.current.style.height = `${height}px`; + redrawOverlay(); } const renderer = rendererRef.current; @@ -340,7 +364,7 @@ export function useHyperScatter({ const ro = new ResizeObserver(resize); ro.observe(container); return () => ro.disconnect(); - }, [requestRender]); + }, [redrawOverlay, requestRender]); // Wheel zoom (native listener so we can set passive:false) useEffect(() => { @@ -377,6 +401,10 @@ export function useHyperScatter({ lastPointerXRef.current = pos.x; lastPointerYRef.current = pos.y; + if (persistentLassoRef.current) { + clearPersistentLasso(); + } + // Shift-drag = lasso, otherwise pan. if (e.shiftKey) { isLassoingRef.current = true; @@ -396,7 +424,7 @@ export function useHyperScatter({ e.preventDefault(); }, - [getCanvasPos] + [clearPersistentLasso, getCanvasPos] ); const handlePointerMove = useCallback( @@ -433,6 +461,15 @@ export function useHyperScatter({ return; } + if (!hoverEnabled) { + if (hoveredIndexRef.current !== -1) { + hoveredIndexRef.current = -1; + renderer.setHovered(-1); + requestRender(); + } + return; + } + // Hover const hit = renderer.hitTest(pos.x, pos.y); const nextIndex = hit ? hit.index : -1; @@ -449,7 +486,7 @@ export function useHyperScatter({ requestRender(); }, - [embeddings, getCanvasPos, requestRender, setHoveredId] + [embeddings, getCanvasPos, hoverEnabled, requestRender, setHoveredId] ); const handlePointerUp = useCallback( @@ -461,8 +498,10 @@ export function useHyperScatter({ } if (isLassoingRef.current) { - const pts = lassoPointsRef.current; + const pts = lassoPointsRef.current.slice(); + persistentLassoRef.current = pts.length >= 6 ? pts : null; stopInteraction(); + redrawOverlay(); if (pts.length >= 6) { try { @@ -520,7 +559,16 @@ export function useHyperScatter({ stopInteraction(); requestRender(); }, - [beginLassoSelection, embeddings, getCanvasPos, requestRender, selectedIds, setSelectedIds, stopInteraction] + [ + beginLassoSelection, + embeddings, + getCanvasPos, + redrawOverlay, + requestRender, + selectedIds, + setSelectedIds, + stopInteraction, + ] ); const handlePointerLeave = useCallback( @@ -541,6 +589,7 @@ export function useHyperScatter({ (_e: React.MouseEvent) => { const renderer = rendererRef.current; if (!renderer) return; + clearPersistentLasso(); stopInteraction(); renderer.setSelection(new Set()); @@ -548,7 +597,7 @@ export function useHyperScatter({ requestRender(); }, - [requestRender, setSelectedIds, stopInteraction] + [clearPersistentLasso, requestRender, setSelectedIds, stopInteraction] ); return { diff --git a/frontend/src/components/useLabelLegend.ts b/frontend/src/components/useLabelLegend.ts new file mode 100644 index 0000000..9c58da0 --- /dev/null +++ b/frontend/src/components/useLabelLegend.ts @@ -0,0 +1,85 @@ +import { useMemo } from "react"; + +import type { DatasetInfo, EmbeddingsData } from "@/types"; +import { + MAX_DISTINCT_LABEL_COLORS, + buildLabelColorMap, + buildLabelCounts, + buildLabelUniverse, + buildLabelsInfo, + buildLegendLabels, + getDistinctLabelCount, +} from "@/lib/labelLegend"; + +interface UseLabelLegendArgs { + datasetInfo: DatasetInfo | null; + embeddings: EmbeddingsData | null; + labelSearch?: string; + labelFilter?: string | null; +} + +export function useLabelLegend({ + datasetInfo, + embeddings, + labelSearch = "", + labelFilter = null, +}: UseLabelLegendArgs) { + const labelCounts = useMemo(() => buildLabelCounts(embeddings), [embeddings]); + + const labelUniverse = useMemo( + () => buildLabelUniverse(datasetInfo?.labels ?? [], embeddings?.labels ?? null), + [datasetInfo?.labels, embeddings?.labels] + ); + + const distinctLabelCount = useMemo(() => { + const fromCounts = getDistinctLabelCount(labelCounts); + if (fromCounts > 0) return fromCounts; + let n = labelUniverse.length; + if (labelUniverse.includes("undefined")) n -= 1; + return n; + }, [labelCounts, labelUniverse]); + + const distinctColoringDisabled = distinctLabelCount > MAX_DISTINCT_LABEL_COLORS; + + const labelsInfo = useMemo( + () => + buildLabelsInfo({ + datasetLabels: datasetInfo?.labels ?? [], + embeddings, + distinctColoringDisabled, + labelFilter, + }), + [datasetInfo?.labels, embeddings, distinctColoringDisabled, labelFilter] + ); + + const labelColorMap = useMemo( + () => + buildLabelColorMap({ + labelsInfo, + labelUniverse, + distinctColoringDisabled, + labelFilter, + }), + [labelsInfo, labelUniverse, distinctColoringDisabled, labelFilter] + ); + + const legendLabels = useMemo( + () => + buildLegendLabels({ + labelUniverse, + labelCounts, + query: labelSearch, + }), + [labelUniverse, labelCounts, labelSearch] + ); + + return { + labelCounts, + labelUniverse, + distinctLabelCount, + distinctColoringDisabled, + labelsInfo, + labelColorMap, + legendLabels, + }; +} diff --git a/frontend/src/lib/labelColors.ts b/frontend/src/lib/labelColors.ts new file mode 100644 index 0000000..273b519 --- /dev/null +++ b/frontend/src/lib/labelColors.ts @@ -0,0 +1,153 @@ +const MISSING_LABEL_SENTINEL = "undefined"; + +export const MISSING_LABEL_COLOR = "#39d3cc"; // matches --accent-cyan +export const FALLBACK_LABEL_COLOR = "#8b949e"; // matches --muted-foreground + +// Rerun-style auto colors: distribute hues by golden ratio conjugate. +// See: context/repos/rerun/crates/viewer/re_viewer_context/src/utils/color.rs +const GOLDEN_RATIO_CONJUGATE = (Math.sqrt(5) - 1) / 2; // ~0.61803398875 + +function fnv1a32(input: string): number { + // 32-bit FNV-1a hash + let hash = 0x811c9dc5; + for (let i = 0; i < input.length; i++) { + hash ^= input.charCodeAt(i); + hash = Math.imul(hash, 0x01000193); + } + return hash >>> 0; +} + +function clamp01(v: number): number { + if (v < 0) return 0; + if (v > 1) return 1; + return v; +} + +function hsvToHex(h: number, s: number, v: number): string { + // h/s/v in [0, 1] + const hh = ((h % 1) + 1) % 1; + const ss = clamp01(s); + const vv = clamp01(v); + + const x = hh * 6; + const i = Math.floor(x); + const f = x - i; + + const p = vv * (1 - ss); + const q = vv * (1 - ss * f); + const t = vv * (1 - ss * (1 - f)); + + let r = 0; + let g = 0; + let b = 0; + + switch (i % 6) { + case 0: + r = vv; + g = t; + b = p; + break; + case 1: + r = q; + g = vv; + b = p; + break; + case 2: + r = p; + g = vv; + b = t; + break; + case 3: + r = p; + g = q; + b = vv; + break; + case 4: + r = t; + g = p; + b = vv; + break; + case 5: + r = vv; + g = p; + b = q; + break; + } + + const toHex = (x: number) => { + const n = Math.round(clamp01(x) * 255); + return n.toString(16).padStart(2, "0"); + }; + + return `#${toHex(r)}${toHex(g)}${toHex(b)}`; +} + +export function labelToColor(label: string): string { + if (!label) return FALLBACK_LABEL_COLOR; + if (label === MISSING_LABEL_SENTINEL) return MISSING_LABEL_COLOR; + + return colorForKey(label); +} + +function colorForKey(key: string): string { + const seed = fnv1a32(key); + const val = seed & 0xffff; // map to u16 + const h = (val * GOLDEN_RATIO_CONJUGATE) % 1; + + // Match Rerun's defaults: saturation 0.85, value 0.5 + return hsvToHex(h, 0.85, 0.5); +} + +function stableLabelSort(a: string, b: string): number { + if (a === MISSING_LABEL_SENTINEL && b !== MISSING_LABEL_SENTINEL) return 1; + if (b === MISSING_LABEL_SENTINEL && a !== MISSING_LABEL_SENTINEL) return -1; + return a.localeCompare(b); +} + +/** + * Builds a deterministic, collision-free label → color mapping for the given + * label universe. + * + * Notes: + * - No modulo/cycling: if there are N labels, we produce N colors. + * - Deterministic: same input set yields same mapping. + * - Collision-free within the provided set via deterministic rehashing. + */ +export function createLabelColorMap(labels: string[]): Record { + const unique = Array.from(new Set(labels.map((l) => normalizeLabel(l)))).sort(stableLabelSort); + + const colors: Record = {}; + const used = new Set(); + + for (const label of unique) { + if (label === MISSING_LABEL_SENTINEL) { + colors[label] = MISSING_LABEL_COLOR; + used.add(MISSING_LABEL_COLOR.toLowerCase()); + continue; + } + + let attempt = 0; + // Deterministic collision resolution (should be extremely rare). + while (attempt < 32) { + const candidate = colorForKey(attempt === 0 ? label : `${label}#${attempt}`); + const normalized = candidate.toLowerCase(); + if (!used.has(normalized)) { + colors[label] = candidate; + used.add(normalized); + break; + } + attempt++; + } + + if (!colors[label]) { + // Should never happen, but keep UI resilient. + colors[label] = FALLBACK_LABEL_COLOR; + } + } + + return colors; +} + +export function normalizeLabel(label: string | null | undefined): string { + return label && label.length > 0 ? label : MISSING_LABEL_SENTINEL; +} diff --git a/frontend/src/lib/labelLegend.ts b/frontend/src/lib/labelLegend.ts new file mode 100644 index 0000000..2d43e93 --- /dev/null +++ b/frontend/src/lib/labelLegend.ts @@ -0,0 +1,248 @@ +import type { EmbeddingsData } from "@/types"; +import { + FALLBACK_LABEL_COLOR, + MISSING_LABEL_COLOR, + createLabelColorMap, + normalizeLabel, +} from "@/lib/labelColors"; + +// Past ~20-30 categories, color-as-encoding becomes unreliable for most users. +// We choose a conservative upper bound and fall back to a single color. +export const MAX_DISTINCT_LABEL_COLORS = 20; +export const UNSELECTED_LABEL_ALPHA = 0.12; + +export interface ScatterLabelsInfo { + uniqueLabels: string[]; + categories: Uint16Array; + palette: string[]; +} + +function clamp01(v: number): number { + if (v < 0) return 0; + if (v > 1) return 1; + return v; +} + +function applyAlphaToHex(color: string, alpha: number): string { + if (!color.startsWith("#")) return color; + const hex = Math.round(clamp01(alpha) * 255) + .toString(16) + .padStart(2, "0"); + + if (color.length === 7) { + return `${color}${hex}`; + } + + if (color.length === 9) { + return `${color.slice(0, 7)}${hex}`; + } + + return color; +} + +function applyLabelFilterToPalette(params: { + palette: string[]; + labels: string[]; + labelFilter: string | null; + unselectedAlpha: number; +}): string[] { + const { palette, labels, labelFilter, unselectedAlpha } = params; + if (!labelFilter) return palette; + if (!labels.includes(labelFilter)) return palette; + + return palette.map((color, idx) => + labels[idx] === labelFilter ? color : applyAlphaToHex(color, unselectedAlpha) + ); +} + +export function buildLabelCounts(embeddings: EmbeddingsData | null): Map { + const counts = new Map(); + if (!embeddings) return counts; + for (const raw of embeddings.labels) { + const l = normalizeLabel(raw); + counts.set(l, (counts.get(l) ?? 0) + 1); + } + return counts; +} + +export function getDistinctLabelCount(labelCounts: Map): number { + let n = labelCounts.size; + if (labelCounts.has("undefined")) n -= 1; + return n; +} + +export function buildLabelUniverse( + datasetLabels: string[], + embeddingsLabels: (string | null)[] | null +): string[] { + const universe: string[] = []; + const seen = new Set(); + let hasMissing = false; + + const baseLabels = datasetLabels.map((l) => normalizeLabel(l)); + for (const l of baseLabels) { + if (l === "undefined") { + hasMissing = true; + continue; + } + if (seen.has(l)) continue; + seen.add(l); + universe.push(l); + } + + if (embeddingsLabels) { + const extras = new Set(); + for (const raw of embeddingsLabels) { + const l = normalizeLabel(raw); + if (l === "undefined") { + hasMissing = true; + continue; + } + if (!seen.has(l)) extras.add(l); + } + + if (extras.size > 0) { + const extraSorted = Array.from(extras).sort((a, b) => a.localeCompare(b)); + for (const l of extraSorted) { + seen.add(l); + universe.push(l); + } + } + } + + if (hasMissing) universe.push("undefined"); + return universe; +} + +export function buildLabelsInfo(params: { + datasetLabels: string[]; + embeddings: EmbeddingsData | null; + distinctColoringDisabled: boolean; + labelFilter?: string | null; + unselectedAlpha?: number; +}): ScatterLabelsInfo | null { + const { + datasetLabels, + embeddings, + distinctColoringDisabled, + labelFilter = null, + unselectedAlpha = UNSELECTED_LABEL_ALPHA, + } = params; + if (!embeddings) return null; + + const universe = buildLabelUniverse(datasetLabels, embeddings.labels); + + // Guard: hyper-scatter categories are Uint16. + if (universe.length > 65535) { + console.warn( + `Too many labels (${universe.length}) for uint16 categories; collapsing to a single color.` + ); + return { + uniqueLabels: ["undefined"], + categories: new Uint16Array(embeddings.labels.length), + palette: [FALLBACK_LABEL_COLOR], + }; + } + + const labelToCategory: Record = {}; + for (let i = 0; i < universe.length; i++) { + labelToCategory[universe[i]] = i; + } + + const undefinedIndex = labelToCategory["undefined"] ?? 0; + const categories = new Uint16Array(embeddings.labels.length); + for (let i = 0; i < embeddings.labels.length; i++) { + const key = normalizeLabel(embeddings.labels[i]); + categories[i] = labelToCategory[key] ?? undefinedIndex; + } + + let palette: string[]; + if (distinctColoringDisabled) { + palette = universe.map((l) => (l === "undefined" ? MISSING_LABEL_COLOR : FALLBACK_LABEL_COLOR)); + } else { + const colors = createLabelColorMap(universe); + palette = universe.map((l) => colors[l] ?? FALLBACK_LABEL_COLOR); + } + + const filteredPalette = applyLabelFilterToPalette({ + palette, + labels: universe, + labelFilter, + unselectedAlpha, + }); + + return { uniqueLabels: universe, categories, palette: filteredPalette }; +} + +export function buildLabelColorMap(params: { + labelsInfo: ScatterLabelsInfo | null; + labelUniverse: string[]; + distinctColoringDisabled: boolean; + labelFilter?: string | null; + unselectedAlpha?: number; +}): Record { + const { + labelsInfo, + labelUniverse, + distinctColoringDisabled, + labelFilter = null, + unselectedAlpha = UNSELECTED_LABEL_ALPHA, + } = params; + const map: Record = {}; + + if (labelsInfo) { + for (let i = 0; i < labelsInfo.uniqueLabels.length; i++) { + map[labelsInfo.uniqueLabels[i]] = labelsInfo.palette[i] ?? FALLBACK_LABEL_COLOR; + } + return map; + } + + if (labelUniverse.length === 0) return map; + + if (distinctColoringDisabled) { + for (const label of labelUniverse) { + map[label] = label === "undefined" ? MISSING_LABEL_COLOR : FALLBACK_LABEL_COLOR; + } + return map; + } + + const colors = createLabelColorMap(labelUniverse); + for (const label of labelUniverse) { + map[label] = colors[label] ?? FALLBACK_LABEL_COLOR; + } + + if (!labelFilter || !labelUniverse.includes(labelFilter)) return map; + + for (const label of labelUniverse) { + if (label !== labelFilter) { + map[label] = applyAlphaToHex(map[label], unselectedAlpha); + } + } + + return map; +} + +export function buildLegendLabels(params: { + labelUniverse: string[]; + labelCounts: Map; + query: string; +}): string[] { + const { labelUniverse, labelCounts, query } = params; + const all = labelUniverse.length > 0 ? [...labelUniverse] : Array.from(labelCounts.keys()); + const q = query.trim().toLowerCase(); + const filtered = q ? all.filter((l) => l.toLowerCase().includes(q)) : all; + const hasCounts = labelCounts.size > 0; + + return filtered.sort((a, b) => { + if (a === "undefined" && b !== "undefined") return 1; + if (b === "undefined" && a !== "undefined") return -1; + + if (hasCounts) { + const ca = labelCounts.get(a) ?? 0; + const cb = labelCounts.get(b) ?? 0; + if (cb !== ca) return cb - ca; + } + + return a.localeCompare(b); + }); +} diff --git a/frontend/src/store/useStore.ts b/frontend/src/store/useStore.ts index 9d74299..c440b10 100644 --- a/frontend/src/store/useStore.ts +++ b/frontend/src/store/useStore.ts @@ -1,7 +1,27 @@ import { create } from "zustand"; -import type { DatasetInfo, EmbeddingsData, Geometry, Sample } from "@/types"; +import type { DatasetInfo, EmbeddingsData, Sample } from "@/types"; +import { normalizeLabel } from "@/lib/labelColors"; + +function computeLabelSelection(embeddings: EmbeddingsData, label: string): Set { + const target = normalizeLabel(label); + const ids = new Set(); + for (let i = 0; i < embeddings.labels.length; i++) { + if (normalizeLabel(embeddings.labels[i]) === target) { + ids.add(embeddings.ids[i]); + } + } + return ids; +} interface AppState { + // Panel visibility (for header toggles) + leftPanelOpen: boolean; + rightPanelOpen: boolean; + bottomPanelOpen: boolean; + setLeftPanelOpen: (open: boolean) => void; + setRightPanelOpen: (open: boolean) => void; + setBottomPanelOpen: (open: boolean) => void; + // Dataset info datasetInfo: DatasetInfo | null; setDatasetInfo: (info: DatasetInfo) => void; @@ -15,22 +35,23 @@ interface AppState { appendSamples: (samples: Sample[]) => void; addSamplesIfMissing: (samples: Sample[]) => void; - // Embeddings - embeddings: EmbeddingsData | null; - setEmbeddings: (data: EmbeddingsData) => void; + // Embeddings (cached per layout key) + embeddingsByLayoutKey: Record; + setEmbeddingsForLayout: (layoutKey: string, data: EmbeddingsData) => void; - // Current layout key (from embeddings) - currentLayoutKey: string | null; + // Active layout (for sidebar context) + activeLayoutKey: string | null; + setActiveLayoutKey: (layoutKey: string | null) => void; - // Geometry mode - geometry: Geometry; - setGeometry: (geometry: Geometry) => void; + // Label filter (sidebar-driven) + labelFilter: string | null; + setLabelFilter: (label: string | null) => void; // Selection selectedIds: Set; isLassoSelection: boolean; - selectionSource: "scatter" | "grid" | "lasso" | null; - setSelectedIds: (ids: Set, source?: "scatter" | "grid") => void; + selectionSource: "scatter" | "grid" | "lasso" | "label" | null; + setSelectedIds: (ids: Set, source?: "scatter" | "grid" | "label") => void; toggleSelection: (id: string) => void; addToSelection: (ids: string[]) => void; clearSelection: () => void; @@ -58,6 +79,14 @@ interface AppState { } export const useStore = create((set, get) => ({ + // Panel visibility (for header toggles) + leftPanelOpen: false, + rightPanelOpen: false, + bottomPanelOpen: false, + setLeftPanelOpen: (open) => set({ leftPanelOpen: open }), + setRightPanelOpen: (open) => set({ rightPanelOpen: open }), + setBottomPanelOpen: (open) => set({ bottomPanelOpen: open }), + // Dataset info datasetInfo: null, setDatasetInfo: (info) => set({ datasetInfo: info }), @@ -87,15 +116,74 @@ export const useStore = create((set, get) => ({ }), // Embeddings - embeddings: null, - setEmbeddings: (data) => set({ embeddings: data, currentLayoutKey: data?.layout_key ?? null }), + embeddingsByLayoutKey: {}, + setEmbeddingsForLayout: (layoutKey, data) => + set((state) => { + const selectionUpdate = + state.labelFilter && + state.selectionSource === "label" && + state.activeLayoutKey === layoutKey + ? { + selectedIds: computeLabelSelection(data, state.labelFilter), + selectionSource: "label" as const, + } + : {}; - // Current layout key - currentLayoutKey: null, + return { + embeddingsByLayoutKey: { ...state.embeddingsByLayoutKey, [layoutKey]: data }, + ...selectionUpdate, + }; + }), + + // Active layout + activeLayoutKey: null, + setActiveLayoutKey: (layoutKey) => + set((state) => { + if (!layoutKey) return { activeLayoutKey: null }; + if (!state.labelFilter || state.selectionSource !== "label") { + return { activeLayoutKey: layoutKey }; + } - // Geometry mode - geometry: "euclidean", - setGeometry: (geometry) => set({ geometry }), + const embeddings = state.embeddingsByLayoutKey[layoutKey]; + if (!embeddings) { + return { + activeLayoutKey: layoutKey, + selectedIds: new Set(), + selectionSource: "label", + }; + } + + return { + activeLayoutKey: layoutKey, + selectedIds: computeLabelSelection(embeddings, state.labelFilter), + selectionSource: "label", + }; + }), + + // Label filter + labelFilter: null, + setLabelFilter: (label) => + set((state) => { + const nextLabel = label ? normalizeLabel(label) : null; + const nextState: Partial = { labelFilter: nextLabel }; + + if (nextLabel) { + const layoutKey = state.activeLayoutKey; + const embeddings = layoutKey ? state.embeddingsByLayoutKey[layoutKey] : null; + nextState.selectedIds = embeddings ? computeLabelSelection(embeddings, nextLabel) : new Set(); + nextState.selectionSource = "label"; + nextState.isLassoSelection = false; + nextState.lassoQuery = null; + nextState.lassoSamples = []; + nextState.lassoTotal = 0; + nextState.lassoIsLoading = false; + } else if (state.selectionSource === "label") { + nextState.selectedIds = new Set(); + nextState.selectionSource = null; + } + + return nextState; + }), // Selection selectedIds: new Set(), diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index 2ec4b90..2cd5560 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -5,6 +5,8 @@ export interface Sample { label: string | null; thumbnail: string | null; metadata: Record; + width: number | null; + height: number | null; } export type Geometry = "euclidean" | "poincare"; @@ -32,7 +34,7 @@ export interface DatasetInfo { name: string; num_samples: number; labels: string[]; - label_colors: Record; + label_colors?: Record; spaces: SpaceInfo[]; layouts: LayoutInfo[]; } @@ -43,7 +45,7 @@ export interface EmbeddingsData { ids: string[]; labels: (string | null)[]; coords: [number, number][]; - label_colors: Record; + label_colors?: Record; } export interface SamplesResponse { diff --git a/pyproject.toml b/pyproject.toml index 4acde4f..a2cfcc4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ dependencies = [ "fastapi>=0.128.0", "uvicorn[standard]>=0.40.0", "embed-anything>=0.7.0", + "hyper-models @ git+https://github.com/Hyper3Labs/hyper-models.git@7489595f4f665802671136872b2bf61794995e1b", "numpy>=1.26.4,<2.4", "umap-learn>=0.5.11", "pillow>=12.1.0", @@ -53,14 +54,17 @@ ml = [ hyperview = "hyperview.cli:main" [project.urls] -Homepage = "https://github.com/merantix/HyperView" -Documentation = "https://github.com/merantix/HyperView#readme" -Repository = "https://github.com/merantix/HyperView" +Homepage = "https://github.com/Hyper3Labs/HyperView" +Documentation = "https://github.com/Hyper3Labs/HyperView#readme" +Repository = "https://github.com/Hyper3Labs/HyperView" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" +[tool.hatch.metadata] +allow-direct-references = true + [tool.hatch.build.targets.wheel] packages = ["src/hyperview"] # Include frontend static assets (pre-built before packaging) @@ -84,6 +88,3 @@ ignore = ["E501"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] - -[tool.uv.sources] -hycoclip = { git = "https://github.com/PalAvik/hycoclip.git" } diff --git a/scripts/demo.py b/scripts/demo.py index 5347088..7680643 100644 --- a/scripts/demo.py +++ b/scripts/demo.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -"""Run HyperView demo with CIFAR-100 dataset.""" +"""Run HyperView demo with CIFAR-10 dataset.""" import argparse import os @@ -15,8 +15,8 @@ def main(): parser.add_argument( "--dataset", type=str, - default="cifar100_demo", - help="Dataset name to use for persistence (default: cifar100_demo)", + default="cifar10_demo", + help="Dataset name to use for persistence (default: cifar10_demo)", ) parser.add_argument( "--samples", type=int, default=50000, help="Number of samples to load (default: 50000)" @@ -61,10 +61,10 @@ def main(): dataset = hv.Dataset(args.dataset, persist=not args.no_persist) dataset.add_from_huggingface( - "uoft-cs/cifar100", + "uoft-cs/cifar10", split="train", image_key="img", - label_key="fine_label", + label_key="label", max_samples=args.samples, ) diff --git a/src/hyperview/cli.py b/src/hyperview/cli.py index bdff271..9e5486c 100644 --- a/src/hyperview/cli.py +++ b/src/hyperview/cli.py @@ -108,15 +108,15 @@ def run_demo( open_browser: bool = True, reuse_server: bool = False, ): - """Run a demo with CIFAR-100 data.""" - print("Loading CIFAR-100 dataset...") - dataset = Dataset("cifar100_demo") + """Run a demo with CIFAR-10 data.""" + print("Loading CIFAR-10 dataset...") + dataset = Dataset("cifar10_demo") added, skipped = dataset.add_from_huggingface( - "uoft-cs/cifar100", + "uoft-cs/cifar10", split="train", image_key="img", - label_key="fine_label", + label_key="label", max_samples=num_samples, ) if skipped > 0: diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 18ee2fb..a943e8a 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -10,7 +10,7 @@ from typing import Any, cast import numpy as np -from datasets import load_dataset +from datasets import DownloadConfig, load_dataset from PIL import Image from hyperview.core.sample import Sample @@ -232,7 +232,21 @@ def add_from_huggingface( """ from hyperview.storage import StorageConfig - ds = cast(Any, load_dataset(dataset_name, split=split)) + # HuggingFace `load_dataset()` can be surprisingly slow even when the dataset + # is already cached, due to Hub reachability checks in some environments. + # For a fast path, first try loading in "offline" mode (cache-only), and + # fall back to an online load if the dataset isn't cached yet. + try: + ds = cast( + Any, + load_dataset( + dataset_name, + split=split, + download_config=DownloadConfig(local_files_only=True), + ), + ) + except Exception: + ds = cast(Any, load_dataset(dataset_name, split=split)) # Get label names if available label_names = None diff --git a/src/hyperview/core/sample.py b/src/hyperview/core/sample.py index 78623ba..5eaf212 100644 --- a/src/hyperview/core/sample.py +++ b/src/hyperview/core/sample.py @@ -21,6 +21,8 @@ class Sample(BaseModel): label: str | None = Field(default=None, description="Label for the sample") metadata: dict[str, Any] = Field(default_factory=dict, description="Additional metadata") thumbnail_base64: str | None = Field(default=None, description="Cached thumbnail as base64") + width: int | None = Field(default=None, description="Image width in pixels") + height: int | None = Field(default=None, description="Image height in pixels") model_config = {"arbitrary_types_allowed": True} @@ -34,8 +36,11 @@ def load_image(self) -> Image.Image: return Image.open(self.filepath) def get_thumbnail(self, size: tuple[int, int] = (128, 128)) -> Image.Image: - """Get a thumbnail of the image.""" + """Get a thumbnail of the image. Also captures original dimensions.""" img = self.load_image() + # Capture original dimensions while we have the image loaded + if self.width is None or self.height is None: + self.width, self.height = img.size img.thumbnail(size, Image.Resampling.LANCZOS) return img @@ -65,10 +70,22 @@ def to_api_dict(self, include_thumbnail: bool = True) -> dict[str, Any]: "filename": self.filename, "label": self.label, "metadata": self.metadata, + "width": self.width, + "height": self.height, } if include_thumbnail: data["thumbnail"] = self.get_thumbnail_base64() return data + def ensure_dimensions(self) -> None: + """Load image dimensions if not already set.""" + if self.width is None or self.height is None: + try: + img = self.load_image() + self.width, self.height = img.size + except Exception: + # If image can't be loaded, leave as None + pass + diff --git a/src/hyperview/server/app.py b/src/hyperview/server/app.py index 3607d18..26e897a 100644 --- a/src/hyperview/server/app.py +++ b/src/hyperview/server/app.py @@ -46,6 +46,8 @@ class SampleResponse(BaseModel): label: str | None thumbnail: str | None metadata: dict + width: int | None = None + height: int | None = None class LayoutInfoResponse(BaseModel): diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py index e9e9eb0..f85b635 100644 --- a/src/hyperview/storage/lancedb_backend.py +++ b/src/hyperview/storage/lancedb_backend.py @@ -42,8 +42,19 @@ def __init__(self, dataset_name: str, config: StorageConfig | None = None): self._samples_table = self._get_or_create_samples_table() self._spaces_table = self._get_or_create_spaces_table() + def _table_names(self) -> set[str]: + """Return the set of table names in this LanceDB database.""" + try: + res = self._db.list_tables() + # LanceDB may return a response object with a `.tables` field. + names = res.tables if hasattr(res, "tables") else res + except Exception: + # Back-compat for older LanceDB. + names = self._db.table_names() + return set(names) + def _get_or_create_samples_table(self) -> lancedb.table.Table | None: - if "samples" in self._db.table_names(): + if "samples" in self._table_names(): return self._db.open_table("samples") return None @@ -55,7 +66,7 @@ def _ensure_samples_table(self, data: list[dict]) -> lancedb.table.Table: return self._samples_table def _get_or_create_spaces_table(self) -> lancedb.table.Table: - if "spaces" in self._db.table_names(): + if "spaces" in self._table_names(): return self._db.open_table("spaces") return self._db.create_table("spaces", schema=create_spaces_schema()) @@ -215,7 +226,7 @@ def ensure_space( def delete_space(self, space_key: str) -> bool: self._spaces_table.delete(f"space_key = '{_sql_escape(space_key)}'") emb_table = f"embeddings__{space_key}" - if emb_table in self._db.table_names(): + if emb_table in self._table_names(): self._db.drop_table(emb_table) return True @@ -227,7 +238,7 @@ def add_embeddings(self, space_key: str, ids: list[str], vectors: np.ndarray) -> raise ValueError(f"Space not found: {space_key}") emb_table_name = f"embeddings__{space_key}" - if emb_table_name not in self._db.table_names(): + if emb_table_name not in self._table_names(): self._db.create_table(emb_table_name, schema=create_embeddings_schema(space.dim)) emb_table = self._db.open_table(emb_table_name) @@ -247,7 +258,7 @@ def get_embeddings(self, space_key: str, ids: list[str] | None = None) -> tuple[ raise ValueError(f"Space not found: {space_key}") emb_table_name = f"embeddings__{space_key}" - if emb_table_name not in self._db.table_names(): + if emb_table_name not in self._table_names(): return [], np.empty((0, space.dim), dtype=np.float32) emb_table = self._db.open_table(emb_table_name) @@ -263,7 +274,7 @@ def get_embeddings(self, space_key: str, ids: list[str] | None = None) -> tuple[ def get_embedded_ids(self, space_key: str) -> set[str]: emb_table_name = f"embeddings__{space_key}" - if emb_table_name not in self._db.table_names(): + if emb_table_name not in self._table_names(): return set() return {r["id"] for r in self._db.open_table(emb_table_name).search().select(["id"]).to_list()} @@ -274,10 +285,10 @@ def get_missing_embedding_ids(self, space_key: str) -> list[str]: return list(all_ids - self.get_embedded_ids(space_key)) def _get_layouts_registry_table(self) -> lancedb.table.Table | None: - return self._db.open_table("layouts_registry") if "layouts_registry" in self._db.table_names() else None + return self._db.open_table("layouts_registry") if "layouts_registry" in self._table_names() else None def _ensure_layouts_registry_table(self) -> lancedb.table.Table: - if "layouts_registry" not in self._db.table_names(): + if "layouts_registry" not in self._table_names(): self._db.create_table("layouts_registry", schema=create_layouts_registry_schema()) return self._db.open_table("layouts_registry") @@ -312,13 +323,13 @@ def ensure_layout( registry_table.add(pa.Table.from_pylist([layout_info.to_dict()], schema=create_layouts_registry_schema())) table_name = f"layouts__{layout_key}" - if table_name not in self._db.table_names(): + if table_name not in self._table_names(): self._db.create_table(table_name, schema=create_layouts_schema()) return layout_info def delete_layout(self, layout_key: str) -> bool: table_name = f"layouts__{layout_key}" - if table_name in self._db.table_names(): + if table_name in self._table_names(): self._db.drop_table(table_name) registry = self._get_layouts_registry_table() if registry: @@ -332,7 +343,7 @@ def add_layout_coords(self, layout_key: str, ids: list[str], coords: np.ndarray) raise ValueError(f"Layout '{layout_key}' not registered") table_name = f"layouts__{layout_key}" - if table_name not in self._db.table_names(): + if table_name not in self._table_names(): self._db.create_table(table_name, schema=create_layouts_schema()) table = self._db.open_table(table_name) @@ -348,7 +359,7 @@ def add_layout_coords(self, layout_key: str, ids: list[str], coords: np.ndarray) def get_layout_coords(self, layout_key: str, ids: list[str] | None = None) -> tuple[list[str], np.ndarray]: table_name = f"layouts__{layout_key}" - if table_name not in self._db.table_names(): + if table_name not in self._table_names(): return [], np.empty((0, 2), dtype=np.float32) table = self._db.open_table(table_name) @@ -372,7 +383,7 @@ def get_lasso_candidates_aabb( y_max: float, ) -> tuple[list[str], np.ndarray]: table_name = f"layouts__{layout_key}" - if table_name not in self._db.table_names(): + if table_name not in self._table_names(): return [], np.empty((0, 2), dtype=np.float32) rows = self._db.open_table(table_name).search().where( @@ -412,7 +423,7 @@ def find_similar_by_vector( space_key = spaces[0].space_key emb_table_name = f"embeddings__{space_key}" - if emb_table_name not in self._db.table_names(): + if emb_table_name not in self._table_names(): return [] results = self._db.open_table(emb_table_name).search(vector, vector_column_name="vector").metric("cosine").limit(k).to_list() From b86f65f9df62f294965702e8841a0e6bdc6fd460 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Tue, 27 Jan 2026 23:53:40 +0100 Subject: [PATCH 39/75] feat: ensure dimensions are populated in API response --- src/hyperview/core/sample.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/hyperview/core/sample.py b/src/hyperview/core/sample.py index 5eaf212..d0e3f38 100644 --- a/src/hyperview/core/sample.py +++ b/src/hyperview/core/sample.py @@ -64,6 +64,10 @@ def cache_thumbnail(self, size: tuple[int, int] = (128, 128)) -> None: def to_api_dict(self, include_thumbnail: bool = True) -> dict[str, Any]: """Convert to dictionary for API response.""" + # Ensure dimensions are populated (loads image if needed but not cached) + if self.width is None or self.height is None: + self.ensure_dimensions() + data = { "id": self.id, "filepath": self.filepath, From e741e8da56cd2a3abdbc0e4e153b6e85be59808d Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Tue, 27 Jan 2026 23:59:45 +0100 Subject: [PATCH 40/75] chore: auto-export frontend on commit Adds a repo-managed pre-commit hook (via core.hooksPath) that runs scripts/export_frontend.sh and stages src/hyperview/server/static whenever frontend/ is part of the commit. --- .githooks/pre-commit | 48 ++++++++++++++++++++++++++++++++++++ scripts/install_git_hooks.sh | 10 ++++++++ 2 files changed, 58 insertions(+) create mode 100755 .githooks/pre-commit create mode 100755 scripts/install_git_hooks.sh diff --git a/.githooks/pre-commit b/.githooks/pre-commit new file mode 100755 index 0000000..e53c105 --- /dev/null +++ b/.githooks/pre-commit @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT="$(git rev-parse --show-toplevel)" +cd "$ROOT" + +if [[ "${HYPERVIEW_SKIP_FRONTEND_EXPORT:-}" == "1" ]]; then + echo "[HyperView] HYPERVIEW_SKIP_FRONTEND_EXPORT=1; skipping frontend export." + exit 0 +fi + +# Only run when the commit includes frontend changes. +if ! git diff --cached --name-only | grep -q '^frontend/'; then + exit 0 +fi + +if [[ "${HYPERVIEW_ALLOW_DIRTY_FRONTEND:-}" != "1" ]]; then + if [[ -n "$(git diff --name-only -- frontend/)" ]]; then + echo "[HyperView] Unstaged changes detected under frontend/." + echo "[HyperView] Please stage/stash them so the exported static matches the commit." + echo "[HyperView] Override with HYPERVIEW_ALLOW_DIRTY_FRONTEND=1 or use: git commit --no-verify" + exit 1 + fi + + if [[ -n "$(git ls-files --others --exclude-standard -- frontend/)" ]]; then + echo "[HyperView] Untracked files detected under frontend/." + echo "[HyperView] Please add/stash them so the exported static matches the commit." + echo "[HyperView] Override with HYPERVIEW_ALLOW_DIRTY_FRONTEND=1 or use: git commit --no-verify" + exit 1 + fi +fi + +echo "[HyperView] Frontend changes staged; exporting static frontend..." + +bash scripts/export_frontend.sh + +git add -A src/hyperview/server/static/ + +# Safety: if the export process changed tracked frontend files (e.g. lockfile), +# abort so the user can review/stage them. +if [[ -n "$(git diff --name-only -- frontend/)" ]]; then + echo "[HyperView] Export modified tracked files under frontend/." + echo "[HyperView] Please review and stage these changes, then re-commit." + echo "[HyperView] (This often happens if npm updates package-lock.json.)" + exit 1 +fi + +echo "[HyperView] Export complete; static output staged." diff --git a/scripts/install_git_hooks.sh b/scripts/install_git_hooks.sh new file mode 100755 index 0000000..3460a35 --- /dev/null +++ b/scripts/install_git_hooks.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT="$(git rev-parse --show-toplevel)" +cd "$ROOT" + +git config core.hooksPath .githooks +chmod +x .githooks/pre-commit + +echo "Installed git hooks via core.hooksPath=.githooks" From 3f89b60fd8225684806f1f2f4ce7faba1641c434 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Wed, 28 Jan 2026 00:04:08 +0100 Subject: [PATCH 41/75] ci: require frontend export in PRs Fails PRs when frontend/ changes without updating src/hyperview/server/static/. --- .github/workflows/require_frontend_export.yml | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/require_frontend_export.yml diff --git a/.github/workflows/require_frontend_export.yml b/.github/workflows/require_frontend_export.yml new file mode 100644 index 0000000..00363fe --- /dev/null +++ b/.github/workflows/require_frontend_export.yml @@ -0,0 +1,53 @@ +name: Require Frontend Export + +on: + pull_request: + types: [opened, synchronize, reopened] + paths: + - "frontend/**" + - "scripts/export_frontend.sh" + - "src/hyperview/server/static/**" + +jobs: + require-frontend-export: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + + - name: Verify static export updated when frontend changes + run: | + set -euo pipefail + + base_sha="${{ github.event.pull_request.base.sha }}" + head_sha="${{ github.event.pull_request.head.sha }}" + + changed_files="$(git diff --name-only "$base_sha" "$head_sha")" + + echo "Changed files:" + echo "$changed_files" + + frontend_changed="false" + static_changed="false" + + if echo "$changed_files" | grep -qE '^(frontend/|scripts/export_frontend\.sh$)'; then + frontend_changed="true" + fi + + if echo "$changed_files" | grep -q '^src/hyperview/server/static/'; then + static_changed="true" + fi + + if [[ "$frontend_changed" == "true" && "$static_changed" != "true" ]]; then + echo "" + echo "ERROR: frontend/ changed but src/hyperview/server/static/ was not updated." + echo "Run: bash scripts/export_frontend.sh" + echo "Then commit the updated src/hyperview/server/static/ output." + exit 1 + fi + + echo "OK: export requirements satisfied." From 2291a0bffbe97cc5065c15fe0d96096ad99bd803 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Wed, 28 Jan 2026 13:39:51 +0100 Subject: [PATCH 42/75] revert: remove git hook automation Removes the repo-managed pre-commit hook and installer script. --- .githooks/pre-commit | 48 ------------------------------------ scripts/install_git_hooks.sh | 10 -------- 2 files changed, 58 deletions(-) delete mode 100755 .githooks/pre-commit delete mode 100755 scripts/install_git_hooks.sh diff --git a/.githooks/pre-commit b/.githooks/pre-commit deleted file mode 100755 index e53c105..0000000 --- a/.githooks/pre-commit +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -ROOT="$(git rev-parse --show-toplevel)" -cd "$ROOT" - -if [[ "${HYPERVIEW_SKIP_FRONTEND_EXPORT:-}" == "1" ]]; then - echo "[HyperView] HYPERVIEW_SKIP_FRONTEND_EXPORT=1; skipping frontend export." - exit 0 -fi - -# Only run when the commit includes frontend changes. -if ! git diff --cached --name-only | grep -q '^frontend/'; then - exit 0 -fi - -if [[ "${HYPERVIEW_ALLOW_DIRTY_FRONTEND:-}" != "1" ]]; then - if [[ -n "$(git diff --name-only -- frontend/)" ]]; then - echo "[HyperView] Unstaged changes detected under frontend/." - echo "[HyperView] Please stage/stash them so the exported static matches the commit." - echo "[HyperView] Override with HYPERVIEW_ALLOW_DIRTY_FRONTEND=1 or use: git commit --no-verify" - exit 1 - fi - - if [[ -n "$(git ls-files --others --exclude-standard -- frontend/)" ]]; then - echo "[HyperView] Untracked files detected under frontend/." - echo "[HyperView] Please add/stash them so the exported static matches the commit." - echo "[HyperView] Override with HYPERVIEW_ALLOW_DIRTY_FRONTEND=1 or use: git commit --no-verify" - exit 1 - fi -fi - -echo "[HyperView] Frontend changes staged; exporting static frontend..." - -bash scripts/export_frontend.sh - -git add -A src/hyperview/server/static/ - -# Safety: if the export process changed tracked frontend files (e.g. lockfile), -# abort so the user can review/stage them. -if [[ -n "$(git diff --name-only -- frontend/)" ]]; then - echo "[HyperView] Export modified tracked files under frontend/." - echo "[HyperView] Please review and stage these changes, then re-commit." - echo "[HyperView] (This often happens if npm updates package-lock.json.)" - exit 1 -fi - -echo "[HyperView] Export complete; static output staged." diff --git a/scripts/install_git_hooks.sh b/scripts/install_git_hooks.sh deleted file mode 100755 index 3460a35..0000000 --- a/scripts/install_git_hooks.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -ROOT="$(git rev-parse --show-toplevel)" -cd "$ROOT" - -git config core.hooksPath .githooks -chmod +x .githooks/pre-commit - -echo "Installed git hooks via core.hooksPath=.githooks" From e0a5bc53f43e0e7c3a9b2a7856bb13be6df77477 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:20:35 +0100 Subject: [PATCH 43/75] refactor: unify embedding providers via LanceDB registry - Replace BaseEmbeddingProvider/ModelSpec with LanceDB registry-based EmbeddingSpec - Add embed-anything and hyper-models as @register'd LanceDB embedding functions - Make model parameter required in compute_embeddings() with auto-detection - Add list_embedding_providers() and get_provider_info() to public API - Use uv workspace for hyper-models dependency (local development) - Add CONTRIBUTING.md with development setup guide - Update docs to use full HuggingFace model IDs - Smarter default geometry selection in launch() auto-layout --- CONTRIBUTING.md | 82 +++++ README.md | 2 +- docs/datasets.md | 4 +- notebooks/demo.ipynb | 194 ---------- pyproject.toml | 8 +- scripts/demo.py | 8 +- scripts/demo_hyperbolic_clip.py | 13 +- src/hyperview/__init__.py | 14 +- src/hyperview/api.py | 17 +- src/hyperview/cli.py | 20 +- src/hyperview/core/dataset.py | 49 ++- src/hyperview/embeddings/__init__.py | 32 +- src/hyperview/embeddings/engine.py | 330 ++++++++++++++++++ src/hyperview/embeddings/pipelines.py | 34 +- .../embeddings/providers/__init__.py | 203 +---------- .../embeddings/providers/embed_anything.py | 57 --- .../embeddings/providers/hycoclip.py | 279 --------------- .../embeddings/providers/hycoclip_onnx.py | 194 ---------- .../embeddings/providers/lancedb_providers.py | 196 +++++++++++ src/hyperview/storage/lancedb_backend.py | 10 +- src/hyperview/storage/schema.py | 1 - 21 files changed, 747 insertions(+), 1000 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100644 notebooks/demo.ipynb create mode 100644 src/hyperview/embeddings/engine.py delete mode 100644 src/hyperview/embeddings/providers/embed_anything.py delete mode 100644 src/hyperview/embeddings/providers/hycoclip.py delete mode 100644 src/hyperview/embeddings/providers/hycoclip_onnx.py create mode 100644 src/hyperview/embeddings/providers/lancedb_providers.py diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..dc95ba9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,82 @@ +# Contributing to HyperView + +We welcome contributions! This guide will help you set up your development environment and submit high-quality pull requests. + +## Development Setup + +### Requirements +- **Python 3.10+** +- **uv** (Package manager) +- **Node.js** (For frontend development) + +### One-time Setup +Clone the repo and install dependencies: + +```bash +git clone https://github.com/Hyper3Labs/HyperView.git +cd HyperView + +# Create virtual environment and install dev dependencies +uv venv .venv +source .venv/bin/activate +uv pip install -e ".[dev]" + +# Install frontend dependencies +cd frontend +npm install +cd .. +``` + +## Running Locally + +For the best development experience, run the backend and frontend in separate terminals. + +### 1. Start the Backend +Runs the Python API server at `http://127.0.0.1:6262`. + +```bash +uv run hyperview demo --samples 200 --no-browser +``` + +_Tip: Use `HF_DATASETS_OFFLINE=1` if you have cached datasets and want to work offline._ + +### 2. Start the Frontend +Runs the Next.js dev server at `http://127.0.0.1:3000` with hot reloading. + +```bash +cd frontend +npm run dev +``` + +The frontend automatically proxies API requests (`/api/*`) to the backend. + +## Common Tasks + +### Testing & Linting +Please ensure all checks pass before submitting a PR. + +```bash +# Python +uv run pytest # Run unit tests +uv run ruff format . # formatting +uv run ruff check . --fix # Linting + +# Frontend +cd frontend +npm run lint +``` + +### Exporting the Frontend +The Python package bundles the compiled frontend. If you modify the frontend, you must regenerate the static assets so they can be served by the Python backend in production/demos. + +```bash +bash scripts/export_frontend.sh +``` +_This compiles the frontend and places artifacts into `src/hyperview/server/static/`. Do not edit files in that directory manually._ + +## Pull Request Guidelines + +1. **Scope**: Keep changes focused. Open an issue first for major refactors or new features. +2. **Tests**: Add tests for new logic where practical. +3. **Visuals**: If changing the UI, please attach a screenshot or GIF to your PR. +4. **Format**: Ensure code is formatted with `ruff` (Python) and `prettier` (JS/TS implicit in `npm run lint`). diff --git a/README.md b/README.md index dbf7dfc..68f17d0 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ dataset.add_from_huggingface( # dataset.add_images_dir("/path/to/images", label_from_folder=True) # Compute embeddings and visualization -dataset.compute_embeddings() +dataset.compute_embeddings(model="openai/clip-vit-base-patch32") dataset.compute_visualization() # Launch the UI diff --git a/docs/datasets.md b/docs/datasets.md index f147fe5..c8382f2 100644 --- a/docs/datasets.md +++ b/docs/datasets.md @@ -63,8 +63,8 @@ Samples are **never implicitly deleted**. Use `hv.Dataset.delete("name")` for ex ## Computing Embeddings ```python -# High-dimensional embeddings (CLIP/ResNet) -dataset.compute_embeddings(model="clip", show_progress=True) +# High-dimensional embeddings (CLIP) +dataset.compute_embeddings(model="openai/clip-vit-base-patch32", show_progress=True) # 2D projections for visualization dataset.compute_visualization() # UMAP to Euclidean + Hyperbolic diff --git a/notebooks/demo.ipynb b/notebooks/demo.ipynb deleted file mode 100644 index 20b5343..0000000 --- a/notebooks/demo.ipynb +++ /dev/null @@ -1,194 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "e26a6a66", - "metadata": {}, - "source": [ - "# HyperView Demo\n", - "This notebook demonstrates how to use HyperView to visualize embeddings in both Euclidean and Hyperbolic spaces.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0aba0ed9", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-21T23:01:47.867950Z", - "iopub.status.busy": "2025-12-21T23:01:47.867881Z", - "iopub.status.idle": "2025-12-21T23:01:48.736348Z", - "shell.execute_reply": "2025-12-21T23:01:48.735942Z" - } - }, - "outputs": [], - "source": [ - "import sys\n", - "from pathlib import Path\n", - "\n", - "# Add src to path for development\n", - "sys.path.insert(0, str(Path.cwd().parent / \"src\"))\n", - "\n", - "import hyperview as hv\n", - "print(f\"HyperView version: {hv.__version__}\")\n" - ] - }, - { - "cell_type": "markdown", - "id": "00becfad", - "metadata": {}, - "source": [ - "## Initialize Dataset\n", - "We'll create a new dataset named `cifar100_demo`.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "3e5e93d5", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-21T23:01:48.738083Z", - "iopub.status.busy": "2025-12-21T23:01:48.737879Z", - "iopub.status.idle": "2025-12-21T23:01:49.297549Z", - "shell.execute_reply": "2025-12-21T23:01:49.296797Z" - } - }, - "outputs": [], - "source": [ - "dataset = hv.Dataset(\"cifar100_demo\")\n" - ] - }, - { - "cell_type": "markdown", - "id": "2248602f", - "metadata": {}, - "source": [ - "## Load CIFAR-100 Data\n", - "We'll load 500 samples from the CIFAR-100 dataset using Hugging Face Datasets.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0666b39a", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-21T23:01:49.299289Z", - "iopub.status.busy": "2025-12-21T23:01:49.299171Z", - "iopub.status.idle": "2025-12-21T23:01:51.732573Z", - "shell.execute_reply": "2025-12-21T23:01:51.732008Z" - } - }, - "outputs": [], - "source": [ - "dataset.add_from_huggingface(\n", - " \"uoft-cs/cifar100\",\n", - " split=\"train\",\n", - " image_key=\"img\",\n", - " label_key=\"fine_label\",\n", - " max_samples=500,\n", - ")\n" - ] - }, - { - "cell_type": "markdown", - "id": "5e119424", - "metadata": {}, - "source": [ - "## Compute Embeddings\n", - "This will use a pre-trained model to compute high-dimensional embeddings for our images.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d4e2c71f", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-21T23:01:51.734082Z", - "iopub.status.busy": "2025-12-21T23:01:51.733890Z", - "iopub.status.idle": "2025-12-21T23:01:55.876495Z", - "shell.execute_reply": "2025-12-21T23:01:55.875932Z" - } - }, - "outputs": [], - "source": [ - "dataset.compute_embeddings(show_progress=True)\n" - ] - }, - { - "cell_type": "markdown", - "id": "6f552a59", - "metadata": {}, - "source": [ - "## Compute Visualization Layout\n", - "This step performs dimensionality reduction to project the high-dimensional embeddings into 2D Euclidean and Hyperbolic spaces.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b357847f", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-21T23:01:55.880223Z", - "iopub.status.busy": "2025-12-21T23:01:55.879935Z", - "iopub.status.idle": "2025-12-21T23:01:56.272742Z", - "shell.execute_reply": "2025-12-21T23:01:56.272238Z" - } - }, - "outputs": [], - "source": [ - "dataset.compute_visualization()\n" - ] - }, - { - "cell_type": "markdown", - "id": "54af1ea2", - "metadata": {}, - "source": [ - "## Launch Interactive Visualizer\n", - "Finally, we launch the visualizer. In a notebook environment, this will display an interactive iframe.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0acef7dc", - "metadata": { - "execution": { - "iopub.execute_input": "2025-12-21T23:01:56.274506Z", - "iopub.status.busy": "2025-12-21T23:01:56.274369Z", - "iopub.status.idle": "2025-12-21T23:01:56.356551Z", - "shell.execute_reply": "2025-12-21T23:01:56.355551Z" - } - }, - "outputs": [], - "source": [ - "session = hv.launch(dataset)\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv (3.12.8)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/pyproject.toml b/pyproject.toml index a2cfcc4..c672ba7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ "fastapi>=0.128.0", "uvicorn[standard]>=0.40.0", "embed-anything>=0.7.0", - "hyper-models @ git+https://github.com/Hyper3Labs/hyper-models.git@7489595f4f665802671136872b2bf61794995e1b", + "hyper-models>=0.1.0", # PyPI package: https://pypi.org/project/hyper-models/ "numpy>=1.26.4,<2.4", "umap-learn>=0.5.11", "pillow>=12.1.0", @@ -88,3 +88,9 @@ ignore = ["E501"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] + +[tool.uv.workspace] +members = ["hyper_models"] + +[tool.uv.sources] +hyper-models = { workspace = true } diff --git a/scripts/demo.py b/scripts/demo.py index 7680643..c703922 100644 --- a/scripts/demo.py +++ b/scripts/demo.py @@ -68,11 +68,11 @@ def main(): max_samples=args.samples, ) - dataset.compute_embeddings(model=args.model, show_progress=True) + space_key = dataset.compute_embeddings(model=args.model, show_progress=True) - # Compute both euclidean and poincare layouts - dataset.compute_visualization(geometry="euclidean") - dataset.compute_visualization(geometry="poincare") + # Compute a single layout for the UI to display by default. + # Switch to geometry="euclidean" for standard 2D UMAP. + dataset.compute_visualization(space_key=space_key, geometry="poincare") if args.no_server: return diff --git a/scripts/demo_hyperbolic_clip.py b/scripts/demo_hyperbolic_clip.py index 513bd4c..282e7a8 100644 --- a/scripts/demo_hyperbolic_clip.py +++ b/scripts/demo_hyperbolic_clip.py @@ -1,18 +1,16 @@ #!/usr/bin/env python -"""Demo: CLIP (Euclidean) + HyCoCLIP (Poincaré) on CIFAR-100.""" +"""Demo: CLIP (Euclidean) + hyper-models (Poincaré) on CIFAR-100.""" import hyperview as hv -import hyperview.embeddings.providers.hycoclip # noqa: F401 -from hyperview.embeddings.providers import ModelSpec -DATASET_NAME = "cifar100_clip_hycoclip" +DATASET_NAME = "cifar100_clip_hyper_models" HF_DATASET = "uoft-cs/cifar100" HF_SPLIT = "test" HF_IMAGE_KEY = "img" HF_LABEL_KEY = "fine_label" NUM_SAMPLES = 200 CLIP_MODEL_ID = "openai/clip-vit-base-patch32" -HYCOCLIP_MODEL_ID = "hycoclip_vit_s" +HYPER_MODELS_MODEL_ID = "hycoclip-vit-s" def main() -> None: @@ -29,9 +27,8 @@ def main() -> None: clip_space = dataset.compute_embeddings(CLIP_MODEL_ID) dataset.compute_visualization(space_key=clip_space, geometry="euclidean") - hycoclip_spec = ModelSpec(provider="hycoclip", model_id=HYCOCLIP_MODEL_ID) - hycoclip_space = dataset.compute_embeddings(hycoclip_spec) - dataset.compute_visualization(space_key=hycoclip_space, geometry="poincare") + hyper_space = dataset.compute_embeddings(model=HYPER_MODELS_MODEL_ID) + dataset.compute_visualization(space_key=hyper_space, geometry="poincare") print("Launching at http://127.0.0.1:6262") diff --git a/src/hyperview/__init__.py b/src/hyperview/__init__.py index 7def79f..f2b7743 100644 --- a/src/hyperview/__init__.py +++ b/src/hyperview/__init__.py @@ -1,6 +1,18 @@ """HyperView - Open-source dataset curation with hyperbolic embeddings visualization.""" from hyperview.api import Dataset, launch +from hyperview.embeddings.engine import ( + EmbeddingSpec, + get_provider_info, + list_embedding_providers, +) __version__ = "0.1.0" -__all__ = ["Dataset", "launch", "__version__"] +__all__ = [ + "Dataset", + "EmbeddingSpec", + "get_provider_info", + "launch", + "list_embedding_providers", + "__version__", +] diff --git a/src/hyperview/api.py b/src/hyperview/api.py index 9042970..c9a7e5b 100644 --- a/src/hyperview/api.py +++ b/src/hyperview/api.py @@ -228,9 +228,9 @@ def launch( """Launch the HyperView visualization server. Note: - HyperView's UI requires 2D layouts (Euclidean + Poincare). If they are - missing but high-dimensional embeddings exist, this function will compute - them automatically. + HyperView's UI needs at least one 2D layout. If layouts are missing but + embedding spaces exist, this function will compute a default layout + automatically (Euclidean if any Euclidean space exists, otherwise Poincaré). Args: dataset: The dataset to visualize. @@ -251,7 +251,7 @@ def launch( >>> import hyperview as hv >>> dataset = hv.Dataset("my_dataset") >>> dataset.add_images_dir("/path/to/images", label_from_folder=True) - >>> dataset.compute_embeddings() + >>> dataset.compute_embeddings(model="openai/clip-vit-base-patch32") >>> dataset.compute_visualization() >>> hv.launch(dataset) """ @@ -332,9 +332,12 @@ def launch( ) if not layouts: - default_space_key = spaces[0].space_key - print("No layouts found. Computing euclidean visualization...") - dataset.compute_visualization(space_key=default_space_key, geometry="euclidean") + has_euclidean_space = any(s.geometry != "hyperboloid" for s in spaces) + default_geometry = "euclidean" if has_euclidean_space else "poincare" + + print(f"No layouts found. Computing {default_geometry} visualization...") + # Let compute_visualization pick the most appropriate default space. + dataset.compute_visualization(space_key=None, geometry=default_geometry) session = Session(dataset, host, port) diff --git a/src/hyperview/cli.py b/src/hyperview/cli.py index 9e5486c..f7cc77b 100644 --- a/src/hyperview/cli.py +++ b/src/hyperview/cli.py @@ -47,6 +47,12 @@ def main(): "For safety, this only attaches when the existing server reports the same dataset name." ), ) + demo_parser.add_argument( + "--model", + type=str, + default="openai/clip-vit-base-patch32", + help="Embedding model to use (default: openai/clip-vit-base-patch32)", + ) # Serve command serve_parser = subparsers.add_parser("serve", help="Serve a saved dataset") @@ -86,6 +92,7 @@ def main(): host=args.host, open_browser=not args.no_browser, reuse_server=args.reuse_server, + model=args.model, ) elif args.command == "serve": serve_dataset( @@ -107,7 +114,8 @@ def run_demo( host: str = "127.0.0.1", open_browser: bool = True, reuse_server: bool = False, -): + model: str = "openai/clip-vit-base-patch32", +) -> None: """Run a demo with CIFAR-10 data.""" print("Loading CIFAR-10 dataset...") dataset = Dataset("cifar10_demo") @@ -124,14 +132,14 @@ def run_demo( else: print(f"Loaded {added} samples") - print("Computing embeddings...") - dataset.compute_embeddings(show_progress=True) + print(f"Computing embeddings with {model}...") + space_key = dataset.compute_embeddings(model=model, show_progress=True) print("Embeddings computed") print("Computing visualizations...") # Compute both euclidean and poincare layouts - dataset.compute_visualization(geometry="euclidean") - dataset.compute_visualization(geometry="poincare") + dataset.compute_visualization(space_key=space_key, geometry="euclidean") + dataset.compute_visualization(space_key=space_key, geometry="poincare") print("Visualizations ready") launch(dataset, port=port, host=host, open_browser=open_browser, reuse_server=reuse_server) @@ -144,7 +152,7 @@ def serve_dataset( host: str = "127.0.0.1", open_browser: bool = True, reuse_server: bool = False, -): +) -> None: """Serve a saved dataset.""" from hyperview import Dataset, launch diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index a943e8a..7704234 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -351,32 +351,63 @@ def add_from_huggingface( def compute_embeddings( self, - model: str | ModelSpec = "openai/clip-vit-base-patch32", + model: str, + *, + provider: str | None = None, + checkpoint: str | None = None, batch_size: int = 32, show_progress: bool = True, + **provider_kwargs: Any, ) -> str: """Compute embeddings for samples that don't have them yet. - Embeddings are stored in a dedicated space keyed by model_id. + Embeddings are stored in a dedicated space keyed by the embedding spec. Args: - model: EmbedAnything HuggingFace `model_id` to use. + model: Model identifier (required). Use a HuggingFace model_id + (e.g. 'openai/clip-vit-base-patch32') for embed-anything, or a + hyper-models name (e.g. 'hycoclip-vit-s') for hyperbolic embeddings. + provider: Explicit provider identifier. If not specified, auto-detected: + 'hyper-models' if model matches a hyper-models name, else 'embed-anything'. + Available providers: `hyperview.list_embedding_providers()`. + checkpoint: Checkpoint path/URL (hf://... or local path) for weight-only models. batch_size: Batch size for processing. show_progress: Whether to show progress bar. + **provider_kwargs: Additional kwargs passed to the embedding function. Returns: space_key for the embedding space. + + Raises: + ValueError: If model is not provided. """ + if not model: + raise ValueError( + "model is required. Examples: 'openai/clip-vit-base-patch32' (CLIP), " + "'hycoclip-vit-s' (hyperbolic). See hyperview.list_embedding_providers()." + ) + + from hyperview.embeddings.engine import EmbeddingSpec from hyperview.embeddings.pipelines import compute_embeddings - from hyperview.embeddings.providers import ModelSpec - if isinstance(model, ModelSpec): - model_spec = model - else: - model_spec = ModelSpec(provider="embed_anything", model_id=model) + if provider is None: + provider = "embed-anything" + try: + import hyper_models + if model in hyper_models.list_models(): + provider = "hyper-models" + except ImportError: + pass + spec = EmbeddingSpec( + provider=provider, + model_id=model, + checkpoint=checkpoint, + provider_kwargs=provider_kwargs, + ) + space_key, _num_computed, _num_skipped = compute_embeddings( storage=self._storage, - model_spec=model_spec, + spec=spec, batch_size=batch_size, show_progress=show_progress, ) diff --git a/src/hyperview/embeddings/__init__.py b/src/hyperview/embeddings/__init__.py index 14ff04d..24ba7aa 100644 --- a/src/hyperview/embeddings/__init__.py +++ b/src/hyperview/embeddings/__init__.py @@ -1,37 +1,31 @@ -"""Embedding computation, projection, and provider modules.""" +"""Embedding computation and projection.""" from hyperview.embeddings.compute import EmbeddingComputer -from hyperview.embeddings.providers import ( - BaseEmbeddingProvider, - ModelSpec, - get_provider, - list_providers, - make_provider_aware_space_key, - register_provider, +from hyperview.embeddings.engine import ( + EmbeddingSpec, + get_engine, + get_provider_info, + list_embedding_providers, ) +# Register HyperView providers into LanceDB registry. +import hyperview.embeddings.providers.lancedb_providers as _lancedb_providers # noqa: F401 + def __getattr__(name: str): """Lazy import for heavy dependencies (UMAP/numba).""" if name == "ProjectionEngine": from hyperview.embeddings.projection import ProjectionEngine return ProjectionEngine - if name == "EmbedAnythingProvider": - from hyperview.embeddings.providers.embed_anything import EmbedAnythingProvider - return EmbedAnythingProvider raise AttributeError(f"module {__name__!r} has no attribute {name!r}") __all__ = [ "EmbeddingComputer", + "EmbeddingSpec", "ProjectionEngine", - # Provider types - "BaseEmbeddingProvider", - "EmbedAnythingProvider", - "ModelSpec", # Provider utilities - "get_provider", - "list_providers", - "register_provider", - "make_provider_aware_space_key", + "get_engine", + "get_provider_info", + "list_embedding_providers", ] diff --git a/src/hyperview/embeddings/engine.py b/src/hyperview/embeddings/engine.py new file mode 100644 index 0000000..a82e8ac --- /dev/null +++ b/src/hyperview/embeddings/engine.py @@ -0,0 +1,330 @@ +"""Embedding spec + engine built on LanceDB's embedding registry.""" + +from __future__ import annotations + +import hashlib +import json +from dataclasses import dataclass, field +from typing import Any, Literal + +import numpy as np + +# Register HyperView providers into LanceDB registry. +import hyperview.embeddings.providers.lancedb_providers as _lancedb_providers # noqa: F401 + +__all__ = [ + "EmbeddingSpec", + "EmbeddingEngine", + "get_engine", + "list_embedding_providers", + "get_provider_info", +] + +HYPERBOLIC_PROVIDERS = frozenset({"hyper-models"}) + + +@dataclass +class EmbeddingSpec: + """Specification for an embedding model. + + All providers live in the LanceDB registry. HyperView's custom providers + (embed-anything, hyper-models) are registered on import. + + Attributes: + provider: Provider identifier (e.g., 'embed-anything', 'hyper-models', 'open-clip') + model_id: Model identifier (HuggingFace model_id, checkpoint name, etc.) + checkpoint: Optional checkpoint path/URL for weight-only models + provider_kwargs: Additional kwargs passed to the embedding function + modality: What input type this embedder handles + """ + + provider: str + model_id: str | None = None + checkpoint: str | None = None + provider_kwargs: dict[str, Any] = field(default_factory=dict) + modality: Literal["image", "text", "multimodal"] = "image" + + @property + def geometry(self) -> Literal["euclidean", "hyperboloid"]: + """Get the output geometry for this spec.""" + + if self.provider == "hyper-models": + model_name = self.model_id or self.provider_kwargs.get("name") + if model_name is None: + return "hyperboloid" + import hyper_models + + geom = str(hyper_models.get_model_info(str(model_name)).geometry) + return "hyperboloid" if geom in ("hyperboloid", "poincare") else "euclidean" + + if self.provider in HYPERBOLIC_PROVIDERS: + return "hyperboloid" + return "euclidean" + + def to_dict(self) -> dict[str, Any]: + """Convert to JSON-serializable dict for persistence.""" + d: dict[str, Any] = { + "provider": self.provider, + "modality": self.modality, + "geometry": self.geometry, + } + if self.model_id: + d["model_id"] = self.model_id + if self.checkpoint: + d["checkpoint"] = self.checkpoint + if self.provider_kwargs: + d["provider_kwargs"] = self.provider_kwargs + return d + + @classmethod + def from_dict(cls, d: dict[str, Any]) -> EmbeddingSpec: + """Create from dict (e.g., loaded from JSON).""" + return cls( + provider=d["provider"], + model_id=d.get("model_id"), + checkpoint=d.get("checkpoint"), + provider_kwargs=d.get("provider_kwargs", {}), + modality=d.get("modality", "image"), + ) + + def content_hash(self) -> str: + """Generate a short hash of the spec for collision-resistant keys.""" + content = json.dumps(self.to_dict(), sort_keys=True) + return hashlib.sha256(content.encode()).hexdigest()[:12] + + def make_space_key(self) -> str: + """Generate a collision-resistant space_key from this spec. + + Format: {provider}__{slugified_model_id}__{content_hash} + """ + from hyperview.storage.schema import slugify_model_id + + model_part = self.model_id or self.checkpoint or "default" + slug = slugify_model_id(model_part) + content_hash = self.content_hash() + return f"{self.provider}__{slug}__{content_hash}" + + +class EmbeddingEngine: + """Embedding engine using LanceDB registry. + + All providers are accessed through the LanceDB embedding registry. + HyperView providers are registered automatically on import. + """ + + def __init__(self) -> None: + self._cache: dict[str, Any] = {} # spec_hash -> embedding function + + def get_function(self, spec: EmbeddingSpec) -> Any: + """Get an embedding function from LanceDB registry. + + Args: + spec: Embedding specification. + + Returns: + LanceDB EmbeddingFunction instance. + + Raises: + ValueError: If provider not found in registry. + """ + cache_key = spec.content_hash() + if cache_key in self._cache: + return self._cache[cache_key] + + from lancedb.embeddings import get_registry + + registry = get_registry() + + # Get provider factory from registry + try: + factory = registry.get(spec.provider) + except KeyError: + available = list_embedding_providers() + raise ValueError( + f"Unknown provider: '{spec.provider}'. " + f"Available: {', '.join(sorted(available))}" + ) from None + + create_kwargs: dict[str, Any] = {} + if spec.model_id: + create_kwargs["name"] = spec.model_id + + if spec.checkpoint: + create_kwargs["checkpoint"] = spec.checkpoint + + create_kwargs.update(spec.provider_kwargs) + + try: + func = factory.create(**create_kwargs) + except ImportError as e: + raise ImportError( + f"Provider '{spec.provider}' requires additional dependencies. " + "Install the provider's extra dependencies and try again." + ) from e + + self._cache[cache_key] = func + return func + + def embed_images( + self, + samples: list[Any], + spec: EmbeddingSpec, + batch_size: int = 32, + show_progress: bool = True, + ) -> np.ndarray: + """Compute embeddings for image samples. + + Args: + samples: List of Sample objects with image filepaths. + spec: Embedding specification. + batch_size: Batch size for processing. + show_progress: Whether to show progress. + + Returns: + Array of shape (N, D) where N is len(samples) and D is embedding dim. + """ + func = self.get_function(spec) + + if show_progress: + print(f"Computing embeddings for {len(samples)} samples...") + + all_embeddings: list[np.ndarray] = [] + for i in range(0, len(samples), batch_size): + batch_samples = samples[i:i + batch_size] + + batch_paths = [s.filepath for s in batch_samples] + batch_embeddings = func.compute_source_embeddings(batch_paths) + all_embeddings.extend(batch_embeddings) + + return np.array(all_embeddings, dtype=np.float32) + + def embed_texts( + self, + texts: list[str], + spec: EmbeddingSpec, + ) -> np.ndarray: + """Compute embeddings for text inputs. + + Args: + texts: List of text strings. + spec: Embedding specification. + + Returns: + Array of shape (N, D). + """ + func = self.get_function(spec) + + if hasattr(func, "generate_embeddings"): + out = func.generate_embeddings(texts) + return np.asarray(out, dtype=np.float32) + + embeddings: list[np.ndarray] = [] + for text in texts: + out = func.compute_query_embeddings(text) + if not out: + raise RuntimeError(f"Provider '{spec.provider}' returned no embedding for query") + embeddings.append(np.asarray(out[0], dtype=np.float32)) + return np.vstack(embeddings) + + def get_space_config(self, spec: EmbeddingSpec, dim: int) -> dict[str, Any]: + """Get space configuration for storage. + + Args: + spec: Embedding specification. + dim: Embedding dimension. + + Returns: + Config dict for SpaceInfo.config_json. + """ + func = self.get_function(spec) + + config = spec.to_dict() + config["dim"] = dim + + if hasattr(func, "geometry"): + config["geometry"] = func.geometry + if hasattr(func, "curvature") and func.curvature is not None: + config["curvature"] = func.curvature + + if config.get("geometry") == "hyperboloid": + config["spatial_dim"] = dim - 1 + + return config + + +_ENGINE: EmbeddingEngine | None = None + + +def get_engine() -> EmbeddingEngine: + """Get the global embedding engine singleton.""" + global _ENGINE + if _ENGINE is None: + _ENGINE = EmbeddingEngine() + return _ENGINE + + +def list_embedding_providers(available_only: bool = False) -> list[str]: + """List all registered embedding providers. + + Args: + available_only: If True, only return providers whose dependencies are installed. + + Returns: + List of provider identifiers. + """ + from lancedb.embeddings import get_registry + + registry = get_registry() + + all_providers = list(getattr(registry, "_functions", {}).keys()) + + if not available_only: + return sorted(all_providers) + + available: list[str] = [] + for provider in all_providers: + try: + factory = registry.get(provider) + factory.create() + available.append(provider) + except ImportError: + pass + except (TypeError, ValueError): + available.append(provider) + + return sorted(available) + + +def get_provider_info(provider: str) -> dict[str, Any]: + """Get information about an embedding provider. + + Args: + provider: Provider identifier. + + Returns: + Dict with provider info. + """ + from lancedb.embeddings import get_registry + + registry = get_registry() + + try: + factory = registry.get(provider) + except KeyError: + raise ValueError(f"Unknown provider: {provider}") from None + + info: dict[str, Any] = { + "provider": provider, + "source": "hyperview" if provider in ("embed-anything", "hyper-models") else "lancedb", + "geometry": "hyperboloid" if provider in HYPERBOLIC_PROVIDERS else "euclidean", + } + + try: + factory.create() + info["installed"] = True + except ImportError: + info["installed"] = False + except (TypeError, ValueError): + info["installed"] = True + + return info diff --git a/src/hyperview/embeddings/pipelines.py b/src/hyperview/embeddings/pipelines.py index 578a9f3..e3aa716 100644 --- a/src/hyperview/embeddings/pipelines.py +++ b/src/hyperview/embeddings/pipelines.py @@ -6,16 +6,17 @@ from __future__ import annotations +from typing import Any + import numpy as np -from hyperview.embeddings.providers import ModelSpec, get_provider, make_provider_aware_space_key from hyperview.storage.backend import StorageBackend from hyperview.storage.schema import make_layout_key def compute_embeddings( storage: StorageBackend, - model_spec: ModelSpec, + spec: Any, batch_size: int = 32, show_progress: bool = True, ) -> tuple[str, int, int]: @@ -23,7 +24,7 @@ def compute_embeddings( Args: storage: Storage backend to read samples from and write embeddings to. - model_spec: Model specification (provider, model_id, geometry, etc.). + spec: Embedding specification (provider, model_id, etc.) batch_size: Batch size for processing. show_progress: Whether to show progress bar. @@ -33,14 +34,16 @@ def compute_embeddings( Raises: ValueError: If no samples in storage or provider not found. """ - provider = get_provider(model_spec.provider) + from hyperview.embeddings.engine import get_engine + + engine = get_engine() all_samples = storage.get_all_samples() if not all_samples: raise ValueError("No samples in storage") # Generate space key before computing (deterministic from spec) - space_key = make_provider_aware_space_key(model_spec) + space_key = spec.make_space_key() # Check which samples need embeddings missing_ids = storage.get_missing_embedding_ids(space_key) @@ -61,10 +64,10 @@ def compute_embeddings( if show_progress and num_skipped > 0: print(f"Skipped {num_skipped} samples with existing embeddings") - # Compute all embeddings in one pass (no separate probe) - embeddings = provider.compute_embeddings( + # Compute all embeddings via the engine + embeddings = engine.embed_images( samples=samples_to_embed, - model_spec=model_spec, + spec=spec, batch_size=batch_size, show_progress=show_progress, ) @@ -72,9 +75,9 @@ def compute_embeddings( dim = embeddings.shape[1] # Ensure space exists (create if needed) - config = provider.get_space_config(model_spec, dim) + config = engine.get_space_config(spec, dim) storage.ensure_space( - model_id=model_spec.model_id, + model_id=spec.model_id or spec.provider, dim=dim, config=config, space_key=space_key, @@ -129,7 +132,16 @@ def compute_layout( spaces = storage.list_spaces() if not spaces: raise ValueError("No embedding spaces. Call compute_embeddings() first.") - space_key = spaces[0].space_key + + # Choose a sensible default space based on the requested output geometry. + # - For Poincaré output, prefer a hyperbolic (hyperboloid) embedding space if present. + # - For Euclidean output, prefer a Euclidean embedding space if present. + if geometry == "poincare": + preferred = next((s for s in spaces if s.geometry == "hyperboloid"), None) + else: + preferred = next((s for s in spaces if s.geometry != "hyperboloid"), None) + + space_key = (preferred.space_key if preferred is not None else spaces[0].space_key) space = storage.get_space(space_key) if space is None: diff --git a/src/hyperview/embeddings/providers/__init__.py b/src/hyperview/embeddings/providers/__init__.py index 55fca86..9bdcc43 100644 --- a/src/hyperview/embeddings/providers/__init__.py +++ b/src/hyperview/embeddings/providers/__init__.py @@ -1,200 +1,7 @@ -"""Embedding provider abstraction for HyperView.""" +"""Embedding providers. -from __future__ import annotations +HyperView integrates with LanceDB's embedding registry. +Custom providers are registered in `lancedb_providers.py`. +""" -import hashlib -from importlib import import_module -import json -from abc import ABC, abstractmethod -from dataclasses import dataclass -from typing import Any - -import numpy as np - -from hyperview.core.sample import Sample - - -@dataclass -class ModelSpec: - """Structured specification for an embedding model. - - Attributes: - provider: Provider identifier (e.g., "embed_anything", "hycoclip") - model_id: Model identifier (HuggingFace model_id, checkpoint path, etc.) - checkpoint: Optional checkpoint path or URL for weight-only models - config_path: Optional config path for models that need it - output_geometry: Geometry of the embedding space ("euclidean", "hyperboloid") - curvature: Hyperbolic curvature (only relevant for hyperbolic geometries) - """ - - provider: str - model_id: str - checkpoint: str | None = None - config_path: str | None = None - output_geometry: str = "euclidean" - curvature: float | None = None - - def to_dict(self) -> dict[str, Any]: - """Convert to JSON-serializable dict.""" - d: dict[str, Any] = { - "provider": self.provider, - "model_id": self.model_id, - "geometry": self.output_geometry, - } - if self.checkpoint: - d["checkpoint"] = self.checkpoint - if self.config_path: - d["config_path"] = self.config_path - if self.curvature is not None: - d["curvature"] = self.curvature - return d - - @classmethod - def from_dict(cls, d: dict[str, Any]) -> ModelSpec: - """Create from dict (e.g., loaded from JSON).""" - return cls( - provider=d["provider"], - model_id=d["model_id"], - checkpoint=d.get("checkpoint"), - config_path=d.get("config_path"), - output_geometry=d.get("geometry", "euclidean"), - curvature=d.get("curvature"), - ) - - def content_hash(self) -> str: - """Generate a short hash of the spec for collision-resistant keys.""" - content = json.dumps(self.to_dict(), sort_keys=True) - return hashlib.sha256(content.encode()).hexdigest()[:12] - - -class BaseEmbeddingProvider(ABC): - """Base class for embedding providers.""" - - @property - @abstractmethod - def provider_id(self) -> str: - """Unique identifier for this provider.""" - ... - - @abstractmethod - def compute_embeddings( - self, - samples: list[Sample], - model_spec: ModelSpec, - batch_size: int = 32, - show_progress: bool = True, - ) -> np.ndarray: - """Compute embeddings for samples. - - Returns: - Array of shape (N, D) where N is len(samples) and D is embedding dim. - """ - ... - - def get_space_config(self, model_spec: ModelSpec, dim: int) -> dict[str, Any]: - """Get config dict for SpaceInfo.config_json. - - Args: - model_spec: Model specification. - dim: Embedding dimension. - - Returns: - Config dict with provider, geometry, model_id, dim, and any extras. - """ - return { - **model_spec.to_dict(), - "dim": dim, - } - - -_PROVIDER_CLASSES: dict[str, type[BaseEmbeddingProvider]] = {} -_PROVIDER_INSTANCES: dict[str, BaseEmbeddingProvider] = {} - - -_KNOWN_PROVIDER_MODULES: dict[str, str] = { - "embed_anything": "hyperview.embeddings.providers.embed_anything", - "hycoclip": "hyperview.embeddings.providers.hycoclip", - "hycoclip_onnx": "hyperview.embeddings.providers.hycoclip_onnx", -} - - -def register_provider(provider_id: str, provider_class: type[BaseEmbeddingProvider]) -> None: - """Register a new embedding provider class.""" - _PROVIDER_CLASSES[provider_id] = provider_class - # Clear cached instance if re-registering - _PROVIDER_INSTANCES.pop(provider_id, None) - - -def _try_auto_register(provider_id: str, *, silent: bool = True) -> None: - """Attempt to auto-register a provider by importing its module. - - Args: - provider_id: Provider identifier. - silent: If True, swallow ImportError (used when listing providers). - If False, let ImportError propagate (used when explicitly requesting - a provider via get_provider()). - """ - - module_name = _KNOWN_PROVIDER_MODULES.get(provider_id) - if not module_name: - return - - if silent: - try: - import_module(module_name) - except ImportError: - return - else: - import_module(module_name) - - -def get_provider(provider_id: str) -> BaseEmbeddingProvider: - """Get a provider singleton instance by ID. - - Providers are cached to preserve model state across calls. - """ - if provider_id not in _PROVIDER_CLASSES: - _try_auto_register(provider_id, silent=False) - - if provider_id not in _PROVIDER_CLASSES: - available = ", ".join(sorted(_PROVIDER_CLASSES.keys())) or "(none registered)" - raise ValueError( - f"Unknown embedding provider: '{provider_id}'. " - f"Available: {available}" - ) - - if provider_id not in _PROVIDER_INSTANCES: - _PROVIDER_INSTANCES[provider_id] = _PROVIDER_CLASSES[provider_id]() - - return _PROVIDER_INSTANCES[provider_id] - - -def list_providers() -> list[str]: - """List available provider IDs.""" - # Trigger auto-registration for known providers - for pid in _KNOWN_PROVIDER_MODULES: - _try_auto_register(pid, silent=True) - return list(_PROVIDER_CLASSES.keys()) - - -def make_provider_aware_space_key(model_spec: ModelSpec) -> str: - """Generate a collision-resistant space_key from a ModelSpec. - - Format: {provider}__{slugified_model_id}__{content_hash} - """ - from hyperview.storage.schema import slugify_model_id - - slug = slugify_model_id(model_spec.model_id) - content_hash = model_spec.content_hash() - - return f"{model_spec.provider}__{slug}__{content_hash}" - - -__all__ = [ - "BaseEmbeddingProvider", - "ModelSpec", - "get_provider", - "list_providers", - "make_provider_aware_space_key", - "register_provider", -] +__all__: list[str] = [] diff --git a/src/hyperview/embeddings/providers/embed_anything.py b/src/hyperview/embeddings/providers/embed_anything.py deleted file mode 100644 index 60370df..0000000 --- a/src/hyperview/embeddings/providers/embed_anything.py +++ /dev/null @@ -1,57 +0,0 @@ -"""EmbedAnything embedding provider - default lightweight provider.""" - -from __future__ import annotations - -from typing import Any - -import numpy as np - -from hyperview.core.sample import Sample -from hyperview.embeddings.providers import ( - BaseEmbeddingProvider, - ModelSpec, - register_provider, -) - -__all__ = ["EmbedAnythingProvider"] - - -class EmbedAnythingProvider(BaseEmbeddingProvider): - """Default embedding provider using EmbedAnything. - - Supports HuggingFace vision models via EmbedAnything's inference engine. - Model is cached per model_id to avoid repeated initialization. - """ - - def __init__(self) -> None: - self._computers: dict[str, Any] = {} # model_id -> EmbeddingComputer - - @property - def provider_id(self) -> str: - return "embed_anything" - - def _get_computer(self, model_id: str) -> Any: - """Get or create an EmbeddingComputer for the given model_id.""" - if model_id not in self._computers: - from hyperview.embeddings.compute import EmbeddingComputer - - self._computers[model_id] = EmbeddingComputer(model=model_id) - return self._computers[model_id] - - def compute_embeddings( - self, - samples: list[Sample], - model_spec: ModelSpec, - batch_size: int = 32, - show_progress: bool = True, - ) -> np.ndarray: - """Compute embeddings using EmbedAnything.""" - computer = self._get_computer(model_spec.model_id) - embeddings = computer.compute_batch( - samples, batch_size=batch_size, show_progress=show_progress - ) - return np.array(embeddings, dtype=np.float32) - - -# Auto-register on import -register_provider("embed_anything", EmbedAnythingProvider) diff --git a/src/hyperview/embeddings/providers/hycoclip.py b/src/hyperview/embeddings/providers/hycoclip.py deleted file mode 100644 index 3f8a81c..0000000 --- a/src/hyperview/embeddings/providers/hycoclip.py +++ /dev/null @@ -1,279 +0,0 @@ -"""Clean HyCoCLIP embedding provider (PyTorch) - no external hycoclip package. - -This is a minimal reimplementation that loads HyCoCLIP weights directly. -Only depends on torch, timm, and numpy. - -Architecture: -- ViT backbone (timm) -- Linear projection to embedding space -- Exponential map to hyperboloid (Lorentz model) - -Checkpoints: https://huggingface.co/avik-pal/hycoclip - -Requirements: - uv sync --extra ml -""" - -from __future__ import annotations - -import math -from pathlib import Path -from typing import Any - -import numpy as np - -from hyperview.core.sample import Sample -from hyperview.embeddings.providers import ( - BaseEmbeddingProvider, - ModelSpec, - register_provider, -) - -__all__ = ["HyCoCLIPProvider"] - - -HYCOCLIP_CHECKPOINTS: dict[str, str] = { - "hycoclip_vit_s": "hf://avik-pal/hycoclip#hycoclip_vit_s.pth", - "hycoclip_vit_b": "hf://avik-pal/hycoclip#hycoclip_vit_b.pth", - "meru_vit_s": "hf://avik-pal/hycoclip#meru_vit_s.pth", - "meru_vit_b": "hf://avik-pal/hycoclip#meru_vit_b.pth", -} - - -def _exp_map_lorentz(x: "torch.Tensor", c: float) -> "torch.Tensor": - """Exponential map from tangent space at the hyperboloid vertex. - - Maps Euclidean tangent vectors at the origin onto the Lorentz (hyperboloid) - model of hyperbolic space with curvature -c. - - Output is ordered as (t, x1, ..., xD) and satisfies: - t^2 - ||x||^2 = 1/c - - This matches HyCoCLIP/MERU exp_map0 numerics by clamping the sinh input for - stability and inferring the time component from the hyperboloid constraint. - - Args: - x: Euclidean tangent vectors at the origin, shape (..., D). - c: Positive curvature parameter (hyperbolic curvature is -c). - - Returns: - Hyperboloid coordinates, shape (..., D + 1). - """ - import torch - - if c <= 0: - raise ValueError(f"curvature c must be > 0, got {c}") - - # Compute in float32 under AMP to avoid float16/bfloat16 overflow. - if x.dtype in (torch.float16, torch.bfloat16): - x = x.float() - - sqrt_c = math.sqrt(c) - rc_xnorm = sqrt_c * torch.norm(x, dim=-1, keepdim=True) - - eps = 1e-8 - sinh_input = torch.clamp(rc_xnorm, min=eps, max=math.asinh(2**15)) - spatial = torch.sinh(sinh_input) * x / torch.clamp(rc_xnorm, min=eps) - - t = torch.sqrt((1.0 / c) + torch.sum(spatial * spatial, dim=-1, keepdim=True)) - return torch.cat([t, spatial], dim=-1) - - -def _create_encoder( - embed_dim: int = 512, - curvature: float = 0.1, - vit_model: str = "vit_small_patch16_224", -) -> "nn.Module": - """Create HyCoCLIP image encoder using timm ViT backbone.""" - import timm - import torch.nn as nn - - class HyCoCLIPImageEncoder(nn.Module): - def __init__(self) -> None: - super().__init__() - self.backbone = timm.create_model(vit_model, pretrained=False, num_classes=0) - backbone_dim = int(getattr(self.backbone, "embed_dim")) - self.proj = nn.Linear(backbone_dim, embed_dim, bias=False) - self.curvature = curvature - self.embed_dim = embed_dim - - def forward(self, x: "torch.Tensor") -> "torch.Tensor": - features = self.backbone(x) - spatial = self.proj(features) - return _exp_map_lorentz(spatial, self.curvature) - - return HyCoCLIPImageEncoder() - - -def _load_encoder(checkpoint_path: str, device: str = "cpu") -> Any: - """Load HyCoCLIP image encoder from checkpoint.""" - import torch - - ckpt = torch.load(checkpoint_path, map_location="cpu", weights_only=False) - state = ckpt["model"] - - # Extract curvature (stored as log) - curvature = torch.exp(state["curv"]).item() - - # Determine model variant from checkpoint - proj_shape = state["visual_proj.weight"].shape - embed_dim = proj_shape[0] - backbone_dim = proj_shape[1] - - vit_models = { - 384: "vit_small_patch16_224", - 768: "vit_base_patch16_224", - 1024: "vit_large_patch16_224", - } - vit_model = vit_models.get(backbone_dim, "vit_small_patch16_224") - - model = _create_encoder(embed_dim=embed_dim, curvature=curvature, vit_model=vit_model) - - # Remap checkpoint keys - new_state = {} - for key, value in state.items(): - if key.startswith("visual."): - new_state["backbone." + key[7:]] = value - elif key == "visual_proj.weight": - new_state["proj.weight"] = value - - model.load_state_dict(new_state, strict=False) - return model.to(device).eval() - - -class HyCoCLIPProvider(BaseEmbeddingProvider): - """Clean HyCoCLIP provider (PyTorch) - no hycoclip package dependency. - - Requires: torch, torchvision, timm (install via `uv sync --extra ml`) - """ - - def __init__(self) -> None: - self._model: Any = None - self._model_spec: ModelSpec | None = None - self._device: Any = None - self._transform: Any = None - - @property - def provider_id(self) -> str: - return "hycoclip" - - def _get_device(self) -> Any: - import torch - - if self._device is None: - self._device = torch.device("cuda" if torch.cuda.is_available() else "cpu") - return self._device - - def _get_transform(self) -> Any: - if self._transform is None: - from torchvision import transforms - - self._transform = transforms.Compose([ - transforms.Resize(224, transforms.InterpolationMode.BICUBIC), - transforms.CenterCrop(224), - transforms.ToTensor(), - transforms.Normalize( - mean=[0.48145466, 0.4578275, 0.40821073], - std=[0.26862954, 0.26130258, 0.27577711], - ), - ]) - return self._transform - - def _resolve_checkpoint(self, checkpoint: str) -> Path: - """Resolve checkpoint path, downloading from HuggingFace if needed.""" - # Handle HuggingFace Hub URLs: hf://repo_id#filename - if checkpoint.startswith("hf://"): - from huggingface_hub import hf_hub_download - - path = checkpoint[5:] - if "#" not in path: - raise ValueError(f"HF checkpoint must include filename: {checkpoint}") - repo_id, filename = path.split("#", 1) - return Path(hf_hub_download(repo_id=repo_id, filename=filename)).resolve() - - # Local path - path = Path(checkpoint).expanduser().resolve() - if not path.exists(): - raise FileNotFoundError(f"Checkpoint not found: {path}") - return path - - def _load_model(self, model_spec: ModelSpec) -> None: - if self._model is not None and self._model_spec == model_spec: - return - - # Auto-resolve checkpoint from model_id if not provided - checkpoint = model_spec.checkpoint - if not checkpoint: - checkpoint = HYCOCLIP_CHECKPOINTS.get(model_spec.model_id) - if not checkpoint: - available = ", ".join(sorted(HYCOCLIP_CHECKPOINTS.keys())) - raise ValueError( - f"Unknown HyCoCLIP model_id: '{model_spec.model_id}'. " - f"Known models: {available}. " - f"Or provide 'checkpoint' path explicitly." - ) - - checkpoint_path = self._resolve_checkpoint(checkpoint) - self._model = _load_encoder(str(checkpoint_path), str(self._get_device())) - self._model_spec = model_spec - - def compute_embeddings( - self, - samples: list["Sample"], - model_spec: ModelSpec, - batch_size: int = 32, - show_progress: bool = True, - ) -> np.ndarray: - """Compute hyperboloid embeddings for samples.""" - import torch - - self._load_model(model_spec) - assert self._model is not None - - device = self._get_device() - transform = self._get_transform() - - if show_progress: - print(f"Computing HyCoCLIP embeddings for {len(samples)} samples...") - - all_embeddings = [] - - for i in range(0, len(samples), batch_size): - batch_samples = samples[i : i + batch_size] - - images = [] - for sample in batch_samples: - img = sample.load_image() - if img.mode != "RGB": - img = img.convert("RGB") - images.append(transform(img)) - - batch_tensor = torch.stack(images).to(device) - - with torch.no_grad(), torch.amp.autocast( - device_type=device.type, enabled=device.type == "cuda" - ): - embeddings = self._model(batch_tensor) - - all_embeddings.append(embeddings.cpu().numpy()) - - return np.concatenate(all_embeddings, axis=0) - - def get_space_config(self, model_spec: ModelSpec, dim: int) -> dict[str, Any]: - """Return embedding space configuration with curvature.""" - self._load_model(model_spec) - assert self._model is not None - - return { - "provider": self.provider_id, - "model_id": model_spec.model_id, - "geometry": "hyperboloid", - "checkpoint": model_spec.checkpoint, - "dim": dim, - "curvature": self._model.curvature, - "spatial_dim": self._model.embed_dim, - } - - -# Auto-register on import -register_provider("hycoclip", HyCoCLIPProvider) diff --git a/src/hyperview/embeddings/providers/hycoclip_onnx.py b/src/hyperview/embeddings/providers/hycoclip_onnx.py deleted file mode 100644 index 4333063..0000000 --- a/src/hyperview/embeddings/providers/hycoclip_onnx.py +++ /dev/null @@ -1,194 +0,0 @@ -"""HyCoCLIP ONNX embedding provider - torch-free runtime. - -This provider runs an ONNX-exported HyCoCLIP/MERU image encoder with -`onnxruntime` to compute *hyperboloid (Lorentz)* embeddings. - -Outputs: -- Embeddings are returned in hyperboloid format with shape (N, D+1), where the - first coordinate is the time component. - -Requirements: -- onnxruntime (already included via embed-anything) -- An exported ONNX model (and its external weights .data file) produced by - `hyperbolic_model_zoo/hycoclip_onnx/export_onnx.py`. - -Why this exists: -- Torch is required to *export* HyCoCLIP to ONNX. -- Torch is NOT required at runtime once you have the ONNX artifacts. -""" - -from __future__ import annotations - -from pathlib import Path -from typing import Any - -import numpy as np - -from hyperview.core.sample import Sample -from hyperview.embeddings.providers import ( - BaseEmbeddingProvider, - ModelSpec, - register_provider, -) - -__all__ = ["HyCoCLIPOnnxProvider"] - - -def _preprocess_rgb_image_to_chw_float01(img: Any, size: int = 224) -> np.ndarray: - """Resize shortest side to `size`, center crop, return (3,H,W) float32 in [0,1].""" - from PIL import Image - - if not isinstance(img, Image.Image): - raise TypeError(f"Expected PIL.Image.Image, got {type(img)}") - - w, h = img.size - if w <= 0 or h <= 0: - raise ValueError(f"Invalid image size: {w}x{h}") - - # Resize shortest side to `size`. - scale = float(size) / float(min(w, h)) - new_w = int(round(w * scale)) - new_h = int(round(h * scale)) - img = img.resize((new_w, new_h), resample=Image.Resampling.BICUBIC) - - # Center crop. - left = int(round((new_w - size) / 2.0)) - top = int(round((new_h - size) / 2.0)) - img = img.crop((left, top, left + size, top + size)) - - arr = np.asarray(img, dtype=np.float32) / 255.0 - arr = np.transpose(arr, (2, 0, 1)) - return arr - - -class HyCoCLIPOnnxProvider(BaseEmbeddingProvider): - """ONNX HyCoCLIP provider - torch-free runtime. - - Uses onnxruntime for inference. No PyTorch required at runtime. - """ - - def __init__(self) -> None: - self._session: Any = None - self._model_spec: ModelSpec | None = None - self._input_name: str | None = None - self._output_names: list[str] | None = None - self._curvature: float | None = None - - @property - def provider_id(self) -> str: - return "hycoclip_onnx" - - def _resolve_onnx_path(self, model_spec: ModelSpec) -> Path: - if not model_spec.checkpoint: - raise ValueError( - "HyCoCLIP ONNX provider requires 'checkpoint' to be a path/URL to a .onnx file." - ) - - checkpoint = model_spec.checkpoint - - # Handle HuggingFace Hub URLs (hf://repo_id#filename) - if checkpoint.startswith("hf://"): - raise NotImplementedError( - "WIP: hf:// checkpoints are disabled until ONNX external weights are published. " - "Use a local .onnx path with its .onnx.data file present." - ) - - path = Path(checkpoint).expanduser().resolve() - if not path.exists(): - raise FileNotFoundError(f"ONNX model not found: {path}") - if path.suffix.lower() != ".onnx": - raise ValueError(f"Expected a .onnx file, got: {path}") - return path - - def _ensure_session(self, model_spec: ModelSpec) -> None: - if self._session is not None and self._model_spec == model_spec: - return - - import onnxruntime as ort - - onnx_path = self._resolve_onnx_path(model_spec) - - # Default to CPU for maximum compatibility. - available = ort.get_available_providers() - providers = ["CPUExecutionProvider"] if "CPUExecutionProvider" in available else list(available) - - self._session = ort.InferenceSession(str(onnx_path), providers=providers) - self._input_name = self._session.get_inputs()[0].name - self._output_names = [o.name for o in self._session.get_outputs()] - self._curvature = None - self._model_spec = model_spec - - def compute_embeddings( - self, - samples: list[Sample], - model_spec: ModelSpec, - batch_size: int = 32, - show_progress: bool = True, - ) -> np.ndarray: - """Compute hyperboloid embeddings (t, x) with shape (N, D+1).""" - self._ensure_session(model_spec) - - assert self._session is not None - assert self._input_name is not None - - output_names = self._output_names or [] - if not output_names: - raise RuntimeError("ONNX session has no outputs") - - # Prefer named outputs if present. - emb_name = "embedding_hyperboloid" if "embedding_hyperboloid" in output_names else output_names[0] - curv_name = "curvature" if "curvature" in output_names else None - - if batch_size != 1 and show_progress: - print("HyCoCLIP-ONNX export currently runs with batch_size=1; overriding") - batch_size = 1 - - all_embeddings: list[np.ndarray] = [] - - if show_progress: - print(f"Computing HyCoCLIP-ONNX embeddings for {len(samples)} samples...") - - for i in range(0, len(samples), batch_size): - batch_samples = samples[i : i + batch_size] - - images = [] - for sample in batch_samples: - with sample.load_image() as img: - img.load() - if img.mode != "RGB": - img = img.convert("RGB") - chw = _preprocess_rgb_image_to_chw_float01(img.copy(), size=224) - images.append(chw) - - batch_np = np.stack(images, axis=0).astype(np.float32) - - outputs = self._session.run( - [name for name in (emb_name, curv_name) if name is not None], - {self._input_name: batch_np}, - ) - - hyper = np.asarray(outputs[0], dtype=np.float32) - if hyper.ndim != 2: - raise RuntimeError(f"Expected (B,D) embeddings, got shape={hyper.shape}") - - # Capture curvature once. - if curv_name is not None and self._curvature is None and len(outputs) > 1: - curv_arr = np.asarray(outputs[1]).reshape(-1) - if curv_arr.size > 0: - self._curvature = float(curv_arr[0]) - - all_embeddings.append(hyper) - - return np.vstack(all_embeddings) - - def get_space_config(self, model_spec: ModelSpec, dim: int) -> dict[str, Any]: - config = super().get_space_config(model_spec, dim) - config["geometry"] = "hyperboloid" - if self._curvature is not None: - config["curvature"] = self._curvature - config["spatial_dim"] = dim - 1 - return config - - -# Auto-register on import -register_provider("hycoclip_onnx", HyCoCLIPOnnxProvider) diff --git a/src/hyperview/embeddings/providers/lancedb_providers.py b/src/hyperview/embeddings/providers/lancedb_providers.py new file mode 100644 index 0000000..d64f858 --- /dev/null +++ b/src/hyperview/embeddings/providers/lancedb_providers.py @@ -0,0 +1,196 @@ +"""LanceDB-registered embedding providers for HyperView. + +This module registers HyperView's embedding providers into the LanceDB embedding +registry using the @register decorator. + +Providers: +- embed-anything: CLIP-based image embeddings (torch-free, default) +- hyper-models: Non-Euclidean model zoo via `hyper-models` (torch-free ONNX; downloads from HF Hub) +""" + +from __future__ import annotations + +from typing import Any + +import numpy as np +from lancedb.embeddings import EmbeddingFunction, register +from pydantic import PrivateAttr + +__all__ = [ + "EmbedAnythingEmbeddings", + "HyperModelsEmbeddings", +] + + +@register("embed-anything") +class EmbedAnythingEmbeddings(EmbeddingFunction): + """CLIP-based image embeddings via embed-anything. + + This is the default provider for HyperView - lightweight and torch-free. + + Args: + name: HuggingFace model ID for CLIP (default: openai/clip-vit-base-patch32) + batch_size: Batch size for processing + """ + + name: str = "openai/clip-vit-base-patch32" + batch_size: int = 32 + + _computer: Any = PrivateAttr(default=None) + _ndims: int | None = PrivateAttr(default=None) + + def __init__(self, **kwargs: Any) -> None: + super().__init__(**kwargs) + self._computer = None + self._ndims = None + + def _get_computer(self) -> Any: + if self._computer is None: + from hyperview.embeddings.compute import EmbeddingComputer + + self._computer = EmbeddingComputer(model=self.name) + return self._computer + + def ndims(self) -> int: + if self._ndims is None: + if "large" in self.name.lower(): + self._ndims = 768 + elif "clip" in self.name.lower(): + self._ndims = 512 + else: + self._ndims = 512 + return self._ndims + + def compute_source_embeddings( + self, inputs: Any, *args: Any, **kwargs: Any + ) -> list[np.ndarray | None]: + from hyperview.core.sample import Sample + + computer = self._get_computer() + + samples: list[Any] = [] + for inp in self.sanitize_input(inputs): + if isinstance(inp, Sample): + samples.append(inp) + elif isinstance(inp, str): + samples.append(Sample(id=inp, filepath=inp)) + else: + raise TypeError(f"Unsupported input type: {type(inp)}") + + embeddings = computer.compute_batch(samples, batch_size=self.batch_size, show_progress=False) + return list(embeddings) + + def compute_query_embeddings( + self, query: Any, *args: Any, **kwargs: Any + ) -> list[np.ndarray | None]: + return self.compute_source_embeddings([query], *args, **kwargs) + + +@register("hyper-models") +class HyperModelsEmbeddings(EmbeddingFunction): + """Non-Euclidean embeddings via the `hyper-models` package. + + This provider is a thin wrapper around `hyper_models.load(...)`. + Models are downloaded from the Hugging Face Hub on first use. + + Args: + name: Model name in the hyper-models registry (e.g. 'hycoclip-vit-s'). + checkpoint: Optional local path to an ONNX file (skips hub download). + batch_size: Batch size hint. Current HyCoCLIP/MERU ONNX exports may only + support batch_size=1; HyperView encodes one image at a time for + maximum compatibility. + """ + + name: str = "hycoclip-vit-s" + checkpoint: str | None = None + batch_size: int = 1 + + _model: Any = PrivateAttr(default=None) + _model_info: Any = PrivateAttr(default=None) + + def __init__(self, **kwargs: Any) -> None: + super().__init__(**kwargs) + self._model = None + self._model_info = None + + def _ensure_model_info(self) -> None: + if self._model_info is not None: + return + + try: + import hyper_models + except ImportError as e: + raise ImportError( + "Provider 'hyper-models' requires the 'hyper-models' package. " + "Install it with: `uv pip install hyper-models`" + ) from e + + try: + self._model_info = hyper_models.get_model_info(self.name) + except KeyError: + available = ", ".join(sorted(hyper_models.list_models())) + raise ValueError( + f"Unknown hyper-models model: '{self.name}'. Available: {available}" + ) from None + + def _ensure_model(self) -> None: + if self._model is not None: + return + + self._ensure_model_info() + import hyper_models + + self._model = hyper_models.load(self.name, local_path=self.checkpoint) + + def ndims(self) -> int: + self._ensure_model_info() + assert self._model_info is not None + return int(getattr(self._model_info, "dim")) + + @property + def geometry(self) -> str: + self._ensure_model_info() + assert self._model_info is not None + return str(getattr(self._model_info, "geometry")) + + def compute_source_embeddings( + self, inputs: Any, *args: Any, **kwargs: Any + ) -> list[np.ndarray | None]: + from hyperview.core.sample import Sample + + self._ensure_model() + assert self._model is not None + + inputs = self.sanitize_input(inputs) + all_embeddings: list[np.ndarray | None] = [] + + from PIL import Image + + for inp in inputs: + if isinstance(inp, Sample): + with inp.load_image() as img: + img.load() + if img.mode != "RGB": + img = img.convert("RGB") + pil_img = img.copy() + elif isinstance(inp, str): + with Image.open(inp) as img: + img.load() + if img.mode != "RGB": + img = img.convert("RGB") + pil_img = img.copy() + elif isinstance(inp, Image.Image): + pil_img = inp.convert("RGB") if inp.mode != "RGB" else inp + else: + raise TypeError(f"Unsupported input type: {type(inp)}") + + emb = self._model.encode_images([pil_img]) + vec = np.asarray(emb[0], dtype=np.float32) + all_embeddings.append(vec) + + return all_embeddings + + def compute_query_embeddings( + self, query: Any, *args: Any, **kwargs: Any + ) -> list[np.ndarray | None]: + return self.compute_source_embeddings([query], *args, **kwargs) diff --git a/src/hyperview/storage/lancedb_backend.py b/src/hyperview/storage/lancedb_backend.py index f85b635..7001489 100644 --- a/src/hyperview/storage/lancedb_backend.py +++ b/src/hyperview/storage/lancedb_backend.py @@ -44,14 +44,8 @@ def __init__(self, dataset_name: str, config: StorageConfig | None = None): def _table_names(self) -> set[str]: """Return the set of table names in this LanceDB database.""" - try: - res = self._db.list_tables() - # LanceDB may return a response object with a `.tables` field. - names = res.tables if hasattr(res, "tables") else res - except Exception: - # Back-compat for older LanceDB. - names = self._db.table_names() - return set(names) + res = self._db.list_tables() + return set(res.tables) def _get_or_create_samples_table(self) -> lancedb.table.Table | None: if "samples" in self._table_names(): diff --git a/src/hyperview/storage/schema.py b/src/hyperview/storage/schema.py index aea9551..1f1a14d 100644 --- a/src/hyperview/storage/schema.py +++ b/src/hyperview/storage/schema.py @@ -233,7 +233,6 @@ def make_space_key(model_id: str) -> str: """Generate a space_key from a model_id. For simplicity, this is just the slugified model_id. - For provider-aware keys, use `make_provider_aware_space_key` from providers.py. """ return slugify_model_id(model_id) From ad7d7e887495d168af4e9e7486fec4666eec1637 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:23:16 +0100 Subject: [PATCH 44/75] chore(frontend): bump version to 0.1.1 --- frontend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/package.json b/frontend/package.json index 918a0ce..258352b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "hyperview-frontend", - "version": "0.1.0", + "version": "0.1.1", "private": true, "scripts": { "dev": "next dev", From 7ee24f58044db256180b0906c686c85d103cdebd Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:24:55 +0100 Subject: [PATCH 45/75] ci: trigger frontend export check on push (not just PRs) --- .github/workflows/require_frontend_export.yml | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/require_frontend_export.yml b/.github/workflows/require_frontend_export.yml index 00363fe..aed9466 100644 --- a/.github/workflows/require_frontend_export.yml +++ b/.github/workflows/require_frontend_export.yml @@ -7,6 +7,11 @@ on: - "frontend/**" - "scripts/export_frontend.sh" - "src/hyperview/server/static/**" + push: + paths: + - "frontend/**" + - "scripts/export_frontend.sh" + - "src/hyperview/server/static/**" jobs: require-frontend-export: @@ -17,14 +22,25 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - ref: ${{ github.event.pull_request.head.sha }} - name: Verify static export updated when frontend changes run: | set -euo pipefail - base_sha="${{ github.event.pull_request.base.sha }}" - head_sha="${{ github.event.pull_request.head.sha }}" + # Determine base and head SHAs based on event type + if [[ "${{ github.event_name }}" == "pull_request" ]]; then + base_sha="${{ github.event.pull_request.base.sha }}" + head_sha="${{ github.event.pull_request.head.sha }}" + else + # For push events, compare with the previous commit + head_sha="${{ github.sha }}" + base_sha="${{ github.event.before }}" + # Handle initial push (no previous commit) + if [[ "$base_sha" == "0000000000000000000000000000000000000000" ]]; then + echo "Initial push - skipping check" + exit 0 + fi + fi changed_files="$(git diff --name-only "$base_sha" "$head_sha")" From 57005d5ebd3544c6b8c14a4937d5278c0f36593b Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:25:46 +0100 Subject: [PATCH 46/75] chore: trigger workflow test --- frontend/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/package.json b/frontend/package.json index 258352b..2418e05 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -49,3 +49,4 @@ "typescript": "^5.6.3" } } + From e0d183675145bc1b3fad98ce7bafadbf04a30369 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:27:04 +0100 Subject: [PATCH 47/75] chore: export frontend static assets --- src/hyperview/server/static/404.html | 2 +- src/hyperview/server/static/404/index.html | 2 +- .../server/static/__next.__PAGE__.txt | 8 +++---- src/hyperview/server/static/__next._full.txt | 21 +++++++++--------- src/hyperview/server/static/__next._head.txt | 6 ++--- src/hyperview/server/static/__next._index.txt | 8 +++---- src/hyperview/server/static/__next._tree.txt | 5 +++-- .../_buildManifest.js | 0 .../_clientMiddlewareManifest.json | 0 .../_ssgManifest.js | 0 .../_next/static/chunks/2eaa7c8c8b6f5b3b.js | 13 +++++++++++ .../_next/static/chunks/a096ec8e6ed56d42.js | 9 -------- ...a5ec5690ca4254a.js => b96ffc94b0d8fbba.js} | 2 +- ...8c5753aca325314.js => cb115cad1deddecd.js} | 2 +- .../_next/static/chunks/d6d93a0a04227147.css | 1 - .../_next/static/chunks/e7ae0fd4a43b4ae1.css | 3 +++ ...18bac1f0e1f8b45.js => f89d541331847b49.js} | 2 +- ...1f2db.js => turbopack-904be3b11442f4b8.js} | 2 +- .../media/1bffadaabf893a1e-s.7cd81963.woff2 | Bin 0 -> 85272 bytes .../media/2bbe8d2671613f1f-s.76dcb0b2.woff2 | Bin 0 -> 10280 bytes .../media/2c55a0e60120577a-s.2a48534a.woff2 | Bin 0 -> 25844 bytes .../media/5476f68d60460930-s.c995e352.woff2 | Bin 0 -> 19044 bytes .../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2 | Bin 0 -> 48432 bytes .../media/9c72aa0f40e4eef8-s.18a48cbc.woff2 | Bin 0 -> 18744 bytes .../media/ad66f9afd8947f86-s.7a40eb73.woff2 | Bin 0 -> 11272 bytes .../server/static/_not-found/__next._full.txt | 16 ++++++------- .../server/static/_not-found/__next._head.txt | 6 ++--- .../static/_not-found/__next._index.txt | 8 +++---- .../_not-found/__next._not-found.__PAGE__.txt | 4 ++-- .../static/_not-found/__next._not-found.txt | 6 ++--- .../server/static/_not-found/__next._tree.txt | 4 ++-- .../server/static/_not-found/index.html | 2 +- .../server/static/_not-found/index.txt | 16 ++++++------- src/hyperview/server/static/index.html | 2 +- src/hyperview/server/static/index.txt | 21 +++++++++--------- 35 files changed, 90 insertions(+), 81 deletions(-) rename src/hyperview/server/static/_next/static/{8FqA-ERyePplcUaEYWohc => U-zHksGY4392lcZLjE49t}/_buildManifest.js (100%) rename src/hyperview/server/static/_next/static/{8FqA-ERyePplcUaEYWohc => U-zHksGY4392lcZLjE49t}/_clientMiddlewareManifest.json (100%) rename src/hyperview/server/static/_next/static/{8FqA-ERyePplcUaEYWohc => U-zHksGY4392lcZLjE49t}/_ssgManifest.js (100%) create mode 100644 src/hyperview/server/static/_next/static/chunks/2eaa7c8c8b6f5b3b.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/a096ec8e6ed56d42.js rename src/hyperview/server/static/_next/static/chunks/{5a5ec5690ca4254a.js => b96ffc94b0d8fbba.js} (99%) rename src/hyperview/server/static/_next/static/chunks/{48c5753aca325314.js => cb115cad1deddecd.js} (99%) delete mode 100644 src/hyperview/server/static/_next/static/chunks/d6d93a0a04227147.css create mode 100644 src/hyperview/server/static/_next/static/chunks/e7ae0fd4a43b4ae1.css rename src/hyperview/server/static/_next/static/chunks/{118bac1f0e1f8b45.js => f89d541331847b49.js} (99%) rename src/hyperview/server/static/_next/static/chunks/{turbopack-ce3658797261f2db.js => turbopack-904be3b11442f4b8.js} (98%) create mode 100644 src/hyperview/server/static/_next/static/media/1bffadaabf893a1e-s.7cd81963.woff2 create mode 100644 src/hyperview/server/static/_next/static/media/2bbe8d2671613f1f-s.76dcb0b2.woff2 create mode 100644 src/hyperview/server/static/_next/static/media/2c55a0e60120577a-s.2a48534a.woff2 create mode 100644 src/hyperview/server/static/_next/static/media/5476f68d60460930-s.c995e352.woff2 create mode 100644 src/hyperview/server/static/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2 create mode 100644 src/hyperview/server/static/_next/static/media/9c72aa0f40e4eef8-s.18a48cbc.woff2 create mode 100644 src/hyperview/server/static/_next/static/media/ad66f9afd8947f86-s.7a40eb73.woff2 diff --git a/src/hyperview/server/static/404.html b/src/hyperview/server/static/404.html index 7d84c46..1538a55 100644 --- a/src/hyperview/server/static/404.html +++ b/src/hyperview/server/static/404.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/404/index.html b/src/hyperview/server/static/404/index.html index 7d84c46..1538a55 100644 --- a/src/hyperview/server/static/404/index.html +++ b/src/hyperview/server/static/404/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/__next.__PAGE__.txt b/src/hyperview/server/static/__next.__PAGE__.txt index e475e57..39d9166 100644 --- a/src/hyperview/server/static/__next.__PAGE__.txt +++ b/src/hyperview/server/static/__next.__PAGE__.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" -2:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/a096ec8e6ed56d42.js"],"default"] -6:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] +2:I[73440,["/_next/static/chunks/cb115cad1deddecd.js"],"ClientPageRoot"] +3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/2eaa7c8c8b6f5b3b.js"],"default"] +6:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] 7:"$Sreact.suspense" -0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/a096ec8e6ed56d42.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/2eaa7c8c8b6f5b3b.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 8:null diff --git a/src/hyperview/server/static/__next._full.txt b/src/hyperview/server/static/__next._full.txt index 119a8ae..e6a1c77 100644 --- a/src/hyperview/server/static/__next._full.txt +++ b/src/hyperview/server/static/__next._full.txt @@ -1,15 +1,16 @@ 1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] -3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/a096ec8e6ed56d42.js"],"default"] -8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] +2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +4:I[73440,["/_next/static/chunks/cb115cad1deddecd.js"],"ClientPageRoot"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/2eaa7c8c8b6f5b3b.js"],"default"] +8:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] 9:"$Sreact.suspense" -b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] -d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] -f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"8FqA-ERyePplcUaEYWohc","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/a096ec8e6ed56d42.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +b:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] +d:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] +f:I[75115,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +0:{"P":null,"b":"U-zHksGY4392lcZLjE49t","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/2eaa7c8c8b6f5b3b.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] diff --git a/src/hyperview/server/static/__next._head.txt b/src/hyperview/server/static/__next._head.txt index a58ca70..f7a82b3 100644 --- a/src/hyperview/server/static/__next._head.txt +++ b/src/hyperview/server/static/__next._head.txt @@ -1,7 +1,7 @@ 1:"$Sreact.fragment" -2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] -4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] +2:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] +4:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/__next._index.txt b/src/hyperview/server/static/__next._index.txt index 2378d67..95e24f1 100644 --- a/src/hyperview/server/static/__next._index.txt +++ b/src/hyperview/server/static/__next._index.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] -3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] +0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/__next._tree.txt b/src/hyperview/server/static/__next._tree.txt index 3fa1db9..2b67d62 100644 --- a/src/hyperview/server/static/__next._tree.txt +++ b/src/hyperview/server/static/__next._tree.txt @@ -1,2 +1,3 @@ -:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"8FqA-ERyePplcUaEYWohc","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +0:{"buildId":"U-zHksGY4392lcZLjE49t","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_buildManifest.js b/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_buildManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_buildManifest.js rename to src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_buildManifest.js diff --git a/src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_clientMiddlewareManifest.json b/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_clientMiddlewareManifest.json similarity index 100% rename from src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_clientMiddlewareManifest.json rename to src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_clientMiddlewareManifest.json diff --git a/src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_ssgManifest.js b/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_ssgManifest.js similarity index 100% rename from src/hyperview/server/static/_next/static/8FqA-ERyePplcUaEYWohc/_ssgManifest.js rename to src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_ssgManifest.js diff --git a/src/hyperview/server/static/_next/static/chunks/2eaa7c8c8b6f5b3b.js b/src/hyperview/server/static/_next/static/chunks/2eaa7c8c8b6f5b3b.js new file mode 100644 index 0000000..035f551 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/2eaa7c8c8b6f5b3b.js @@ -0,0 +1,13 @@ +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,9556,(e,t,i)=>{(t.exports=function(e){this.top=e.top,this.left=e.left,this.width=e.width,this.spacing=e.spacing,this.targetRowHeight=e.targetRowHeight,this.targetRowHeightTolerance=e.targetRowHeightTolerance,this.minAspectRatio=this.width/e.targetRowHeight*(1-e.targetRowHeightTolerance),this.maxAspectRatio=this.width/e.targetRowHeight*(1+e.targetRowHeightTolerance),this.edgeCaseMinRowHeight=e.edgeCaseMinRowHeight,this.edgeCaseMaxRowHeight=e.edgeCaseMaxRowHeight,this.widowLayoutStyle=e.widowLayoutStyle,this.isBreakoutRow=e.isBreakoutRow,this.items=[],this.height=0}).prototype={addItem:function(e){var t,i,n=this.items.concat(e),o=this.width-(n.length-1)*this.spacing,r=n.reduce(function(e,t){return e+t.aspectRatio},0),s=o/this.targetRowHeight;return this.isBreakoutRow&&0===this.items.length&&e.aspectRatio>=1?(this.items.push(e),this.completeLayout(o/e.aspectRatio,"justify"),!0):rthis.maxAspectRatio?0===this.items.length?(this.items.push(Object.assign({},e)),this.completeLayout(o/r,"justify"),!0):(t=this.width-(this.items.length-1)*this.spacing,Math.abs(r-s)>Math.abs((i=this.items.reduce(function(e,t){return e+t.aspectRatio},0))-t/this.targetRowHeight))?(this.completeLayout(t/i,"justify"),!1):(this.items.push(Object.assign({},e)),this.completeLayout(o/r,"justify"),!0):(this.items.push(Object.assign({},e)),this.completeLayout(o/r,"justify"),!0)},isLayoutComplete:function(){return this.height>0},completeLayout:function(e,t){var i,n,o,r,s,a,l=this.left,d=this.width-(this.items.length-1)*this.spacing;(void 0===t||0>["justify","center","left"].indexOf(t))&&(t="left"),n=Math.max(this.edgeCaseMinRowHeight,Math.min(e,this.edgeCaseMaxRowHeight)),e!==n?(this.height=n,i=d/n/(d/e)):(this.height=e,i=1),this.items.forEach(function(e){e.top=this.top,e.width=e.aspectRatio*this.height*i,e.height=this.height,e.left=l,l+=e.width+this.spacing},this),"justify"===t?(l-=this.spacing+this.left,o=(l-this.width)/this.items.length,r=this.items.map(function(e,t){return Math.round((t+1)*o)}),1===this.items.length?(s=this.items[0],s.width-=Math.round(o)):this.items.forEach(function(e,t){t>0?(e.left-=r[t-1],e.width-=r[t]-r[t-1]):e.width-=r[t]})):"center"===t&&(a=(this.width-l)/2,this.items.forEach(function(e){e.left+=a+this.spacing},this))},forceComplete:function(e,t){"number"==typeof t?this.completeLayout(t,this.widowLayoutStyle):this.completeLayout(this.targetRowHeight,this.widowLayoutStyle)},getItems:function(){return this.items}}},49279,(e,t,i)=>{"use strict";var n=e.r(9556);function o(e,t){var i;return!1!==e.fullWidthBreakoutRowCadence&&(t._rows.length+1)%e.fullWidthBreakoutRowCadence==0&&(i=!0),new n({top:t._containerHeight,left:e.containerPadding.left,width:e.containerWidth-e.containerPadding.left-e.containerPadding.right,spacing:e.boxSpacing.horizontal,targetRowHeight:e.targetRowHeight,targetRowHeightTolerance:e.targetRowHeightTolerance,edgeCaseMinRowHeight:.5*e.targetRowHeight,edgeCaseMaxRowHeight:2*e.targetRowHeight,rightToLeft:!1,isBreakoutRow:i,widowLayoutStyle:e.widowLayoutStyle})}function r(e,t,i){return t._rows.push(i),t._layoutItems=t._layoutItems.concat(i.getItems()),t._containerHeight+=i.height+e.boxSpacing.vertical,i.items}t.exports=function(e,t){var i,n,s,a,l,d,h={},u={},c={},p={};return c.top=isNaN(parseFloat((h=Object.assign({containerWidth:1060,containerPadding:10,boxSpacing:10,targetRowHeight:320,targetRowHeightTolerance:.25,maxNumRows:1/0,forceAspectRatio:!1,showWidows:!0,fullWidthBreakoutRowCadence:!1,widowLayoutStyle:"left"},t=t||{})).containerPadding.top))?h.containerPadding:h.containerPadding.top,c.right=isNaN(parseFloat(h.containerPadding.right))?h.containerPadding:h.containerPadding.right,c.bottom=isNaN(parseFloat(h.containerPadding.bottom))?h.containerPadding:h.containerPadding.bottom,c.left=isNaN(parseFloat(h.containerPadding.left))?h.containerPadding:h.containerPadding.left,p.horizontal=isNaN(parseFloat(h.boxSpacing.horizontal))?h.boxSpacing:h.boxSpacing.horizontal,p.vertical=isNaN(parseFloat(h.boxSpacing.vertical))?h.boxSpacing:h.boxSpacing.vertical,h.containerPadding=c,h.boxSpacing=p,u._layoutItems=[],u._awakeItems=[],u._inViewportItems=[],u._leadingOrphans=[],u._trailingOrphans=[],u._containerHeight=h.containerPadding.top,u._rows=[],u._orphans=[],h._widowCount=0,i=h,n=e.map(function(e){return e.width&&e.height?{aspectRatio:e.width/e.height}:{aspectRatio:e}}),d=[],i.forceAspectRatio&&n.forEach(function(e){e.forcedAspectRatio=!0,e.aspectRatio=i.forceAspectRatio}),n.some(function(e,t){if(isNaN(e.aspectRatio))throw Error("Item "+t+" has an invalid aspect ratio");if(a||(a=o(i,u)),s=a.addItem(e),a.isLayoutComplete()){if(d=d.concat(r(i,u,a)),u._rows.length>=i.maxNumRows)return a=null,!0;if(a=o(i,u),!s&&(s=a.addItem(e),a.isLayoutComplete())){if(d=d.concat(r(i,u,a)),u._rows.length>=i.maxNumRows)return a=null,!0;a=o(i,u)}}}),a&&a.getItems().length&&i.showWidows&&(u._rows.length?(l=u._rows[u._rows.length-1].isBreakoutRow?u._rows[u._rows.length-1].targetRowHeight:u._rows[u._rows.length-1].height,a.forceComplete(!1,l)):a.forceComplete(!1),d=d.concat(r(i,u,a)),i._widowCount=a.getItems().length),u._containerHeight=u._containerHeight-i.boxSpacing.vertical,u._containerHeight=u._containerHeight+i.containerPadding.bottom,{containerHeight:u._containerHeight,widowCount:i._widowCount,boxes:u._layoutItems}}},50912,e=>{"use strict";let t,i,n,o,r,s,a,l,d,h,u,c,p,m,f,g,v,w,b;var y,x,_,D,C,S,E,A,k,z,P,R,N,O,I,M,L,T,j,G,V=e.i(48277),W=e.i(30668),H=e.i(69941),F=e.i(39057);function B(e,t,i){let n,o=i.initialDeps??[];function r(){var r,s,a,l;let d,h;i.key&&(null==(r=i.debug)?void 0:r.call(i))&&(d=Date.now());let u=e();if(!(u.length!==o.length||u.some((e,t)=>o[t]!==e)))return n;if(o=u,i.key&&(null==(s=i.debug)?void 0:s.call(i))&&(h=Date.now()),n=t(...u),i.key&&(null==(a=i.debug)?void 0:a.call(i))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-h)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{o=e},r}function $(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}let U=e=>{let{offsetWidth:t,offsetHeight:i}=e;return{width:t,height:i}},K=e=>e,J=e=>{let t=Math.max(e.startIndex-e.overscan,0),i=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=i;e++)n.push(e);return n},Z=(e,t)=>{let i=e.scrollElement;if(!i)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:i,height:n}=e;t({width:Math.round(i),height:Math.round(n)})};if(o(U(i)),!n.ResizeObserver)return()=>{};let r=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(U(i))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return r.observe(i,{box:"border-box"}),()=>{r.unobserve(i)}},X={passive:!0},q="undefined"==typeof window||"onscrollend"in window,Y=(e,t)=>{var i,n;let o,r=e.scrollElement;if(!r)return;let s=e.targetWindow;if(!s)return;let a=0,l=e.options.useScrollendEvent&&q?()=>void 0:(i=()=>{t(a,!1)},n=e.options.isScrollingResetDelay,function(...e){s.clearTimeout(o),o=s.setTimeout(()=>i.apply(this,e),n)}),d=i=>()=>{let{horizontal:n,isRtl:o}=e.options;a=n?r.scrollLeft*(o&&-1||1):r.scrollTop,l(),t(a,i)},h=d(!0),u=d(!1);u(),r.addEventListener("scroll",h,X);let c=e.options.useScrollendEvent&&q;return c&&r.addEventListener("scrollend",u,X),()=>{r.removeEventListener("scroll",h),c&&r.removeEventListener("scrollend",u)}},Q=(e,t,i)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[i.options.horizontal?"inlineSize":"blockSize"])}return e[i.options.horizontal?"offsetWidth":"offsetHeight"]},ee=(e,{adjustments:t=0,behavior:i},n)=>{var o,r;null==(r=null==(o=n.scrollElement)?void 0:o.scrollTo)||r.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:i})};class et{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var i;null==(i=t())||i.disconnect(),e=null},observe:e=>{var i;return null==(i=t())?void 0:i.observe(e,{box:"border-box"})},unobserve:e=>{var i;return null==(i=t())?void 0:i.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,i])=>{void 0===i&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:K,rangeExtractor:J,onChange:()=>{},measureElement:Q,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,i;null==(i=(t=this.options).onChange)||i.call(t,this,e)},this.maybeNotify=B(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let i=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(i.has(t.lane))continue;let r=n.get(t.lane);if(null==r||t.end>r.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=B(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,i,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:i,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=B(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:i,getItemKey:n,enabled:o},r)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let a=this.measurementsCache.slice(0,s);for(let o=s;othis.options.debug}),this.calculateRange=B(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,i,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:i,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let r=ei(0,o,t=>e[t].start,i),s=r;if(1===n)for(;s1){let a=Array(n).fill(0);for(;se=0&&l.some(e=>e>=i);){let t=e[r];l[t.lane]=t.start,r--}r=Math.max(0,r-r%n),s=Math.min(o,s+(n-1-s%n))}return{startIndex:r,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:i,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=B(()=>{let e=null,t=null,i=this.calculateRange();return i&&(e=i.startIndex,t=i.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,i,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:i}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,i=e.getAttribute(t);return i?parseInt(i,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let i=this.indexFromElement(e),n=this.measurementsCache[i];if(!n)return;let o=n.key,r=this.elementsCache.get(o);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(i,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let i=this.measurementsCache[e];if(!i)return;let n=t-(this.itemSizeCache.get(i.key)??i.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(i,n,this):i.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=B(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let i=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return $(t[ei(0,t.length-1,e=>$(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,i=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(i-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let i=this.measurementsCache[e];if(!i)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(i.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(i.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let r="end"===t?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(r,t,i.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:i}={})=>{"smooth"===i&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:i})},this.scrollToIndex=(e,{align:t="auto",behavior:i}={})=>{"smooth"===i&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,s]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:i}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),i=this.getOffsetForIndex(e,s);i?1.01>Math.abs(i[0]-t)||r(s):console.warn("Failed to get offset for index:",e)})},r=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,i=this.getMeasurements();if(0===i.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=i[i.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=i.length-1;for(;n>=0&&e.some(e=>null===e);){let t=i[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:i})=>{this.options.scrollToFn(e,{behavior:i,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let ei=(e,t,i,n)=>{for(;e<=t;){let o=(e+t)/2|0,r=i(o);if(rn))return o;t=o-1}}return e>0?e-1:0},en="undefined"!=typeof document?W.useLayoutEffect:W.useEffect;var eo=e.i(49279);let er=e=>{let t,i=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),i.forEach(i=>i(t,e))}},o=()=>t,r={setState:n,getState:o,getInitialState:()=>s,subscribe:e=>(i.add(e),()=>i.delete(e))},s=t=e(n,o,r);return r},es=e=>{let t=e?er(e):er,i=e=>(function(e,t=e=>e){let i=W.default.useSyncExternalStore(e.subscribe,W.default.useCallback(()=>t(e.getState()),[e,t]),W.default.useCallback(()=>t(e.getInitialState()),[e,t]));return W.default.useDebugValue(i),i})(t,e);return Object.assign(i,t),i},ea="undefined",el="#39d3cc",ed="#8b949e",eh=(Math.sqrt(5)-1)/2;function eu(e){return e<0?0:e>1?1:e}function ec(e,t){return e===ea&&t!==ea?1:t===ea&&e!==ea?-1:e.localeCompare(t)}function ep(e){let t=Array.from(new Set(e.map(e=>em(e)))).sort(ec),i={},n=new Set;for(let e of t){if(e===ea){i[e]=el,n.add(el.toLowerCase());continue}let t=0;for(;t<32;){let o=function(e,t,i){let n=eu(.85),o=eu(.5),r=(e%1+1)%1*6,s=Math.floor(r),a=r-s,l=o*(1-n),d=o*(1-n*a),h=o*(1-n*(1-a)),u=0,c=0,p=0;switch(s%6){case 0:u=o,c=h,p=l;break;case 1:u=d,c=o,p=l;break;case 2:u=l,c=o,p=h;break;case 3:u=l,c=d,p=o;break;case 4:u=h,c=l,p=o;break;case 5:u=o,c=l,p=d}let m=e=>Math.round(255*eu(e)).toString(16).padStart(2,"0");return`#${m(u)}${m(c)}${m(p)}`}((65535&function(e){let t=0x811c9dc5;for(let i=0;i>>0}(0===t?e:`${e}#${t}`))*eh%1,0,0),r=o.toLowerCase();if(!n.has(r)){i[e]=o,n.add(r);break}t++}i[e]||(i[e]=ed)}return i}function em(e){return e&&e.length>0?e:ea}function ef(e,t){let i=em(t),n=new Set;for(let t=0;t({leftPanelOpen:!1,rightPanelOpen:!1,bottomPanelOpen:!1,setLeftPanelOpen:t=>e({leftPanelOpen:t}),setRightPanelOpen:t=>e({rightPanelOpen:t}),setBottomPanelOpen:t=>e({bottomPanelOpen:t}),datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,samplesLoaded:0,setSamples:(t,i)=>e({samples:t,totalSamples:i,samplesLoaded:t.length}),appendSamples:t=>e(e=>{let i=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!i.has(e.id)),o=e.samplesLoaded+t.length;return 0===n.length?{samplesLoaded:o}:{samples:[...e.samples,...n],samplesLoaded:o}}),addSamplesIfMissing:t=>e(e=>{let i=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!i.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddingsByLayoutKey:{},setEmbeddingsForLayout:(t,i)=>e(e=>{let n=e.labelFilter&&"label"===e.selectionSource&&e.activeLayoutKey===t?{selectedIds:ef(i,e.labelFilter),selectionSource:"label"}:{};return{embeddingsByLayoutKey:{...e.embeddingsByLayoutKey,[t]:i},...n}}),activeLayoutKey:null,setActiveLayoutKey:t=>e(e=>{if(!t)return{activeLayoutKey:null};if(!e.labelFilter||"label"!==e.selectionSource)return{activeLayoutKey:t};let i=e.embeddingsByLayoutKey[t];return i?{activeLayoutKey:t,selectedIds:ef(i,e.labelFilter),selectionSource:"label"}:{activeLayoutKey:t,selectedIds:new Set,selectionSource:"label"}}),labelFilter:null,setLabelFilter:t=>e(e=>{let i=t?em(t):null,n={labelFilter:i};if(i){let t=e.activeLayoutKey,o=t?e.embeddingsByLayoutKey[t]:null;n.selectedIds=o?ef(o,i):new Set,n.selectionSource="label",n.isLassoSelection=!1,n.lassoQuery=null,n.lassoSamples=[],n.lassoTotal=0,n.lassoIsLoading=!1}else"label"===e.selectionSource&&(n.selectedIds=new Set,n.selectionSource=null);return n}),selectedIds:new Set,isLassoSelection:!1,selectionSource:null,setSelectedIds:(t,i="grid")=>e({selectedIds:t,selectionSource:t.size>0?i:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let i=new Set(e.selectedIds);return i.has(t)?i.delete(t):i.add(t),{selectedIds:i,selectionSource:i.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let i=new Set(e.selectedIds);return t.forEach(e=>i.add(e)),{selectedIds:i,selectionSource:i.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,selectionSource:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,selectionSource:"lasso",lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,i,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:i,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,selectionSource:null,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?es(t):es;function ev(){for(var e,t,i=0,n="",o=arguments.length;i({nextPart:e,validators:t,classGroupId:i}),eb=[],ey=(e,t,i)=>{if(0==e.length-t)return i.classGroupId;let n=e[t],o=i.nextPart.get(n);if(o){let i=ey(e,t+1,o);if(i)return i}let r=i.validators;if(null===r)return;let s=0===t?e.join("-"):e.slice(t).join("-"),a=r.length;for(let e=0;e{let i=ew();for(let n in e)e_(e[n],i,n,t);return i},e_=(e,t,i,n)=>{let o=e.length;for(let r=0;r{"string"==typeof e?eC(e,t,i):"function"==typeof e?eS(e,t,i,n):eE(e,t,i,n)},eC=(e,t,i)=>{(""===e?t:eA(t,e)).classGroupId=i},eS=(e,t,i,n)=>{ek(e)?e_(e(n),t,i,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:i,validator:e}))},eE=(e,t,i,n)=>{let o=Object.entries(e),r=o.length;for(let e=0;e{let i=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,ez=[],eP=(e,t,i,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:i,maybePostfixModifierPosition:n,isExternal:o}),eR=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let i="";for(let n=0;n{let t=t=>t[e]||eO;return t.isThemeGetter=!0,t},eM=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eL=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,ej=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eG=/\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$/,eV=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eW=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,eH=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eF=e=>eT.test(e),eB=e=>!!e&&!Number.isNaN(Number(e)),e$=e=>!!e&&Number.isInteger(Number(e)),eU=e=>e.endsWith("%")&&eB(e.slice(0,-1)),eK=e=>ej.test(e),eJ=()=>!0,eZ=e=>eG.test(e)&&!eV.test(e),eX=()=>!1,eq=e=>eW.test(e),eY=e=>eH.test(e),eQ=e=>!e1(e)&&!e6(e),e0=e=>to(e,tl,eX),e1=e=>eM.test(e),e2=e=>to(e,td,eZ),e5=e=>to(e,th,eB),e3=e=>to(e,ts,eX),e4=e=>to(e,ta,eY),e9=e=>to(e,tc,eq),e6=e=>eL.test(e),e8=e=>tr(e,td),e7=e=>tr(e,tu),te=e=>tr(e,ts),tt=e=>tr(e,tl),ti=e=>tr(e,ta),tn=e=>tr(e,tc,!0),to=(e,t,i)=>{let n=eM.exec(e);return!!n&&(n[1]?t(n[1]):i(n[2]))},tr=(e,t,i=!1)=>{let n=eL.exec(e);return!!n&&(n[1]?t(n[1]):i)},ts=e=>"position"===e||"percentage"===e,ta=e=>"image"===e||"url"===e,tl=e=>"length"===e||"size"===e||"bg-size"===e,td=e=>"length"===e,th=e=>"number"===e,tu=e=>"family-name"===e,tc=e=>"shadow"===e,tp=((e,...t)=>{let i,n,o,r,s=e=>{let t=n(e);if(t)return t;let r=((e,t)=>{let{parseClassName:i,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:r}=t,s=[],a=e.trim().split(eR),l="";for(let e=a.length-1;e>=0;e-=1){let t=a[e],{isExternal:d,modifiers:h,hasImportantModifier:u,baseClassName:c,maybePostfixModifierPosition:p}=i(t);if(d){l=t+(l.length>0?" "+l:l);continue}let m=!!p,f=n(m?c.substring(0,p):c);if(!f){if(!m||!(f=n(c))){l=t+(l.length>0?" "+l:l);continue}m=!1}let g=0===h.length?"":1===h.length?h[0]:r(h).join(":"),v=u?g+"!":g,w=v+f;if(s.indexOf(w)>-1)continue;s.push(w);let b=o(f,m);for(let e=0;e0?" "+l:l)}return l})(e,i);return o(e,r),r};return r=a=>{var l;let d;return n=(i={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,i=Object.create(null),n=Object.create(null),o=(o,r)=>{i[o]=r,++t>e&&(t=0,n=i,i=Object.create(null))};return{get(e){let t=i[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in i?i[e]=t:o(e,t)}}})((l=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:i}=e,n=e=>{let t,i=[],n=0,o=0,r=0,s=e.length;for(let a=0;ar?t-r:void 0)};if(t){let e=t+":",i=n;n=t=>t.startsWith(e)?i(t.slice(e.length)):eP(ez,!1,t,void 0,!0)}if(i){let e=n;n=t=>i({className:t,parseClassName:e})}return n})(l),sortModifiers:(d=new Map,l.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],i=[];for(let n=0;n0&&(i.sort(),t.push(...i),i=[]),t.push(o)):i.push(o)}return i.length>0&&(i.sort(),t.push(...i)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:i}=e;return ex(i,t)})(e),{conflictingClassGroups:i,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var i;let t,n,o;return -1===(i=e).slice(1,-1).indexOf(":")?void 0:(n=(t=i.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return ey(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=i[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tr(((...e)=>{let t,i,n=0,o="";for(;n{let e=eI("color"),t=eI("font"),i=eI("text"),n=eI("font-weight"),o=eI("tracking"),r=eI("leading"),s=eI("breakpoint"),a=eI("container"),l=eI("spacing"),d=eI("radius"),h=eI("shadow"),u=eI("inset-shadow"),c=eI("text-shadow"),p=eI("drop-shadow"),m=eI("blur"),f=eI("perspective"),g=eI("aspect"),v=eI("ease"),w=eI("animate"),b=()=>["auto","avoid","all","avoid-page","page","left","right","column"],y=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],x=()=>[...y(),e6,e1],_=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],C=()=>[e6,e1,l],S=()=>[eF,"full","auto",...C()],E=()=>[e$,"none","subgrid",e6,e1],A=()=>["auto",{span:["full",e$,e6,e1]},e$,e6,e1],k=()=>[e$,"auto",e6,e1],z=()=>["auto","min","max","fr",e6,e1],P=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],R=()=>["start","end","center","stretch","center-safe","end-safe"],N=()=>["auto",...C()],O=()=>[eF,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],I=()=>[e,e6,e1],M=()=>[...y(),te,e3,{position:[e6,e1]}],L=()=>["no-repeat",{repeat:["","x","y","space","round"]}],T=()=>["auto","cover","contain",tt,e0,{size:[e6,e1]}],j=()=>[eU,e8,e2],G=()=>["","none","full",d,e6,e1],V=()=>["",eB,e8,e2],W=()=>["solid","dashed","dotted","double"],H=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],F=()=>[eB,eU,te,e3],B=()=>["","none",m,e6,e1],$=()=>["none",eB,e6,e1],U=()=>["none",eB,e6,e1],K=()=>[eB,e6,e1],J=()=>[eF,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eK],breakpoint:[eK],color:[eJ],container:[eK],"drop-shadow":[eK],ease:["in","out","in-out"],font:[eQ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eK],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eK],shadow:[eK],spacing:["px",eB],text:[eK],"text-shadow":[eK],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",eF,e1,e6,g]}],container:["container"],columns:[{columns:[eB,e1,e6,a]}],"break-after":[{"break-after":b()}],"break-before":[{"break-before":b()}],"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:x()}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:S()}],"inset-x":[{"inset-x":S()}],"inset-y":[{"inset-y":S()}],start:[{start:S()}],end:[{end:S()}],top:[{top:S()}],right:[{right:S()}],bottom:[{bottom:S()}],left:[{left:S()}],visibility:["visible","invisible","collapse"],z:[{z:[e$,"auto",e6,e1]}],basis:[{basis:[eF,"full","auto",a,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eB,eF,"auto","initial","none",e1]}],grow:[{grow:["",eB,e6,e1]}],shrink:[{shrink:["",eB,e6,e1]}],order:[{order:[e$,"first","last","none",e6,e1]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:A()}],"col-start":[{"col-start":k()}],"col-end":[{"col-end":k()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:A()}],"row-start":[{"row-start":k()}],"row-end":[{"row-end":k()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":z()}],"auto-rows":[{"auto-rows":z()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...P(),"normal"]}],"justify-items":[{"justify-items":[...R(),"normal"]}],"justify-self":[{"justify-self":["auto",...R()]}],"align-content":[{content:["normal",...P()]}],"align-items":[{items:[...R(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...R(),{baseline:["","last"]}]}],"place-content":[{"place-content":P()}],"place-items":[{"place-items":[...R(),"baseline"]}],"place-self":[{"place-self":["auto",...R()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:N()}],mx:[{mx:N()}],my:[{my:N()}],ms:[{ms:N()}],me:[{me:N()}],mt:[{mt:N()}],mr:[{mr:N()}],mb:[{mb:N()}],ml:[{ml:N()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],w:[{w:[a,"screen",...O()]}],"min-w":[{"min-w":[a,"screen","none",...O()]}],"max-w":[{"max-w":[a,"screen","none","prose",{screen:[s]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",i,e8,e2]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e6,e5]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eU,e1]}],"font-family":[{font:[e7,e1,t]}],"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:[o,e6,e1]}],"line-clamp":[{"line-clamp":[eB,"none",e6,e5]}],leading:[{leading:[r,...C()]}],"list-image":[{"list-image":["none",e6,e1]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e6,e1]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...W(),"wavy"]}],"text-decoration-thickness":[{decoration:[eB,"from-font","auto",e6,e2]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[eB,"auto",e6,e1]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e6,e1]}],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",e6,e1]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:M()}],"bg-repeat":[{bg:L()}],"bg-size":[{bg:T()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},e$,e6,e1],radial:["",e6,e1],conic:[e$,e6,e1]},ti,e4]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:j()}],"gradient-via-pos":[{via:j()}],"gradient-to-pos":[{to:j()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:G()}],"rounded-s":[{"rounded-s":G()}],"rounded-e":[{"rounded-e":G()}],"rounded-t":[{"rounded-t":G()}],"rounded-r":[{"rounded-r":G()}],"rounded-b":[{"rounded-b":G()}],"rounded-l":[{"rounded-l":G()}],"rounded-ss":[{"rounded-ss":G()}],"rounded-se":[{"rounded-se":G()}],"rounded-ee":[{"rounded-ee":G()}],"rounded-es":[{"rounded-es":G()}],"rounded-tl":[{"rounded-tl":G()}],"rounded-tr":[{"rounded-tr":G()}],"rounded-br":[{"rounded-br":G()}],"rounded-bl":[{"rounded-bl":G()}],"border-w":[{border:V()}],"border-w-x":[{"border-x":V()}],"border-w-y":[{"border-y":V()}],"border-w-s":[{"border-s":V()}],"border-w-e":[{"border-e":V()}],"border-w-t":[{"border-t":V()}],"border-w-r":[{"border-r":V()}],"border-w-b":[{"border-b":V()}],"border-w-l":[{"border-l":V()}],"divide-x":[{"divide-x":V()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":V()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...W(),"hidden","none"]}],"divide-style":[{divide:[...W(),"hidden","none"]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...W(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eB,e6,e1]}],"outline-w":[{outline:["",eB,e8,e2]}],"outline-color":[{outline:I()}],shadow:[{shadow:["","none",h,tn,e9]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":["none",u,tn,e9]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[eB,e2]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":V()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":["none",c,tn,e9]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[eB,e6,e1]}],"mix-blend":[{"mix-blend":[...H(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":H()}],"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":[eB]}],"mask-image-linear-from-pos":[{"mask-linear-from":F()}],"mask-image-linear-to-pos":[{"mask-linear-to":F()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":F()}],"mask-image-t-to-pos":[{"mask-t-to":F()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":F()}],"mask-image-r-to-pos":[{"mask-r-to":F()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":F()}],"mask-image-b-to-pos":[{"mask-b-to":F()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":F()}],"mask-image-l-to-pos":[{"mask-l-to":F()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":F()}],"mask-image-x-to-pos":[{"mask-x-to":F()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":F()}],"mask-image-y-to-pos":[{"mask-y-to":F()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[e6,e1]}],"mask-image-radial-from-pos":[{"mask-radial-from":F()}],"mask-image-radial-to-pos":[{"mask-radial-to":F()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"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":y()}],"mask-image-conic-pos":[{"mask-conic":[eB]}],"mask-image-conic-from-pos":[{"mask-conic-from":F()}],"mask-image-conic-to-pos":[{"mask-conic-to":F()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:M()}],"mask-repeat":[{mask:L()}],"mask-size":[{mask:T()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e6,e1]}],filter:[{filter:["","none",e6,e1]}],blur:[{blur:B()}],brightness:[{brightness:[eB,e6,e1]}],contrast:[{contrast:[eB,e6,e1]}],"drop-shadow":[{"drop-shadow":["","none",p,tn,e9]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:["",eB,e6,e1]}],"hue-rotate":[{"hue-rotate":[eB,e6,e1]}],invert:[{invert:["",eB,e6,e1]}],saturate:[{saturate:[eB,e6,e1]}],sepia:[{sepia:["",eB,e6,e1]}],"backdrop-filter":[{"backdrop-filter":["","none",e6,e1]}],"backdrop-blur":[{"backdrop-blur":B()}],"backdrop-brightness":[{"backdrop-brightness":[eB,e6,e1]}],"backdrop-contrast":[{"backdrop-contrast":[eB,e6,e1]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eB,e6,e1]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eB,e6,e1]}],"backdrop-invert":[{"backdrop-invert":["",eB,e6,e1]}],"backdrop-opacity":[{"backdrop-opacity":[eB,e6,e1]}],"backdrop-saturate":[{"backdrop-saturate":[eB,e6,e1]}],"backdrop-sepia":[{"backdrop-sepia":["",eB,e6,e1]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e6,e1]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eB,"initial",e6,e1]}],ease:[{ease:["linear","initial",v,e6,e1]}],delay:[{delay:[eB,e6,e1]}],animate:[{animate:["none",w,e6,e1]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,e6,e1]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:$()}],"rotate-x":[{"rotate-x":$()}],"rotate-y":[{"rotate-y":$()}],"rotate-z":[{"rotate-z":$()}],scale:[{scale:U()}],"scale-x":[{"scale-x":U()}],"scale-y":[{"scale-y":U()}],"scale-z":[{"scale-z":U()}],"scale-3d":["scale-3d"],skew:[{skew:K()}],"skew-x":[{"skew-x":K()}],"skew-y":[{"skew-y":K()}],transform:[{transform:[e6,e1,"","none","gpu","cpu"]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:J()}],"translate-x":[{"translate-x":J()}],"translate-y":[{"translate-y":J()}],"translate-z":[{"translate-z":J()}],"translate-none":["translate-none"],accent:[{accent:I()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:I()}],"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",e6,e1]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"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",e6,e1]}],fill:[{fill:["none",...I()]}],"stroke-w":[{stroke:[eB,e8,e2,e5]}],stroke:[{stroke:["none",...I()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tm(...e){return tp(ev(e))}function tf({children:e,className:t}){return(0,V.jsx)("div",{className:tm("flex flex-col h-full bg-card overflow-hidden",t),children:e})}let tg=({className:e="w-5 h-5"})=>(0,V.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:e,children:[(0,V.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,V.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,V.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),tv=()=>(0,V.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,V.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})}),tw=({className:e="w-4 h-4"})=>(0,V.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:e,children:(0,V.jsx)("path",{d:"M19.27 5.33C17.94 4.71 16.5 4.26 15 4a.09.09 0 0 0-.07.03c-.18.33-.39.76-.53 1.09a16.09 16.09 0 0 0-4.8 0c-.14-.34-.35-.76-.54-1.09c-.01-.02-.04-.03-.07-.03c-1.5.26-2.93.71-4.27 1.33c-.01 0-.02.01-.03.02c-2.72 4.07-3.47 8.03-3.1 11.95c0 .02.01.04.03.05c1.8 1.32 3.53 2.12 5.24 2.65c.03.01.06 0 .07-.02c.4-.55.76-1.13 1.07-1.74c.02-.04 0-.08-.04-.09c-.57-.22-1.11-.48-1.64-.78c-.04-.02-.04-.08-.01-.11c.11-.08.22-.17.33-.25c.02-.02.05-.02.07-.01c3.44 1.57 7.15 1.57 10.55 0c.02-.01.05-.01.07.01c.11.09.22.17.33.26c.04.03.04.09-.01.11c-.52.31-1.07.56-1.64.78c-.04.01-.05.06-.04.09c.32.61.68 1.19 1.07 1.74c.03.01.06.02.09.01c1.72-.53 3.45-1.33 5.25-2.65c.02-.01.03-.03.03-.05c.44-4.53-.73-8.46-3.1-11.95c-.01-.01-.02-.02-.04-.02zM8.52 14.91c-1.03 0-1.89-.95-1.89-2.12s.84-2.12 1.89-2.12c1.06 0 1.9.96 1.89 2.12c0 1.17-.84 2.12-1.89 2.12zm6.97 0c-1.03 0-1.89-.95-1.89-2.12s.84-2.12 1.89-2.12c1.06 0 1.9.96 1.89 2.12c0 1.17-.83 2.12-1.89 2.12z"})});function tb(e){return e.width&&e.height&&e.height>0?e.width/e.height:1}function ty({samples:e,onLoadMore:t,hasMore:i}){let n=(0,W.useRef)(null),[o,r]=(0,W.useState)(0),{selectedIds:s,isLassoSelection:a,selectionSource:l,toggleSelection:d,addToSelection:h,setHoveredId:u,hoveredId:c,labelFilter:p}=eg();(0,W.useEffect)(()=>{let e=n.current;if(!e)return;let t=()=>{let t=e.clientWidth;t>0&&t!==o&&r(t)};t();let i=new ResizeObserver(()=>{requestAnimationFrame(t)});return i.observe(e),()=>i.disconnect()},[o]);let{boxes:m,containerHeight:f}=(0,W.useMemo)(()=>(function(e,t){if(0===e.length||t<=0)return{boxes:[],containerHeight:0};let i=e.map(tb),n=(0,eo.default)(i,{containerWidth:t,containerPadding:0,boxSpacing:2,targetRowHeight:180,targetRowHeightTolerance:.25,showWidows:!0});return{boxes:n.boxes,containerHeight:n.containerHeight}})(e,o),[e,o]),g=(0,W.useMemo)(()=>(function(e){if(0===e.length)return[];let t=[],i=e[0].top,n=0,o=e[0].height;for(let r=1;r1?(t.push({startIndex:n,endIndex:r,top:i,height:o}),n=r,i=s.top,o=s.height):o=Math.max(o,s.height)}return t.push({startIndex:n,endIndex:e.length,top:i,height:o}),t})(m),[m]),v=function(e){let t=W.useReducer(()=>({}),{})[1],i={...e,onChange:(i,n)=>{var o;n?(0,H.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,i,n)}},[n]=W.useState(()=>new et(i));return n.setOptions(i),en(()=>n._didMount(),[]),en(()=>n._willUpdate()),n}({observeElementRect:Z,observeElementOffset:Y,scrollToFn:ee,...{count:g.length,getScrollElement:()=>n.current,estimateSize:e=>g[e]?.height??180,overscan:3,getItemKey:t=>{let i=g[t];return i&&e.slice(i.startIndex,i.endIndex).map(e=>e.id).join("-")||`row-${t}`}}});(0,W.useEffect)(()=>{let e=n.current;if(!e||!t||!i)return;let o=()=>{let{scrollTop:i,scrollHeight:n,clientHeight:o}=e;n-i-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,i]),(0,W.useEffect)(()=>{n.current?.scrollTo({top:0})},[p]),(0,W.useEffect)(()=>{if(!a&&"scatter"===l&&0!==s.size)try{v.scrollToIndex(0,{align:"start"})}catch{n.current?.scrollTo({top:0})}},[a,s,l,v]);let w=(0,W.useCallback)((t,i)=>{if(i.metaKey||i.ctrlKey)d(t.id);else if(i.shiftKey&&s.size>0){let i=Array.from(s),n=i[i.length-1],o=e.findIndex(e=>e.id===n),r=e.findIndex(e=>e.id===t.id);if(-1!==o&&-1!==r){let t=Math.min(o,r),i=Math.max(o,r);h(e.slice(t,i+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),eg.getState().setSelectedIds(e,"grid")}},[e,s,d,h]),b=v.getVirtualItems();return(0,V.jsx)(tf,{children:(0,V.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,V.jsx)("div",{ref:n,className:"panel-scroll h-full min-h-0 overflow-auto",children:(0,V.jsx)("div",{style:{height:f||"100%",width:"100%",position:"relative"},children:b.map(t=>{let i=g[t.index];if(!i)return null;let n=e.slice(i.startIndex,i.endIndex),o=m.slice(i.startIndex,i.endIndex);return(0,V.jsx)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:i.height,transform:`translateY(${i.top}px)`},children:n.map((e,t)=>{let i=o[t];if(!i)return null;let n=!!a||s.has(e.id),r=c===e.id;return(0,V.jsxs)("div",{style:{position:"absolute",left:i.left,top:0,width:i.width,height:i.height},className:` + overflow-hidden cursor-pointer + transition-shadow duration-150 ease-out + ${n?"ring-2 ring-inset ring-primary":""} + ${r&&!n?"ring-2 ring-inset ring-primary/50":""} + `,onClick:t=>w(e,t),onMouseEnter:()=>u(e.id),onMouseLeave:()=>u(null),children:[e.thumbnail?(0,V.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,V.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,V.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,V.jsx)("div",{className:"absolute bottom-0.5 left-0.5 right-0.5",children:(0,V.jsx)("span",{className:"inline-block px-1 py-0.5 text-[10px] leading-tight truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),n&&(0,V.jsx)("div",{className:"absolute top-0.5 right-0.5 w-4 h-4 rounded-full bg-primary flex items-center justify-center",children:(0,V.jsx)(tv,{})})]},e.id)})},t.key)})})})})})}function tx(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function t_(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function tD(e,t){if(!e)return;let i=e.getContext("2d");if(i&&(t_(e),!(t.length<6))){i.save(),i.lineWidth=2,i.strokeStyle="rgba(79,70,229,0.9)",i.fillStyle="rgba(79,70,229,0.15)",i.beginPath(),i.moveTo(t[0],t[1]);for(let e=2;e1?1:t)).toString(16).padStart(2,"0");return 7===e.length?`${e}${i}`:9===e.length?`${e.slice(0,7)}${i}`:e}function tS(e,t){let i=[],n=new Set,o=!1;for(let t of e.map(e=>em(e))){if("undefined"===t){o=!0;continue}n.has(t)||(n.add(t),i.push(t))}if(t){let e=new Set;for(let i of t){let t=em(i);if("undefined"===t){o=!0;continue}n.has(t)||e.add(t)}if(e.size>0)for(let t of Array.from(e).sort((e,t)=>e.localeCompare(t)))n.add(t),i.push(t)}return o&&i.push("undefined"),i}function tE({datasetInfo:e,embeddings:t,labelSearch:i="",labelFilter:n=null}){let o=(0,W.useMemo)(()=>(function(e){let t=new Map;if(!e)return t;for(let i of e.labels){let e=em(i);t.set(e,(t.get(e)??0)+1)}return t})(t),[t]),r=(0,W.useMemo)(()=>tS(e?.labels??[],t?.labels??null),[e?.labels,t?.labels]),s=(0,W.useMemo)(()=>{let e,t=(e=o.size,o.has("undefined")&&(e-=1),e);if(t>0)return t;let i=r.length;return r.includes("undefined")&&(i-=1),i},[o,r]),a=s>20,l=(0,W.useMemo)(()=>(function(e){let t,{datasetLabels:i,embeddings:n,distinctColoringDisabled:o,labelFilter:r=null,unselectedAlpha:s=.12}=e;if(!n)return null;let a=tS(i,n.labels);if(a.length>65535)return console.warn(`Too many labels (${a.length}) for uint16 categories; collapsing to a single color.`),{uniqueLabels:["undefined"],categories:new Uint16Array(n.labels.length),palette:[ed]};let l={};for(let e=0;e"undefined"===e?el:ed);else{let e=ep(a);t=a.map(t=>e[t]??ed)}let u=function(e){let{palette:t,labels:i,labelFilter:n,unselectedAlpha:o}=e;return n&&i.includes(n)?t.map((e,t)=>i[t]===n?e:tC(e,o)):t}({palette:t,labels:a,labelFilter:r,unselectedAlpha:s});return{uniqueLabels:a,categories:h,palette:u}})({datasetLabels:e?.labels??[],embeddings:t,distinctColoringDisabled:a,labelFilter:n}),[e?.labels,t,a,n]),d=(0,W.useMemo)(()=>(function(e){let{labelsInfo:t,labelUniverse:i,distinctColoringDisabled:n,labelFilter:o=null,unselectedAlpha:r=.12}=e,s={};if(t){for(let e=0;e(function(e){let{labelUniverse:t,labelCounts:i,query:n}=e,o=t.length>0?[...t]:Array.from(i.keys()),r=n.trim().toLowerCase(),s=r?o.filter(e=>e.toLowerCase().includes(r)):o,a=i.size>0;return s.sort((e,t)=>{if("undefined"===e&&"undefined"!==t)return 1;if("undefined"===t&&"undefined"!==e)return -1;if(a){let n=i.get(e)??0,o=i.get(t)??0;if(o!==n)return o-n}return e.localeCompare(t)})})({labelUniverse:r,labelCounts:o,query:i}),[r,o,i]);return{labelCounts:o,labelUniverse:r,distinctLabelCount:s,distinctColoringDisabled:a,labelsInfo:l,labelColorMap:d,legendLabels:h}}function tA(e,t){return e.find(e=>e.geometry===t)}async function tk(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function tz(e=0,t=100,i){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});i&&n.set("label",i);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function tP(e){let t=new URLSearchParams;e&&t.set("layout_key",e);let i=t.toString(),n=await fetch(`/api/embeddings${i?`?${i}`:""}`);if(!n.ok)throw Error(`Failed to fetch embeddings: ${n.statusText}`);return n.json()}async function tR(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function tN(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({layout_key:e.layoutKey,polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function tO({className:t="",layoutKey:i,geometry:n}){let{datasetInfo:o,embeddingsByLayoutKey:r,setEmbeddingsForLayout:s,selectedIds:a,setSelectedIds:l,beginLassoSelection:d,hoveredId:h,setHoveredId:u,setActiveLayoutKey:c,labelFilter:p}=eg(),[m,f]=(0,W.useState)("euclidean"),g=(0,W.useMemo)(()=>(function(e){let t=new Set;for(let i of e)t.add(i.geometry);return Array.from(t)})(o?.layouts??[]),[o?.layouts]);(0,W.useEffect)(()=>{n||0!==g.length&&(g.includes(m)||f(g[0]))},[g,n,m]);let v=n??m,w=(0,W.useMemo)(()=>{if(!o)return i??null;if(i&&o.layouts.some(e=>e.layout_key===i))return i;let e=tA(o.layouts,v);return e?.layout_key??o.layouts[0]?.layout_key??null},[o,i,v]),b=w?r[w]??null:null;(0,W.useEffect)(()=>{w&&c(w)},[w,c]),(0,W.useEffect)(()=>{if(!w||r[w])return;let e=!1;return tP(w).then(t=>{e||s(w,t)}).catch(t=>{e||console.error("Failed to load embeddings:",t)}),()=>{e=!0}},[r,w,s]);let{labelsInfo:y}=tE({datasetInfo:o,embeddings:b,labelFilter:p}),{canvasRef:x,overlayCanvasRef:_,containerRef:D,handlePointerDown:C,handlePointerMove:S,handlePointerUp:E,handlePointerLeave:A,handleDoubleClick:k,rendererError:z}=function({embeddings:t,labelsInfo:i,selectedIds:n,hoveredId:o,setSelectedIds:r,beginLassoSelection:s,setHoveredId:a,hoverEnabled:l=!0}){let d=(0,W.useRef)(null),h=(0,W.useRef)(null),u=(0,W.useRef)(null),c=(0,W.useRef)(null),[p,m]=(0,W.useState)(null),f=(0,W.useRef)(!1),g=(0,W.useRef)(!1),v=(0,W.useRef)(!1),w=(0,W.useRef)(0),b=(0,W.useRef)(0),y=(0,W.useRef)(0),x=(0,W.useRef)(0),_=(0,W.useRef)([]),D=(0,W.useRef)(null),C=(0,W.useRef)(-1),S=(0,W.useMemo)(()=>{if(!t)return null;let e=new Map;for(let i=0;i{f.current||(f.current=!0,requestAnimationFrame(()=>{f.current=!1;let e=c.current;if(e){try{e.render()}catch(t){console.error("hyper-scatter renderer.render() failed:",t);try{e.destroy()}catch{}c.current=null,m("This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox."),t_(h.current);return}v.current&&tD(h.current,_.current)}}))},[]),A=(0,W.useCallback)(e=>{let t=d.current;if(!t)return{x:0,y:0};let i=t.getBoundingClientRect();return{x:e.clientX-i.left,y:e.clientY-i.top}},[]),k=(0,W.useCallback)(()=>{if(!h.current)return;t_(h.current);let e=D.current;e&&e.length>=6&&tD(h.current,e)},[]),z=(0,W.useCallback)(()=>{D.current=null,t_(h.current)},[]),P=(0,W.useCallback)(()=>{(g.current=!1,v.current=!1,_.current=[],D.current)?k():t_(h.current)},[k]);(0,W.useEffect)(()=>{if(!t||!i||!d.current||!u.current)return;let n=!1;return(async()=>{if(m(null),!function(){try{if("undefined"==typeof document)return!1;return!!document.createElement("canvas").getContext("webgl2")}catch{return!1}}())return m("This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox.");try{let o=await e.A(20606);if(n)return;let r=u.current,s=d.current;if(!r||!s)return;c.current&&(c.current.destroy(),c.current=null);let a=r.getBoundingClientRect(),l=Math.floor(a.width),p=Math.floor(a.height);h.current&&(h.current.width=Math.max(1,l),h.current.height=Math.max(1,p),h.current.style.width=`${l}px`,h.current.style.height=`${p}px`,k());let f=t.coords,g=new Float32Array(2*f.length);for(let e=0;e{n=!0,P(),c.current&&(c.current.destroy(),c.current=null)}},[t,i,k,E,P]),(0,W.useEffect)(()=>{let e=c.current;if(!e||!t||!S)return;let i=new Set;for(let e of n){let t=S.get(e);"number"==typeof t&&i.add(t)}if(e.setSelection(i),!l){e.setHovered(-1),C.current=-1,E();return}let r=o?S.get(o)??-1:-1;e.setHovered(r),C.current=r,E()},[t,o,l,S,E,n]),(0,W.useEffect)(()=>{let e=u.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),i=Math.floor(t.width),n=Math.floor(t.height);if(!(i>0)||!(n>0))return;h.current&&(h.current.width=Math.max(1,i),h.current.height=Math.max(1,n),h.current.style.width=`${i}px`,h.current.style.height=`${n}px`,k());let o=c.current;o&&(o.resize(i,n),E())};t();let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},[k,E]),(0,W.useEffect)(()=>{let e=d.current;if(!e)return;let t=e=>{let t=c.current;if(!t)return;e.preventDefault();let i=A(e),n=-e.deltaY/100;t.zoom(i.x,i.y,n,tx(e)),E()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[A,E]);let R=(0,W.useCallback)(e=>{if(!c.current||"number"==typeof e.button&&0!==e.button)return;let t=A(e);w.current=t.x,b.current=t.y,y.current=t.x,x.current=t.y,D.current&&z(),e.shiftKey?(v.current=!0,g.current=!1,_.current=[t.x,t.y],tD(h.current,_.current)):(g.current=!0,v.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[z,A]),N=(0,W.useCallback)(e=>{let i=c.current;if(!i)return;let n=A(e);if(g.current){let t=n.x-y.current,o=n.y-x.current;y.current=n.x,x.current=n.y,i.pan(t,o,tx(e)),E();return}if(v.current){let e=_.current,t=e[e.length-2]??n.x,i=e[e.length-1]??n.y,o=n.x-t,r=n.y-i;o*o+r*r>=4&&(e.push(n.x,n.y),tD(h.current,e));return}if(!l){-1!==C.current&&(C.current=-1,i.setHovered(-1),E());return}let o=i.hitTest(n.x,n.y),r=o?o.index:-1;r===C.current||(C.current=r,i.setHovered(r),t&&(r>=0&&r{let i=c.current;if(!i||!t)return void P();if(v.current){let e=_.current.slice();if(D.current=e.length>=6?e:null,P(),k(),e.length>=6)try{let n=new Float32Array(e),o=i.lassoSelect(n),r=o.geometry?.coords;if(!r||r.length<6)return;i.setSelection(new Set);let a=function(e,t){let i=Math.floor(e.length/2);if(i<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*i/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(r,0);if(a.length<6)return;s({layoutKey:t.layout_key,polygon:a})}catch(e){console.error("Lasso selection failed:",e)}E();return}let o=A(e),a=o.x-w.current,l=o.y-b.current;if(a*a+l*l<=36){let s=i.hitTest(o.x,o.y),a=s?s.index:-1;if(a>=0&&a{let t=c.current;t&&(C.current=-1,a(null),t.setHovered(-1),E()),P()},[E,a,P]),handleDoubleClick:(0,W.useCallback)(e=>{let t=c.current;t&&(z(),P(),t.setSelection(new Set),r(new Set,"scatter"),E())},[z,E,r,P]),rendererError:p}}({embeddings:b,labelsInfo:y,selectedIds:a,hoveredId:h,setSelectedIds:l,beginLassoSelection:d,setHoveredId:u,hoverEnabled:!p}),P=(0,W.useCallback)(()=>{w&&c(w)},[w,c]),R=w?"Loading embeddings...":"No embeddings layout available";return(0,V.jsx)(tf,{className:t,children:(0,V.jsx)("div",{className:"flex-1 flex min-h-0",children:(0,V.jsxs)("div",{ref:D,className:"flex-1 relative min-w-0",children:[(0,V.jsx)("canvas",{ref:x,className:"absolute inset-0",style:{zIndex:1},onPointerDown:e=>{P(),C(e)},onPointerMove:S,onPointerUp:E,onPointerCancel:E,onPointerLeave:A,onDoubleClick:k,onPointerEnter:P}),(0,V.jsx)("canvas",{ref:_,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),z?(0,V.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/85 z-10 p-6",children:(0,V.jsxs)("div",{className:"max-w-md text-center",children:[(0,V.jsx)("div",{className:"text-sm font-semibold text-foreground mb-2",children:"Browser not supported"}),(0,V.jsx)("div",{className:"text-sm text-muted-foreground",children:z})]})}):!b&&(0,V.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,V.jsx)("div",{className:"text-muted-foreground",children:R})})]})})})}class tI{}class tM extends tI{constructor(e,t,i){super(),this.viewId=e,this.groupId=t,this.panelId=i}}class tL extends tI{constructor(e,t){super(),this.viewId=e,this.paneId=t}}class tT{constructor(){}static getInstance(){return tT.INSTANCE}hasData(e){return e&&e===this.proto}clearData(e){this.hasData(e)&&(this.proto=void 0,this.data=void 0)}getData(e){if(this.hasData(e))return this.data}setData(e,t){t&&(this.data=e,this.proto=t)}}function tj(){let e=tT.getInstance();if(e.hasData(tM.prototype))return e.getData(tM.prototype)[0]}function tG(){let e=tT.getInstance();if(e.hasData(tL.prototype))return e.getData(tL.prototype)[0]}tT.INSTANCE=new tT,(N||(N={})).any=(...e)=>t=>{let i=e.map(e=>e(t));return{dispose:()=>{i.forEach(e=>{e.dispose()})}}};class tV{constructor(){this._defaultPrevented=!1}get defaultPrevented(){return this._defaultPrevented}preventDefault(){this._defaultPrevented=!0}}class tW{constructor(){this._isAccepted=!1}get isAccepted(){return this._isAccepted}accept(){this._isAccepted=!0}}class tH{static create(){var e;return new tH(null!=(e=Error().stack)?e:"")}constructor(e){this.value=e}print(){console.warn("dockview: stacktrace",this.value)}}class tF{constructor(e,t){this.callback=e,this.stacktrace=t}}class tB{static setLeakageMonitorEnabled(e){e!==tB.ENABLE_TRACKING&&tB.MEMORY_LEAK_WATCHER.clear(),tB.ENABLE_TRACKING=e}get value(){return this._last}constructor(e){this.options=e,this._listeners=[],this._disposed=!1}get event(){return!this._event&&(this._event=e=>{var t;(null==(t=this.options)?void 0:t.replay)&&void 0!==this._last&&e(this._last);let i=new tF(e,tB.ENABLE_TRACKING?tH.create():void 0);return this._listeners.push(i),{dispose:()=>{let e=this._listeners.indexOf(i);e>-1?this._listeners.splice(e,1):tB.ENABLE_TRACKING}}},tB.ENABLE_TRACKING&&tB.MEMORY_LEAK_WATCHER.add(this._event,tH.create())),this._event}fire(e){var t;for(let i of((null==(t=this.options)?void 0:t.replay)&&(this._last=e),this._listeners))i.callback(e)}dispose(){!this._disposed&&(this._disposed=!0,this._listeners.length>0&&(tB.ENABLE_TRACKING&&queueMicrotask(()=>{var e;for(let t of this._listeners)console.warn("dockview: stacktrace",null==(e=t.stacktrace)?void 0:e.print())}),this._listeners=[]),tB.ENABLE_TRACKING&&this._event&&tB.MEMORY_LEAK_WATCHER.delete(this._event))}}function t$(e,t,i,n){return e.addEventListener(t,i,n),{dispose:()=>{e.removeEventListener(t,i,n)}}}tB.ENABLE_TRACKING=!1,tB.MEMORY_LEAK_WATCHER=new class{constructor(){this.events=new Map}get size(){return this.events.size}add(e,t){this.events.set(e,t)}delete(e){this.events.delete(e)}clear(){this.events.clear()}};class tU{constructor(){this._onFired=new tB,this._currentFireCount=0,this._queued=!1,this.onEvent=e=>{let t=this._currentFireCount;return this._onFired.event(()=>{this._currentFireCount>t&&e()})}}fire(){this._currentFireCount++,this._queued||(this._queued=!0,queueMicrotask(()=>{this._queued=!1,this._onFired.fire()}))}dispose(){this._onFired.dispose()}}(y=O||(O={})).NONE={dispose:()=>{}},y.from=function(e){return{dispose:()=>{e()}}};class tK{get isDisposed(){return this._isDisposed}constructor(...e){this._isDisposed=!1,this._disposables=e}addDisposables(...e){e.forEach(e=>this._disposables.push(e))}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposables.forEach(e=>e.dispose()),this._disposables=[])}}class tJ{constructor(){this._disposable=O.NONE}set value(e){this._disposable&&this._disposable.dispose(),this._disposable=e}dispose(){this._disposable&&(this._disposable.dispose(),this._disposable=O.NONE)}}class tZ extends tK{constructor(e){super(),this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._value=null,this.addDisposables(this._onDidChange,tX(e,e=>{let t=e.target.scrollWidth>e.target.clientWidth,i=e.target.scrollHeight>e.target.clientHeight;this._value={hasScrollX:t,hasScrollY:i},this._onDidChange.fire(this._value)}))}}function tX(e,t){let i=new ResizeObserver(e=>{requestAnimationFrame(()=>{t(e[0])})});return i.observe(e),{dispose:()=>{i.unobserve(e),i.disconnect()}}}let tq=(e,...t)=>{for(let i of t)e.classList.contains(i)&&e.classList.remove(i)},tY=(e,...t)=>{for(let i of t)e.classList.contains(i)||e.classList.add(i)},tQ=(e,t,i)=>{let n=e.classList.contains(t);i&&!n&&e.classList.add(t),!i&&n&&e.classList.remove(t)};function t0(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}class t1 extends tK{constructor(e){super(),this._onDidFocus=new tB,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new tB,this.onDidBlur=this._onDidBlur.event,this.addDisposables(this._onDidFocus,this._onDidBlur);let t=t0(document.activeElement,e),i=!1;const n=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},o=()=>{t&&(i=!0,window.setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{t0(document.activeElement,e)!==t&&(t?o():n())},this.addDisposables(t$(e,"focus",n,!0)),this.addDisposables(t$(e,"blur",o,!0))}refreshState(){this._refreshStateHandler()}}let t2="dv-quasiPreventDefault";function t5(e){let{left:t,top:i,width:n,height:o}=e.getBoundingClientRect();return{left:t+window.scrollX,top:i+window.scrollY,width:n,height:o}}function t3(e=document){var t;let i,n=(t=["IFRAME","WEBVIEW"],i=[],!function e(n){if(n.nodeType===Node.ELEMENT_NODE)for(let o of(t.includes(n.tagName)&&i.push(n),n.shadowRoot&&e(n.shadowRoot),n.children))e(o)}(document.documentElement),i),o=new WeakMap;for(let e of n)o.set(e,e.style.pointerEvents),e.style.pointerEvents="none";return{release:()=>{var e;for(let t of n)t.style.pointerEvents=null!=(e=o.get(t))?e:"auto";n.splice(0,n.length)}}}class t4{constructor(e){this.element=e,this._classNames=[]}setClassNames(e){for(let e of this._classNames)tQ(this.element,e,!1);for(let t of(this._classNames=e.split(" ").filter(e=>e.trim().length>0),this._classNames))tQ(this.element,t,!0)}}function t9(e){if(0===e.length)throw Error("Invalid tail call");return[e.slice(0,e.length-1),e[e.length-1]]}function t6(e,t){if(e.length!==t.length)return!1;for(let i=0;i-1&&(e.splice(i,1),e.unshift(t))}function t7(e,t){let i=e.indexOf(t);i>-1&&(e.splice(i,1),e.push(t))}function ie(e,t){let i=e.findIndex(e=>e===t);return i>-1&&(e.splice(i,1),!0)}let it=(e,t,i)=>t>i?t:Math.min(i,Math.max(e,t)),ii=()=>{let e=1;return{next:()=>(e++).toString()}},io=(e,t)=>{let i=[];if("number"!=typeof t&&(t=e,e=0),e<=t)for(let n=e;nt;n--)i.push(n);return i};class ir{set size(e){this._size=e}get size(){return this._size}get cachedVisibleSize(){return this._cachedVisibleSize}get visible(){return void 0===this._cachedVisibleSize}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,i,n){this.container=e,this.view=t,this.disposable=n,this._cachedVisibleSize=void 0,"number"==typeof i?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}setVisible(e,t){var i;e!==this.visible&&(e?(this.size=it(null!=(i=this._cachedVisibleSize)?i:0,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize="number"==typeof t?t:this.size,this.size=0),this.container.classList.toggle("visible",e),this.view.setVisible&&this.view.setVisible(e))}dispose(){return this.disposable.dispose(),this.view}}(x=I||(I={})).HORIZONTAL="HORIZONTAL",x.VERTICAL="VERTICAL",(_=M||(M={}))[_.MAXIMUM=0]="MAXIMUM",_[_.MINIMUM=1]="MINIMUM",_[_.DISABLED=2]="DISABLED",_[_.ENABLED=3]="ENABLED",(D=L||(L={})).Low="low",D.High="high",D.Normal="normal",(C=T||(T={})).Distribute={type:"distribute"},C.Split=function(e){return{type:"split",index:e}},C.Invisible=function(e){return{type:"invisible",cachedVisibleSize:e}};class is{get contentSize(){return this._contentSize}get size(){return this._size}set size(e){this._size=e}get orthogonalSize(){return this._orthogonalSize}set orthogonalSize(e){this._orthogonalSize=e}get length(){return this.viewItems.length}get proportions(){return this._proportions?[...this._proportions]:void 0}get orientation(){return this._orientation}set orientation(e){this._orientation=e;let t=this.size;this.size=this.orthogonalSize,this.orthogonalSize=t,tq(this.element,"dv-horizontal","dv-vertical"),this.element.classList.add(this.orientation==I.HORIZONTAL?"dv-horizontal":"dv-vertical")}get minimumSize(){return this.viewItems.reduce((e,t)=>e+t.minimumSize,0)}get maximumSize(){return 0===this.length?1/0:this.viewItems.reduce((e,t)=>e+t.maximumSize,0)}get startSnappingEnabled(){return this._startSnappingEnabled}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}get endSnappingEnabled(){return this._endSnappingEnabled}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}get disabled(){return this._disabled}set disabled(e){this._disabled=e,tQ(this.element,"dv-splitview-disabled",e)}get margin(){return this._margin}set margin(e){this._margin=e,tQ(this.element,"dv-splitview-has-margin",0!==e)}constructor(e,t){var i,n;this.container=e,this.viewItems=[],this.sashes=[],this._size=0,this._orthogonalSize=0,this._contentSize=0,this._proportions=void 0,this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this._disabled=!1,this._margin=0,this._onDidSashEnd=new tB,this.onDidSashEnd=this._onDidSashEnd.event,this._onDidAddView=new tB,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new tB,this.onDidRemoveView=this._onDidRemoveView.event,this.resize=(e,t,i=this.viewItems.map(e=>e.size),n,o,r=-1/0,s=1/0,a,l)=>{if(e<0||e>this.viewItems.length)return 0;let d=io(e,-1),h=io(e+1,this.viewItems.length);if(o)for(let e of o)t8(d,e),t8(h,e);if(n)for(let e of n)t7(d,e),t7(h,e);let u=d.map(e=>this.viewItems[e]),c=d.map(e=>i[e]),p=h.map(e=>this.viewItems[e]),m=h.map(e=>i[e]),f=d.reduce((e,t)=>e+this.viewItems[t].minimumSize-i[t],0),g=d.reduce((e,t)=>e+this.viewItems[t].maximumSize-i[t],0),v=0===h.length?1/0:h.reduce((e,t)=>e+i[t]-this.viewItems[t].minimumSize,0),w=Math.max(f,0===h.length?-1/0:h.reduce((e,t)=>e+i[t]-this.viewItems[t].maximumSize,0)),b=Math.min(v,g),y=!1;if(a){let e=this.viewItems[a.index],i=t>=a.limitDelta;y=i!==e.visible,e.setVisible(i,a.size)}if(!y&&l){let e=this.viewItems[l.index],i=t{let i=void 0===e.visible||e.visible?e.size:{type:"invisible",cachedVisibleSize:e.size},n=e.view;this.addView(n,i,t,!0)}),this._contentSize=this.viewItems.reduce((e,t)=>e+t.size,0),this.saveProportions())}style(e){(null==e?void 0:e.separatorBorder)==="transparent"?(tq(this.element,"dv-separator-border"),this.element.style.removeProperty("--dv-separator-border")):(tY(this.element,"dv-separator-border"),(null==e?void 0:e.separatorBorder)&&this.element.style.setProperty("--dv-separator-border",e.separatorBorder))}isViewVisible(e){if(e<0||e>=this.viewItems.length)throw Error("Index out of bounds");return this.viewItems[e].visible}setViewVisible(e,t){if(e<0||e>=this.viewItems.length)throw Error("Index out of bounds");let i=this.viewItems[e];i.setVisible(t,i.size),this.distributeEmptySpace(e),this.layoutViews(),this.saveProportions()}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}resizeView(e,t){if(e<0||e>=this.viewItems.length)return;let i=io(this.viewItems.length).filter(t=>t!==e),n=[...i.filter(e=>this.viewItems[e].priority===L.Low),e],o=i.filter(e=>this.viewItems[e].priority===L.High),r=this.viewItems[e];t=it(t=Math.round(t),r.minimumSize,Math.min(r.maximumSize,this._size)),r.size=t,this.relayout(n,o)}getViews(){return this.viewItems.map(e=>e.view)}onDidChange(e,t){let i=this.viewItems.indexOf(e);if(i<0||i>=this.viewItems.length)return;t=it(t="number"==typeof t?t:e.size,e.minimumSize,e.maximumSize),e.size=t;let n=io(this.viewItems.length).filter(e=>e!==i),o=[...n.filter(e=>this.viewItems[e].priority===L.Low),i],r=n.filter(e=>this.viewItems[e].priority===L.High);this.relayout([...o,i],r)}addView(e,t={type:"distribute"},i=this.viewItems.length,n){let o,r=document.createElement("div");r.className="dv-view",r.appendChild(e.element),o="number"==typeof t?t:"split"===t.type?this.getViewSize(t.index)/2:"invisible"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize;let s=e.onDidChange(e=>this.onDidChange(a,e.size)),a=new ir(r,e,o,{dispose:()=>{s.dispose(),this.viewContainer.removeChild(r)}});if(i===this.viewItems.length?this.viewContainer.appendChild(r):this.viewContainer.insertBefore(r,this.viewContainer.children.item(i)),this.viewItems.splice(i,0,a),this.viewItems.length>1){let e=document.createElement("div");e.className="dv-sash";let t=t=>{let i,n;for(let e of this.viewItems)e.enabled=!1;let o=t3(),r=this._orientation===I.HORIZONTAL?t.clientX:t.clientY,s=function(e,t){for(let i=0;it.container===e),a=this.viewItems.map(e=>e.size),l=io(s,-1),d=io(s+1,this.viewItems.length),h=l.reduce((e,t)=>e+(this.viewItems[t].minimumSize-a[t]),0),u=l.reduce((e,t)=>e+(this.viewItems[t].viewMaximumSize-a[t]),0),c=0===d.length?1/0:d.reduce((e,t)=>e+(a[t]-this.viewItems[t].minimumSize),0),p=Math.max(h,0===d.length?-1/0:d.reduce((e,t)=>e+(a[t]-this.viewItems[t].viewMaximumSize),0)),m=Math.min(c,u),f=this.findFirstSnapIndex(l),g=this.findFirstSnapIndex(d);if("number"==typeof f){let e=this.viewItems[f],t=Math.floor(e.viewMinimumSize/2);i={index:f,limitDelta:e.visible?p-t:p+t,size:e.size}}if("number"==typeof g){let e=this.viewItems[g],t=Math.floor(e.viewMinimumSize/2);n={index:g,limitDelta:e.visible?m+t:m-t,size:e.size}}let v=e=>{let t=this._orientation===I.HORIZONTAL?e.clientX:e.clientY;this.resize(s,t-r,a,void 0,void 0,p,m,i,n),this.distributeEmptySpace(),this.layoutViews()},w=()=>{for(let e of this.viewItems)e.enabled=!0;o.release(),this.saveProportions(),document.removeEventListener("pointermove",v),document.removeEventListener("pointerup",w),document.removeEventListener("pointercancel",w),document.removeEventListener("contextmenu",w),this._onDidSashEnd.fire(void 0)};document.addEventListener("pointermove",v),document.addEventListener("pointerup",w),document.addEventListener("pointercancel",w),document.addEventListener("contextmenu",w)};e.addEventListener("pointerdown",t),this.sashContainer.appendChild(e),this.sashes.push({container:e,disposable:()=>{e.removeEventListener("pointerdown",t),this.sashContainer.removeChild(e)}})}n||this.relayout([i]),n||"number"==typeof t||"distribute"!==t.type||this.distributeViewSizes(),this._onDidAddView.fire(e)}distributeViewSizes(){let e=[],t=0;for(let i of this.viewItems)i.maximumSize-i.minimumSize>0&&(e.push(i),t+=i.size);let i=Math.floor(t/e.length);for(let t of e)t.size=it(i,t.minimumSize,t.maximumSize);let n=io(this.viewItems.length),o=n.filter(e=>this.viewItems[e].priority===L.Low),r=n.filter(e=>this.viewItems[e].priority===L.High);this.relayout(o,r)}removeView(e,t,i=!1){let n=this.viewItems.splice(e,1)[0];if(n.dispose(),this.viewItems.length>=1){let t=Math.max(e-1,0);this.sashes.splice(t,1)[0].disposable()}return i||this.relayout(),t&&"distribute"===t.type&&this.distributeViewSizes(),this._onDidRemoveView.fire(n.view),n.view}getViewCachedVisibleSize(e){if(e<0||e>=this.viewItems.length)throw Error("Index out of bounds");return this.viewItems[e].cachedVisibleSize}moveView(e,t){let i=this.getViewCachedVisibleSize(e),n=void 0===i?this.getViewSize(e):T.Invisible(i),o=this.removeView(e,void 0,!0);this.addView(o,n,t)}layout(e,t){let i=Math.max(this.size,this._contentSize);if(this.size=e,this.orthogonalSize=t,this.proportions){let t=0;for(let i=0;i0&&(n.size=it(Math.round(o*e/t),n.minimumSize,n.maximumSize))}}else{let t=io(this.viewItems.length),n=t.filter(e=>this.viewItems[e].priority===L.Low),o=t.filter(e=>this.viewItems[e].priority===L.High);this.resize(this.viewItems.length-1,e-i,void 0,n,o)}this.distributeEmptySpace(),this.layoutViews()}relayout(e,t){let i=this.viewItems.reduce((e,t)=>e+t.size,0);this.resize(this.viewItems.length-1,this._size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}distributeEmptySpace(e){let t=this.viewItems.reduce((e,t)=>e+t.size,0),i=this.size-t,n=io(this.viewItems.length-1,-1),o=n.filter(e=>this.viewItems[e].priority===L.Low);for(let e of n.filter(e=>this.viewItems[e].priority===L.High))t8(n,e);for(let e of o)t7(n,e);"number"==typeof e&&t7(n,e);for(let e=0;0!==i&&e0&&(this._proportions=this.viewItems.map(e=>e.visible?e.size/this._contentSize:void 0))}layoutViews(){if(this._contentSize=this.viewItems.reduce((e,t)=>e+t.size,0),this.updateSashEnablement(),0===this.viewItems.length)return;let e=this.viewItems.filter(e=>e.visible),t=Math.max(0,e.length-1),i=this.margin*t/Math.max(1,e.length),n=0,o=[],r=this.viewItems.reduce((e,t,i)=>{let n=+!!t.visible;return 0===i?e.push(n):e.push(e[i-1]+n),e},[]);this.viewItems.forEach((e,s)=>{n+=this.viewItems[s].size,o.push(n);let a=e.visible?e.size-i:0,l=Math.max(0,r[s]-1),d=0===s||0===l?0:o[s-1]+l/t*i;if(s0)break;if(!e.visible&&e.snap)return t}}updateSashEnablement(){let e=!1,t=this.viewItems.map(t=>e=t.size-t.minimumSize>0||e);e=!1;let i=this.viewItems.map(t=>e=t.maximumSize-t.size>0||e),n=[...this.viewItems].reverse();e=!1;let o=n.map(t=>e=t.size-t.minimumSize>0||e).reverse();e=!1;let r=n.map(t=>e=t.maximumSize-t.size>0||e).reverse(),s=0;for(let e=0;e0||this.startSnappingEnabled)?this.updateSash(n,M.MINIMUM):h&&t[e]&&(s{let t=new tK(e.onDidChangeExpansionState(()=>{this.setupAnimation(),this._onDidChange.fire(void 0)}));this.paneItems.push({pane:e,disposable:{dispose:()=>{t.dispose()}}}),e.orthogonalSize=this.splitview.orthogonalSize}),this.addDisposables(this._onDidChange,this.splitview.onDidSashEnd(()=>{this._onDidChange.fire(void 0)}),this.splitview.onDidAddView(()=>{this._onDidChange.fire()}),this.splitview.onDidRemoveView(()=>{this._onDidChange.fire()}))}setViewVisible(e,t){this.splitview.setViewVisible(e,t)}addPane(e,t,i=this.splitview.length,n=!1){let o=e.onDidChangeExpansionState(()=>{this.setupAnimation(),this._onDidChange.fire(void 0)});this.paneItems.splice(i,0,{pane:e,disposable:{dispose:()=>{o.dispose()}}}),e.orthogonalSize=this.splitview.orthogonalSize,this.splitview.addView(e,t,i,n)}getViewSize(e){return this.splitview.getViewSize(e)}getPanes(){return this.splitview.getViews()}removePane(e,t={skipDispose:!1}){let i=this.paneItems.splice(e,1)[0];return this.splitview.removeView(e),t.skipDispose||(i.disposable.dispose(),i.pane.dispose()),i}moveView(e,t){if(e===t)return;let i=this.removePane(e,{skipDispose:!0});this.skipAnimation=!0;try{this.addPane(i.pane,i.pane.size,t,!1)}finally{this.skipAnimation=!1}}layout(e,t){this.splitview.layout(e,t)}setupAnimation(){this.skipAnimation||(this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=void 0),tY(this.element,"dv-animated"),this.animationTimer=setTimeout(()=>{this.animationTimer=void 0,tq(this.element,"dv-animated")},200))}dispose(){super.dispose(),this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=void 0),this.paneItems.forEach(e=>{e.disposable.dispose(),e.pane.dispose()}),this.paneItems=[],this.splitview.dispose(),this.element.remove()}}class id{get minimumWidth(){return this.view.minimumWidth}get maximumWidth(){return this.view.maximumWidth}get minimumHeight(){return this.view.minimumHeight}get maximumHeight(){return this.view.maximumHeight}get priority(){return this.view.priority}get snap(){return this.view.snap}get minimumSize(){return this.orientation===I.HORIZONTAL?this.minimumHeight:this.minimumWidth}get maximumSize(){return this.orientation===I.HORIZONTAL?this.maximumHeight:this.maximumWidth}get minimumOrthogonalSize(){return this.orientation===I.HORIZONTAL?this.minimumWidth:this.minimumHeight}get maximumOrthogonalSize(){return this.orientation===I.HORIZONTAL?this.maximumWidth:this.maximumHeight}get orthogonalSize(){return this._orthogonalSize}get size(){return this._size}get element(){return this.view.element}get width(){return this.orientation===I.HORIZONTAL?this.orthogonalSize:this.size}get height(){return this.orientation===I.HORIZONTAL?this.size:this.orthogonalSize}constructor(e,t,i,n=0){this.view=e,this.orientation=t,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._orthogonalSize=i,this._size=n,this._disposable=this.view.onDidChange(e=>{e?this._onDidChange.fire({size:this.orientation===I.VERTICAL?e.width:e.height,orthogonalSize:this.orientation===I.VERTICAL?e.height:e.width}):this._onDidChange.fire({})})}setVisible(e){this.view.setVisible&&this.view.setVisible(e)}layout(e,t){this._size=e,this._orthogonalSize=t,this.view.layout(this.width,this.height)}dispose(){this._onDidChange.dispose(),this._disposable.dispose()}}class ih extends tK{get width(){return this.orientation===I.HORIZONTAL?this.size:this.orthogonalSize}get height(){return this.orientation===I.HORIZONTAL?this.orthogonalSize:this.size}get minimumSize(){return 0===this.children.length?0:Math.max(...this.children.map((e,t)=>this.splitview.isViewVisible(t)?e.minimumOrthogonalSize:0))}get maximumSize(){return Math.min(...this.children.map((e,t)=>this.splitview.isViewVisible(t)?e.maximumOrthogonalSize:1/0))}get minimumOrthogonalSize(){return this.splitview.minimumSize}get maximumOrthogonalSize(){return this.splitview.maximumSize}get orthogonalSize(){return this._orthogonalSize}get size(){return this._size}get minimumWidth(){return this.orientation===I.HORIZONTAL?this.minimumOrthogonalSize:this.minimumSize}get minimumHeight(){return this.orientation===I.HORIZONTAL?this.minimumSize:this.minimumOrthogonalSize}get maximumWidth(){return this.orientation===I.HORIZONTAL?this.maximumOrthogonalSize:this.maximumSize}get maximumHeight(){return this.orientation===I.HORIZONTAL?this.maximumSize:this.maximumOrthogonalSize}get priority(){if(0===this.children.length)return L.Normal;let e=this.children.map(e=>void 0===e.priority?L.Normal:e.priority);return e.some(e=>e===L.High)?L.High:e.some(e=>e===L.Low)?L.Low:L.Normal}get disabled(){return this.splitview.disabled}set disabled(e){this.splitview.disabled=e}get margin(){return this.splitview.margin}set margin(e){this.splitview.margin=e,this.children.forEach(t=>{t instanceof ih&&(t.margin=e)})}constructor(e,t,i,n,o,r,s,a){if(super(),this.orientation=e,this.proportionalLayout=t,this.styles=i,this._childrenDisposable=O.NONE,this.children=[],this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._onDidVisibilityChange=new tB,this.onDidVisibilityChange=this._onDidVisibilityChange.event,this._orthogonalSize=o,this._size=n,this.element=document.createElement("div"),this.element.className="dv-branch-node",a){const e={views:a.map(e=>({view:e.node,size:e.node.size,visible:!(e.node instanceof id)||void 0===e.visible||e.visible})),size:this.orthogonalSize};this.children=a.map(e=>e.node),this.splitview=new is(this.element,{orientation:this.orientation,descriptor:e,proportionalLayout:t,styles:i,margin:s})}else this.splitview=new is(this.element,{orientation:this.orientation,proportionalLayout:t,styles:i,margin:s}),this.splitview.layout(this.size,this.orthogonalSize);this.disabled=r,this.addDisposables(this._onDidChange,this._onDidVisibilityChange,this.splitview.onDidSashEnd(()=>{this._onDidChange.fire({})})),this.setupChildrenEvents()}setVisible(e){}isChildVisible(e){if(e<0||e>=this.children.length)throw Error("Invalid index");return this.splitview.isViewVisible(e)}setChildVisible(e,t){if(e<0||e>=this.children.length)throw Error("Invalid index");if(this.splitview.isViewVisible(e)===t)return;let i=0===this.splitview.contentSize;this.splitview.setViewVisible(e,t);let n=0===this.splitview.contentSize;(t&&i||!t&&n)&&this._onDidVisibilityChange.fire({visible:t})}moveChild(e,t){if(e===t)return;if(e<0||e>=this.children.length)throw Error("Invalid from index");e=this.children.length)throw Error("Invalid index");return this.splitview.getViewSize(e)}resizeChild(e,t){if(e<0||e>=this.children.length)throw Error("Invalid index");this.splitview.resizeView(e,t)}layout(e,t){this._size=t,this._orthogonalSize=e,this.splitview.layout(t,e)}addChild(e,t,i,n){if(i<0||i>this.children.length)throw Error("Invalid index");this.splitview.addView(e,t,i,n),this._addChild(e,i)}getChildCachedVisibleSize(e){if(e<0||e>=this.children.length)throw Error("Invalid index");return this.splitview.getViewCachedVisibleSize(e)}removeChild(e,t){if(e<0||e>=this.children.length)throw Error("Invalid index");return this.splitview.removeView(e,t),this._removeChild(e)}_addChild(e,t){this.children.splice(t,0,e),this.setupChildrenEvents()}_removeChild(e){let[t]=this.children.splice(e,1);return this.setupChildrenEvents(),t}setupChildrenEvents(){this._childrenDisposable.dispose(),this._childrenDisposable=new tK(N.any(...this.children.map(e=>e.onDidChange))(e=>{this._onDidChange.fire({size:e.orthogonalSize})}),...this.children.map((e,t)=>e instanceof ih?e.onDidVisibilityChange(({visible:e})=>{this.setChildVisible(t,e)}):O.NONE))}dispose(){this._childrenDisposable.dispose(),this.splitview.dispose(),this.children.forEach(e=>e.dispose()),super.dispose()}}function iu(e,t){if(e instanceof id)return e;if(e instanceof ih)return iu(e.children[t?e.children.length-1:0],t);throw Error("invalid node")}function ic(e,t,i){if(!(e instanceof ih))return new id(e.view,ig(e.orientation),i);{let n=new ih(ig(e.orientation),e.proportionalLayout,e.styles,t,i,e.disabled,e.margin),o=0;for(let r=e.children.length-1;r>=0;r--){let s=e.children[r],a=s instanceof ih?s.orthogonalSize:s.size,l=0===e.size?0:Math.round(t*a/e.size);o+=l,0===r&&(l+=t-o),n.addChild(ic(s,i,l),l,0,!0)}return n}}function ip(e){let t=e.parentElement;if(!t)throw Error("Invalid grid element");if(/\bdv-grid-view\b/.test(t.className))return[];let i=function(e){let t=e.parentElement;if(!t)throw Error("Invalid grid element");let i=t.firstElementChild,n=0;for(;i!==e&&i!==t.lastElementChild&&i;)i=i.nextElementSibling,n++;return n}(t);return[...ip(t.parentElement.parentElement.parentElement),i]}function im(e,t,i){var n,o;if(n=e,(t.length%2==0?ig(n):n)!==("top"===(o=i)||"bottom"===o?I.VERTICAL:I.HORIZONTAL))return[...t,+("right"===i||"bottom"===i)];{let[e,n]=t9(t),o=n;return("right"===i||"bottom"===i)&&(o+=1),[...e,o]}}let ig=e=>e===I.HORIZONTAL?I.VERTICAL:I.HORIZONTAL,iv=(e,t)=>{let i=t===I.VERTICAL?e.box.width:e.box.height;return e.children?{type:"branch",data:e.children.map(e=>iv(e,ig(t))),size:i}:"number"==typeof e.cachedVisibleSize?{type:"leaf",data:e.view.toJSON(),size:e.cachedVisibleSize,visible:!1}:{type:"leaf",data:e.view.toJSON(),size:i}};class iw{get length(){return this._root?this._root.children.length:0}get orientation(){return this.root.orientation}set orientation(e){if(this.root.orientation===e)return;let{size:t,orthogonalSize:i}=this.root;this.root=ic(this.root,i,t),this.root.layout(t,i)}get width(){return this.root.width}get height(){return this.root.height}get minimumWidth(){return this.root.minimumWidth}get minimumHeight(){return this.root.minimumHeight}get maximumWidth(){return this.root.maximumHeight}get maximumHeight(){return this.root.maximumHeight}get locked(){return this._locked}set locked(e){this._locked=e;let t=[this.root];for(;t.length>0;){let i=t.pop();i instanceof ih&&(i.disabled=e,t.push(...i.children))}}get margin(){return this._margin}set margin(e){this._margin=e,this.root.margin=e}maximizedView(){var e;return null==(e=this._maximizedNode)?void 0:e.leaf.view}hasMaximizedView(){return void 0!==this._maximizedNode}maximizeView(e){var t;let i=ip(e.element),[n,o]=this.getNode(i);if(!(o instanceof id)||(null==(t=this._maximizedNode)?void 0:t.leaf)===o)return;this.hasMaximizedView()&&this.exitMaximizedView(),iv(this.getView(),this.orientation);let r=[];!function e(t,i){for(let n=0;n=0;n--){let o=i.children[n];o instanceof id?e.includes(o)||i.setChildVisible(n,!0):t(o)}}(this.root);let t=this._maximizedNode.leaf;this._maximizedNode=void 0,this._onDidMaximizedNodeChange.fire({view:t.view,isMaximized:!1})}serialize(){let e,t=this.maximizedView();t&&(e=ip(t.element)),this.hasMaximizedView()&&this.exitMaximizedView();let i={root:iv(this.getView(),this.orientation),width:this.width,height:this.height,orientation:this.orientation};return e&&(i.maximizedNode={location:e}),t&&this.maximizeView(t),i}dispose(){this.disposable.dispose(),this._onDidChange.dispose(),this._onDidMaximizedNodeChange.dispose(),this._onDidViewVisibilityChange.dispose(),this.root.dispose(),this._maximizedNode=void 0,this.element.remove()}clear(){let e=this.root.orientation;this.root=new ih(e,this.proportionalLayout,this.styles,this.root.size,this.root.orthogonalSize,this.locked,this.margin)}deserialize(e,t){let i=e.orientation,n=i===I.VERTICAL?e.height:e.width;if(this._deserialize(e.root,i,t,n),this.layout(e.width,e.height),e.maximizedNode){let t=e.maximizedNode.location,[i,n]=this.getNode(t);if(!(n instanceof id))return;this.maximizeView(n.view)}}_deserialize(e,t,i,n){this.root=this._deserializeNode(e,t,i,n)}_deserializeNode(e,t,i,n){var o;let r;if("branch"===e.type){let o=e.data.map(n=>({node:this._deserializeNode(n,ig(t),i,e.size),visible:n.visible}));r=new ih(t,this.proportionalLayout,this.styles,e.size,n,this.locked,this.margin,o)}else{let s=i.fromJSON(e);"boolean"==typeof e.visible&&(null==(o=s.setVisible)||o.call(s,e.visible)),r=new id(s,t,n,e.size)}return r}get root(){return this._root}set root(e){let t=this._root;t&&(t.dispose(),this._maximizedNode=void 0,this.element.removeChild(t.element)),this._root=e,this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}normalize(){if(!this._root||1!==this._root.children.length)return;let e=this.root,t=e.children[0];if(t instanceof id)return;e.element.remove();let i=e.removeChild(0);e.dispose(),i.dispose(),this._root=function e(t,i,n){if(!(t instanceof ih))return new id(t.view,t.orientation,n);{let o=new ih(t.orientation,t.proportionalLayout,t.styles,i,n,t.disabled,t.margin);for(let i=t.children.length-1;i>=0;i--){let n=t.children[i];o.addChild(e(n,n.size,n.orthogonalSize),n.size,0,!0)}return o}}(t,t.size,t.orthogonalSize),this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}insertOrthogonalSplitviewAtRoot(){if(!this._root)return;let e=this.root;if(e.element.remove(),this._root=new ih(ig(e.orientation),this.proportionalLayout,this.styles,this.root.orthogonalSize,this.root.size,this.locked,this.margin),0===e.children.length);else if(1===e.children.length){let t=e.children[0];e.removeChild(0).dispose(),e.dispose(),this._root.addChild(ic(t,t.orthogonalSize,t.size),T.Distribute,0)}else this._root.addChild(e,T.Distribute,0);this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}next(e){return this.progmaticSelect(e)}previous(e){return this.progmaticSelect(e,!0)}getView(e){let t=e?this.getNode(e)[1]:this.root;return this._getViews(t,this.orientation)}_getViews(e,t,i){let n={height:e.height,width:e.width};if(e instanceof id)return{box:n,view:e.view,cachedVisibleSize:i};let o=[];for(let i=0;i-1;n--){let o=i[n],r=e[n]||0;if(t?r-1>-1:r+1l.getChildSize(t));if(l.removeChild(h,t).dispose(),a instanceof ih){p.splice(h,1,...a.children.map(e=>e.size));for(let e=0;e0;)a.removeChild(0)}else{let e=new id(a.view,ig(a.orientation),a.size),t=c?a.orthogonalSize:T.Invisible(a.orthogonalSize);l.addChild(e,t,h)}a.dispose();for(let e=0;e=t.children.length)throw Error("Invalid location");let r=t.children[n];return i.push(t),this.getNode(o,r,i)}}let ib=["disableAutoResizing","proportionalLayout","orientation","hideBorders","className"];class iy extends tK{get element(){return this._element}get disableResizing(){return this._disableResizing}set disableResizing(e){this._disableResizing=e}constructor(e,t=!1){super(),this._disableResizing=t,this._element=e,this.addDisposables(tX(this._element,e=>{if(this.isDisposed||this.disableResizing||!this._element.offsetParent||!function(e){let t=e;for(;null==t?void 0:t.parentNode;)if(t.parentNode===document)return!0;else t=t.parentNode instanceof DocumentFragment?t.parentNode.host:t.parentNode;return!1}(this._element))return;let{width:t,height:i}=e.contentRect;this.layout(t,i)}))}}let ix=ii();function i_(e){switch(e){case"left":return"left";case"right":return"right";case"above":return"top";case"below":return"bottom";default:return"center"}}class iD extends iy{get id(){return this._id}get size(){return this._groups.size}get groups(){return Array.from(this._groups.values()).map(e=>e.value)}get width(){return this.gridview.width}get height(){return this.gridview.height}get minimumHeight(){return this.gridview.minimumHeight}get maximumHeight(){return this.gridview.maximumHeight}get minimumWidth(){return this.gridview.minimumWidth}get maximumWidth(){return this.gridview.maximumWidth}get activeGroup(){return this._activeGroup}get locked(){return this.gridview.locked}set locked(e){this.gridview.locked=e}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._id=ix.next(),this._groups=new Map,this._onDidRemove=new tB,this.onDidRemove=this._onDidRemove.event,this._onDidAdd=new tB,this.onDidAdd=this._onDidAdd.event,this._onDidMaximizedChange=new tB,this.onDidMaximizedChange=this._onDidMaximizedChange.event,this._onDidActiveChange=new tB,this.onDidActiveChange=this._onDidActiveChange.event,this._bufferOnDidLayoutChange=new tU,this.onDidLayoutChange=this._bufferOnDidLayoutChange.onEvent,this._onDidViewVisibilityChangeMicroTaskQueue=new tU,this.onDidViewVisibilityChangeMicroTaskQueue=this._onDidViewVisibilityChangeMicroTaskQueue.onEvent,this.element.style.height="100%",this.element.style.width="100%",this._classNames=new t4(this.element),this._classNames.setClassNames(null!=(i=t.className)?i:""),e.appendChild(this.element),this.gridview=new iw(!!t.proportionalLayout,t.styles,t.orientation,t.locked,t.margin),this.gridview.locked=!!t.locked,this.element.appendChild(this.gridview.element),this.layout(0,0,!0),this.addDisposables(this.gridview.onDidMaximizedNodeChange(e=>{this._onDidMaximizedChange.fire({panel:e.view,isMaximized:e.isMaximized})}),this.gridview.onDidViewVisibilityChange(()=>this._onDidViewVisibilityChangeMicroTaskQueue.fire()),this.onDidViewVisibilityChangeMicroTaskQueue(()=>{this.layout(this.width,this.height,!0)}),O.from(()=>{var e;null==(e=this.element.parentElement)||e.removeChild(this.element)}),this.gridview.onDidChange(()=>{this._bufferOnDidLayoutChange.fire()}),N.any(this.onDidAdd,this.onDidRemove,this.onDidActiveChange)(()=>{this._bufferOnDidLayoutChange.fire()}),this._onDidMaximizedChange,this._onDidViewVisibilityChangeMicroTaskQueue,this._bufferOnDidLayoutChange)}setVisible(e,t){this.gridview.setViewVisible(ip(e.element),t),this._bufferOnDidLayoutChange.fire()}isVisible(e){return this.gridview.isViewVisible(ip(e.element))}updateOptions(e){var t,i,n,o;e.proportionalLayout,e.orientation&&(this.gridview.orientation=e.orientation),"disableResizing"in e&&(this.disableResizing=null!=(t=e.disableAutoResizing)&&t),"locked"in e&&(this.locked=null!=(i=e.locked)&&i),"margin"in e&&(this.gridview.margin=null!=(n=e.margin)?n:0),"className"in e&&this._classNames.setClassNames(null!=(o=e.className)?o:"")}maximizeGroup(e){this.gridview.maximizeView(e),this.doSetGroupActive(e)}isMaximizedGroup(e){return this.gridview.maximizedView()===e}exitMaximizedGroup(){this.gridview.exitMaximizedView()}hasMaximizedGroup(){return this.gridview.hasMaximizedView()}doAddGroup(e,t=[0],i){this.gridview.addView(e,null!=i?i:T.Distribute,t),this._onDidAdd.fire(e)}doRemoveGroup(e,t){if(!this._groups.has(e.id))throw Error("invalid operation");let i=this._groups.get(e.id),n=this.gridview.remove(e,T.Distribute);if(!i||(null==t?void 0:t.skipDispose)||(i.disposable.dispose(),i.value.dispose(),this._groups.delete(e.id),this._onDidRemove.fire(e)),!(null==t?void 0:t.skipActive)&&this._activeGroup===e){let e=Array.from(this._groups.values());this.doSetGroupActive(e.length>0?e[0].value:void 0)}return n}getPanel(e){var t;return null==(t=this._groups.get(e))?void 0:t.value}doSetGroupActive(e){this._activeGroup!==e&&(this._activeGroup&&this._activeGroup.setActive(!1),e&&e.setActive(!0),this._activeGroup=e,this._onDidActiveChange.fire(e))}removeGroup(e){this.doRemoveGroup(e)}moveToNext(e){var t;if(e||(e={}),!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}let i=ip(e.group.element),n=null==(t=this.gridview.next(i))?void 0:t.view;this.doSetGroupActive(n)}moveToPrevious(e){var t;if(e||(e={}),!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}let i=ip(e.group.element),n=null==(t=this.gridview.previous(i))?void 0:t.view;this.doSetGroupActive(n)}layout(e,t,i){(i||e!==this.width||t!==this.height)&&(this.gridview.element.style.height=`${t}px`,this.gridview.element.style.width=`${e}px`,this.gridview.layout(e,t))}dispose(){for(let e of(this._onDidActiveChange.dispose(),this._onDidAdd.dispose(),this._onDidRemove.dispose(),this.groups))e.dispose();this.gridview.dispose(),super.dispose()}}class iC{get minimumSize(){return this.component.minimumSize}get maximumSize(){return this.component.maximumSize}get width(){return this.component.width}get height(){return this.component.height}get length(){return this.component.length}get orientation(){return this.component.orientation}get panels(){return this.component.panels}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidAddView(){return this.component.onDidAddView}get onDidRemoveView(){return this.component.onDidRemoveView}constructor(e){this.component=e}removePanel(e,t){this.component.removePanel(e,t)}focus(){this.component.focus()}getPanel(e){return this.component.getPanel(e)}layout(e,t){return this.component.layout(e,t)}addPanel(e){return this.component.addPanel(e)}movePanel(e,t){this.component.movePanel(e,t)}fromJSON(e){this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class iS{get minimumSize(){return this.component.minimumSize}get maximumSize(){return this.component.maximumSize}get width(){return this.component.width}get height(){return this.component.height}get panels(){return this.component.panels}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidAddView(){return this.component.onDidAddView}get onDidRemoveView(){return this.component.onDidRemoveView}get onDidDrop(){return this.component.onDidDrop}get onUnhandledDragOverEvent(){return this.component.onUnhandledDragOverEvent}constructor(e){this.component=e}removePanel(e){this.component.removePanel(e)}getPanel(e){return this.component.getPanel(e)}movePanel(e,t){this.component.movePanel(e,t)}focus(){this.component.focus()}layout(e,t){this.component.layout(e,t)}addPanel(e){return this.component.addPanel(e)}fromJSON(e){this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class iE{get width(){return this.component.width}get height(){return this.component.height}get minimumHeight(){return this.component.minimumHeight}get maximumHeight(){return this.component.maximumHeight}get minimumWidth(){return this.component.minimumWidth}get maximumWidth(){return this.component.maximumWidth}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidAddPanel(){return this.component.onDidAddGroup}get onDidRemovePanel(){return this.component.onDidRemoveGroup}get onDidActivePanelChange(){return this.component.onDidActiveGroupChange}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get panels(){return this.component.groups}get orientation(){return this.component.orientation}set orientation(e){this.component.updateOptions({orientation:e})}constructor(e){this.component=e}focus(){this.component.focus()}layout(e,t,i=!1){this.component.layout(e,t,i)}addPanel(e){return this.component.addPanel(e)}removePanel(e,t){this.component.removePanel(e,t)}movePanel(e,t){this.component.movePanel(e,t)}getPanel(e){return this.component.getPanel(e)}fromJSON(e){return this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class iA{get id(){return this.component.id}get width(){return this.component.width}get height(){return this.component.height}get minimumHeight(){return this.component.minimumHeight}get maximumHeight(){return this.component.maximumHeight}get minimumWidth(){return this.component.minimumWidth}get maximumWidth(){return this.component.maximumWidth}get size(){return this.component.size}get totalPanels(){return this.component.totalPanels}get onDidActiveGroupChange(){return this.component.onDidActiveGroupChange}get onDidAddGroup(){return this.component.onDidAddGroup}get onDidRemoveGroup(){return this.component.onDidRemoveGroup}get onDidActivePanelChange(){return this.component.onDidActivePanelChange}get onDidAddPanel(){return this.component.onDidAddPanel}get onDidRemovePanel(){return this.component.onDidRemovePanel}get onDidMovePanel(){return this.component.onDidMovePanel}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidDrop(){return this.component.onDidDrop}get onWillDrop(){return this.component.onWillDrop}get onWillShowOverlay(){return this.component.onWillShowOverlay}get onWillDragGroup(){return this.component.onWillDragGroup}get onWillDragPanel(){return this.component.onWillDragPanel}get onUnhandledDragOverEvent(){return this.component.onUnhandledDragOverEvent}get onDidPopoutGroupSizeChange(){return this.component.onDidPopoutGroupSizeChange}get onDidPopoutGroupPositionChange(){return this.component.onDidPopoutGroupPositionChange}get onDidOpenPopoutWindowFail(){return this.component.onDidOpenPopoutWindowFail}get panels(){return this.component.panels}get groups(){return this.component.groups}get activePanel(){return this.component.activePanel}get activeGroup(){return this.component.activeGroup}constructor(e){this.component=e}focus(){this.component.focus()}getPanel(e){return this.component.getGroupPanel(e)}layout(e,t,i=!1){this.component.layout(e,t,i)}addPanel(e){return this.component.addPanel(e)}removePanel(e){this.component.removePanel(e)}addGroup(e){return this.component.addGroup(e)}closeAllGroups(){return this.component.closeAllGroups()}removeGroup(e){this.component.removeGroup(e)}getGroup(e){return this.component.getPanel(e)}addFloatingGroup(e,t){return this.component.addFloatingGroup(e,t)}fromJSON(e,t){this.component.fromJSON(e,t)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}moveToNext(e){this.component.moveToNext(e)}moveToPrevious(e){this.component.moveToPrevious(e)}maximizeGroup(e){this.component.maximizeGroup(e.group)}hasMaximizedGroup(){return this.component.hasMaximizedGroup()}exitMaximizedGroup(){this.component.exitMaximizedGroup()}get onDidMaximizedGroupChange(){return this.component.onDidMaximizedGroupChange}addPopoutGroup(e,t){return this.component.addPopoutGroup(e,t)}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class ik extends tK{constructor(e,t){super(),this.el=e,this.disabled=t,this.dataDisposable=new tJ,this.pointerEventsDisposable=new tJ,this._onDragStart=new tB,this.onDragStart=this._onDragStart.event,this.addDisposables(this._onDragStart,this.dataDisposable,this.pointerEventsDisposable),this.configure()}setDisabled(e){this.disabled=e}isCancelled(e){return!1}configure(){this.addDisposables(this._onDragStart,t$(this.el,"dragstart",e=>{if(e.defaultPrevented||this.isCancelled(e)||this.disabled)return void e.preventDefault();let t=t3();this.pointerEventsDisposable.value={dispose:()=>{t.release()}},this.el.classList.add("dv-dragged"),setTimeout(()=>this.el.classList.remove("dv-dragged"),0),this.dataDisposable.value=this.getData(e),this._onDragStart.fire(e),e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.items.length>0||e.dataTransfer.setData("text/plain",""))}),t$(this.el,"dragend",()=>{this.pointerEventsDisposable.dispose(),setTimeout(()=>{this.dataDisposable.dispose()},0)}))}}class iz extends tK{constructor(e,t){super(),this.element=e,this.callbacks=t,this.target=null,this.registerListeners()}onDragEnter(e){this.target=e.target,this.callbacks.onDragEnter(e)}onDragOver(e){e.preventDefault(),this.callbacks.onDragOver&&this.callbacks.onDragOver(e)}onDragLeave(e){this.target===e.target&&(this.target=null,this.callbacks.onDragLeave(e))}onDragEnd(e){this.target=null,this.callbacks.onDragEnd(e)}onDrop(e){this.callbacks.onDrop(e)}registerListeners(){this.addDisposables(t$(this.element,"dragenter",e=>{this.onDragEnter(e)},!0)),this.addDisposables(t$(this.element,"dragover",e=>{this.onDragOver(e)},!0)),this.addDisposables(t$(this.element,"dragleave",e=>{this.onDragLeave(e)})),this.addDisposables(t$(this.element,"dragend",e=>{this.onDragEnd(e)})),this.addDisposables(t$(this.element,"drop",e=>{this.onDrop(e)}))}}class iP extends tV{get nativeEvent(){return this.options.nativeEvent}get position(){return this.options.position}constructor(e){super(),this.options=e}}function iR(e){switch(e){case"above":return"top";case"below":return"bottom";case"left":return"left";case"right":return"right";case"within":return"center";default:throw Error(`invalid direction '${e}'`)}}let iN={value:20,type:"percentage"},iO={value:50,type:"percentage"};class iI extends tK{get disabled(){return this._disabled}set disabled(e){this._disabled=e}get state(){return this._state}constructor(e,t){super(),this.element=e,this.options=t,this._onDrop=new tB,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._disabled=!1,this._acceptedTargetZonesSet=new Set(this.options.acceptedTargetZones),this.dnd=new iz(this.element,{onDragEnter:()=>{var e,t,i;null==(i=null==(t=(e=this.options).getOverrideTarget)?void 0:t.call(e))||i.getElements()},onDragOver:e=>{var t,i,n,o,r,s,a;iI.ACTUAL_TARGET=this;let l=null==(i=(t=this.options).getOverrideTarget)?void 0:i.call(t);if(0===this._acceptedTargetZonesSet.size){if(l)return;this.removeDropTarget();return}let d=null!=(r=null==(o=(n=this.options).getOverlayOutline)?void 0:o.call(n))?r:this.element,h=d.offsetWidth,u=d.offsetHeight;if(0===h||0===u)return;let c=e.currentTarget.getBoundingClientRect(),p=(null!=(s=e.clientX)?s:0)-c.left,m=(null!=(a=e.clientY)?a:0)-c.top,f=this.calculateQuadrant(this._acceptedTargetZonesSet,p,m,h,u);if(this.isAlreadyUsed(e)||null===f)return void this.removeDropTarget();if(!this.options.canDisplayOverlay(e,f)){if(l)return;this.removeDropTarget();return}let g=new iP({nativeEvent:e,position:f});(this._onWillShowOverlay.fire(g),g.defaultPrevented)?this.removeDropTarget():(this.markAsUsed(e),l||this.targetElement||(this.targetElement=document.createElement("div"),this.targetElement.className="dv-drop-target-dropzone",this.overlayElement=document.createElement("div"),this.overlayElement.className="dv-drop-target-selection",this._state="center",this.targetElement.appendChild(this.overlayElement),d.classList.add("dv-drop-target"),d.append(this.targetElement)),this.toggleClasses(f,h,u),this._state=f)},onDragLeave:()=>{var e,t;(null==(t=(e=this.options).getOverrideTarget)?void 0:t.call(e))||this.removeDropTarget()},onDragEnd:e=>{var t,i;let n=null==(i=(t=this.options).getOverrideTarget)?void 0:i.call(t);n&&iI.ACTUAL_TARGET===this&&this._state&&(e.stopPropagation(),this._onDrop.fire({position:this._state,nativeEvent:e})),this.removeDropTarget(),null==n||n.clear()},onDrop:e=>{var t,i,n;e.preventDefault();let o=this._state;this.removeDropTarget(),null==(n=null==(i=(t=this.options).getOverrideTarget)?void 0:i.call(t))||n.clear(),o&&(e.stopPropagation(),this._onDrop.fire({position:o,nativeEvent:e}))}}),this.addDisposables(this._onDrop,this._onWillShowOverlay,this.dnd)}setTargetZones(e){this._acceptedTargetZonesSet=new Set(e)}setOverlayModel(e){this.options.overlayModel=e}dispose(){this.removeDropTarget(),super.dispose()}markAsUsed(e){e[iI.USED_EVENT_ID]=!0}isAlreadyUsed(e){let t=e[iI.USED_EVENT_ID];return"boolean"==typeof t&&t}toggleClasses(e,t,i){var n,o,r,s,a,l,d;let h=null==(o=(n=this.options).getOverrideTarget)?void 0:o.call(n);if(!h&&!this.overlayElement)return;let u=t<100,c=i<100,p="left"===e,m="right"===e,f="top"===e,g="bottom"===e,v=!u&&m,w=!u&&p,b=!c&&f,y=!c&&g,x=1,_=null!=(s=null==(r=this.options.overlayModel)?void 0:r.size)?s:iO;if("percentage"===_.type?x=it(_.value,0,100)/100:((v||w)&&(x=it(0,_.value,t)/t),(b||y)&&(x=it(0,_.value,i)/i)),h){let n=null!=(d=null==(l=(a=this.options).getOverlayOutline)?void 0:l.call(a))?d:this.element,o=n.getBoundingClientRect(),r=h.getElements(void 0,n),s=r.root,c=r.overlay,_=s.getBoundingClientRect(),D=o.top-_.top,C=o.left-_.left,S={top:D,left:C,width:t,height:i};if(v?(S.left=C+t*(1-x),S.width=t*x):w?S.width=t*x:b?S.height=i*x:y&&(S.top=D+i*(1-x),S.height=i*x),u&&p&&(S.width=4),u&&m&&(S.left=C+t-4,S.width=4),!function(e,t){let{top:i,left:n,width:o,height:r}=t,s=`${Math.round(i)}px`,a=`${Math.round(n)}px`,l=`${Math.round(o)}px`,d=`${Math.round(r)}px`;return e.style.top!==s||e.style.left!==a||e.style.width!==l||e.style.height!==d}(c,S))return;!function(e,t){let{top:i,left:n,width:o,height:r}=t,s=`${Math.round(i)}px`,a=`${Math.round(n)}px`,l=`${Math.round(o)}px`,d=`${Math.round(r)}px`;e.style.top=s,e.style.left=a,e.style.width=l,e.style.height=d,e.style.visibility="visible",e.style.transform&&""!==e.style.transform||(e.style.transform="translate3d(0, 0, 0)")}(c,S),c.className=`dv-drop-target-anchor${this.options.className?` ${this.options.className}`:""}`,tQ(c,"dv-drop-target-left",p),tQ(c,"dv-drop-target-right",m),tQ(c,"dv-drop-target-top",f),tQ(c,"dv-drop-target-bottom",g),tQ(c,"dv-drop-target-center","center"===e),r.changed&&(tQ(c,"dv-drop-target-anchor-container-changed",!0),setTimeout(()=>{tQ(c,"dv-drop-target-anchor-container-changed",!1)},10));return}if(!this.overlayElement)return;let D={top:"0px",left:"0px",width:"100%",height:"100%"};v?(D.left=`${100*(1-x)}%`,D.width=`${100*x}%`):w?D.width=`${100*x}%`:b?D.height=`${100*x}%`:y&&(D.top=`${100*(1-x)}%`,D.height=`${100*x}%`),function(e,t){let{top:i,left:n,width:o,height:r}=t;e.style.top=i,e.style.left=n,e.style.width=o,e.style.height=r,e.style.visibility="visible",e.style.transform&&""!==e.style.transform||(e.style.transform="translate3d(0, 0, 0)")}(this.overlayElement,D),tQ(this.overlayElement,"dv-drop-target-small-vertical",c),tQ(this.overlayElement,"dv-drop-target-small-horizontal",u),tQ(this.overlayElement,"dv-drop-target-left",p),tQ(this.overlayElement,"dv-drop-target-right",m),tQ(this.overlayElement,"dv-drop-target-top",f),tQ(this.overlayElement,"dv-drop-target-bottom",g),tQ(this.overlayElement,"dv-drop-target-center","center"===e)}calculateQuadrant(e,t,i,n,o){var r,s,a,l,d,h,u,c,p,m,f,g,v,w;let b,y,x=null!=(s=null==(r=this.options.overlayModel)?void 0:r.activationSize)?s:iN;return"percentage"===x.type?(a=e,l=t,d=i,h=n,u=o,c=x.value,b=100*l/h,y=100*d/u,a.has("left")&&b100-c?"right":a.has("top")&&y100-c?"bottom":a.has("center")?"center":null):(p=e,m=t,f=i,g=n,v=o,w=x.value,p.has("left")&&mg-w?"right":p.has("top")&&fv-w?"bottom":p.has("center")?"center":null)}removeDropTarget(){var e;this.targetElement&&(this._state=void 0,null==(e=this.targetElement.parentElement)||e.classList.remove("dv-drop-target"),this.targetElement.remove(),this.targetElement=void 0,this.overlayElement=void 0)}}iI.USED_EVENT_ID="__dockview_droptarget_event_is_used__";let iM=["disableAutoResizing","disableDnd","className"];class iL extends tW{constructor(e,t,i,n){super(),this.nativeEvent=e,this.position=t,this.getData=i,this.panel=n}}class iT extends tV{constructor(){super()}}class ij extends tK{get isFocused(){return this._isFocused}get isActive(){return this._isActive}get isVisible(){return this._isVisible}get width(){return this._width}get height(){return this._height}constructor(e,t){super(),this.id=e,this.component=t,this._isFocused=!1,this._isActive=!1,this._isVisible=!0,this._width=0,this._height=0,this._parameters={},this.panelUpdatesDisposable=new tJ,this._onDidDimensionChange=new tB,this.onDidDimensionsChange=this._onDidDimensionChange.event,this._onDidChangeFocus=new tB,this.onDidFocusChange=this._onDidChangeFocus.event,this._onWillFocus=new tB,this.onWillFocus=this._onWillFocus.event,this._onDidVisibilityChange=new tB,this.onDidVisibilityChange=this._onDidVisibilityChange.event,this._onWillVisibilityChange=new tB,this.onWillVisibilityChange=this._onWillVisibilityChange.event,this._onDidActiveChange=new tB,this.onDidActiveChange=this._onDidActiveChange.event,this._onActiveChange=new tB,this.onActiveChange=this._onActiveChange.event,this._onDidParametersChange=new tB,this.onDidParametersChange=this._onDidParametersChange.event,this.addDisposables(this.onDidFocusChange(e=>{this._isFocused=e.isFocused}),this.onDidActiveChange(e=>{this._isActive=e.isActive}),this.onDidVisibilityChange(e=>{this._isVisible=e.isVisible}),this.onDidDimensionsChange(e=>{this._width=e.width,this._height=e.height}),this.panelUpdatesDisposable,this._onDidDimensionChange,this._onDidChangeFocus,this._onDidVisibilityChange,this._onDidActiveChange,this._onWillFocus,this._onActiveChange,this._onWillFocus,this._onWillVisibilityChange,this._onDidParametersChange)}getParameters(){return this._parameters}initialize(e){this.panelUpdatesDisposable.value=this._onDidParametersChange.event(t=>{this._parameters=t,e.update({params:t})})}setVisible(e){this._onWillVisibilityChange.fire({isVisible:e})}setActive(){this._onActiveChange.fire()}updateParameters(e){this._onDidParametersChange.fire(e)}}class iG extends ij{constructor(e,t){super(e,t),this._onDidConstraintsChangeInternal=new tB,this.onDidConstraintsChangeInternal=this._onDidConstraintsChangeInternal.event,this._onDidConstraintsChange=new tB({replay:!0}),this.onDidConstraintsChange=this._onDidConstraintsChange.event,this._onDidSizeChange=new tB,this.onDidSizeChange=this._onDidSizeChange.event,this.addDisposables(this._onDidConstraintsChangeInternal,this._onDidConstraintsChange,this._onDidSizeChange)}setConstraints(e){this._onDidConstraintsChangeInternal.fire(e)}setSize(e){this._onDidSizeChange.fire(e)}}class iV extends iG{set pane(e){this._pane=e}constructor(e,t){super(e,t),this._onDidExpansionChange=new tB({replay:!0}),this.onDidExpansionChange=this._onDidExpansionChange.event,this._onMouseEnter=new tB({}),this.onMouseEnter=this._onMouseEnter.event,this._onMouseLeave=new tB({}),this.onMouseLeave=this._onMouseLeave.event,this.addDisposables(this._onDidExpansionChange,this._onMouseEnter,this._onMouseLeave)}setExpanded(e){var t;null==(t=this._pane)||t.setExpanded(e)}get isExpanded(){var e;return!!(null==(e=this._pane)?void 0:e.isExpanded())}}class iW extends tK{get element(){return this._element}get width(){return this._width}get height(){return this._height}get params(){var e;return null==(e=this._params)?void 0:e.params}constructor(e,t,i){super(),this.id=e,this.component=t,this.api=i,this._height=0,this._width=0,this._element=document.createElement("div"),this._element.tabIndex=-1,this._element.style.outline="none",this._element.style.height="100%",this._element.style.width="100%",this._element.style.overflow="hidden";const n=new t1(this._element);this.addDisposables(this.api,n.onDidFocus(()=>{this.api._onDidChangeFocus.fire({isFocused:!0})}),n.onDidBlur(()=>{this.api._onDidChangeFocus.fire({isFocused:!1})}),n)}focus(){let e=new iT;this.api._onWillFocus.fire(e),e.defaultPrevented||this._element.focus()}layout(e,t){this._width=e,this._height=t,this.api._onDidDimensionChange.fire({width:e,height:t}),this.part&&this._params&&this.part.update(this._params.params)}init(e){this._params=e,this.part=this.getComponent()}update(e){var t,i;for(let i of(this._params=Object.assign(Object.assign({},this._params),{params:Object.assign(Object.assign({},null==(t=this._params)?void 0:t.params),e.params)}),Object.keys(e.params)))void 0===e.params[i]&&delete this._params.params[i];null==(i=this.part)||i.update({params:this._params.params})}toJSON(){var e,t;let i=null!=(t=null==(e=this._params)?void 0:e.params)?t:{};return{id:this.id,component:this.component,params:Object.keys(i).length>0?i:void 0}}dispose(){var e;this.api.dispose(),null==(e=this.part)||e.dispose(),super.dispose()}}class iH extends iW{set orientation(e){this._orientation=e}get orientation(){return this._orientation}get minimumSize(){return this.headerSize+(this.isExpanded()?this._minimumBodySize:0)}get maximumSize(){return this.headerSize+(this.isExpanded()?this._maximumBodySize:0)}get size(){return this._size}get orthogonalSize(){return this._orthogonalSize}set orthogonalSize(e){this._orthogonalSize=e}get minimumBodySize(){return this._minimumBodySize}set minimumBodySize(e){this._minimumBodySize="number"==typeof e?e:0}get maximumBodySize(){return this._maximumBodySize}set maximumBodySize(e){this._maximumBodySize="number"==typeof e?e:1/0}get headerVisible(){return this._headerVisible}set headerVisible(e){this._headerVisible=e,this.header.style.display=e?"":"none"}constructor(e){super(e.id,e.component,new iV(e.id,e.component)),this._onDidChangeExpansionState=new tB({replay:!0}),this.onDidChangeExpansionState=this._onDidChangeExpansionState.event,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._orthogonalSize=0,this._size=0,this._isExpanded=!1,this.api.pane=this,this.api.initialize(this),this.headerSize=e.headerSize,this.headerComponent=e.headerComponent,this._minimumBodySize=e.minimumBodySize,this._maximumBodySize=e.maximumBodySize,this._isExpanded=e.isExpanded,this._headerVisible=e.isHeaderVisible,this._onDidChangeExpansionState.fire(this.isExpanded()),this._orientation=e.orientation,this.element.classList.add("dv-pane"),this.addDisposables(this.api.onWillVisibilityChange(e=>{let{isVisible:t}=e,{accessor:i}=this._params;i.setVisible(this,t)}),this.api.onDidSizeChange(e=>{this._onDidChange.fire({size:e.size})}),t$(this.element,"mouseenter",e=>{this.api._onMouseEnter.fire(e)}),t$(this.element,"mouseleave",e=>{this.api._onMouseLeave.fire(e)})),this.addDisposables(this._onDidChangeExpansionState,this.onDidChangeExpansionState(e=>{this.api._onDidExpansionChange.fire({isExpanded:e})}),this.api.onDidFocusChange(e=>{this.header&&(e.isFocused?tY(this.header,"focused"):tq(this.header,"focused"))})),this.renderOnce()}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}isExpanded(){return this._isExpanded}setExpanded(e){this._isExpanded!==e&&(this._isExpanded=e,e?(this.animationTimer&&clearTimeout(this.animationTimer),this.body&&this.element.appendChild(this.body)):this.animationTimer=setTimeout(()=>{var e;null==(e=this.body)||e.remove()},200),this._onDidChange.fire(e?{size:this.width}:{}),this._onDidChangeExpansionState.fire(e))}layout(e,t){this._size=e,this._orthogonalSize=t;let[i,n]=this.orientation===I.HORIZONTAL?[e,t]:[t,e];super.layout(i,n)}init(e){var t,i;super.init(e),"number"==typeof e.minimumBodySize&&(this.minimumBodySize=e.minimumBodySize),"number"==typeof e.maximumBodySize&&(this.maximumBodySize=e.maximumBodySize),this.bodyPart=this.getBodyComponent(),this.headerPart=this.getHeaderComponent(),this.bodyPart.init(Object.assign(Object.assign({},e),{api:this.api})),this.headerPart.init(Object.assign(Object.assign({},e),{api:this.api})),null==(t=this.body)||t.append(this.bodyPart.element),null==(i=this.header)||i.append(this.headerPart.element),"boolean"==typeof e.isExpanded&&this.setExpanded(e.isExpanded)}toJSON(){let e=this._params;return Object.assign(Object.assign({},super.toJSON()),{headerComponent:this.headerComponent,title:e.title})}renderOnce(){this.header=document.createElement("div"),this.header.tabIndex=0,this.header.className="dv-pane-header",this.header.style.height=`${this.headerSize}px`,this.header.style.lineHeight=`${this.headerSize}px`,this.header.style.minHeight=`${this.headerSize}px`,this.header.style.maxHeight=`${this.headerSize}px`,this.element.appendChild(this.header),this.body=document.createElement("div"),this.body.className="dv-pane-body",this.element.appendChild(this.body)}getComponent(){return{update:e=>{var t,i;null==(t=this.bodyPart)||t.update({params:e}),null==(i=this.headerPart)||i.update({params:e})},dispose:()=>{var e,t;null==(e=this.bodyPart)||e.dispose(),null==(t=this.headerPart)||t.dispose()}}}}class iF extends iH{constructor(e){super({id:e.id,component:e.component,headerComponent:e.headerComponent,orientation:e.orientation,isExpanded:e.isExpanded,isHeaderVisible:!0,headerSize:e.headerSize,minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize}),this._onDidDrop=new tB,this.onDidDrop=this._onDidDrop.event,this._onUnhandledDragOverEvent=new tB,this.onUnhandledDragOverEvent=this._onUnhandledDragOverEvent.event,this.accessor=e.accessor,this.addDisposables(this._onDidDrop,this._onUnhandledDragOverEvent),e.disableDnd||this.initDragFeatures()}initDragFeatures(){if(!this.header)return;let e=this.id,t=this.accessor.id;this.header.draggable=!0,this.handler=new class extends ik{getData(){return tT.getInstance().setData([new tL(t,e)],tL.prototype),{dispose:()=>{tT.getInstance().clearData(tL.prototype)}}}}(this.header),this.target=new iI(this.element,{acceptedTargetZones:["top","bottom"],overlayModel:{activationSize:{type:"percentage",value:50}},canDisplayOverlay:(e,t)=>{let i=tG();if(i&&i.paneId!==this.id&&i.viewId===this.accessor.id)return!0;let n=new iL(e,t,tG,this);return this._onUnhandledDragOverEvent.fire(n),n.isAccepted}}),this.addDisposables(this._onDidDrop,this.handler,this.target,this.target.onDrop(e=>{this.onDrop(e)}))}onDrop(e){let t=tG();if(!t||t.viewId!==this.accessor.id)return void this._onDidDrop.fire(Object.assign(Object.assign({},e),{panel:this,api:new iS(this.accessor),getData:tG}));let i=this._params.containerApi,n=t.paneId,o=i.getPanel(n);if(!o)return void this._onDidDrop.fire(Object.assign(Object.assign({},e),{panel:this,getData:tG,api:new iS(this.accessor)}));let r=i.panels,s=r.indexOf(o),a=i.panels.indexOf(this);("left"===e.position||"top"===e.position)&&(a=Math.max(0,a-1)),("right"===e.position||"bottom"===e.position)&&(s>a&&a++,a=Math.min(r.length-1,a)),i.movePanel(s,a)}}class iB extends tK{get element(){return this._element}constructor(e,t){super(),this.accessor=e,this.group=t,this.disposable=new tJ,this._onDidFocus=new tB,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new tB,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement("div"),this._element.className="dv-content-container",this._element.tabIndex=-1,this.addDisposables(this._onDidFocus,this._onDidBlur);const i=t.dropTargetContainer;this.dropTarget=new iI(this.element,{getOverlayOutline:()=>{var t;return(null==(t=e.options.theme)?void 0:t.dndPanelOverlay)==="group"?this.element.parentElement:null},className:"dv-drop-target-content",acceptedTargetZones:["top","bottom","left","right","center"],canDisplayOverlay:(e,t)=>{if("no-drop-target"===this.group.locked||this.group.locked&&"center"===t)return!1;let i=tj();return(!!i||!e.shiftKey||"floating"===this.group.location.type)&&(!!i&&i.viewId===this.accessor.id||this.group.canDisplayOverlay(e,t,"content"))},getOverrideTarget:i?()=>i.model:void 0}),this.addDisposables(this.dropTarget)}show(){this.element.style.display=""}hide(){this.element.style.display="none"}renderPanel(e,t={asActive:!0}){let i,n=t.asActive||this.panel&&this.group.isPanelActive(this.panel);switch(this.panel&&this.panel.view.content.element.parentElement===this._element&&this._element.removeChild(this.panel.view.content.element),this.panel=e,e.api.renderer){case"onlyWhenVisible":this.group.renderContainer.detatch(e),this.panel&&n&&this._element.appendChild(this.panel.view.content.element),i=this._element;break;case"always":e.view.content.element.parentElement===this._element&&this._element.removeChild(e.view.content.element),i=this.group.renderContainer.attach({panel:e,referenceContainer:this});break;default:throw Error(`dockview: invalid renderer type '${e.api.renderer}'`)}if(n){let e=new t1(i);this.focusTracker=e;let t=new tK;t.addDisposables(e,e.onDidFocus(()=>this._onDidFocus.fire()),e.onDidBlur(()=>this._onDidBlur.fire())),this.disposable.value=t}}openPanel(e){this.panel!==e&&this.renderPanel(e)}layout(e,t){}closePanel(){var e;this.panel&&"onlyWhenVisible"===this.panel.api.renderer&&(null==(e=this.panel.view.content.element.parentElement)||e.removeChild(this.panel.view.content.element)),this.panel=void 0}dispose(){this.disposable.dispose(),super.dispose()}refreshFocusState(){var e;(null==(e=this.focusTracker)?void 0:e.refreshState)&&this.focusTracker.refreshState()}}function i$(e,t,i){var n,o;tY(t,"dv-dragged"),t.style.top="-9999px",document.body.appendChild(t),e.setDragImage(t,null!=(n=null==i?void 0:i.x)?n:0,null!=(o=null==i?void 0:i.y)?o:0),setTimeout(()=>{tq(t,"dv-dragged"),t.remove()},0)}class iU extends ik{constructor(e,t,i,n,o){super(e,o),this.accessor=t,this.group=i,this.panel=n,this.panelTransfer=tT.getInstance()}getData(e){return this.panelTransfer.setData([new tM(this.accessor.id,this.group.id,this.panel.id)],tM.prototype),{dispose:()=>{this.panelTransfer.clearData(tM.prototype)}}}}class iK extends tK{get element(){return this._element}constructor(e,t,i){super(),this.panel=e,this.accessor=t,this.group=i,this.content=void 0,this._onPointDown=new tB,this.onPointerDown=this._onPointDown.event,this._onDropped=new tB,this.onDrop=this._onDropped.event,this._onDragStart=new tB,this.onDragStart=this._onDragStart.event,this._element=document.createElement("div"),this._element.className="dv-tab",this._element.tabIndex=0,this._element.draggable=!this.accessor.options.disableDnd,tQ(this.element,"dv-inactive-tab",!0),this.dragHandler=new iU(this._element,this.accessor,this.group,this.panel,!!this.accessor.options.disableDnd),this.dropTarget=new iI(this._element,{acceptedTargetZones:["left","right"],overlayModel:{activationSize:{value:50,type:"percentage"}},canDisplayOverlay:(e,t)=>{if(this.group.locked)return!1;let i=tj();return!!i&&this.accessor.id===i.viewId||this.group.model.canDisplayOverlay(e,t,"tab")},getOverrideTarget:()=>{var e;return null==(e=i.model.dropTargetContainer)?void 0:e.model}}),this.onWillShowOverlay=this.dropTarget.onWillShowOverlay,this.addDisposables(this._onPointDown,this._onDropped,this._onDragStart,this.dragHandler.onDragStart(e=>{if(e.dataTransfer){let t=getComputedStyle(this.element),i=this.element.cloneNode(!0);Array.from(t).forEach(e=>i.style.setProperty(e,t.getPropertyValue(e),t.getPropertyPriority(e))),i.style.position="absolute",i$(e.dataTransfer,i,{y:-10,x:30})}this._onDragStart.fire(e)}),this.dragHandler,t$(this._element,"pointerdown",e=>{this._onPointDown.fire(e)}),this.dropTarget.onDrop(e=>{this._onDropped.fire(e)}),this.dropTarget)}setActive(e){tQ(this.element,"dv-active-tab",e),tQ(this.element,"dv-inactive-tab",!e)}setContent(e){this.content&&this._element.removeChild(this.content.element),this.content=e,this._element.appendChild(this.content.element)}updateDragAndDropState(){this._element.draggable=!this.accessor.options.disableDnd,this.dragHandler.setDisabled(!!this.accessor.options.disableDnd)}dispose(){super.dispose()}}class iJ{get kind(){return this.options.kind}get nativeEvent(){return this.event.nativeEvent}get position(){return this.event.position}get defaultPrevented(){return this.event.defaultPrevented}get panel(){return this.options.panel}get api(){return this.options.api}get group(){return this.options.group}preventDefault(){this.event.preventDefault()}getData(){return this.options.getData()}constructor(e,t){this.event=e,this.options=t}}class iZ extends ik{constructor(e,t,i,n){super(e,n),this.accessor=t,this.group=i,this.panelTransfer=tT.getInstance(),this.addDisposables(t$(e,"pointerdown",e=>{e.shiftKey&&(e[t2]=!0)},!0))}isCancelled(e){return"floating"===this.group.api.location.type&&!e.shiftKey}getData(e){let t=e.dataTransfer;this.panelTransfer.setData([new tM(this.accessor.id,this.group.id,null)],tM.prototype);let i=window.getComputedStyle(this.el),n=i.getPropertyValue("--dv-activegroup-visiblepanel-tab-background-color"),o=i.getPropertyValue("--dv-activegroup-visiblepanel-tab-color");if(t){let e=document.createElement("div");e.style.backgroundColor=n,e.style.color=o,e.style.padding="2px 8px",e.style.height="24px",e.style.fontSize="11px",e.style.lineHeight="20px",e.style.borderRadius="12px",e.style.position="absolute",e.style.pointerEvents="none",e.style.top="-9999px",e.textContent=`Multiple Panels (${this.group.size})`,i$(t,e,{y:-10,x:30})}return{dispose:()=>{this.panelTransfer.clearData(tM.prototype)}}}}class iX extends tK{get element(){return this._element}constructor(e,t){super(),this.accessor=e,this.group=t,this._onDrop=new tB,this.onDrop=this._onDrop.event,this._onDragStart=new tB,this.onDragStart=this._onDragStart.event,this._element=document.createElement("div"),this._element.className="dv-void-container",this._element.draggable=!this.accessor.options.disableDnd,tQ(this._element,"dv-draggable",!this.accessor.options.disableDnd),this.addDisposables(this._onDrop,this._onDragStart,t$(this._element,"pointerdown",()=>{this.accessor.doSetGroupActive(this.group)})),this.handler=new iZ(this._element,e,t,!!this.accessor.options.disableDnd),this.dropTarget=new iI(this._element,{acceptedTargetZones:["center"],canDisplayOverlay:(e,i)=>{let n=tj();return!!n&&this.accessor.id===n.viewId||t.model.canDisplayOverlay(e,i,"header_space")},getOverrideTarget:()=>{var e;return null==(e=t.model.dropTargetContainer)?void 0:e.model}}),this.onWillShowOverlay=this.dropTarget.onWillShowOverlay,this.addDisposables(this.handler,this.handler.onDragStart(e=>{this._onDragStart.fire(e)}),this.dropTarget.onDrop(e=>{this._onDrop.fire(e)}),this.dropTarget)}updateDragAndDropState(){this._element.draggable=!this.accessor.options.disableDnd,tQ(this._element,"dv-draggable",!this.accessor.options.disableDnd),this.handler.setDisabled(!!this.accessor.options.disableDnd)}}class iq extends tK{get element(){return this._element}constructor(e){super(),this.scrollableElement=e,this._scrollLeft=0,this._element=document.createElement("div"),this._element.className="dv-scrollable",this._horizontalScrollbar=document.createElement("div"),this._horizontalScrollbar.className="dv-scrollbar-horizontal",this.element.appendChild(e),this.element.appendChild(this._horizontalScrollbar),this.addDisposables(t$(this.element,"wheel",e=>{this._scrollLeft+=e.deltaY*iq.MouseWheelSpeed,this.calculateScrollbarStyles()}),t$(this._horizontalScrollbar,"pointerdown",e=>{e.preventDefault(),tQ(this.element,"dv-scrollable-scrolling",!0);let t=e.clientX,i=this._scrollLeft,n=e=>{let n=e.clientX-t,{clientWidth:o}=this.element,{scrollWidth:r}=this.scrollableElement;this._scrollLeft=i+n/(o/r),this.calculateScrollbarStyles()},o=()=>{tQ(this.element,"dv-scrollable-scrolling",!1),document.removeEventListener("pointermove",n),document.removeEventListener("pointerup",o),document.removeEventListener("pointercancel",o)};document.addEventListener("pointermove",n),document.addEventListener("pointerup",o),document.addEventListener("pointercancel",o)}),t$(this.element,"scroll",()=>{this.calculateScrollbarStyles()}),t$(this.scrollableElement,"scroll",()=>{this._scrollLeft=this.scrollableElement.scrollLeft,this.calculateScrollbarStyles()}),tX(this.element,()=>{tQ(this.element,"dv-scrollable-resizing",!0),this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(()=>{clearTimeout(this._animationTimer),tQ(this.element,"dv-scrollable-resizing",!1)},500),this.calculateScrollbarStyles()}))}calculateScrollbarStyles(){let{clientWidth:e}=this.element,{scrollWidth:t}=this.scrollableElement;if(t>e){let i=e/t*e;this._horizontalScrollbar.style.width=`${i}px`,this._scrollLeft=it(this._scrollLeft,0,this.scrollableElement.scrollWidth-e),this.scrollableElement.scrollLeft=this._scrollLeft;let n=this._scrollLeft/(t-e);this._horizontalScrollbar.style.left=`${(e-i)*n}px`}else this._horizontalScrollbar.style.width="0px",this._horizontalScrollbar.style.left="0px",this._scrollLeft=0}}iq.MouseWheelSpeed=1;class iY extends tK{get showTabsOverflowControl(){return this._showTabsOverflowControl}set showTabsOverflowControl(e){if(this._showTabsOverflowControl!=e&&(this._showTabsOverflowControl=e,e)){let e=new tZ(this._tabsList);this._observerDisposable.value=new tK(e,e.onDidChange(e=>{let t=e.hasScrollX||e.hasScrollY;this.toggleDropdown({reset:!t})}),t$(this._tabsList,"scroll",()=>{this.toggleDropdown({reset:!1})}))}}get element(){return this._element}get panels(){return this._tabs.map(e=>e.value.panel.id)}get size(){return this._tabs.length}get tabs(){return this._tabs.map(e=>e.value)}constructor(e,t,i){if(super(),this.group=e,this.accessor=t,this._observerDisposable=new tJ,this._tabs=[],this.selectedIndex=-1,this._showTabsOverflowControl=!1,this._onTabDragStart=new tB,this.onTabDragStart=this._onTabDragStart.event,this._onDrop=new tB,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onOverflowTabsChange=new tB,this.onOverflowTabsChange=this._onOverflowTabsChange.event,this._tabsList=document.createElement("div"),this._tabsList.className="dv-tabs-container dv-horizontal",this.showTabsOverflowControl=i.showTabsOverflowControl,"native"===t.options.scrollbars)this._element=this._tabsList;else{const e=new iq(this._tabsList);this._element=e.element,this.addDisposables(e)}this.addDisposables(this._onOverflowTabsChange,this._observerDisposable,this._onWillShowOverlay,this._onDrop,this._onTabDragStart,t$(this.element,"pointerdown",e=>{e.defaultPrevented||0===e.button&&this.accessor.doSetGroupActive(this.group)}),O.from(()=>{for(let{value:e,disposable:t}of this._tabs)t.dispose(),e.dispose();this._tabs=[]}))}indexOf(e){return this._tabs.findIndex(t=>t.value.panel.id===e)}isActive(e){return this.selectedIndex>-1&&this._tabs[this.selectedIndex].value===e}setActivePanel(e){let t=0;for(let i of this._tabs){let n=e.id===i.value.panel.id;if(i.value.setActive(n),n){let e=i.value.element,n=e.parentElement;(tn.scrollLeft+n.clientWidth)&&(n.scrollLeft=t)}t+=i.value.element.clientWidth}}openPanel(e,t=this._tabs.length){if(this._tabs.find(t=>t.value.panel.id===e.id))return;let i=new iK(e,this.accessor,this.group);i.setContent(e.view.tab);let n=new tK(i.onDragStart(t=>{this._onTabDragStart.fire({nativeEvent:t,panel:e})}),i.onPointerDown(t=>{if(t.defaultPrevented)return;let n=!this.accessor.options.disableFloatingGroups,o="floating"===this.group.api.location.type&&1===this.size;if(n&&!o&&t.shiftKey){t.preventDefault();let e=this.accessor.getGroupPanel(i.panel.id),{top:n,left:o}=i.element.getBoundingClientRect(),{top:r,left:s}=this.accessor.element.getBoundingClientRect();this.accessor.addFloatingGroup(e,{x:o-s,y:n-r,inDragMode:!0});return}0===t.button&&this.group.activePanel!==e&&this.group.model.openPanel(e)}),i.onDrop(e=>{this._onDrop.fire({event:e.nativeEvent,index:this._tabs.findIndex(e=>e.value===i)})}),i.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new iJ(e,{kind:"tab",panel:this.group.activePanel,api:this.accessor.api,group:this.group,getData:tj}))}));this.addTab({value:i,disposable:n},t)}delete(e){let t=this.indexOf(e),{value:i,disposable:n}=this._tabs.splice(t,1)[0];n.dispose(),i.dispose(),i.element.remove()}addTab(e,t=this._tabs.length){if(t<0||t>this._tabs.length)throw Error("invalid location");this._tabsList.insertBefore(e.value.element,this._tabsList.children[t]),this._tabs=[...this._tabs.slice(0,t),e,...this._tabs.slice(t)],this.selectedIndex<0&&(this.selectedIndex=t)}toggleDropdown(e){let t=e.reset?[]:this._tabs.filter(e=>{var t,i;let n,o;return t=e.value.element,i=this._tabsList,n=t5(t),o=t5(i),!!(n.lefto.left+o.width)}).map(e=>e.value.panel.id);this._onOverflowTabsChange.fire({tabs:t,reset:e.reset})}updateDragAndDropState(){for(let e of this._tabs)e.value.updateDragAndDropState()}}let iQ=e=>{let t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttributeNS(null,"height",e.height),t.setAttributeNS(null,"width",e.width),t.setAttributeNS(null,"viewBox",e.viewbox),t.setAttributeNS(null,"aria-hidden","false"),t.setAttributeNS(null,"focusable","false"),t.classList.add("dv-svg");let i=document.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttributeNS(null,"d",e.path),t.appendChild(i),t},i0=()=>iQ({width:"11",height:"11",viewbox:"0 0 15 25",path:"M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z"});class i1 extends tK{get onTabDragStart(){return this.tabs.onTabDragStart}get panels(){return this.tabs.panels}get size(){return this.tabs.size}get hidden(){return this._hidden}set hidden(e){this._hidden=e,this.element.style.display=e?"none":""}get element(){return this._element}constructor(e,t){super(),this.accessor=e,this.group=t,this._hidden=!1,this.dropdownPart=null,this._overflowTabs=[],this._dropdownDisposable=new tJ,this._onDrop=new tB,this.onDrop=this._onDrop.event,this._onGroupDragStart=new tB,this.onGroupDragStart=this._onGroupDragStart.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._element=document.createElement("div"),this._element.className="dv-tabs-and-actions-container",tQ(this._element,"dv-full-width-single-tab","fullwidth"===this.accessor.options.singleTabMode),this.rightActionsContainer=document.createElement("div"),this.rightActionsContainer.className="dv-right-actions-container",this.leftActionsContainer=document.createElement("div"),this.leftActionsContainer.className="dv-left-actions-container",this.preActionsContainer=document.createElement("div"),this.preActionsContainer.className="dv-pre-actions-container",this.tabs=new iY(t,e,{showTabsOverflowControl:!e.options.disableTabsOverflowList}),this.voidContainer=new iX(this.accessor,this.group),this._element.appendChild(this.preActionsContainer),this._element.appendChild(this.tabs.element),this._element.appendChild(this.leftActionsContainer),this._element.appendChild(this.voidContainer.element),this._element.appendChild(this.rightActionsContainer),this.addDisposables(this.tabs.onDrop(e=>this._onDrop.fire(e)),this.tabs.onWillShowOverlay(e=>this._onWillShowOverlay.fire(e)),e.onDidOptionsChange(()=>{this.tabs.showTabsOverflowControl=!e.options.disableTabsOverflowList}),this.tabs.onOverflowTabsChange(e=>{this.toggleDropdown(e)}),this.tabs,this._onWillShowOverlay,this._onDrop,this._onGroupDragStart,this.voidContainer,this.voidContainer.onDragStart(e=>{this._onGroupDragStart.fire({nativeEvent:e,group:this.group})}),this.voidContainer.onDrop(e=>{this._onDrop.fire({event:e.nativeEvent,index:this.tabs.size})}),this.voidContainer.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new iJ(e,{kind:"header_space",panel:this.group.activePanel,api:this.accessor.api,group:this.group,getData:tj}))}),t$(this.voidContainer.element,"pointerdown",e=>{if(!e.defaultPrevented&&!this.accessor.options.disableFloatingGroups&&e.shiftKey&&"floating"!==this.group.api.location.type){e.preventDefault();let{top:t,left:i}=this.element.getBoundingClientRect(),{top:n,left:o}=this.accessor.element.getBoundingClientRect();this.accessor.addFloatingGroup(this.group,{x:i-o+20,y:t-n+20,inDragMode:!0})}}))}show(){this.hidden||(this.element.style.display="")}hide(){this._element.style.display="none"}setRightActionsElement(e){this.rightActions!==e&&(this.rightActions&&(this.rightActions.remove(),this.rightActions=void 0),e&&(this.rightActionsContainer.appendChild(e),this.rightActions=e))}setLeftActionsElement(e){this.leftActions!==e&&(this.leftActions&&(this.leftActions.remove(),this.leftActions=void 0),e&&(this.leftActionsContainer.appendChild(e),this.leftActions=e))}setPrefixActionsElement(e){this.preActions!==e&&(this.preActions&&(this.preActions.remove(),this.preActions=void 0),e&&(this.preActionsContainer.appendChild(e),this.preActions=e))}isActive(e){return this.tabs.isActive(e)}indexOf(e){return this.tabs.indexOf(e)}setActive(e){}delete(e){this.tabs.delete(e),this.updateClassnames()}setActivePanel(e){this.tabs.setActivePanel(e)}openPanel(e,t=this.tabs.size){this.tabs.openPanel(e,t),this.updateClassnames()}closePanel(e){this.delete(e.id)}updateClassnames(){tQ(this._element,"dv-single-tab",1===this.size)}toggleDropdown(e){let t,i,n,o=e.reset?[]:e.tabs;if(this._overflowTabs=o,this._overflowTabs.length>0&&this.dropdownPart)return void this.dropdownPart.update({tabs:o.length});if(0===this._overflowTabs.length)return void this._dropdownDisposable.dispose();let r=document.createElement("div");r.className="dv-tabs-overflow-dropdown-root";let s=((t=document.createElement("div")).className="dv-tabs-overflow-dropdown-default",(i=document.createElement("span")).textContent="",n=i0(),t.appendChild(n),t.appendChild(i),{element:t,update:e=>{i.textContent=`${e.tabs}`}});s.update({tabs:o.length}),this.dropdownPart=s,r.appendChild(s.element),this.rightActionsContainer.prepend(r),this._dropdownDisposable.value=new tK(O.from(()=>{var e,t;r.remove(),null==(t=null==(e=this.dropdownPart)?void 0:e.dispose)||t.call(e),this.dropdownPart=null}),t$(r,"pointerdown",e=>{e.preventDefault()},{capture:!0}),t$(r,"click",e=>{let t=document.createElement("div");for(let e of(t.style.overflow="auto",t.className="dv-tabs-overflow-container",this.tabs.tabs.filter(e=>this._overflowTabs.includes(e.panel.id)))){let i=this.group.panels.find(t=>t===e.panel),n=i.view.createTabRenderer("headerOverflow").element,o=document.createElement("div");tQ(o,"dv-tab",!0),tQ(o,"dv-active-tab",i.api.isActive),tQ(o,"dv-inactive-tab",!i.api.isActive),o.addEventListener("click",t=>{this.accessor.popupService.close(),t.defaultPrevented||(e.element.scrollIntoView(),e.panel.api.setActive())}),o.appendChild(n),t.appendChild(o)}let i=function(e){let t=e;for(;t&&("auto"===t.style.zIndex||""===t.style.zIndex);)t=t.parentElement;return t}(r);this.accessor.popupService.openPopover(t,{x:e.clientX,y:e.clientY,zIndex:(null==i?void 0:i.style.zIndex)?`calc(${i.style.zIndex} * 2)`:void 0})}))}updateDragAndDropState(){this.tabs.updateDragAndDropState(),this.voidContainer.updateDragAndDropState()}}class i2 extends tW{constructor(e,t,i,n,o){super(),this.nativeEvent=e,this.target=t,this.position=i,this.getData=n,this.group=o}}let i5=["disableAutoResizing","hideBorders","singleTabMode","disableFloatingGroups","floatingGroupBounds","popoutUrl","defaultRenderer","debug","rootOverlayModel","locked","disableDnd","className","noPanelsOverlay","dndEdges","theme","disableTabsOverflowList","scrollbars"];class i3 extends tV{get nativeEvent(){return this.options.nativeEvent}get position(){return this.options.position}get panel(){return this.options.panel}get group(){return this.options.group}get api(){return this.options.api}constructor(e){super(),this.options=e}getData(){return this.options.getData()}}class i4 extends i3{get kind(){return this._kind}constructor(e){super(e),this._kind=e.kind}}class i9 extends tK{get element(){throw Error("dockview: not supported")}get activePanel(){return this._activePanel}get locked(){return this._locked}set locked(e){this._locked=e,tQ(this.container,"dv-locked-groupview","no-drop-target"===e||e)}get isActive(){return this._isGroupActive}get panels(){return this._panels}get size(){return this._panels.length}get isEmpty(){return 0===this._panels.length}get hasWatermark(){return!!(this.watermark&&this.container.contains(this.watermark.element))}get header(){return this.tabsContainer}get isContentFocused(){return!!document.activeElement&&t0(document.activeElement,this.contentContainer.element)}get location(){return this._location}set location(e){switch(this._location=e,tQ(this.container,"dv-groupview-floating",!1),tQ(this.container,"dv-groupview-popout",!1),e.type){case"grid":this.contentContainer.dropTarget.setTargetZones(["top","bottom","left","right","center"]);break;case"floating":this.contentContainer.dropTarget.setTargetZones(["center"]),this.contentContainer.dropTarget.setTargetZones(e?["center"]:["top","bottom","left","right","center"]),tQ(this.container,"dv-groupview-floating",!0);break;case"popout":this.contentContainer.dropTarget.setTargetZones(["center"]),tQ(this.container,"dv-groupview-popout",!0)}this.groupPanel.api._onDidLocationChange.fire({location:this.location})}constructor(e,t,i,n,o){var r;super(),this.container=e,this.accessor=t,this.id=i,this.options=n,this.groupPanel=o,this._isGroupActive=!1,this._locked=!1,this._location={type:"grid"},this.mostRecentlyUsed=[],this._overwriteRenderContainer=null,this._overwriteDropTargetContainer=null,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._width=0,this._height=0,this._panels=[],this._panelDisposables=new Map,this._onMove=new tB,this.onMove=this._onMove.event,this._onDidDrop=new tB,this.onDidDrop=this._onDidDrop.event,this._onWillDrop=new tB,this.onWillDrop=this._onWillDrop.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onTabDragStart=new tB,this.onTabDragStart=this._onTabDragStart.event,this._onGroupDragStart=new tB,this.onGroupDragStart=this._onGroupDragStart.event,this._onDidAddPanel=new tB,this.onDidAddPanel=this._onDidAddPanel.event,this._onDidPanelTitleChange=new tB,this.onDidPanelTitleChange=this._onDidPanelTitleChange.event,this._onDidPanelParametersChange=new tB,this.onDidPanelParametersChange=this._onDidPanelParametersChange.event,this._onDidRemovePanel=new tB,this.onDidRemovePanel=this._onDidRemovePanel.event,this._onDidActivePanelChange=new tB,this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onUnhandledDragOverEvent=new tB,this.onUnhandledDragOverEvent=this._onUnhandledDragOverEvent.event,tQ(this.container,"dv-groupview",!0),this._api=new iA(this.accessor),this.tabsContainer=new i1(this.accessor,this.groupPanel),this.contentContainer=new iB(this.accessor,this),e.append(this.tabsContainer.element,this.contentContainer.element),this.header.hidden=!!n.hideHeader,this.locked=null!=(r=n.locked)&&r,this.addDisposables(this._onTabDragStart,this._onGroupDragStart,this._onWillShowOverlay,this.tabsContainer.onTabDragStart(e=>{this._onTabDragStart.fire(e)}),this.tabsContainer.onGroupDragStart(e=>{this._onGroupDragStart.fire(e)}),this.tabsContainer.onDrop(e=>{this.handleDropEvent("header",e.event,"center",e.index)}),this.contentContainer.onDidFocus(()=>{this.accessor.doSetGroupActive(this.groupPanel)}),this.contentContainer.onDidBlur(()=>{}),this.contentContainer.dropTarget.onDrop(e=>{this.handleDropEvent("content",e.nativeEvent,e.position)}),this.tabsContainer.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(e)}),this.contentContainer.dropTarget.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new iJ(e,{kind:"content",panel:this.activePanel,api:this._api,group:this.groupPanel,getData:tj}))}),this._onMove,this._onDidChange,this._onDidDrop,this._onWillDrop,this._onDidAddPanel,this._onDidRemovePanel,this._onDidActivePanelChange,this._onUnhandledDragOverEvent,this._onDidPanelTitleChange,this._onDidPanelParametersChange)}focusContent(){this.contentContainer.element.focus()}set renderContainer(e){this.panels.forEach(e=>{this.renderContainer.detatch(e)}),this._overwriteRenderContainer=e,this.panels.forEach(e=>{this.rerender(e)})}get renderContainer(){var e;return null!=(e=this._overwriteRenderContainer)?e:this.accessor.overlayRenderContainer}set dropTargetContainer(e){this._overwriteDropTargetContainer=e}get dropTargetContainer(){var e;return null!=(e=this._overwriteDropTargetContainer)?e:this.accessor.rootDropTargetContainer}initialize(){this.options.panels&&this.options.panels.forEach(e=>{this.doAddPanel(e)}),this.options.activePanel&&this.openPanel(this.options.activePanel),this.setActive(this.isActive,!0),this.updateContainer(),this.accessor.options.createRightHeaderActionComponent&&(this._rightHeaderActions=this.accessor.options.createRightHeaderActionComponent(this.groupPanel),this.addDisposables(this._rightHeaderActions),this._rightHeaderActions.init({containerApi:this._api,api:this.groupPanel.api,group:this.groupPanel}),this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element)),this.accessor.options.createLeftHeaderActionComponent&&(this._leftHeaderActions=this.accessor.options.createLeftHeaderActionComponent(this.groupPanel),this.addDisposables(this._leftHeaderActions),this._leftHeaderActions.init({containerApi:this._api,api:this.groupPanel.api,group:this.groupPanel}),this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element)),this.accessor.options.createPrefixHeaderActionComponent&&(this._prefixHeaderActions=this.accessor.options.createPrefixHeaderActionComponent(this.groupPanel),this.addDisposables(this._prefixHeaderActions),this._prefixHeaderActions.init({containerApi:this._api,api:this.groupPanel.api,group:this.groupPanel}),this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element))}rerender(e){this.contentContainer.renderPanel(e,{asActive:!1})}indexOf(e){return this.tabsContainer.indexOf(e.id)}toJSON(){var e;let t={views:this.tabsContainer.panels,activeView:null==(e=this._activePanel)?void 0:e.id,id:this.id};return!1!==this.locked&&(t.locked=this.locked),this.header.hidden&&(t.hideHeader=!0),t}moveToNext(e){let t;e||(e={}),e.panel||(e.panel=this.activePanel);let i=e.panel?this.panels.indexOf(e.panel):-1;if(i0)t=i-1;else{if(e.suppressRoll)return;t=this.panels.length-1}this.openPanel(this.panels[t])}containsPanel(e){return this.panels.includes(e)}init(e){}update(e){}focus(){var e;null==(e=this._activePanel)||e.focus()}openPanel(e,t={}){("number"!=typeof t.index||t.index>this.panels.length)&&(t.index=this.panels.length);let i=!!t.skipSetActive;(e.updateParentGroup(this.groupPanel,{skipSetActive:t.skipSetActive}),this.doAddPanel(e,t.index,{skipSetActive:i}),this._activePanel===e)?this.contentContainer.renderPanel(e,{asActive:!0}):(i||this.doSetActivePanel(e),t.skipSetGroupActive||this.accessor.doSetGroupActive(this.groupPanel),t.skipSetActive||this.updateContainer())}removePanel(e,t={skipSetActive:!1}){let i="string"==typeof e?e:e.id,n=this._panels.find(e=>e.id===i);if(!n)throw Error("invalid operation");return this._removePanel(n,t)}closeAllPanels(){if(this.panels.length>0)for(let e of[...this.panels])this.doClose(e);else this.accessor.removeGroup(this.groupPanel)}closePanel(e){this.doClose(e)}doClose(e){let t=1===this.panels.length&&1===this.accessor.groups.length;this.accessor.removePanel(e,t&&"emptyGroup"===this.accessor.options.noPanelsOverlay?{removeEmptyGroup:!1}:void 0)}isPanelActive(e){return this._activePanel===e}updateActions(e){this.tabsContainer.setRightActionsElement(e)}setActive(e,t=!1){(t||this.isActive!==e)&&(this._isGroupActive=e,tQ(this.container,"dv-active-group",e),tQ(this.container,"dv-inactive-group",!e),this.tabsContainer.setActive(this.isActive),!this._activePanel&&this.panels.length>0&&this.doSetActivePanel(this.panels[0]),this.updateContainer())}layout(e,t){var i;this._width=e,this._height=t,this.contentContainer.layout(this._width,this._height),(null==(i=this._activePanel)?void 0:i.layout)&&this._activePanel.layout(this._width,this._height)}_removePanel(e,t){let i=this._activePanel===e;if(this.doRemovePanel(e),i&&this.panels.length>0){let e=this.mostRecentlyUsed[0];this.openPanel(e,{skipSetActive:t.skipSetActive,skipSetGroupActive:t.skipSetActiveGroup})}return this._activePanel&&0===this.panels.length&&this.doSetActivePanel(void 0),t.skipSetActive||this.updateContainer(),e}doRemovePanel(e){let t=this.panels.indexOf(e);if(this._activePanel===e&&this.contentContainer.closePanel(),this.tabsContainer.delete(e.id),this._panels.splice(t,1),this.mostRecentlyUsed.includes(e)){let t=this.mostRecentlyUsed.indexOf(e);this.mostRecentlyUsed.splice(t,1)}let i=this._panelDisposables.get(e.id);i&&(i.dispose(),this._panelDisposables.delete(e.id)),this._onDidRemovePanel.fire({panel:e})}doAddPanel(e,t=this.panels.length,i={skipSetActive:!1}){let n=this._panels.indexOf(e);this.tabsContainer.show(),this.contentContainer.show(),this.tabsContainer.openPanel(e,t),i.skipSetActive||this.contentContainer.openPanel(e),n>-1||(this.updateMru(e),this.panels.splice(t,0,e),this._panelDisposables.set(e.id,new tK(e.api.onDidTitleChange(e=>this._onDidPanelTitleChange.fire(e)),e.api.onDidParametersChange(e=>this._onDidPanelParametersChange.fire(e)))),this._onDidAddPanel.fire({panel:e}))}doSetActivePanel(e){this._activePanel!==e&&(this._activePanel=e,e&&(this.tabsContainer.setActivePanel(e),this.contentContainer.openPanel(e),e.layout(this._width,this._height),this.updateMru(e),this.contentContainer.refreshFocusState(),this._onDidActivePanelChange.fire({panel:e})))}updateMru(e){this.mostRecentlyUsed.includes(e)&&this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(e),1),this.mostRecentlyUsed=[e,...this.mostRecentlyUsed]}updateContainer(){var e,t;if(this.panels.forEach(e=>e.runEvents()),this.isEmpty&&!this.watermark){let e=this.accessor.createWatermarkComponent();e.init({containerApi:this._api,group:this.groupPanel}),this.watermark=e,t$(this.watermark.element,"pointerdown",()=>{this.isActive||this.accessor.doSetGroupActive(this.groupPanel)}),this.contentContainer.element.appendChild(this.watermark.element)}!this.isEmpty&&this.watermark&&(this.watermark.element.remove(),null==(t=(e=this.watermark).dispose)||t.call(e),this.watermark=void 0)}canDisplayOverlay(e,t,i){let n=new i2(e,i,t,tj,this.accessor.getPanel(this.id));return this._onUnhandledDragOverEvent.fire(n),n.isAccepted}handleDropEvent(e,t,i,n){if("no-drop-target"===this.locked)return;let o="number"==typeof n?this.panels[n]:void 0,r=new i4({nativeEvent:t,position:i,panel:o,getData:()=>tj(),kind:function(){switch(e){case"header":return"number"==typeof n?"tab":"header_space";case"content":return"content"}}(),group:this.groupPanel,api:this._api});if(this._onWillDrop.fire(r),r.defaultPrevented)return;let s=tj();if(s&&s.viewId===this.accessor.id){if("content"===e&&s.groupId===this.id&&("center"===i||null===s.panelId)||"header"===e&&s.groupId===this.id&&null===s.panelId)return;if(null===s.panelId){let{groupId:e}=s;this._onMove.fire({target:i,groupId:e,index:n});return}if(-1!==this.tabsContainer.indexOf(s.panelId)&&1===this.tabsContainer.size)return;let{groupId:t,panelId:o}=s;if(this.id===t&&!i&&this.tabsContainer.indexOf(o)===n)return;this._onMove.fire({target:i,groupId:s.groupId,itemId:s.panelId,index:n})}else this._onDidDrop.fire(new i3({nativeEvent:t,position:i,panel:o,getData:()=>tj(),group:this.groupPanel,api:this._api}))}updateDragAndDropState(){this.tabsContainer.updateDragAndDropState()}dispose(){var e,t,i;for(let n of(super.dispose(),null==(e=this.watermark)||e.element.remove(),null==(i=null==(t=this.watermark)?void 0:t.dispose)||i.call(t),this.watermark=void 0,this.panels))n.dispose();this.tabsContainer.dispose(),this.contentContainer.dispose()}}class i6 extends ij{constructor(e,t,i){super(e,t),this._onDidConstraintsChangeInternal=new tB,this.onDidConstraintsChangeInternal=this._onDidConstraintsChangeInternal.event,this._onDidConstraintsChange=new tB,this.onDidConstraintsChange=this._onDidConstraintsChange.event,this._onDidSizeChange=new tB,this.onDidSizeChange=this._onDidSizeChange.event,this.addDisposables(this._onDidConstraintsChangeInternal,this._onDidConstraintsChange,this._onDidSizeChange),i&&this.initialize(i)}setConstraints(e){this._onDidConstraintsChangeInternal.fire(e)}setSize(e){this._onDidSizeChange.fire(e)}}class i8 extends iW{get priority(){return this._priority}get snap(){return this._snap}get minimumWidth(){return this.__minimumWidth()}get minimumHeight(){return this.__minimumHeight()}get maximumHeight(){return this.__maximumHeight()}get maximumWidth(){return this.__maximumWidth()}__minimumWidth(){let e="function"==typeof this._minimumWidth?this._minimumWidth():this._minimumWidth;return e!==this._evaluatedMinimumWidth&&(this._evaluatedMinimumWidth=e,this.updateConstraints()),e}__maximumWidth(){let e="function"==typeof this._maximumWidth?this._maximumWidth():this._maximumWidth;return e!==this._evaluatedMaximumWidth&&(this._evaluatedMaximumWidth=e,this.updateConstraints()),e}__minimumHeight(){let e="function"==typeof this._minimumHeight?this._minimumHeight():this._minimumHeight;return e!==this._evaluatedMinimumHeight&&(this._evaluatedMinimumHeight=e,this.updateConstraints()),e}__maximumHeight(){let e="function"==typeof this._maximumHeight?this._maximumHeight():this._maximumHeight;return e!==this._evaluatedMaximumHeight&&(this._evaluatedMaximumHeight=e,this.updateConstraints()),e}get isActive(){return this.api.isActive}get isVisible(){return this.api.isVisible}constructor(e,t,i,n){super(e,t,null!=n?n:new i6(e,t)),this._evaluatedMinimumWidth=0,this._evaluatedMaximumWidth=Number.MAX_SAFE_INTEGER,this._evaluatedMinimumHeight=0,this._evaluatedMaximumHeight=Number.MAX_SAFE_INTEGER,this._minimumWidth=0,this._minimumHeight=0,this._maximumWidth=Number.MAX_SAFE_INTEGER,this._maximumHeight=Number.MAX_SAFE_INTEGER,this._snap=!1,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,"number"==typeof(null==i?void 0:i.minimumWidth)&&(this._minimumWidth=i.minimumWidth),"number"==typeof(null==i?void 0:i.maximumWidth)&&(this._maximumWidth=i.maximumWidth),"number"==typeof(null==i?void 0:i.minimumHeight)&&(this._minimumHeight=i.minimumHeight),"number"==typeof(null==i?void 0:i.maximumHeight)&&(this._maximumHeight=i.maximumHeight),this.api.initialize(this),this.addDisposables(this.api.onWillVisibilityChange(e=>{let{isVisible:t}=e,{accessor:i}=this._params;i.setVisible(this,t)}),this.api.onActiveChange(()=>{let{accessor:e}=this._params;e.doSetGroupActive(this)}),this.api.onDidConstraintsChangeInternal(e=>{("number"==typeof e.minimumWidth||"function"==typeof e.minimumWidth)&&(this._minimumWidth=e.minimumWidth),("number"==typeof e.minimumHeight||"function"==typeof e.minimumHeight)&&(this._minimumHeight=e.minimumHeight),("number"==typeof e.maximumWidth||"function"==typeof e.maximumWidth)&&(this._maximumWidth=e.maximumWidth),("number"==typeof e.maximumHeight||"function"==typeof e.maximumHeight)&&(this._maximumHeight=e.maximumHeight)}),this.api.onDidSizeChange(e=>{this._onDidChange.fire({height:e.height,width:e.width})}),this._onDidChange)}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}init(e){e.maximumHeight&&(this._maximumHeight=e.maximumHeight),e.minimumHeight&&(this._minimumHeight=e.minimumHeight),e.maximumWidth&&(this._maximumWidth=e.maximumWidth),e.minimumWidth&&(this._minimumWidth=e.minimumWidth),this._priority=e.priority,this._snap=!!e.snap,super.init(e),"boolean"==typeof e.isVisible&&this.setVisible(e.isVisible)}updateConstraints(){this.api._onDidConstraintsChange.fire({minimumWidth:this._evaluatedMinimumWidth,maximumWidth:this._evaluatedMaximumWidth,minimumHeight:this._evaluatedMinimumHeight,maximumHeight:this._evaluatedMaximumHeight})}toJSON(){let e=super.toJSON(),t=e=>e===Number.MAX_SAFE_INTEGER?void 0:e,i=e=>e<=0?void 0:e;return Object.assign(Object.assign({},e),{minimumHeight:i(this.minimumHeight),maximumHeight:t(this.maximumHeight),minimumWidth:i(this.minimumWidth),maximumWidth:t(this.maximumWidth),snap:this.snap,priority:this.priority})}}let i7="dockview: DockviewGroupPanelApiImpl not initialized";class ne extends i6{get location(){if(!this._group)throw Error(i7);return this._group.model.location}constructor(e,t){super(e,"__dockviewgroup__"),this.accessor=t,this._onDidLocationChange=new tB,this.onDidLocationChange=this._onDidLocationChange.event,this._onDidActivePanelChange=new tB,this.onDidActivePanelChange=this._onDidActivePanelChange.event,this.addDisposables(this._onDidLocationChange,this._onDidActivePanelChange,this._onDidVisibilityChange.event(e=>{e.isVisible&&this._pendingSize&&(super.setSize(this._pendingSize),this._pendingSize=void 0)}))}setSize(e){this._pendingSize=Object.assign({},e),super.setSize(e)}close(){if(this._group)return this.accessor.removeGroup(this._group)}getWindow(){return"popout"===this.location.type?this.location.getWindow():window}moveTo(e){var t,i,n,o;if(!this._group)throw Error(i7);let r=null!=(t=e.group)?t:this.accessor.addGroup({direction:function(e){switch(e){case"top":return"above";case"bottom":return"below";case"left":return"left";case"right":return"right";case"center":return"within";default:throw Error(`invalid position '${e}'`)}}(null!=(i=e.position)?i:"right"),skipSetActive:null!=(n=e.skipSetActive)&&n});this.accessor.moveGroupOrPanel({from:{groupId:this._group.id},to:{group:r,position:e.group&&null!=(o=e.position)?o:"center",index:e.index},skipSetActive:e.skipSetActive})}maximize(){if(!this._group)throw Error(i7);"grid"===this.location.type&&this.accessor.maximizeGroup(this._group)}isMaximized(){if(!this._group)throw Error(i7);return this.accessor.isMaximizedGroup(this._group)}exitMaximized(){if(!this._group)throw Error(i7);this.isMaximized()&&this.accessor.exitMaximizedGroup()}initialize(e){this._group=e}}class nt extends i8{get minimumWidth(){var e;if("number"==typeof this._explicitConstraints.minimumWidth)return this._explicitConstraints.minimumWidth;let t=null==(e=this.activePanel)?void 0:e.minimumWidth;return"number"==typeof t?t:super.__minimumWidth()}get minimumHeight(){var e;if("number"==typeof this._explicitConstraints.minimumHeight)return this._explicitConstraints.minimumHeight;let t=null==(e=this.activePanel)?void 0:e.minimumHeight;return"number"==typeof t?t:super.__minimumHeight()}get maximumWidth(){var e;if("number"==typeof this._explicitConstraints.maximumWidth)return this._explicitConstraints.maximumWidth;let t=null==(e=this.activePanel)?void 0:e.maximumWidth;return"number"==typeof t?t:super.__maximumWidth()}get maximumHeight(){var e;if("number"==typeof this._explicitConstraints.maximumHeight)return this._explicitConstraints.maximumHeight;let t=null==(e=this.activePanel)?void 0:e.maximumHeight;return"number"==typeof t?t:super.__maximumHeight()}get panels(){return this._model.panels}get activePanel(){return this._model.activePanel}get size(){return this._model.size}get model(){return this._model}get locked(){return this._model.locked}set locked(e){this._model.locked=e}get header(){return this._model.header}constructor(e,t,i){var n,o,r,s,a,l;super(t,"groupview_default",{minimumHeight:null!=(o=null==(n=i.constraints)?void 0:n.minimumHeight)?o:100,minimumWidth:null!=(s=null==(r=i.constraints)?void 0:r.minimumWidth)?s:100,maximumHeight:null==(a=i.constraints)?void 0:a.maximumHeight,maximumWidth:null==(l=i.constraints)?void 0:l.maximumWidth},new ne(t,e)),this._explicitConstraints={},this.api.initialize(this),this._model=new i9(this.element,e,t,i,this),this.addDisposables(this.model.onDidActivePanelChange(e=>{this.api._onDidActivePanelChange.fire(e)}),this.api.onDidConstraintsChangeInternal(e=>{void 0!==e.minimumWidth&&(this._explicitConstraints.minimumWidth="function"==typeof e.minimumWidth?e.minimumWidth():e.minimumWidth),void 0!==e.minimumHeight&&(this._explicitConstraints.minimumHeight="function"==typeof e.minimumHeight?e.minimumHeight():e.minimumHeight),void 0!==e.maximumWidth&&(this._explicitConstraints.maximumWidth="function"==typeof e.maximumWidth?e.maximumWidth():e.maximumWidth),void 0!==e.maximumHeight&&(this._explicitConstraints.maximumHeight="function"==typeof e.maximumHeight?e.maximumHeight():e.maximumHeight)}))}focus(){this.api.isActive||this.api.setActive(),super.focus()}initialize(){this._model.initialize()}setActive(e){super.setActive(e),this.model.setActive(e)}layout(e,t){super.layout(e,t),this.model.layout(e,t)}getComponent(){return this._model}toJSON(){return this.model.toJSON()}}let ni={name:"abyss",className:"dockview-theme-abyss"};class nn extends i6{get location(){return this.group.api.location}get title(){return this.panel.title}get isGroupActive(){return this.group.isActive}get renderer(){return this.panel.renderer}set group(e){let t=this._group;this._group!==e&&(this._group=e,this._onDidGroupChange.fire({}),this.setupGroupEventListeners(t),this._onDidLocationChange.fire({location:this.group.api.location}))}get group(){return this._group}get tabComponent(){return this._tabComponent}constructor(e,t,i,n,o){super(e.id,n),this.panel=e,this.accessor=i,this._onDidTitleChange=new tB,this.onDidTitleChange=this._onDidTitleChange.event,this._onDidActiveGroupChange=new tB,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._onDidGroupChange=new tB,this.onDidGroupChange=this._onDidGroupChange.event,this._onDidRendererChange=new tB,this.onDidRendererChange=this._onDidRendererChange.event,this._onDidLocationChange=new tB,this.onDidLocationChange=this._onDidLocationChange.event,this.groupEventsDisposable=new tJ,this._tabComponent=o,this.initialize(e),this._group=t,this.setupGroupEventListeners(),this.addDisposables(this.groupEventsDisposable,this._onDidRendererChange,this._onDidTitleChange,this._onDidGroupChange,this._onDidActiveGroupChange,this._onDidLocationChange)}getWindow(){return this.group.api.getWindow()}moveTo(e){var t,i;this.accessor.moveGroupOrPanel({from:{groupId:this._group.id,panelId:this.panel.id},to:{group:null!=(t=e.group)?t:this._group,position:e.group&&null!=(i=e.position)?i:"center",index:e.index},skipSetActive:e.skipSetActive})}setTitle(e){this.panel.setTitle(e)}setRenderer(e){this.panel.setRenderer(e)}close(){this.group.model.closePanel(this.panel)}maximize(){this.group.api.maximize()}isMaximized(){return this.group.api.isMaximized()}exitMaximized(){this.group.api.exitMaximized()}setupGroupEventListeners(e){var t;let i=null!=(t=null==e?void 0:e.isActive)&&t;this.groupEventsDisposable.value=new tK(this.group.api.onDidVisibilityChange(e=>{let t=!e.isVisible&&this.isVisible,i=e.isVisible&&!this.isVisible,n=this.group.model.isPanelActive(this.panel);(t||i&&n)&&this._onDidVisibilityChange.fire(e)}),this.group.api.onDidLocationChange(e=>{this.group===this.panel.group&&this._onDidLocationChange.fire(e)}),this.group.api.onDidActiveChange(()=>{this.group===this.panel.group&&i!==this.isGroupActive&&(i=this.isGroupActive,this._onDidActiveGroupChange.fire({isActive:this.isGroupActive}))}))}}class no extends tK{get params(){return this._params}get title(){return this._title}get group(){return this._group}get renderer(){var e;return null!=(e=this._renderer)?e:this.accessor.renderer}get minimumWidth(){return this._minimumWidth}get minimumHeight(){return this._minimumHeight}get maximumWidth(){return this._maximumWidth}get maximumHeight(){return this._maximumHeight}constructor(e,t,i,n,o,r,s,a){super(),this.id=e,this.accessor=n,this.containerApi=o,this.view=s,this._renderer=a.renderer,this._group=r,this._minimumWidth=a.minimumWidth,this._minimumHeight=a.minimumHeight,this._maximumWidth=a.maximumWidth,this._maximumHeight=a.maximumHeight,this.api=new nn(this,this._group,n,t,i),this.addDisposables(this.api.onActiveChange(()=>{n.setActivePanel(this)}),this.api.onDidSizeChange(e=>{this.group.api.setSize(e)}),this.api.onDidRendererChange(()=>{this.group.model.rerender(this)}))}init(e){this._params=e.params,this.view.init(Object.assign(Object.assign({},e),{api:this.api,containerApi:this.containerApi})),this.setTitle(e.title)}focus(){let e=new iT;this.api._onWillFocus.fire(e),!e.defaultPrevented&&(this.api.isActive||this.api.setActive())}toJSON(){return{id:this.id,contentComponent:this.view.contentComponent,tabComponent:this.view.tabComponent,params:Object.keys(this._params||{}).length>0?this._params:void 0,title:this.title,renderer:this._renderer,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,minimumWidth:this._minimumWidth,maximumWidth:this._maximumWidth}}setTitle(e){e!==this.title&&(this._title=e,this.api._onDidTitleChange.fire({title:e}))}setRenderer(e){e!==this.renderer&&(this._renderer=e,this.api._onDidRendererChange.fire({renderer:e}))}update(e){var t;for(let i of(this._params=Object.assign(Object.assign({},null!=(t=this._params)?t:{}),e.params),Object.keys(e.params)))void 0===e.params[i]&&delete this._params[i];this.view.update({params:this._params})}updateFromStateModel(e){var t,i,n;this._maximumHeight=e.maximumHeight,this._minimumHeight=e.minimumHeight,this._maximumWidth=e.maximumWidth,this._minimumWidth=e.minimumWidth,this.update({params:null!=(t=e.params)?t:{}}),this.setTitle(null!=(i=e.title)?i:this.id),this.setRenderer(null!=(n=e.renderer)?n:this.accessor.renderer)}updateParentGroup(e,t){this._group=e,this.api.group=this._group;let i=this._group.model.isPanelActive(this),n=this.group.api.isActive&&i;(null==t?void 0:t.skipSetActive)||this.api.isActive===n||this.api._onDidActiveChange.fire({isActive:this.group.api.isActive&&i}),this.api.isVisible!==i&&this.api._onDidVisibilityChange.fire({isVisible:i})}runEvents(){let e=this._group.model.isPanelActive(this),t=this.group.api.isActive&&e;this.api.isActive!==t&&this.api._onDidActiveChange.fire({isActive:this.group.api.isActive&&e}),this.api.isVisible!==e&&this.api._onDidVisibilityChange.fire({isVisible:e})}layout(e,t){this.api._onDidDimensionChange.fire({width:e,height:t}),this.view.layout(e,t)}dispose(){this.api.dispose(),this.view.dispose()}}class nr extends tK{get element(){return this._element}constructor(){super(),this._element=document.createElement("div"),this._element.className="dv-default-tab",this._content=document.createElement("div"),this._content.className="dv-default-tab-content",this.action=document.createElement("div"),this.action.className="dv-default-tab-action",this.action.appendChild(iQ({width:"11",height:"11",viewbox:"0 0 28 28",path:"M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z"})),this._element.appendChild(this._content),this._element.appendChild(this.action),this.render()}init(e){this._title=e.title,this.addDisposables(e.api.onDidTitleChange(e=>{this._title=e.title,this.render()}),t$(this.action,"pointerdown",e=>{e.preventDefault()}),t$(this.action,"click",t=>{t.defaultPrevented||(t.preventDefault(),e.api.close())})),this.render()}render(){var e;this._content.textContent!==this._title&&(this._content.textContent=null!=(e=this._title)?e:"")}}class ns{get content(){return this._content}get tab(){return this._tab}constructor(e,t,i,n){this.accessor=e,this.id=t,this.contentComponent=i,this.tabComponent=n,this._content=this.createContentComponent(this.id,i),this._tab=this.createTabComponent(this.id,n)}createTabRenderer(e){var t;let i=this.createTabComponent(this.id,this.tabComponent);return this._params&&i.init(Object.assign(Object.assign({},this._params),{tabLocation:e})),this._updateEvent&&(null==(t=i.update)||t.call(i,this._updateEvent)),i}init(e){this._params=e,this.content.init(e),this.tab.init(Object.assign(Object.assign({},e),{tabLocation:"header"}))}layout(e,t){var i,n;null==(n=(i=this.content).layout)||n.call(i,e,t)}update(e){var t,i,n,o;this._updateEvent=e,null==(i=(t=this.content).update)||i.call(t,e),null==(o=(n=this.tab).update)||o.call(n,e)}dispose(){var e,t,i,n;null==(t=(e=this.content).dispose)||t.call(e),null==(n=(i=this.tab).dispose)||n.call(i)}createContentComponent(e,t){return this.accessor.options.createComponent({id:e,name:t})}createTabComponent(e,t){let i=null!=t?t:this.accessor.options.defaultTabComponent;if(i){if(this.accessor.options.createTabComponent){let t=this.accessor.options.createTabComponent({id:e,name:i});return t||new nr}console.warn(`dockview: tabComponent '${t}' was not found. falling back to the default tab.`)}return new nr}}class na{constructor(e){this.accessor=e}fromJSON(e,t){var i,n;let o=e.id,r=e.params,s=e.title,a=e.view,l=a?a.content.id:null!=(i=e.contentComponent)?i:"unknown",d=a?null==(n=a.tab)?void 0:n.id:e.tabComponent,h=new ns(this.accessor,o,l,d),u=new no(o,l,d,this.accessor,new iA(this.accessor),t,h,{renderer:e.renderer,minimumWidth:e.minimumWidth,minimumHeight:e.minimumHeight,maximumWidth:e.maximumWidth,maximumHeight:e.maximumHeight});return u.init({title:null!=s?s:o,params:null!=r?r:{}}),u}}class nl extends tK{get element(){return this._element}constructor(){super(),this._element=document.createElement("div"),this._element.className="dv-watermark"}init(e){}}let nd=new class{constructor(){this._orderedList=[]}push(e){this._orderedList=[...this._orderedList.filter(t=>t!==e),e],this.update()}destroy(e){this._orderedList=this._orderedList.filter(t=>t!==e),this.update()}update(){for(let e=0;e{let e=null,t=t3();i.value=new tK({dispose:()=>{t.release()}},t$(window,"pointermove",t=>{let i=this.options.container.getBoundingClientRect(),n=t.clientX-i.left,o=t.clientY-i.top;tQ(this._element,"dv-resize-container-dragging",!0);let r=this._element.getBoundingClientRect();null===e&&(e={x:t.clientX-r.left,y:t.clientY-r.top});let s=Math.max(0,this.getMinimumWidth(r.width)),a=Math.max(0,this.getMinimumHeight(r.height)),l=it(o-e.y,-a,Math.max(0,i.height-r.height+a)),d=it(e.y-o+i.height-r.height,-a,Math.max(0,i.height-r.height+a)),h=it(n-e.x,-s,Math.max(0,i.width-r.width+s)),u=it(e.x-n+i.width-r.width,-s,Math.max(0,i.width-r.width+s)),c={};l<=d?c.top=l:c.bottom=d,h<=u?c.left=h:c.right=u,this.setBounds(c)}),t$(window,"pointerup",()=>{tQ(this._element,"dv-resize-container-dragging",!1),i.dispose(),this._onDidChangeEnd.fire()}))};this.addDisposables(i,t$(e,"pointerdown",e=>{e.defaultPrevented?e.preventDefault():e[t2]||n()}),t$(this.options.content,"pointerdown",e=>{e.defaultPrevented||!e[t2]&&e.shiftKey&&n()}),t$(this.options.content,"pointerdown",()=>{nd.push(this._element)},!0)),t.inDragMode&&n()}setupResize(e){let t=document.createElement("div");t.className=`dv-resize-handle-${e}`,this._element.appendChild(t);let i=new tJ;this.addDisposables(i,t$(t,"pointerdown",t=>{t.preventDefault();let n=null,o=t3();i.value=new tK(t$(window,"pointermove",t=>{let i,o,r,s,a,l,d=this.options.container.getBoundingClientRect(),h=this._element.getBoundingClientRect(),u=t.clientY-d.top,c=t.clientX-d.left;null===n&&(n={originalY:u,originalHeight:h.height,originalX:c,originalWidth:h.width});let p=()=>{i=it(u,0,n.originalY+n.originalHeight>d.height?Math.max(0,d.height-nh.MINIMUM_HEIGHT):Math.max(0,n.originalY+n.originalHeight-nh.MINIMUM_HEIGHT)),r=n.originalY+n.originalHeight-i,o=d.height-i-r},m=()=>{let e=(i=n.originalY-n.originalHeight)<0&&"number"==typeof this.options.minimumInViewportHeight?-i+this.options.minimumInViewportHeight:nh.MINIMUM_HEIGHT,t=d.height-Math.max(0,i);r=it(u-i,e,t),o=d.height-i-r},f=()=>{s=it(c,0,n.originalX+n.originalWidth>d.width?Math.max(0,d.width-nh.MINIMUM_WIDTH):Math.max(0,n.originalX+n.originalWidth-nh.MINIMUM_WIDTH)),l=n.originalX+n.originalWidth-s,a=d.width-s-l},g=()=>{let e=(s=n.originalX-n.originalWidth)<0&&"number"==typeof this.options.minimumInViewportWidth?-s+this.options.minimumInViewportWidth:nh.MINIMUM_WIDTH,t=d.width-Math.max(0,s);l=it(c-s,e,t),a=d.width-s-l};switch(e){case"top":p();break;case"bottom":m();break;case"left":f();break;case"right":g();break;case"topleft":p(),f();break;case"topright":p(),g();break;case"bottomleft":m(),f();break;case"bottomright":m(),g()}let v={};i<=o?v.top=i:v.bottom=o,s<=a?v.left=s:v.right=a,v.height=r,v.width=l,this.setBounds(v)}),{dispose:()=>{o.release()}},t$(window,"pointerup",()=>{i.dispose(),this._onDidChangeEnd.fire()}))}))}getMinimumWidth(e){return"number"==typeof this.options.minimumInViewportWidth?e-this.options.minimumInViewportWidth:0}getMinimumHeight(e){return"number"==typeof this.options.minimumInViewportHeight?e-this.options.minimumInViewportHeight:0}dispose(){nd.destroy(this._element),this._element.remove(),super.dispose()}}nh.MINIMUM_HEIGHT=20,nh.MINIMUM_WIDTH=20;class nu extends tK{constructor(e,t){super(),this.group=e,this.overlay=t,this.addDisposables(t)}position(e){this.overlay.setBounds(e)}}class nc{constructor(){this.cache=new Map,this.currentFrameId=0,this.rafId=null}getPosition(e){let t=this.cache.get(e);if(t&&t.frameId===this.currentFrameId)return t.rect;this.scheduleFrameUpdate();let i=t5(e);return this.cache.set(e,{rect:i,frameId:this.currentFrameId}),i}invalidate(){this.currentFrameId++}scheduleFrameUpdate(){this.rafId||(this.rafId=requestAnimationFrame(()=>{this.currentFrameId++,this.rafId=null}))}}class np extends tK{constructor(e,t){super(),this.element=e,this.accessor=t,this.map={},this._disposed=!1,this.positionCache=new nc,this.pendingUpdates=new Set,this.addDisposables(O.from(()=>{for(let e of Object.values(this.map))e.disposable.dispose(),e.destroy.dispose();this._disposed=!0}))}updateAllPositions(){if(!this._disposed)for(let e of(this.positionCache.invalidate(),Object.values(this.map)))e.panel.api.isVisible&&e.resize&&e.resize()}detatch(e){if(this.map[e.api.id]){let{disposable:t,destroy:i}=this.map[e.api.id];return t.dispose(),i.dispose(),delete this.map[e.api.id],!0}return!1}attach(e){let{panel:t,referenceContainer:i}=e;if(!this.map[t.api.id]){let e,i=((e=document.createElement("div")).tabIndex=-1,e);i.className="dv-render-overlay",this.map[t.api.id]={panel:t,disposable:O.NONE,destroy:O.NONE,element:i}}let n=this.map[t.api.id].element;t.view.content.element.parentElement!==n&&n.appendChild(t.view.content.element),n.parentElement!==this.element&&this.element.appendChild(n);let o=()=>{let e=t.api.id;this.pendingUpdates.has(e)||(this.pendingUpdates.add(e),requestAnimationFrame(()=>{if(this.pendingUpdates.delete(e),this.isDisposed||!this.map[e])return;let o=this.positionCache.getPosition(i.element),r=this.positionCache.getPosition(this.element),s=o.left-r.left,a=o.top-r.top,l=o.width,d=o.height;n.style.left=`${s}px`,n.style.top=`${a}px`,n.style.width=`${l}px`,n.style.height=`${d}px`,tQ(n,"dv-render-overlay-float","floating"===t.group.api.location.type)}))},r=()=>{t.api.isVisible&&(this.positionCache.invalidate(),o()),n.style.display=t.api.isVisible?"":"none"},s=new tJ,a=()=>{"floating"===t.api.location.type?queueMicrotask(()=>{let e=this.accessor.floatingGroups.find(e=>e.group===t.api.group);if(!e)return;let i=e.overlay.element,o=()=>{let e=Number(i.getAttribute("aria-level"));n.style.zIndex=`calc(var(--dv-overlay-z-index, 999) + ${2*e+1})`},r=new MutationObserver(()=>{o()});s.value=O.from(()=>r.disconnect()),r.observe(i,{attributeFilter:["aria-level"],attributes:!0}),o()}):n.style.zIndex=""},l=new tK(s,new iz(n,{onDragEnd:e=>{i.dropTarget.dnd.onDragEnd(e)},onDragEnter:e=>{i.dropTarget.dnd.onDragEnter(e)},onDragLeave:e=>{i.dropTarget.dnd.onDragLeave(e)},onDrop:e=>{i.dropTarget.dnd.onDrop(e)},onDragOver:e=>{i.dropTarget.dnd.onDragOver(e)}}),t.api.onDidVisibilityChange(()=>{r()}),t.api.onDidDimensionsChange(()=>{t.api.isVisible&&o()}),t.api.onDidLocationChange(()=>{a()}));return this.map[t.api.id].destroy=O.from(()=>{var e;t.view.content.element.parentElement===n&&n.removeChild(t.view.content.element),null==(e=n.parentElement)||e.removeChild(n)}),a(),queueMicrotask(()=>{this.isDisposed||r()}),this.map[t.api.id].disposable.dispose(),this.map[t.api.id].disposable=l,this.map[t.api.id].resize=o,n}}class nm extends tK{get window(){var e,t;return null!=(t=null==(e=this._window)?void 0:e.value)?t:null}constructor(e,t,i){super(),this.target=e,this.className=t,this.options=i,this._onWillClose=new tB,this.onWillClose=this._onWillClose.event,this._onDidClose=new tB,this.onDidClose=this._onDidClose.event,this._window=null,this.addDisposables(this._onWillClose,this._onDidClose,{dispose:()=>{this.close()}})}dimensions(){if(!this._window)return null;let e=this._window.value.screenX,t=this._window.value.screenY;return{top:t,left:e,width:this._window.value.innerWidth,height:this._window.value.innerHeight}}close(){var e,t;this._window&&(this._onWillClose.fire(),null==(t=(e=this.options).onWillClose)||t.call(e,{id:this.target,window:this._window.value}),this._window.disposable.dispose(),this._window=null,this._onDidClose.fire())}open(){var e,t,i,n,o,r;return i=this,n=void 0,o=void 0,r=function*(){if(this._window)throw Error("instance of popout window is already open");let i=`${this.options.url}`,n=Object.entries({top:this.options.top,left:this.options.left,width:this.options.width,height:this.options.height}).map(([e,t])=>`${e}=${t}`).join(","),o=window.open(i,this.target,n);if(!o)return null;let r=new tK;this._window={value:o,disposable:r},r.addDisposables(O.from(()=>{o.close()}),t$(window,"beforeunload",()=>{this.close()}));let s=this.createPopoutWindowContainer();return this.className&&s.classList.add(this.className),null==(t=(e=this.options).onDidOpen)||t.call(e,{id:this.target,window:o}),new Promise((e,t)=>{o.addEventListener("unload",e=>{}),o.addEventListener("load",()=>{try{let t=o.document;t.title=document.title,t.body.appendChild(s),function(e,t){for(let i of Array.from(t)){if(i.href){let t=e.createElement("link");t.href=i.href,t.type=i.type,t.rel="stylesheet",e.head.appendChild(t)}let t=[];try{i.cssRules&&(t=Array.from(i.cssRules).map(e=>e.cssText))}catch(e){}for(let i of t){let t=e.createElement("style");t.appendChild(e.createTextNode(i)),e.head.appendChild(t)}}}(t,window.document.styleSheets),t$(o,"beforeunload",()=>{this.close()}),e(s)}catch(e){t(e)}})})},new(o||(o=Promise))(function(e,t){function s(e){try{l(r.next(e))}catch(e){t(e)}}function a(e){try{l(r.throw(e))}catch(e){t(e)}}function l(t){var i;t.done?e(t.value):((i=t.value)instanceof o?i:new o(function(e){e(i)})).then(s,a)}l((r=r.apply(i,n||[])).next())})}createPopoutWindowContainer(){let e=document.createElement("div");return e.classList.add("dv-popout-window"),e.id="dv-popout-window",e.style.position="absolute",e.style.width="100%",e.style.height="100%",e.style.top="0px",e.style.left="0px",e}}class nf extends tK{constructor(e){super(),this.accessor=e,this.init()}init(){let e=new Set,t=new Set;this.addDisposables(this.accessor.onDidAddPanel(t=>{if(e.has(t.api.id))throw Error(`dockview: Invalid event sequence. [onDidAddPanel] called for panel ${t.api.id} but panel already exists`);e.add(t.api.id)}),this.accessor.onDidRemovePanel(t=>{if(e.has(t.api.id))e.delete(t.api.id);else throw Error(`dockview: Invalid event sequence. [onDidRemovePanel] called for panel ${t.api.id} but panel does not exists`)}),this.accessor.onDidAddGroup(e=>{if(t.has(e.api.id))throw Error(`dockview: Invalid event sequence. [onDidAddGroup] called for group ${e.api.id} but group already exists`);t.add(e.api.id)}),this.accessor.onDidRemoveGroup(e=>{if(t.has(e.api.id))t.delete(e.api.id);else throw Error(`dockview: Invalid event sequence. [onDidRemoveGroup] called for group ${e.api.id} but group does not exists`)}))}}class ng extends tK{constructor(e){super(),this.root=e,this._active=null,this._activeDisposable=new tJ,this._element=document.createElement("div"),this._element.className="dv-popover-anchor",this._element.style.position="relative",this.root.prepend(this._element),this.addDisposables(O.from(()=>{this.close()}),this._activeDisposable)}openPopover(e,t){var i;this.close();let n=document.createElement("div");n.style.position="absolute",n.style.zIndex=null!=(i=t.zIndex)?i:"var(--dv-overlay-z-index)",n.appendChild(e);let o=this._element.getBoundingClientRect(),r=o.left,s=o.top;n.style.top=`${t.y-s}px`,n.style.left=`${t.x-r}px`,this._element.appendChild(n),this._active=n,this._activeDisposable.value=new tK(t$(window,"pointerdown",e=>{var t;let i=e.target;if(!(i instanceof HTMLElement))return;let o=i;for(;o&&o!==n;)o=null!=(t=null==o?void 0:o.parentElement)?t:null;o||this.close()})),requestAnimationFrame(()=>{!function(e,t,i={buffer:10}){let n=i.buffer,o=e.getBoundingClientRect(),r=t.getBoundingClientRect(),s=0,a=0,l=o.left-r.left,d=o.top-r.top,h=o.bottom-r.bottom,u=o.right-r.right;ln&&(s=-n-u),dn&&(a=-h-n),(0!==s||0!==a)&&(e.style.transform=`translate(${s}px, ${a}px)`)}(n,this.root)})}close(){this._active&&(this._active.remove(),this._activeDisposable.dispose(),this._active=null)}}class nv extends tK{get disabled(){return this._disabled}set disabled(e){var t;this.disabled!==e&&(this._disabled=e,e&&(null==(t=this.model)||t.clear()))}get model(){if(!this.disabled)return{clear:()=>{var e;this._model&&(null==(e=this._model.root.parentElement)||e.removeChild(this._model.root)),this._model=void 0},exists:()=>!!this._model,getElements:(e,t)=>{let i=this._outline!==t;if(this._outline=t,this._model)return this._model.changed=i,this._model;let n=this.createContainer(),o=this.createAnchor();if(this._model={root:n,overlay:o,changed:i},n.appendChild(o),this.element.appendChild(n),(null==e?void 0:e.target)instanceof HTMLElement){let t=e.target.getBoundingClientRect(),i=this.element.getBoundingClientRect();o.style.left=`${t.left-i.left}px`,o.style.top=`${t.top-i.top}px`}return this._model}}}constructor(e,t){super(),this.element=e,this._disabled=!1,this._disabled=t.disabled,this.addDisposables(O.from(()=>{var e;null==(e=this.model)||e.clear()}))}createContainer(){let e=document.createElement("div");return e.className="dv-drop-target-container",e}createAnchor(){let e=document.createElement("div");return e.className="dv-drop-target-anchor",e.style.visibility="hidden",e}}let nw={activationSize:{type:"pixels",value:10},size:{type:"pixels",value:20}};function nb(e){let t=e.from.activePanel;[...e.from.panels].map(t=>{let i=e.from.model.removePanel(t);return e.from.model.renderContainer.detatch(t),i}).forEach(i=>{e.to.model.openPanel(i,{skipSetActive:t!==i,skipSetGroupActive:!0})})}class ny extends iD{get orientation(){return this.gridview.orientation}get totalPanels(){return this.panels.length}get panels(){return this.groups.flatMap(e=>e.panels)}get options(){return this._options}get activePanel(){let e=this.activeGroup;if(e)return e.activePanel}get renderer(){var e;return null!=(e=this.options.defaultRenderer)?e:"onlyWhenVisible"}get api(){return this._api}get floatingGroups(){return this._floatingGroups}get popoutRestorationPromise(){return this._popoutRestorationPromise}constructor(e,t){var i,n,o;super(e,{proportionalLayout:!0,orientation:I.HORIZONTAL,styles:t.hideBorders?{separatorBorder:"transparent"}:void 0,disableAutoResizing:t.disableAutoResizing,locked:t.locked,margin:null!=(n=null==(i=t.theme)?void 0:i.gap)?n:0,className:t.className}),this.nextGroupId=ii(),this._deserializer=new na(this),this._watermark=null,this._onWillDragPanel=new tB,this.onWillDragPanel=this._onWillDragPanel.event,this._onWillDragGroup=new tB,this.onWillDragGroup=this._onWillDragGroup.event,this._onDidDrop=new tB,this.onDidDrop=this._onDidDrop.event,this._onWillDrop=new tB,this.onWillDrop=this._onWillDrop.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onUnhandledDragOverEvent=new tB,this.onUnhandledDragOverEvent=this._onUnhandledDragOverEvent.event,this._onDidRemovePanel=new tB,this.onDidRemovePanel=this._onDidRemovePanel.event,this._onDidAddPanel=new tB,this.onDidAddPanel=this._onDidAddPanel.event,this._onDidPopoutGroupSizeChange=new tB,this.onDidPopoutGroupSizeChange=this._onDidPopoutGroupSizeChange.event,this._onDidPopoutGroupPositionChange=new tB,this.onDidPopoutGroupPositionChange=this._onDidPopoutGroupPositionChange.event,this._onDidOpenPopoutWindowFail=new tB,this.onDidOpenPopoutWindowFail=this._onDidOpenPopoutWindowFail.event,this._onDidLayoutFromJSON=new tB,this.onDidLayoutFromJSON=this._onDidLayoutFromJSON.event,this._onDidActivePanelChange=new tB({replay:!0}),this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onDidMovePanel=new tB,this.onDidMovePanel=this._onDidMovePanel.event,this._onDidMaximizedGroupChange=new tB,this.onDidMaximizedGroupChange=this._onDidMaximizedGroupChange.event,this._floatingGroups=[],this._popoutGroups=[],this._popoutRestorationPromise=Promise.resolve(),this._onDidRemoveGroup=new tB,this.onDidRemoveGroup=this._onDidRemoveGroup.event,this._onDidAddGroup=new tB,this.onDidAddGroup=this._onDidAddGroup.event,this._onDidOptionsChange=new tB,this.onDidOptionsChange=this._onDidOptionsChange.event,this._onDidActiveGroupChange=new tB,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._moving=!1,this._options=t,this.popupService=new ng(this.element),this._themeClassnames=new t4(this.element),this._api=new iA(this),this.rootDropTargetContainer=new nv(this.element,{disabled:!0}),this.overlayRenderContainer=new np(this.gridview.element,this),this._rootDropTarget=new iI(this.element,{className:"dv-drop-target-edge",canDisplayOverlay:(e,t)=>{let i=tj();if(i)return i.viewId===this.id&&("center"!==t||0===this.gridview.length);if("center"===t&&0!==this.gridview.length)return!1;let n=new i2(e,"edge",t,tj);return this._onUnhandledDragOverEvent.fire(n),n.isAccepted},acceptedTargetZones:["top","bottom","left","right","center"],overlayModel:null!=(o=t.rootOverlayModel)?o:nw,getOverrideTarget:()=>{var e;return null==(e=this.rootDropTargetContainer)?void 0:e.model}}),this.updateDropTargetModel(t),tQ(this.gridview.element,"dv-dockview",!0),tQ(this.element,"dv-debug",!!t.debug),this.updateTheme(),this.updateWatermark(),t.debug&&this.addDisposables(new nf(this)),this.addDisposables(this.rootDropTargetContainer,this.overlayRenderContainer,this._onWillDragPanel,this._onWillDragGroup,this._onWillShowOverlay,this._onDidActivePanelChange,this._onDidAddPanel,this._onDidRemovePanel,this._onDidLayoutFromJSON,this._onDidDrop,this._onWillDrop,this._onDidMovePanel,this._onDidMovePanel.event(()=>{this.debouncedUpdateAllPositions()}),this._onDidAddGroup,this._onDidRemoveGroup,this._onDidActiveGroupChange,this._onUnhandledDragOverEvent,this._onDidMaximizedGroupChange,this._onDidOptionsChange,this._onDidPopoutGroupSizeChange,this._onDidPopoutGroupPositionChange,this._onDidOpenPopoutWindowFail,this.onDidViewVisibilityChangeMicroTaskQueue(()=>{this.updateWatermark()}),this.onDidAdd(e=>{this._moving||this._onDidAddGroup.fire(e)}),this.onDidRemove(e=>{this._moving||this._onDidRemoveGroup.fire(e)}),this.onDidActiveChange(e=>{this._moving||this._onDidActiveGroupChange.fire(e)}),this.onDidMaximizedChange(e=>{this._onDidMaximizedGroupChange.fire({group:e.panel,isMaximized:e.isMaximized})}),N.any(this.onDidAdd,this.onDidRemove)(()=>{this.updateWatermark()}),N.any(this.onDidAddPanel,this.onDidRemovePanel,this.onDidAddGroup,this.onDidRemove,this.onDidMovePanel,this.onDidActivePanelChange,this.onDidPopoutGroupPositionChange,this.onDidPopoutGroupSizeChange)(()=>{this._bufferOnDidLayoutChange.fire()}),O.from(()=>{for(let e of[...this._floatingGroups])e.dispose();for(let e of[...this._popoutGroups])e.disposable.dispose()}),this._rootDropTarget,this._rootDropTarget.onWillShowOverlay(e=>{this.gridview.length>0&&"center"===e.position||this._onWillShowOverlay.fire(new iJ(e,{kind:"edge",panel:void 0,api:this._api,group:void 0,getData:tj}))}),this._rootDropTarget.onDrop(e=>{var t;let i=new i4({nativeEvent:e.nativeEvent,position:e.position,panel:void 0,api:this._api,group:void 0,getData:tj,kind:"edge"});if(this._onWillDrop.fire(i),i.defaultPrevented)return;let n=tj();n?this.moveGroupOrPanel({from:{groupId:n.groupId,panelId:null!=(t=n.panelId)?t:void 0},to:{group:this.orthogonalize(e.position),position:"center"}}):this._onDidDrop.fire(new i3({nativeEvent:e.nativeEvent,position:e.position,panel:void 0,api:this._api,group:void 0,getData:tj}))}),this._rootDropTarget)}setVisible(e,t){switch(e.api.location.type){case"grid":super.setVisible(e,t);break;case"floating":{let i=this.floatingGroups.find(t=>t.group===e);i&&(i.overlay.setVisible(t),e.api._onDidVisibilityChange.fire({isVisible:t}));break}case"popout":console.warn("dockview: You cannot hide a group that is in a popout window")}}addPopoutGroup(e,t){var i,n,o,r,s;if(e instanceof no&&1===e.group.size)return this.addPopoutGroup(e.group,t);let a=function(e){let t,i=e;for(;null!==i&&"string"!=typeof(t=(function(e){let t=[];for(let i=0;ie.startsWith("dockview-theme-")));)i=i.parentElement;return t}(this.gridview.element),l=this.element,d=(null==t?void 0:t.position)?t.position:e instanceof nt?e.element.getBoundingClientRect():e.group?e.group.element.getBoundingClientRect():l.getBoundingClientRect(),h=null!=(n=null==(i=null==t?void 0:t.overridePopoutGroup)?void 0:i.id)?n:this.getNextGroupId(),u=new nm(`${this.id}-${h}`,null!=a?a:"",{url:null!=(s=null!=(o=null==t?void 0:t.popoutUrl)?o:null==(r=this.options)?void 0:r.popoutUrl)?s:"/popout.html",left:window.screenX+d.left,top:window.screenY+d.top,width:d.width,height:d.height,onDidOpen:null==t?void 0:t.onDidOpen,onWillClose:null==t?void 0:t.onWillClose}),c=new tK(u,u.onDidClose(()=>{c.dispose()}));return u.open().then(i=>{var n,o,r,s;let a,l,d,p,m,f,g,v,w;if(u.isDisposed)return!1;let b=(null==t?void 0:t.referenceGroup)?t.referenceGroup:e instanceof no?e.group:e,y=e.api.location.type,x=null!==b.element.parentElement;if(x?(null==t?void 0:t.overridePopoutGroup)?a=t.overridePopoutGroup:(a=this.createGroup({id:h}),i&&this._onDidAddGroup.fire(a)):a=b,null===i)return console.error("dockview: failed to create popout. perhaps you need to allow pop-ups for this website"),c.dispose(),this._onDidOpenPopoutWindowFail.fire(),this.movingLock(()=>nb({from:a,to:b})),b.api.isVisible||b.api.setVisible(!0),!1;let _=document.createElement("div");_.className="dv-overlay-render-container";let D=new np(_,this);if(a.model.renderContainer=D,a.layout(u.window.innerWidth,u.window.innerHeight),!(null==t?void 0:t.overridePopoutGroup)&&x)if(e instanceof no)this.movingLock(()=>{let t=b.model.removePanel(e);a.model.openPanel(t)});else switch(this.movingLock(()=>nb({from:b,to:a})),y){case"grid":b.api.setVisible(!1);break;case"floating":case"popout":l=null==(n=this._floatingGroups.find(t=>t.group.api.id===e.api.id))?void 0:n.overlay.toJSON(),this.removeGroup(b)}i.classList.add("dv-dockview"),i.style.overflow="hidden",i.appendChild(_),i.appendChild(a.element);let C=document.createElement("div"),S=new nv(C,{disabled:this.rootDropTargetContainer.disabled});i.appendChild(C),a.model.dropTargetContainer=S,a.model.location={type:"popout",getWindow:()=>u.window,popoutUrl:null==t?void 0:t.popoutUrl},x&&"grid"===e.api.location.type&&e.api.setVisible(!1),this.doSetGroupAndPanelActive(a),c.addDisposables(a.api.onDidActiveChange(e=>{var t;e.isActive&&(null==(t=u.window)||t.focus())}),a.api.onWillFocus(()=>{var e;null==(e=u.window)||e.focus()}));let E=x&&b&&this.getPanel(b.id),A={window:u,popoutGroup:a,referenceGroup:E?b.id:void 0,disposable:{dispose:()=>(c.dispose(),d)}},k=(o=u.window,m=new tB,f=o.screenX,g=o.screenY,(v=()=>{if(o.closed)return;let e=o.screenX,t=o.screenY;(e!==f||t!==g)&&(clearTimeout(p),p=setTimeout(()=>{m.fire()},100),f=e,g=t),requestAnimationFrame(v)})(),m);return c.addDisposables(k,(r=u.window,s=()=>{this._onDidPopoutGroupSizeChange.fire({width:u.window.innerWidth,height:u.window.innerHeight,group:a})},new tK(t$(r,"resize",()=>{clearTimeout(w),w=setTimeout(()=>{s()},100)}))),k.event(()=>{this._onDidPopoutGroupPositionChange.fire({screenX:u.window.screenX,screenY:u.window.screenX,group:a})}),t$(u.window,"resize",()=>{a.layout(u.window.innerWidth,u.window.innerHeight)}),D,O.from(()=>{if(!this.isDisposed){if(x&&this.getPanel(b.id))this.movingLock(()=>nb({from:a,to:b})),b.api.isVisible||b.api.setVisible(!0),this.getPanel(a.id)&&this.doRemoveGroup(a,{skipPopoutAssociated:!0});else if(this.getPanel(a.id)){if(a.model.renderContainer=this.overlayRenderContainer,a.model.dropTargetContainer=this.rootDropTargetContainer,d=a,!this._popoutGroups.find(e=>e.popoutGroup===a))return;l?this.addFloatingGroup(a,{height:l.height,width:l.width,position:l}):(this.doRemoveGroup(a,{skipDispose:!0,skipActive:!0,skipPopoutReturn:!0}),a.model.location={type:"grid"},this.movingLock(()=>{this.doAddGroup(a,[0])})),this.doSetGroupAndPanelActive(a)}}})),this._popoutGroups.push(A),this.updateWatermark(),!0}).catch(e=>(console.error("dockview: failed to create popout.",e),!1))}addFloatingGroup(e,t){var i,n,o,r,s;let a;if(e instanceof no)a=this.createGroup(),this._onDidAddGroup.fire(a),this.movingLock(()=>this.removePanel(e,{removeEmptyGroup:!0,skipDispose:!0,skipSetActiveGroup:!0})),this.movingLock(()=>a.model.openPanel(e,{skipSetGroupActive:!0}));else{a=e;let n=null==(i=this._popoutGroups.find(e=>e.popoutGroup===a))?void 0:i.referenceGroup,o=n?this.getPanel(n):void 0;"boolean"==typeof(null==t?void 0:t.skipRemoveGroup)&&t.skipRemoveGroup||(o?(this.movingLock(()=>nb({from:e,to:o})),this.doRemoveGroup(e,{skipPopoutReturn:!0,skipPopoutAssociated:!0}),this.doRemoveGroup(o,{skipDispose:!0}),a=o):this.doRemoveGroup(e,{skipDispose:!0,skipPopoutReturn:!0,skipPopoutAssociated:!1}))}let l=function(){if(null==t?void 0:t.position){let e={};return"left"in t.position?e.left=Math.max(t.position.left,0):"right"in t.position?e.right=Math.max(t.position.right,0):e.left=100,"top"in t.position?e.top=Math.max(t.position.top,0):"bottom"in t.position?e.bottom=Math.max(t.position.bottom,0):e.top=100,"number"==typeof t.width?e.width=Math.max(t.width,0):e.width=300,"number"==typeof t.height?e.height=Math.max(t.height,0):e.height=300,e}return{left:"number"==typeof(null==t?void 0:t.x)?Math.max(t.x,0):100,top:"number"==typeof(null==t?void 0:t.y)?Math.max(t.y,0):100,width:"number"==typeof(null==t?void 0:t.width)?Math.max(t.width,0):300,height:"number"==typeof(null==t?void 0:t.height)?Math.max(t.height,0):300}}(),d=new nh(Object.assign(Object.assign({container:this.gridview.element,content:a.element},l),{minimumInViewportWidth:"boundedWithinViewport"===this.options.floatingGroupBounds?void 0:null!=(o=null==(n=this.options.floatingGroupBounds)?void 0:n.minimumWidthWithinViewport)?o:100,minimumInViewportHeight:"boundedWithinViewport"===this.options.floatingGroupBounds?void 0:null!=(s=null==(r=this.options.floatingGroupBounds)?void 0:r.minimumHeightWithinViewport)?s:100})),h=a.element.querySelector(".dv-void-container");if(!h)throw Error("dockview: failed to find drag handle");d.setupDrag(h,{inDragMode:"boolean"==typeof(null==t?void 0:t.inDragMode)&&t.inDragMode});let u=new nu(a,d),c=new tK(a.api.onDidActiveChange(e=>{e.isActive&&d.bringToFront()}),tX(a.element,e=>{let{width:t,height:i}=e.contentRect;a.layout(t,i)}));u.addDisposables(d.onDidChange(()=>{a.layout(a.width,a.height)}),d.onDidChangeEnd(()=>{this._bufferOnDidLayoutChange.fire()}),a.onDidChange(e=>{d.setBounds({height:null==e?void 0:e.height,width:null==e?void 0:e.width})}),{dispose:()=>{c.dispose(),ie(this._floatingGroups,u),a.model.location={type:"grid"},this.updateWatermark()}}),this._floatingGroups.push(u),a.model.location={type:"floating"},(null==t?void 0:t.skipActiveGroup)||this.doSetGroupAndPanelActive(a),this.updateWatermark()}orthogonalize(e,t){switch(this.gridview.normalize(),e){case"top":case"bottom":this.gridview.orientation===I.HORIZONTAL&&this.gridview.insertOrthogonalSplitviewAtRoot();break;case"left":case"right":this.gridview.orientation===I.VERTICAL&&this.gridview.insertOrthogonalSplitviewAtRoot()}switch(e){case"top":case"left":case"center":return this.createGroupAtLocation([0],void 0,t);case"bottom":case"right":return this.createGroupAtLocation([this.gridview.length],void 0,t);default:throw Error(`dockview: unsupported position ${e}`)}}updateOptions(e){var t,i;if(super.updateOptions(e),"floatingGroupBounds"in e)for(let n of this._floatingGroups){switch(e.floatingGroupBounds){case"boundedWithinViewport":n.overlay.minimumInViewportHeight=void 0,n.overlay.minimumInViewportWidth=void 0;break;case void 0:n.overlay.minimumInViewportHeight=100,n.overlay.minimumInViewportWidth=100;break;default:n.overlay.minimumInViewportHeight=null==(t=e.floatingGroupBounds)?void 0:t.minimumHeightWithinViewport,n.overlay.minimumInViewportWidth=null==(i=e.floatingGroupBounds)?void 0:i.minimumWidthWithinViewport}n.overlay.setBounds()}this.updateDropTargetModel(e);let n=this.options.disableDnd;this._options=Object.assign(Object.assign({},this.options),e),n!==this.options.disableDnd&&this.updateDragAndDropState(),"theme"in e&&this.updateTheme(),this.layout(this.gridview.width,this.gridview.height,!0)}layout(e,t,i){if(super.layout(e,t,i),this._floatingGroups)for(let e of this._floatingGroups)e.overlay.setBounds()}updateDragAndDropState(){for(let e of this.groups)e.model.updateDragAndDropState()}focus(){var e;null==(e=this.activeGroup)||e.focus()}getGroupPanel(e){return this.panels.find(t=>t.id===e)}setActivePanel(e){e.group.model.openPanel(e),this.doSetGroupAndPanelActive(e.group)}moveToNext(e={}){var t;if(!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}if(e.includePanel&&e.group&&e.group.activePanel!==e.group.panels[e.group.panels.length-1])return void e.group.model.moveToNext({suppressRoll:!0});let i=ip(e.group.element),n=null==(t=this.gridview.next(i))?void 0:t.view;this.doSetGroupAndPanelActive(n)}moveToPrevious(e={}){var t;if(!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}if(e.includePanel&&e.group&&e.group.activePanel!==e.group.panels[0])return void e.group.model.moveToPrevious({suppressRoll:!0});let i=ip(e.group.element),n=null==(t=this.gridview.previous(i))?void 0:t.view;n&&this.doSetGroupAndPanelActive(n)}toJSON(){var e;let t=this.gridview.serialize(),i=this.panels.reduce((e,t)=>(e[t.id]=t.toJSON(),e),{}),n=this._floatingGroups.map(e=>({data:e.group.toJSON(),position:e.overlay.toJSON()})),o=this._popoutGroups.map(e=>({data:e.popoutGroup.toJSON(),gridReferenceGroup:e.referenceGroup,position:e.window.dimensions(),url:"popout"===e.popoutGroup.api.location.type?e.popoutGroup.api.location.popoutUrl:void 0})),r={grid:t,panels:i,activeGroup:null==(e=this.activeGroup)?void 0:e.id};return n.length>0&&(r.floatingGroups=n),o.length>0&&(r.popoutGroups=o),r}fromJSON(e,t){var i,n;let o,r=new Map;if(null==t?void 0:t.reuseExistingPanels){o=this.createGroup(),this._groups.delete(o.api.id);let t=Object.keys(e.panels);for(let e of this.panels)t.includes(e.api.id)&&r.set(e.api.id,e);this.movingLock(()=>{Array.from(r.values()).forEach(e=>{this.moveGroupOrPanel({from:{groupId:e.api.group.api.id,panelId:e.api.id},to:{group:o,position:"center"},keepEmptyGroups:!0})})})}if(this.clear(),"object"!=typeof e||null===e)throw Error("dockview: serialized layout must be a non-null object");let{grid:s,panels:a,activeGroup:l}=e;if("branch"!==s.root.type||!Array.isArray(s.root.data))throw Error("dockview: root must be of type branch");try{let t=this.width,d=this.height,h=e=>{let{id:t,locked:i,hideHeader:n,views:s,activeView:l}=e;if("string"!=typeof t)throw Error("dockview: group id must be of type string");let d=this.createGroup({id:t,locked:!!i,hideHeader:!!n});this._onDidAddGroup.fire(d);let h=[];for(let e of s){let t=r.get(e);if(o&&t)this.movingLock(()=>{o.model.removePanel(t)}),h.push(t),t.updateFromStateModel(a[e]);else{let t=this._deserializer.fromJSON(a[e],d);h.push(t)}}for(let e=0;e{d.model.openPanel(t,{skipSetActive:!i,skipSetGroupActive:!0})}):d.model.openPanel(t,{skipSetActive:!i,skipSetGroupActive:!0})}return!d.activePanel&&d.panels.length>0&&d.model.openPanel(d.panels[d.panels.length-1],{skipSetGroupActive:!0}),d};for(let n of(this.gridview.deserialize(s,{fromJSON:e=>h(e.data)}),this.layout(t,d,!0),null!=(i=e.floatingGroups)?i:[])){let{data:e,position:t}=n,i=h(e);this.addFloatingGroup(i,{position:t,width:t.width,height:t.height,skipRemoveGroup:!0,inDragMode:!1})}let u=null!=(n=e.popoutGroups)?n:[],c=[];for(let e of(u.forEach((e,t)=>{let{data:i,position:n,gridReferenceGroup:o,url:r}=e,s=h(i),a=new Promise(e=>{setTimeout(()=>{this.addPopoutGroup(s,{position:null!=n?n:void 0,overridePopoutGroup:o?s:void 0,referenceGroup:o?this.getPanel(o):void 0,popoutUrl:r}),e()},100*t)});c.push(a)}),this._popoutRestorationPromise=Promise.all(c).then(()=>void 0),this._floatingGroups))e.overlay.setBounds();if("string"==typeof l){let e=this.getPanel(l);e&&this.doSetGroupAndPanelActive(e)}}catch(e){for(let t of(console.error("dockview: failed to deserialize layout. Reverting changes",e),this.groups))for(let e of t.panels)this.removePanel(e,{removeEmptyGroup:!1,skipDispose:!1});for(let e of this.groups)e.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e);for(let e of[...this._floatingGroups])e.dispose();throw this.clear(),e}this.updateWatermark(),this.debouncedUpdateAllPositions(),this._onDidLayoutFromJSON.fire()}clear(){let e=Array.from(this._groups.values()).map(e=>e.value),t=!!this.activeGroup;for(let t of e)this.removeGroup(t,{skipActive:!0});t&&this.doSetGroupAndPanelActive(void 0),this.gridview.clear()}closeAllGroups(){for(let e of this._groups.entries()){let[t,i]=e;i.value.model.closeAllPanels()}}addPanel(e){var t,i;let n,o,r;if(this.panels.find(t=>t.id===e.id))throw Error(`dockview: panel with id ${e.id} already exists`);if(e.position&&e.floating)throw Error("dockview: you can only provide one of: position, floating as arguments to .addPanel(...)");let s={width:e.initialWidth,height:e.initialHeight};if(e.position)if(+!e.position.referencePanel){if(+!e.position.referenceGroup){let t=this.orthogonalize(iR(e.position.direction)),i=this.createPanel(e,t);return t.model.openPanel(i,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o}),e.inactive||this.doSetGroupAndPanelActive(t),t.api.setSize({height:null==s?void 0:s.height,width:null==s?void 0:s.width}),i}else if(n="string"==typeof e.position.referenceGroup?null==(t=this._groups.get(e.position.referenceGroup))?void 0:t.value:e.position.referenceGroup,o=e.position.index,!n)throw Error(`dockview: referenceGroup '${e.position.referenceGroup}' does not exist`)}else{let t="string"==typeof e.position.referencePanel?this.getGroupPanel(e.position.referencePanel):e.position.referencePanel;if(o=e.position.index,!t)throw Error(`dockview: referencePanel '${e.position.referencePanel}' does not exist`);n=this.findGroup(t)}else n=this.activeGroup;if(n){let t=i_((null==(i=e.position)?void 0:i.direction)||"within");if(e.floating){let t=this.createGroup();this._onDidAddGroup.fire(t);let i="object"==typeof e.floating&&null!==e.floating?e.floating:{};this.addFloatingGroup(t,Object.assign(Object.assign({},i),{inDragMode:!1,skipRemoveGroup:!0,skipActiveGroup:!0})),r=this.createPanel(e,t),t.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o})}else if("floating"===n.api.location.type||"center"===t)r=this.createPanel(e,n),n.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o}),n.api.setSize({width:null==s?void 0:s.width,height:null==s?void 0:s.height}),e.inactive||this.doSetGroupAndPanelActive(n);else{let i=ip(n.element),a=im(this.gridview.orientation,i,t),l=this.createGroupAtLocation(a,this.orientationAtLocation(a)===I.VERTICAL?null==s?void 0:s.height:null==s?void 0:s.width);r=this.createPanel(e,l),l.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o}),e.inactive||this.doSetGroupAndPanelActive(l)}}else if(e.floating){let t=this.createGroup();this._onDidAddGroup.fire(t);let i="object"==typeof e.floating&&null!==e.floating?e.floating:{};this.addFloatingGroup(t,Object.assign(Object.assign({},i),{inDragMode:!1,skipRemoveGroup:!0,skipActiveGroup:!0})),r=this.createPanel(e,t),t.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o})}else{let t=this.createGroupAtLocation([0],this.gridview.orientation===I.VERTICAL?null==s?void 0:s.height:null==s?void 0:s.width);r=this.createPanel(e,t),t.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o}),e.inactive||this.doSetGroupAndPanelActive(t)}return r}removePanel(e,t={removeEmptyGroup:!0}){let i=e.group;if(!i)throw Error(`dockview: cannot remove panel ${e.id}. it's missing a group.`);i.model.removePanel(e,{skipSetActiveGroup:t.skipSetActiveGroup}),t.skipDispose||(e.group.model.renderContainer.detatch(e),e.dispose()),0===i.size&&t.removeEmptyGroup&&this.removeGroup(i,{skipActive:t.skipSetActiveGroup})}createWatermarkComponent(){return this.options.createWatermarkComponent?this.options.createWatermarkComponent():new nl}updateWatermark(){var e,t;if(0===this.groups.filter(e=>"grid"===e.api.location.type&&e.api.isVisible).length){if(!this._watermark){this._watermark=this.createWatermarkComponent(),this._watermark.init({containerApi:new iA(this)});let e=document.createElement("div");e.className="dv-watermark-container",e.setAttribute("data-testid","watermark-component"),e.appendChild(this._watermark.element),this.gridview.element.appendChild(e)}}else this._watermark&&(this._watermark.element.parentElement.remove(),null==(t=(e=this._watermark).dispose)||t.call(e),this._watermark=null)}addGroup(e){var t;if(e){let i;if(+!e.referencePanel){if(+!e.referenceGroup){let t=this.orthogonalize(iR(e.direction),e);return e.skipSetActive||this.doSetGroupAndPanelActive(t),t}else if(!(i="string"==typeof e.referenceGroup?null==(t=this._groups.get(e.referenceGroup))?void 0:t.value:e.referenceGroup))throw Error(`dockview: reference group ${e.referenceGroup} does not exist`)}else{let t="string"==typeof e.referencePanel?this.panels.find(t=>t.id===e.referencePanel):e.referencePanel;if(!t)throw Error(`dockview: reference panel ${e.referencePanel} does not exist`);if(!(i=this.findGroup(t)))throw Error(`dockview: reference group for reference panel ${e.referencePanel} does not exist`)}let n=i_(e.direction||"within"),o=ip(i.element),r=im(this.gridview.orientation,o,n),s=this.createGroup(e),a=this.getLocationOrientation(r)===I.VERTICAL?e.initialHeight:e.initialWidth;return this.doAddGroup(s,r,a),e.skipSetActive||this.doSetGroupAndPanelActive(s),s}{let t=this.createGroup(e);return this.doAddGroup(t),this.doSetGroupAndPanelActive(t),t}}getLocationOrientation(e){return e.length%2==0&&this.gridview.orientation===I.HORIZONTAL?I.HORIZONTAL:I.VERTICAL}removeGroup(e,t){this.doRemoveGroup(e,t)}doRemoveGroup(e,t){var i;let n=[...e.panels];if(!(null==t?void 0:t.skipDispose))for(let e of n)this.removePanel(e,{removeEmptyGroup:!1,skipDispose:null!=(i=null==t?void 0:t.skipDispose)&&i});let o=this.activePanel;if("floating"===e.api.location.type){let i=this._floatingGroups.find(t=>t.group===e);if(i){if((null==t?void 0:t.skipDispose)||(i.group.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)),ie(this._floatingGroups,i),i.dispose(),!(null==t?void 0:t.skipActive)&&this._activeGroup===e){let e=Array.from(this._groups.values());this.doSetGroupAndPanelActive(e.length>0?e[0].value:void 0)}return i.group}throw Error("dockview: failed to find floating group")}if("popout"===e.api.location.type){let i=this._popoutGroups.find(t=>t.popoutGroup===e);if(i){if(!(null==t?void 0:t.skipDispose)){if(!(null==t?void 0:t.skipPopoutAssociated)){let e=i.referenceGroup?this.getPanel(i.referenceGroup):void 0;e&&0===e.panels.length&&this.removeGroup(e)}i.popoutGroup.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)}ie(this._popoutGroups,i);let n=i.disposable.dispose();if((null==t?void 0:t.skipPopoutReturn)||!n||(this.doAddGroup(n,[0]),this.doSetGroupAndPanelActive(n)),!(null==t?void 0:t.skipActive)&&this._activeGroup===e){let e=Array.from(this._groups.values());this.doSetGroupAndPanelActive(e.length>0?e[0].value:void 0)}return this.updateWatermark(),i.popoutGroup}throw Error("dockview: failed to find popout group")}let r=super.doRemoveGroup(e,t);return(null==t?void 0:t.skipActive)||this.activePanel===o||this._onDidActivePanelChange.fire(this.activePanel),r}debouncedUpdateAllPositions(){void 0!==this._updatePositionsFrameId&&cancelAnimationFrame(this._updatePositionsFrameId),this._updatePositionsFrameId=requestAnimationFrame(()=>{this._updatePositionsFrameId=void 0,this.overlayRenderContainer.updateAllPositions()})}movingLock(e){let t=this._moving;try{return this._moving=!0,e()}finally{this._moving=t}}moveGroupOrPanel(e){var t;let i=e.to.group,n=e.from.groupId,o=e.from.panelId,r=e.to.position,s=e.to.index,a=n?null==(t=this._groups.get(n))?void 0:t.value:void 0;if(!a)throw Error(`dockview: Failed to find group id ${n}`);if(void 0===o)return void this.moveGroup({from:{group:a},to:{group:i,position:r},skipSetActive:e.skipSetActive});if(r&&"center"!==r){let e=ip(i.element),t=im(this.gridview.orientation,e,r);if(a.size<2){let[e,n]=t9(t);if("grid"===a.api.location.type){let[t,i]=t9(ip(a.element));if(t6(t,e)){this.gridview.moveView(t,i,n),this._onDidMovePanel.fire({panel:this.getGroupPanel(o),from:a});return}}if("popout"===a.api.location.type){let e=this._popoutGroups.find(e=>e.popoutGroup===a),i=this.movingLock(()=>e.popoutGroup.model.removePanel(e.popoutGroup.panels[0],{skipSetActive:!0,skipSetActiveGroup:!0}));this.doRemoveGroup(a,{skipActive:!0});let n=this.createGroupAtLocation(t);this.movingLock(()=>n.model.openPanel(i,{skipSetActive:!0})),this.doSetGroupAndPanelActive(n),this._onDidMovePanel.fire({panel:this.getGroupPanel(o),from:a});return}let s=this.movingLock(()=>this.doRemoveGroup(a,{skipActive:!0,skipDispose:!0})),l=ip(i.element),d=im(this.gridview.orientation,l,r);this.movingLock(()=>this.doAddGroup(s,d)),this.doSetGroupAndPanelActive(s),this._onDidMovePanel.fire({panel:this.getGroupPanel(o),from:a})}else{let t=this.movingLock(()=>a.model.removePanel(o,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!t)throw Error(`dockview: No panel with id ${o}`);let i=im(this.gridview.orientation,e,r),n=this.createGroupAtLocation(i);this.movingLock(()=>n.model.openPanel(t,{skipSetGroupActive:!0})),this.doSetGroupAndPanelActive(n),this._onDidMovePanel.fire({panel:t,from:a})}}else{let t=this.movingLock(()=>a.model.removePanel(o,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!t)throw Error(`dockview: No panel with id ${o}`);e.keepEmptyGroups||0!==a.model.size||this.doRemoveGroup(a,{skipActive:!0});let n=0===i.model.size;this.movingLock(()=>{var o;return i.model.openPanel(t,{index:s,skipSetActive:null!=(o=e.skipSetActive)&&o&&!n,skipSetGroupActive:!0})}),e.skipSetActive||this.doSetGroupAndPanelActive(i),this._onDidMovePanel.fire({panel:t,from:a})}}moveGroup(e){let t=e.from.group,i=e.to.group,n=e.to.position;if("center"===n){let n=t.activePanel,o=this.movingLock(()=>[...t.panels].map(e=>t.model.removePanel(e.id,{skipSetActive:!0})));(null==t?void 0:t.model.size)===0&&this.doRemoveGroup(t,{skipActive:!0}),this.movingLock(()=>{for(let e of o)i.model.openPanel(e,{skipSetActive:e!==n,skipSetGroupActive:!0})}),!0!==e.skipSetActive?this.doSetGroupAndPanelActive(i):this.activePanel||this.doSetGroupAndPanelActive(i)}else{switch(t.api.location.type){case"grid":this.gridview.removeView(ip(t.element));break;case"floating":{let e=this._floatingGroups.find(e=>e.group===t);if(!e)throw Error("dockview: failed to find floating group");e.dispose();break}case"popout":{let e=this._popoutGroups.find(e=>e.popoutGroup===t);if(!e)throw Error("dockview: failed to find popout group");let n=this._popoutGroups.indexOf(e);if(n>=0&&this._popoutGroups.splice(n,1),e.referenceGroup){let t=this.getPanel(e.referenceGroup);t&&!t.api.isVisible&&this.doRemoveGroup(t,{skipActive:!0})}e.window.dispose(),"grid"===i.api.location.type?(t.model.renderContainer=this.overlayRenderContainer,t.model.dropTargetContainer=this.rootDropTargetContainer,t.model.location={type:"grid"}):"floating"===i.api.location.type&&(t.model.renderContainer=this.overlayRenderContainer,t.model.dropTargetContainer=this.rootDropTargetContainer,t.model.location={type:"floating"})}}if("grid"===i.api.location.type){let e,o=ip(i.element),r=im(this.gridview.orientation,o,n);switch(this.gridview.orientation){case I.VERTICAL:e=o.length%2==0?t.api.width:t.api.height;break;case I.HORIZONTAL:e=o.length%2==0?t.api.height:t.api.width}this.gridview.addView(t,e,r)}else if("floating"===i.api.location.type){let e=this._floatingGroups.find(e=>e.group===i);if(e){let i,n,o=e.overlay.toJSON();i="left"in o?o.left+50:"right"in o?Math.max(0,o.right-o.width-50):50,n="top"in o?o.top+50:"bottom"in o?Math.max(0,o.bottom-o.height-50):50,this.addFloatingGroup(t,{height:o.height,width:o.width,position:{left:i,top:n}})}}}if(t.panels.forEach(e=>{this._onDidMovePanel.fire({panel:e,from:t})}),this.debouncedUpdateAllPositions(),!1===e.skipSetActive){let e=null!=i?i:t;this.doSetGroupAndPanelActive(e)}}doSetGroupActive(e){super.doSetGroupActive(e);let t=this.activePanel;this._moving||t===this._onDidActivePanelChange.value||this._onDidActivePanelChange.fire(t)}doSetGroupAndPanelActive(e){super.doSetGroupActive(e);let t=this.activePanel;e&&this.hasMaximizedGroup()&&!this.isMaximizedGroup(e)&&this.exitMaximizedGroup(),this._moving||t===this._onDidActivePanelChange.value||this._onDidActivePanelChange.fire(t)}getNextGroupId(){let e=this.nextGroupId.next();for(;this._groups.has(e);)e=this.nextGroupId.next();return e}createGroup(e){e||(e={});let t=null==e?void 0:e.id;if(t&&this._groups.has(e.id)&&(console.warn(`dockview: Duplicate group id ${null==e?void 0:e.id}. reassigning group id to avoid errors`),t=void 0),!t)for(t=this.nextGroupId.next();this._groups.has(t);)t=this.nextGroupId.next();let i=new nt(this,t,e);if(i.init({params:{},accessor:this}),!this._groups.has(i.id)){let e=new tK(i.model.onTabDragStart(e=>{this._onWillDragPanel.fire(e)}),i.model.onGroupDragStart(e=>{this._onWillDragGroup.fire(e)}),i.model.onMove(e=>{let{groupId:t,itemId:n,target:o,index:r}=e;this.moveGroupOrPanel({from:{groupId:t,panelId:n},to:{group:i,position:o,index:r}})}),i.model.onDidDrop(e=>{this._onDidDrop.fire(e)}),i.model.onWillDrop(e=>{this._onWillDrop.fire(e)}),i.model.onWillShowOverlay(e=>{this.options.disableDnd?e.preventDefault():this._onWillShowOverlay.fire(e)}),i.model.onUnhandledDragOverEvent(e=>{this._onUnhandledDragOverEvent.fire(e)}),i.model.onDidAddPanel(e=>{this._moving||this._onDidAddPanel.fire(e.panel)}),i.model.onDidRemovePanel(e=>{this._moving||this._onDidRemovePanel.fire(e.panel)}),i.model.onDidActivePanelChange(e=>{this._moving||e.panel===this.activePanel&&this._onDidActivePanelChange.value!==e.panel&&this._onDidActivePanelChange.fire(e.panel)}),N.any(i.model.onDidPanelTitleChange,i.model.onDidPanelParametersChange)(()=>{this._bufferOnDidLayoutChange.fire()}));this._groups.set(i.id,{value:i,disposable:e})}return i.initialize(),i}createPanel(e,t){var i,n,o;let r=e.component,s=null!=(i=e.tabComponent)?i:this.options.defaultTabComponent,a=new ns(this,e.id,r,s),l=new no(e.id,r,s,this,this._api,t,a,{renderer:e.renderer,minimumWidth:e.minimumWidth,minimumHeight:e.minimumHeight,maximumWidth:e.maximumWidth,maximumHeight:e.maximumHeight});return l.init({title:null!=(n=e.title)?n:e.id,params:null!=(o=null==e?void 0:e.params)?o:{}}),l}createGroupAtLocation(e,t,i){let n=this.createGroup(i);return this.doAddGroup(n,e,t),n}findGroup(e){var t;return null==(t=Array.from(this._groups.values()).find(t=>t.value.model.containsPanel(e)))?void 0:t.value}orientationAtLocation(e){let t=this.gridview.orientation;return e.length%2==1?t:ig(t)}updateDropTargetModel(e){"dndEdges"in e&&(this._rootDropTarget.disabled="boolean"==typeof e.dndEdges&&!1===e.dndEdges,"object"==typeof e.dndEdges&&null!==e.dndEdges?this._rootDropTarget.setOverlayModel(e.dndEdges):this._rootDropTarget.setOverlayModel(nw)),"rootOverlayModel"in e&&this.updateDropTargetModel({dndEdges:e.dndEdges})}updateTheme(){var e,t;let i=null!=(e=this._options.theme)?e:ni;this._themeClassnames.setClassNames(i.className),this.gridview.margin=null!=(t=i.gap)?t:0,"absolute"===i.dndOverlayMounting?this.rootDropTargetContainer.disabled=!1:this.rootDropTargetContainer.disabled=!0}}class nx extends iD{get orientation(){return this.gridview.orientation}set orientation(e){this.gridview.orientation=e}get options(){return this._options}get deserializer(){return this._deserializer}set deserializer(e){this._deserializer=e}constructor(e,t){var i;super(e,{proportionalLayout:null==(i=t.proportionalLayout)||i,orientation:t.orientation,styles:t.hideBorders?{separatorBorder:"transparent"}:void 0,disableAutoResizing:t.disableAutoResizing,className:t.className}),this._onDidLayoutfromJSON=new tB,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidRemoveGroup=new tB,this.onDidRemoveGroup=this._onDidRemoveGroup.event,this._onDidAddGroup=new tB,this.onDidAddGroup=this._onDidAddGroup.event,this._onDidActiveGroupChange=new tB,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._options=t,this.addDisposables(this._onDidAddGroup,this._onDidRemoveGroup,this._onDidActiveGroupChange,this.onDidAdd(e=>{this._onDidAddGroup.fire(e)}),this.onDidRemove(e=>{this._onDidRemoveGroup.fire(e)}),this.onDidActiveChange(e=>{this._onDidActiveGroupChange.fire(e)}))}updateOptions(e){super.updateOptions(e);let t="string"==typeof e.orientation&&this.gridview.orientation!==e.orientation;this._options=Object.assign(Object.assign({},this.options),e),t&&(this.gridview.orientation=e.orientation),this.layout(this.gridview.width,this.gridview.height,!0)}removePanel(e){this.removeGroup(e)}toJSON(){var e;return{grid:this.gridview.serialize(),activePanel:null==(e=this.activeGroup)?void 0:e.id}}setVisible(e,t){this.gridview.setViewVisible(ip(e.element),t)}setActive(e){this._groups.forEach((t,i)=>{t.value.setActive(e===t.value)})}focus(){var e;null==(e=this.activeGroup)||e.focus()}fromJSON(e){this.clear();let{grid:t,activePanel:i}=e;try{let e=[],n=this.width,o=this.height;if(this.gridview.deserialize(t,{fromJSON:t=>{let{data:i}=t,n=this.options.createComponent({id:i.id,name:i.component});return e.push(()=>n.init({params:i.params,minimumWidth:i.minimumWidth,maximumWidth:i.maximumWidth,minimumHeight:i.minimumHeight,maximumHeight:i.maximumHeight,priority:i.priority,snap:!!i.snap,accessor:this,isVisible:t.visible})),this._onDidAddGroup.fire(n),this.registerPanel(n),n}}),this.layout(n,o,!0),e.forEach(e=>e()),"string"==typeof i){let e=this.getPanel(i);e&&this.doSetGroupActive(e)}}catch(e){for(let e of this.groups)e.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e);throw this.clear(),e}this._onDidLayoutfromJSON.fire()}clear(){let e=this.activeGroup;for(let e of Array.from(this._groups.values()))e.disposable.dispose(),this.doRemoveGroup(e.value,{skipActive:!0});e&&this.doSetGroupActive(void 0),this.gridview.clear()}movePanel(e,t){var i;let n,o=this.gridview.remove(e),r=null==(i=this._groups.get(t.reference))?void 0:i.value;if(!r)throw Error(`reference group ${t.reference} does not exist`);let s=i_(t.direction);if("center"===s)throw Error(`${s} not supported as an option`);{let e=ip(r.element);n=im(this.gridview.orientation,e,s)}this.doAddGroup(o,n,t.size)}addPanel(e){var t,i,n,o;let r=null!=(t=e.location)?t:[0];if(null==(i=e.position)?void 0:i.referencePanel){let t=null==(n=this._groups.get(e.position.referencePanel))?void 0:n.value;if(!t)throw Error(`reference group ${e.position.referencePanel} does not exist`);let i=i_(e.position.direction);if("center"===i)throw Error(`${i} not supported as an option`);{let e=ip(t.element);r=im(this.gridview.orientation,e,i)}}let s=this.options.createComponent({id:e.id,name:e.component});return s.init({params:null!=(o=e.params)?o:{},minimumWidth:e.minimumWidth,maximumWidth:e.maximumWidth,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,priority:e.priority,snap:!!e.snap,accessor:this,isVisible:!0}),this.doAddGroup(s,r,e.size),this.registerPanel(s),this.doSetGroupActive(s),s}registerPanel(e){let t=new tK(e.api.onDidFocusChange(t=>{t.isFocused&&this._groups.forEach(t=>{let i=t.value;i!==e?i.setActive(!1):i.setActive(!0)})}));this._groups.set(e.id,{value:e,disposable:t})}moveGroup(e,t,i){let n=this.getPanel(t);if(!n)throw Error("invalid operation");let o=ip(e.element),[r,s]=t9(im(this.gridview.orientation,o,i)),[a,l]=t9(ip(n.element));if(t6(a,r))return void this.gridview.moveView(a,l,s);let d=this.doRemoveGroup(n,{skipActive:!0,skipDispose:!0}),h=ip(e.element),u=im(this.gridview.orientation,h,i);this.doAddGroup(d,u)}removeGroup(e){super.removeGroup(e)}dispose(){super.dispose(),this._onDidLayoutfromJSON.dispose()}}class n_ extends iy{get panels(){return this.splitview.getViews()}get options(){return this._options}get length(){return this._panels.size}get orientation(){return this.splitview.orientation}get splitview(){return this._splitview}set splitview(e){this._splitview&&this._splitview.dispose(),this._splitview=e,this._splitviewChangeDisposable.value=new tK(this._splitview.onDidSashEnd(()=>{this._onDidLayoutChange.fire(void 0)}),this._splitview.onDidAddView(e=>this._onDidAddView.fire(e)),this._splitview.onDidRemoveView(e=>this._onDidRemoveView.fire(e)))}get minimumSize(){return this.splitview.minimumSize}get maximumSize(){return this.splitview.maximumSize}get height(){return this.splitview.orientation===I.HORIZONTAL?this.splitview.orthogonalSize:this.splitview.size}get width(){return this.splitview.orientation===I.HORIZONTAL?this.splitview.size:this.splitview.orthogonalSize}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._splitviewChangeDisposable=new tJ,this._panels=new Map,this._onDidLayoutfromJSON=new tB,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidAddView=new tB,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new tB,this.onDidRemoveView=this._onDidRemoveView.event,this._onDidLayoutChange=new tB,this.onDidLayoutChange=this._onDidLayoutChange.event,this.element.style.height="100%",this.element.style.width="100%",this._classNames=new t4(this.element),this._classNames.setClassNames(null!=(i=t.className)?i:""),e.appendChild(this.element),this._options=t,this.splitview=new is(this.element,t),this.addDisposables(this._onDidAddView,this._onDidLayoutfromJSON,this._onDidRemoveView,this._onDidLayoutChange)}updateOptions(e){var t,i;"className"in e&&this._classNames.setClassNames(null!=(t=e.className)?t:""),"disableResizing"in e&&(this.disableResizing=null!=(i=e.disableAutoResizing)&&i),"string"==typeof e.orientation&&(this.splitview.orientation=e.orientation),this._options=Object.assign(Object.assign({},this.options),e),this.splitview.layout(this.splitview.size,this.splitview.orthogonalSize)}focus(){var e;null==(e=this._activePanel)||e.focus()}movePanel(e,t){this.splitview.moveView(e,t)}setVisible(e,t){let i=this.panels.indexOf(e);this.splitview.setViewVisible(i,t)}setActive(e,t){this._activePanel=e,this.panels.filter(t=>t!==e).forEach(e=>{e.api._onDidActiveChange.fire({isActive:!1}),t||e.focus()}),e.api._onDidActiveChange.fire({isActive:!0}),t||e.focus()}removePanel(e,t){let i=this._panels.get(e.id);if(!i)throw Error(`unknown splitview panel ${e.id}`);i.dispose(),this._panels.delete(e.id);let n=this.panels.findIndex(t=>t===e);this.splitview.removeView(n,t).dispose();let o=this.panels;o.length>0&&this.setActive(o[o.length-1])}getPanel(e){return this.panels.find(t=>t.id===e)}addPanel(e){var t;if(this._panels.has(e.id))throw Error(`panel ${e.id} already exists`);let i=this.options.createComponent({id:e.id,name:e.component});i.orientation=this.splitview.orientation,i.init({params:null!=(t=e.params)?t:{},minimumSize:e.minimumSize,maximumSize:e.maximumSize,snap:e.snap,priority:e.priority,accessor:this});let n="number"==typeof e.size?e.size:T.Distribute,o="number"==typeof e.index?e.index:void 0;return this.splitview.addView(i,n,o),this.doAddView(i),this.setActive(i),i}layout(e,t){let[i,n]=this.splitview.orientation===I.HORIZONTAL?[e,t]:[t,e];this.splitview.layout(i,n)}doAddView(e){let t=e.api.onDidFocusChange(t=>{t.isFocused&&this.setActive(e,!0)});this._panels.set(e.id,t)}toJSON(){var e;return{views:this.splitview.getViews().map((e,t)=>({size:this.splitview.getViewSize(t),data:e.toJSON(),snap:!!e.snap,priority:e.priority})),activeView:null==(e=this._activePanel)?void 0:e.id,size:this.splitview.size,orientation:this.splitview.orientation}}fromJSON(e){this.clear();let{views:t,orientation:i,size:n,activeView:o}=e,r=[],s=this.width,a=this.height;if(this.splitview=new is(this.element,{orientation:i,proportionalLayout:this.options.proportionalLayout,descriptor:{size:n,views:t.map(e=>{let t=e.data;if(this._panels.has(t.id))throw Error(`panel ${t.id} already exists`);let n=this.options.createComponent({id:t.id,name:t.component});return r.push(()=>{var i;n.init({params:null!=(i=t.params)?i:{},minimumSize:t.minimumSize,maximumSize:t.maximumSize,snap:e.snap,priority:e.priority,accessor:this})}),n.orientation=i,this.doAddView(n),setTimeout(()=>{this._onDidAddView.fire(n)},0),{size:e.size,view:n}})}}),this.layout(s,a),r.forEach(e=>e()),"string"==typeof o){let e=this.getPanel(o);e&&this.setActive(e)}this._onDidLayoutfromJSON.fire()}clear(){for(let e of this._panels.values())e.dispose();for(this._panels.clear();this.splitview.length>0;)this.splitview.removeView(0,T.Distribute,!0).dispose()}dispose(){for(let e of this._panels.values())e.dispose();this._panels.clear();let e=this.splitview.getViews();for(let t of(this._splitviewChangeDisposable.dispose(),this.splitview.dispose(),e))t.dispose();this.element.remove(),super.dispose()}}class nD extends tK{get element(){return this._element}constructor(){super(),this._expandedIcon=iQ({width:"11",height:"11",viewbox:"0 0 24 15",path:"M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z"}),this._collapsedIcon=i0(),this.disposable=new tJ,this.apiRef={api:null},this._element=document.createElement("div"),this.element.className="dv-default-header",this._content=document.createElement("span"),this._expander=document.createElement("div"),this._expander.className="dv-pane-header-icon",this.element.appendChild(this._expander),this.element.appendChild(this._content),this.addDisposables(t$(this._element,"click",()=>{var e;null==(e=this.apiRef.api)||e.setExpanded(!this.apiRef.api.isExpanded)}))}init(e){this.apiRef.api=e.api,this._content.textContent=e.title,this.updateIcon(),this.disposable.value=e.api.onDidExpansionChange(()=>{this.updateIcon()})}updateIcon(){var e;let t=!!(null==(e=this.apiRef.api)?void 0:e.isExpanded);tQ(this._expander,"collapsed",!t),t?(this._expander.contains(this._collapsedIcon)&&this._collapsedIcon.remove(),this._expander.contains(this._expandedIcon)||this._expander.appendChild(this._expandedIcon)):(this._expander.contains(this._expandedIcon)&&this._expandedIcon.remove(),this._expander.contains(this._collapsedIcon)||this._expander.appendChild(this._collapsedIcon))}update(e){}dispose(){this.disposable.dispose(),super.dispose()}}let nC=ii(),nS=Number.MAX_SAFE_INTEGER;class nE extends iF{constructor(e){super({accessor:e.accessor,id:e.id,component:e.component,headerComponent:e.headerComponent,orientation:e.orientation,isExpanded:e.isExpanded,disableDnd:e.disableDnd,headerSize:e.headerSize,minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize}),this.options=e}getBodyComponent(){return this.options.body}getHeaderComponent(){return this.options.header}}class nA extends iy{get id(){return this._id}get panels(){return this.paneview.getPanes()}set paneview(e){this._paneview=e,this._disposable.value=new tK(this._paneview.onDidChange(()=>{this._onDidLayoutChange.fire(void 0)}),this._paneview.onDidAddView(e=>this._onDidAddView.fire(e)),this._paneview.onDidRemoveView(e=>this._onDidRemoveView.fire(e)))}get paneview(){return this._paneview}get minimumSize(){return this.paneview.minimumSize}get maximumSize(){return this.paneview.maximumSize}get height(){return this.paneview.orientation===I.HORIZONTAL?this.paneview.orthogonalSize:this.paneview.size}get width(){return this.paneview.orientation===I.HORIZONTAL?this.paneview.size:this.paneview.orthogonalSize}get options(){return this._options}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._id=nC.next(),this._disposable=new tJ,this._viewDisposables=new Map,this._onDidLayoutfromJSON=new tB,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidLayoutChange=new tB,this.onDidLayoutChange=this._onDidLayoutChange.event,this._onDidDrop=new tB,this.onDidDrop=this._onDidDrop.event,this._onDidAddView=new tB,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new tB,this.onDidRemoveView=this._onDidRemoveView.event,this._onUnhandledDragOverEvent=new tB,this.onUnhandledDragOverEvent=this._onUnhandledDragOverEvent.event,this.element.style.height="100%",this.element.style.width="100%",this.addDisposables(this._onDidLayoutChange,this._onDidLayoutfromJSON,this._onDidDrop,this._onDidAddView,this._onDidRemoveView,this._onUnhandledDragOverEvent),this._classNames=new t4(this.element),this._classNames.setClassNames(null!=(i=t.className)?i:""),e.appendChild(this.element),this._options=t,this.paneview=new il(this.element,{orientation:I.VERTICAL}),this.addDisposables(this._disposable)}setVisible(e,t){let i=this.panels.indexOf(e);this.paneview.setViewVisible(i,t)}focus(){}updateOptions(e){var t,i;"className"in e&&this._classNames.setClassNames(null!=(t=e.className)?t:""),"disableResizing"in e&&(this.disableResizing=null!=(i=e.disableAutoResizing)&&i),this._options=Object.assign(Object.assign({},this.options),e)}addPanel(e){var t,i;let n,o=this.options.createComponent({id:e.id,name:e.component});e.headerComponent&&this.options.createHeaderComponent&&(n=this.options.createHeaderComponent({id:e.id,name:e.headerComponent})),n||(n=new nD);let r=new nE({id:e.id,component:e.component,headerComponent:e.headerComponent,header:n,body:o,orientation:I.VERTICAL,isExpanded:!!e.isExpanded,disableDnd:!!this.options.disableDnd,accessor:this,headerSize:null!=(t=e.headerSize)?t:22,minimumBodySize:0,maximumBodySize:nS});this.doAddPanel(r);let s="number"==typeof e.size?e.size:T.Distribute,a="number"==typeof e.index?e.index:void 0;return r.init({params:null!=(i=e.params)?i:{},minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize,isExpanded:e.isExpanded,title:e.title,containerApi:new iS(this),accessor:this}),this.paneview.addPane(r,s,a),r.orientation=this.paneview.orientation,r}removePanel(e){let t=this.panels.findIndex(t=>t===e);this.paneview.removePane(t),this.doRemovePanel(e)}movePanel(e,t){this.paneview.moveView(e,t)}getPanel(e){return this.panels.find(t=>t.id===e)}layout(e,t){let[i,n]=this.paneview.orientation===I.HORIZONTAL?[e,t]:[t,e];this.paneview.layout(i,n)}toJSON(){return{views:this.paneview.getPanes().map((e,t)=>{let i,n;return{size:this.paneview.getViewSize(t),data:e.toJSON(),minimumSize:(i=e.minimumBodySize)<=0?void 0:i,maximumSize:(n=e.maximumBodySize)===Number.MAX_SAFE_INTEGER||n===1/0?void 0:n,headerSize:e.headerSize,expanded:e.isExpanded()}}),size:this.paneview.size}}fromJSON(e){this.clear();let{views:t,size:i}=e,n=[],o=this.width,r=this.height;this.paneview=new il(this.element,{orientation:I.VERTICAL,descriptor:{size:i,views:t.map(e=>{var t,i,o;let r,s=e.data,a=this.options.createComponent({id:s.id,name:s.component});s.headerComponent&&this.options.createHeaderComponent&&(r=this.options.createHeaderComponent({id:s.id,name:s.headerComponent})),r||(r=new nD);let l=new nE({id:s.id,component:s.component,headerComponent:s.headerComponent,header:r,body:a,orientation:I.VERTICAL,isExpanded:!!e.expanded,disableDnd:!!this.options.disableDnd,accessor:this,headerSize:null!=(t=e.headerSize)?t:22,minimumBodySize:null!=(i=e.minimumSize)?i:0,maximumBodySize:null!=(o=e.maximumSize)?o:nS});return this.doAddPanel(l),n.push(()=>{var t;l.init({params:null!=(t=s.params)?t:{},minimumBodySize:e.minimumSize,maximumBodySize:e.maximumSize,title:s.title,isExpanded:!!e.expanded,containerApi:new iS(this),accessor:this}),l.orientation=this.paneview.orientation}),setTimeout(()=>{this._onDidAddView.fire(l)},0),{size:e.size,view:l}})}}),this.layout(o,r),n.forEach(e=>e()),this._onDidLayoutfromJSON.fire()}clear(){for(let[e,t]of this._viewDisposables.entries())t.dispose();this._viewDisposables.clear(),this.paneview.dispose()}doAddPanel(e){let t=new tK(e.onDidDrop(e=>{this._onDidDrop.fire(e)}),e.onUnhandledDragOverEvent(e=>{this._onUnhandledDragOverEvent.fire(e)}));this._viewDisposables.set(e.id,t)}doRemovePanel(e){let t=this._viewDisposables.get(e.id);t&&(t.dispose(),this._viewDisposables.delete(e.id))}dispose(){for(let[e,t]of(super.dispose(),this._viewDisposables.entries()))t.dispose();this._viewDisposables.clear(),this.element.remove(),this.paneview.dispose()}}class nk extends iW{get priority(){return this._priority}set orientation(e){this._orientation=e}get orientation(){return this._orientation}get minimumSize(){let e="function"==typeof this._minimumSize?this._minimumSize():this._minimumSize;return e!==this._evaluatedMinimumSize&&(this._evaluatedMinimumSize=e,this.updateConstraints()),e}get maximumSize(){let e="function"==typeof this._maximumSize?this._maximumSize():this._maximumSize;return e!==this._evaluatedMaximumSize&&(this._evaluatedMaximumSize=e,this.updateConstraints()),e}get snap(){return this._snap}constructor(e,t){super(e,t,new iG(e,t)),this._evaluatedMinimumSize=0,this._evaluatedMaximumSize=1/0,this._minimumSize=0,this._maximumSize=1/0,this._snap=!1,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this.api.initialize(this),this.addDisposables(this._onDidChange,this.api.onWillVisibilityChange(e=>{let{isVisible:t}=e,{accessor:i}=this._params;i.setVisible(this,t)}),this.api.onActiveChange(()=>{let{accessor:e}=this._params;e.setActive(this)}),this.api.onDidConstraintsChangeInternal(e=>{("number"==typeof e.minimumSize||"function"==typeof e.minimumSize)&&(this._minimumSize=e.minimumSize),("number"==typeof e.maximumSize||"function"==typeof e.maximumSize)&&(this._maximumSize=e.maximumSize),this.updateConstraints()}),this.api.onDidSizeChange(e=>{this._onDidChange.fire({size:e.size})}))}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}layout(e,t){let[i,n]=this.orientation===I.HORIZONTAL?[e,t]:[t,e];super.layout(i,n)}init(e){super.init(e),this._priority=e.priority,e.minimumSize&&(this._minimumSize=e.minimumSize),e.maximumSize&&(this._maximumSize=e.maximumSize),e.snap&&(this._snap=e.snap)}toJSON(){let e,t;return Object.assign(Object.assign({},super.toJSON()),{minimumSize:(e=this.minimumSize)<=0?void 0:e,maximumSize:(t=this.maximumSize)===Number.MAX_SAFE_INTEGER||t===1/0?void 0:t})}updateConstraints(){this.api._onDidConstraintsChange.fire({maximumSize:this._evaluatedMaximumSize,minimumSize:this._evaluatedMinimumSize})}}let nz=(e,t)=>{let[i,n]=W.default.useState(),o=W.default.useRef(e.componentProps);return W.default.useImperativeHandle(t,()=>({update:e=>{o.current=Object.assign(Object.assign({},o.current),e),n(Date.now())}}),[]),W.default.createElement(e.component,o.current)};nz.displayName="DockviewReactJsBridge";let nP=(i=1,{next:()=>`dockview_react_portal_key_${(i++).toString()}`}),nR=W.default.createContext({});class nN{constructor(e,t,i,n,o){this.parent=e,this.portalStore=t,this.component=i,this.parameters=n,this.context=o,this._initialProps={},this.disposed=!1,this.createPortal()}update(e){if(this.disposed)throw Error("invalid operation: resource is already disposed");this.componentInstance?this.componentInstance.update(e):this._initialProps=Object.assign(Object.assign({},this._initialProps),e)}createPortal(){var e;if(this.disposed)throw Error("invalid operation: resource is already disposed");if(!("function"==typeof(e=this.component)||(null==e?void 0:e.$$typeof)))throw Error("Dockview: Only React.memo(...), React.ForwardRef(...) and functional components are accepted as components");let t=W.default.createElement(W.default.forwardRef(nz),{component:this.component,componentProps:this.parameters,ref:e=>{this.componentInstance=e,Object.keys(this._initialProps).length>0&&(this.componentInstance.update(this._initialProps),this._initialProps={})}}),i=this.context?W.default.createElement(nR.Provider,{value:this.context},t):t,n=H.default.createPortal(i,this.parent,nP.next());this.ref={portal:n,disposable:this.portalStore.addPortal(n)}}dispose(){var e;null==(e=this.ref)||e.disposable.dispose(),this.disposed=!0}}let nO=()=>{let[e,t]=W.default.useState([]);return W.default.useDebugValue(`Portal count: ${e.length}`),[e,W.default.useCallback(e=>{t(t=>[...t,e]);let i=!1;return O.from(()=>{if(i)throw Error("invalid operation: resource already disposed");i=!0,t(t=>t.filter(t=>t!==e))})},[])]};class nI{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._onDidFocus=new tB,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new tB,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new nN(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi})}update(e){var t;null==(t=this.part)||t.update({params:e.params})}layout(e,t){}dispose(){var e;this._onDidFocus.dispose(),this._onDidBlur.dispose(),null==(e=this.part)||e.dispose()}}class nM{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new nN(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi,tabLocation:e.tabLocation})}update(e){var t;null==(t=this.part)||t.update({params:e.params})}layout(e,t){}dispose(){var e;null==(e=this.part)||e.dispose()}}class nL{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new nN(this.element,this.reactPortalStore,this.component,{group:e.group,containerApi:e.containerApi})}focus(){}update(e){var t,i,n;this.parameters&&(this.parameters.params=e.params),null==(t=this.part)||t.update({params:null!=(n=null==(i=this.parameters)?void 0:i.params)?n:{}})}layout(e,t){}dispose(){var e;null==(e=this.part)||e.dispose()}}class nT{get element(){return this._element}get part(){return this._part}constructor(e,t,i){this.component=e,this.reactPortalStore=t,this._group=i,this.mutableDisposable=new tJ,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.mutableDisposable.value=new tK(this._group.model.onDidAddPanel(()=>{this.updatePanels()}),this._group.model.onDidRemovePanel(()=>{this.updatePanels()}),this._group.model.onDidActivePanelChange(()=>{this.updateActivePanel()}),e.api.onDidActiveChange(()=>{this.updateGroupActive()})),this._part=new nN(this.element,this.reactPortalStore,this.component,{api:e.api,containerApi:e.containerApi,panels:this._group.model.panels,activePanel:this._group.model.activePanel,isGroupActive:this._group.api.isActive,group:this._group})}dispose(){var e;this.mutableDisposable.dispose(),null==(e=this._part)||e.dispose()}update(e){var t;null==(t=this._part)||t.update(e.params)}updatePanels(){this.update({params:{panels:this._group.model.panels}})}updateActivePanel(){this.update({params:{activePanel:this._group.model.activePanel}})}updateGroupActive(){this.update({params:{isGroupActive:this._group.api.isActive}})}}function nj(e,t){return e?i=>new nT(e,t,i):void 0}let nG="props.defaultTabComponent",nV=W.default.forwardRef((e,t)=>{let i=W.default.useRef(null),n=W.default.useRef(),[o,r]=nO();W.default.useImperativeHandle(t,()=>i.current,[]);let s=W.default.useRef({});return W.default.useEffect(()=>{let t={};i5.forEach(i=>{let n=e[i];i in e&&n!==s.current[i]&&(t[i]=n)}),n.current&&n.current.updateOptions(t),s.current=e},i5.map(t=>e[t])),W.default.useEffect(()=>{var t;if(!i.current)return;let o=null!=(t=e.tabComponents)?t:{};e.defaultTabComponent&&(o[nG]=e.defaultTabComponent);let s={createLeftHeaderActionComponent:nj(e.leftHeaderActionsComponent,{addPortal:r}),createRightHeaderActionComponent:nj(e.rightHeaderActionsComponent,{addPortal:r}),createPrefixHeaderActionComponent:nj(e.prefixHeaderActionsComponent,{addPortal:r}),createComponent:t=>new nI(t.id,e.components[t.name],{addPortal:r}),createTabComponent:e=>new nM(e.id,o[e.name],{addPortal:r}),createWatermarkComponent:e.watermarkComponent?()=>new nL("watermark",e.watermarkComponent,{addPortal:r}):void 0,defaultTabComponent:e.defaultTabComponent?nG:void 0},a=new ny(i.current,Object.assign(Object.assign({},i5.reduce((t,i)=>(i in e&&(t[i]=e[i]),t),{})),s)).api,{clientWidth:l,clientHeight:d}=i.current;return a.layout(l,d),e.onReady&&e.onReady({api:a}),n.current=a,()=>{n.current=void 0,a.dispose()}},[]),W.default.useEffect(()=>{if(!n.current)return()=>{};let t=n.current.onDidDrop(t=>{e.onDidDrop&&e.onDidDrop(t)});return()=>{t.dispose()}},[e.onDidDrop]),W.default.useEffect(()=>{if(!n.current)return()=>{};let t=n.current.onWillDrop(t=>{e.onWillDrop&&e.onWillDrop(t)});return()=>{t.dispose()}},[e.onWillDrop]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createComponent:t=>new nI(t.id,e.components[t.name],{addPortal:r})})},[e.components]),W.default.useEffect(()=>{var t;if(!n.current)return;let i=null!=(t=e.tabComponents)?t:{};e.defaultTabComponent&&(i[nG]=e.defaultTabComponent),n.current.updateOptions({defaultTabComponent:e.defaultTabComponent?nG:void 0,createTabComponent:e=>new nM(e.id,i[e.name],{addPortal:r})})},[e.tabComponents,e.defaultTabComponent]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createWatermarkComponent:e.watermarkComponent?()=>new nL("watermark",e.watermarkComponent,{addPortal:r}):void 0})},[e.watermarkComponent]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createRightHeaderActionComponent:nj(e.rightHeaderActionsComponent,{addPortal:r})})},[e.rightHeaderActionsComponent]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createLeftHeaderActionComponent:nj(e.leftHeaderActionsComponent,{addPortal:r})})},[e.leftHeaderActionsComponent]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createPrefixHeaderActionComponent:nj(e.prefixHeaderActionsComponent,{addPortal:r})})},[e.prefixHeaderActionsComponent]),W.default.createElement("div",{style:{height:"100%",width:"100%"},ref:i},o)});nV.displayName="DockviewComponent";class nW extends nk{constructor(e,t,i,n){super(e,t),this.reactComponent=i,this.reactPortalStore=n}getComponent(){var e,t;return new nN(this.element,this.reactPortalStore,this.reactComponent,{params:null!=(t=null==(e=this._params)?void 0:e.params)?t:{},api:this.api,containerApi:new iC(this._params.accessor)})}}W.default.forwardRef((e,t)=>{let i=W.default.useRef(null),n=W.default.useRef(),[o,r]=nO();W.default.useImperativeHandle(t,()=>i.current,[]);let s=W.default.useRef({});return W.default.useEffect(()=>{let t={};ia.forEach(i=>{let n=e[i];i in e&&n!==s.current[i]&&(t[i]=n)}),n.current&&n.current.updateOptions(t),s.current=e},ia.map(t=>e[t])),W.default.useEffect(()=>{if(!i.current)return()=>{};let t=new iC(new n_(i.current,Object.assign(Object.assign({},ia.reduce((t,i)=>(i in e&&(t[i]=e[i]),t),{})),{createComponent:t=>new nW(t.id,t.name,e.components[t.name],{addPortal:r})}))),{clientWidth:o,clientHeight:s}=i.current;return t.layout(o,s),e.onReady&&e.onReady({api:t}),n.current=t,()=>{n.current=void 0,t.dispose()}},[]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createComponent:t=>new nW(t.id,t.name,e.components[t.name],{addPortal:r})})},[e.components]),W.default.createElement("div",{style:{height:"100%",width:"100%"},ref:i},o)}).displayName="SplitviewComponent";class nH extends i8{constructor(e,t,i,n){super(e,t),this.reactComponent=i,this.reactPortalStore=n}getComponent(){var e,t;return new nN(this.element,this.reactPortalStore,this.reactComponent,{params:null!=(t=null==(e=this._params)?void 0:e.params)?t:{},api:this.api,containerApi:new iE(this._params.accessor)})}}W.default.forwardRef((e,t)=>{let i=W.default.useRef(null),n=W.default.useRef(),[o,r]=nO();W.default.useImperativeHandle(t,()=>i.current,[]);let s=W.default.useRef({});return W.default.useEffect(()=>{let t={};ib.forEach(i=>{let n=e[i];i in e&&n!==s.current[i]&&(t[i]=n)}),n.current&&n.current.updateOptions(t),s.current=e},ib.map(t=>e[t])),W.default.useEffect(()=>{if(!i.current)return()=>{};let t=new iE(new nx(i.current,Object.assign(Object.assign({},ib.reduce((t,i)=>(i in e&&(t[i]=e[i]),t),{})),{createComponent:t=>new nH(t.id,t.name,e.components[t.name],{addPortal:r})}))),{clientWidth:o,clientHeight:s}=i.current;return t.layout(o,s),e.onReady&&e.onReady({api:t}),n.current=t,()=>{n.current=void 0,t.dispose()}},[]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createComponent:t=>new nH(t.id,t.name,e.components[t.name],{addPortal:r})})},[e.components]),W.default.createElement("div",{style:{height:"100%",width:"100%"},ref:i},o)}).displayName="GridviewComponent";class nF{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new nN(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,title:e.title,containerApi:e.containerApi})}toJSON(){return{id:this.id}}update(e){var t;null==(t=this.part)||t.update(e.params)}dispose(){var e;null==(e=this.part)||e.dispose()}}W.default.forwardRef((e,t)=>{let i=W.default.useRef(null),n=W.default.useRef(),[o,r]=nO();W.default.useImperativeHandle(t,()=>i.current,[]);let s=W.default.useRef({});return W.default.useEffect(()=>{let t={};iM.forEach(i=>{let n=e[i];i in e&&n!==s.current[i]&&(t[i]=n)}),n.current&&n.current.updateOptions(t),s.current=e},iM.map(t=>e[t])),W.default.useEffect(()=>{var t;if(!i.current)return()=>{};let o=null!=(t=e.headerComponents)?t:{},s=new iS(new nA(i.current,Object.assign(Object.assign({},iM.reduce((t,i)=>(i in e&&(t[i]=e[i]),t),{})),{createComponent:t=>new nF(t.id,e.components[t.name],{addPortal:r}),createHeaderComponent:e=>new nF(e.id,o[e.name],{addPortal:r})}))),{clientWidth:a,clientHeight:l}=i.current;return s.layout(a,l),e.onReady&&e.onReady({api:s}),n.current=s,()=>{n.current=void 0,s.dispose()}},[]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createComponent:t=>new nF(t.id,e.components[t.name],{addPortal:r})})},[e.components]),W.default.useEffect(()=>{var t;if(!n.current)return;let i=null!=(t=e.headerComponents)?t:{};n.current.updateOptions({createHeaderComponent:e=>new nF(e.id,i[e.name],{addPortal:r})})},[e.headerComponents]),W.default.useEffect(()=>{if(!n.current)return()=>{};let t=n.current.onDidDrop(t=>{e.onDidDrop&&e.onDidDrop(t)});return()=>{t.dispose()}},[e.onDidDrop]),W.default.createElement("div",{style:{height:"100%",width:"100%"},ref:i},o)}).displayName="PaneviewComponent";let nB=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,i)=>i?i.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},n$=(...e)=>e.filter((e,t,i)=>!!e&&""!==e.trim()&&i.indexOf(e)===t).join(" ").trim();var nU={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let nK=(0,W.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:i=2,absoluteStrokeWidth:n,className:o="",children:r,iconNode:s,...a},l)=>(0,W.createElement)("svg",{ref:l,...nU,width:t,height:t,stroke:e,strokeWidth:n?24*Number(i)/Number(t):i,className:n$("lucide",o),...!r&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(a)&&{"aria-hidden":"true"},...a},[...s.map(([e,t])=>(0,W.createElement)(e,t)),...Array.isArray(r)?r:[r]])),nJ=(e,t)=>{let i=(0,W.forwardRef)(({className:i,...n},o)=>(0,W.createElement)(nK,{ref:o,iconNode:t,className:n$(`lucide-${nB(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,i),...n}));return i.displayName=nB(e),i},nZ=nJ("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),nX=nJ("disc",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),nq=nJ("grid-3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);function nY({icon:e,title:t,subtitle:i,children:n,className:o}){return(0,V.jsxs)("div",{className:tm("h-6 min-h-[24px] flex items-center justify-between px-3 border-b border-border bg-secondary select-none",o),children:[(0,V.jsxs)("div",{className:"flex items-center gap-1 min-w-0",children:[e&&(0,V.jsx)("span",{className:"flex-shrink-0 w-3.5 h-3.5 text-muted-foreground",children:e}),(0,V.jsx)("span",{className:"text-[12px] leading-[16px] font-medium tracking-[-0.15px] text-foreground truncate",children:t}),i&&(0,V.jsx)("span",{className:"text-[11px] leading-4 text-muted-foreground truncate",children:i})]}),n&&(0,V.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let nQ=nJ("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),n0=nJ("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),n1=nJ("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),n2=nJ("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);function n5({className:e}){let{datasetInfo:t,embeddingsByLayoutKey:i,activeLayoutKey:n,labelFilter:o,setLabelFilter:r}=eg(),[s,a]=W.default.useState(""),[l,d]=W.default.useState(!1),[h,u]=W.default.useState(!0),c=W.default.useRef(null),p=n??t?.layouts?.[0]?.layout_key??null,{labelCounts:m,labelUniverse:f,distinctLabelCount:g,distinctColoringDisabled:v,labelColorMap:w,legendLabels:b}=tE({datasetInfo:t,embeddings:p?i[p]??null:null,labelSearch:s,labelFilter:o}),y=m.size>0,x=f.length>0?f.filter(e=>"undefined"!==e).length:g,_=s.trim().length>0?b.length:x,D=o?em(o):null;return W.default.useEffect(()=>{l&&c.current&&c.current.focus()},[l]),(0,V.jsxs)(tf,{className:tm("h-full flex flex-col",e),children:[(0,V.jsx)(nY,{title:"Explorer"}),(0,V.jsx)("div",{className:"flex-1 min-h-0 overflow-auto panel-scroll",children:(0,V.jsxs)("div",{className:"border-b border-border",children:[(0,V.jsxs)("div",{className:"flex items-center h-6 px-2 bg-secondary/50",children:[(0,V.jsxs)("button",{onClick:()=>u(!h),className:"flex items-center gap-1.5 flex-1 min-w-0 text-left hover:bg-muted/30 rounded px-1 -ml-1",children:[h?(0,V.jsx)(n1,{className:"h-3 w-3 flex-shrink-0 text-muted-foreground"}):(0,V.jsx)(n2,{className:"h-3 w-3 flex-shrink-0 text-muted-foreground"}),(0,V.jsx)(nQ,{className:"h-3 w-3 flex-shrink-0 text-muted-foreground"}),(0,V.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:"Labels"}),(0,V.jsx)("span",{className:"ml-auto text-xs text-muted-foreground/50 tabular-nums",children:_})]}),(0,V.jsx)("button",{onClick:()=>{d(!l),l&&a("")},className:tm("h-5 w-5 flex items-center justify-center rounded text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50 transition-colors ml-1",l&&"text-muted-foreground bg-muted/50"),title:"Search labels",children:(0,V.jsx)(n0,{className:"h-3 w-3"})})]}),l&&(0,V.jsx)("div",{className:"px-2 py-1.5 bg-secondary/30 border-b border-border/50",children:(0,V.jsx)("input",{ref:c,value:s,onChange:e=>a(e.target.value),placeholder:"Filter labels...",className:"w-full h-6 px-2 rounded bg-background border border-border text-[12px] leading-[16px] text-foreground placeholder:text-muted-foreground/50 outline-none focus:ring-1 focus:ring-ring focus:border-ring"})}),h&&(0,V.jsxs)("div",{className:"py-1",children:[v&&(0,V.jsxs)("div",{className:"px-3 py-1 text-[10px] text-muted-foreground/60",children:["Too many labels (",g,") to color distinctly; using one color."]}),0===b.length?(0,V.jsx)("div",{className:"px-3 py-2 text-[11px] text-muted-foreground/50",children:"No labels available"}):(0,V.jsx)("div",{className:"space-y-px",children:b.map(e=>{let t="undefined"===e?el:w[e]??ed,i=em(e),n=D===i;return(0,V.jsxs)("button",{type:"button",onClick:()=>r(n?null:i),className:tm("flex items-center gap-2 w-full h-6 px-3 text-[12px] leading-[16px] text-left text-muted-foreground hover:text-foreground","hover:bg-muted/40 transition-colors",n&&"bg-muted/60 text-foreground",D&&!n&&"opacity-40"),children:[(0,V.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:t}}),(0,V.jsx)("span",{className:"truncate flex-1",title:e,children:e}),y&&(0,V.jsx)("span",{className:"text-[10px] text-muted-foreground/50 font-mono tabular-nums flex-shrink-0",children:m.get(e)??0})]},e)})})]})]})})]})}let n3=nJ("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function n4({className:e,onClose:t}){return(0,V.jsxs)(tf,{className:tm("h-full w-full relative",e),children:[t&&(0,V.jsx)("button",{onClick:t,className:"absolute top-3 right-3 p-1.5 rounded-md text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/60 transition-colors z-10","aria-label":"Close panel",children:(0,V.jsx)(n3,{className:"h-4 w-4"})}),(0,V.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,V.jsx)("div",{className:"text-muted-foreground/20",children:(0,V.jsx)(tg,{className:"w-12 h-12"})})})]})}let n9="hyperview:dockview-layout:v4",n6="explorer",n8="grid",n7="scatter-euclidean",oe="scatter-poincare",ot="scatter-default",oi="right-placeholder",on="bottom-placeholder",oo=[n8,n7,oe,ot],or=[{id:n8,label:"Samples",icon:nq},{id:n7,label:"Euclidean",icon:nZ},{id:oe,label:"Hyperbolic",icon:nX}],os=new Set([n6,oi,on]),oa=new Set([n6]),ol=e=>e?.width??window.innerWidth,od=e=>Math.round(Math.min(.35*e,200));function oh(e){return{direction:"bottom"===e?"below":e}}let ou=(0,W.createContext)(null);function oc(){let e=(0,W.useContext)(ou);if(!e)throw Error("useDockviewContext must be used within DockviewProvider");return e}let op=W.default.memo(function(e){let t=e.params??{};return(0,V.jsx)(tO,{className:"h-full",layoutKey:t.layoutKey,geometry:t.geometry})}),om=W.default.memo(function({api:e,icon:t}){return(0,V.jsxs)("div",{className:"flex items-center gap-1 text-[12px] leading-[16px] font-medium tracking-[-0.15px]",children:[(0,V.jsx)("span",{className:"flex-shrink-0",children:t}),(0,V.jsx)("span",{className:"truncate",children:e.title})]})}),of=W.default.memo(function(e){return(0,V.jsx)(om,{...e,icon:(0,V.jsx)(nZ,{className:"h-3.5 w-3.5"})})}),og=W.default.memo(function(e){return(0,V.jsx)(om,{...e,icon:(0,V.jsx)(nX,{className:"h-3.5 w-3.5"})})}),ov=W.default.memo(function(e){return(0,V.jsx)(om,{...e,icon:(0,V.jsx)(nq,{className:"h-3.5 w-3.5"})})}),ow=W.default.memo(function(){let e=oc();return(0,V.jsx)(ty,{samples:e.samples,onLoadMore:e.onLoadMore,hasMore:e.hasMore})}),ob=W.default.memo(function(){return(0,V.jsx)(n5,{})}),oy=W.default.memo(function(e){let t=W.default.useCallback(()=>{e.api.close()},[e.api]);return(0,V.jsx)(n4,{onClose:t})}),ox=W.default.memo(function(e){return(0,V.jsx)("div",{className:"flex items-center justify-center h-full w-full",children:(0,V.jsx)("div",{className:"text-muted-foreground/20",children:(0,V.jsx)(tg,{className:"w-16 h-16"})})})}),o_={grid:ow,scatter:op,explorer:ob,placeholder:oy},oD={euclideanTab:of,hyperbolicTab:og,samplesTab:ov};function oC({children:e,samples:t,onLoadMore:i,hasMore:n}){let[o,r]=(0,W.useState)(null),s=(0,W.useMemo)(()=>({api:o,setApi:r,samples:t,onLoadMore:i,hasMore:n}),[o,t,i,n]);return(0,V.jsx)(ou.Provider,{value:s,children:e})}function oS(){let e=oc(),t=eg(e=>e.datasetInfo),{setLeftPanelOpen:i,setRightPanelOpen:n,setBottomPanelOpen:o}=eg(),r=(0,W.useCallback)(e=>{let r=t?.layouts??[],s=tA(r,"euclidean"),a=tA(r,"poincare"),l=s||a?null:r[0],d=r.length>0,h=e.getPanel(n8)??e.addPanel({id:n8,component:"grid",title:"Samples",tabComponent:"samplesTab",renderer:"always"}),u=null;if(d&&s&&(u=e.getPanel(n7)??e.addPanel({id:n7,component:"scatter",title:"Euclidean",tabComponent:"euclideanTab",params:{layoutKey:s.layout_key,geometry:"euclidean"},position:{referencePanel:h.id,direction:"right"},renderer:"always"})),d&&a){let t=u?{referencePanel:u.id,direction:"within"}:{referencePanel:h.id,direction:"right"},i=e.getPanel(oe)??e.addPanel({id:oe,component:"scatter",title:"Hyperbolic",tabComponent:"hyperbolicTab",params:{layoutKey:a.layout_key,geometry:"poincare"},position:t,renderer:"always"});u||(u=i)}if(!d){let t=e.getPanel(n7)??e.addPanel({id:n7,component:"scatter",title:"Euclidean",tabComponent:"euclideanTab",params:{geometry:"euclidean"},position:{referencePanel:h.id,direction:"right"},renderer:"always"});e.getPanel(oe)??e.addPanel({id:oe,component:"scatter",title:"Hyperbolic",tabComponent:"hyperbolicTab",params:{geometry:"poincare"},position:{referencePanel:t.id,direction:"within"},renderer:"always"}),u=t}l&&!u&&(e.getPanel(ot)??e.addPanel({id:ot,component:"scatter",title:"Embeddings",params:{layoutKey:l.layout_key},position:{referencePanel:h.id,direction:"right"},renderer:"always"}));let c=ol(e),p=e.getPanel(n6)??e.addPanel({id:n6,component:"explorer",title:"Explorer",position:oh("left"),initialWidth:od(c),minimumWidth:120,maximumWidth:od(c),inactive:!0});p&&(p.group.locked=!0,p.group.header.hidden=!0),i(!!p),n(!1),o(!1)},[t,i,n,o]),s=(0,W.useCallback)(t=>{e.setApi(t.api);let s=localStorage.getItem(n9);if(s)try{var a;let e,l,d;t.api.fromJSON(JSON.parse(s)),0===t.api.totalPanels&&(localStorage.removeItem(n9),r(t.api)),(e=(a=t.api).getPanel(n6))&&(e.group.locked=!0,e.group.header.hidden=!0),(l=a.getPanel(oi))&&(l.group.header.hidden=!0),(d=a.getPanel(on))&&(d.group.header.hidden=!0),i(!!t.api.getPanel(n6)),n(!!t.api.getPanel(oi)),o(!!t.api.getPanel(on));return}catch(e){console.warn("Failed to restore dock layout, resetting.",e),localStorage.removeItem(n9)}0===t.api.totalPanels&&r(t.api)},[r,e,i,n,o]);return(0,W.useEffect)(()=>{let t=e.api;if(!t)return;let i=t.onDidLayoutChange(()=>{if(0===t.totalPanels)return;let e=t.toJSON();localStorage.setItem(n9,JSON.stringify(e))});return()=>i.dispose()},[e.api]),(0,W.useEffect)(()=>{let t=e.api;if(!t)return;let r=t.onDidRemovePanel(e=>{e.id===n6&&i(!1),e.id===oi&&n(!1),e.id===on&&o(!1)});return()=>r.dispose()},[e.api,i,n,o]),(0,W.useEffect)(()=>{let t=e.api;if(!t)return;let i=t.onDidAddPanel(e=>{if(e.id===oi||e.id===on)return;let i=e.group;if(!i)return;let n=t.getPanel(oi),o=t.getPanel(on);n&&n.group?.id===i.id&&n.api.close(),o&&o.group?.id===i.id&&o.api.close()});return()=>i.dispose()},[e.api]),(0,W.useEffect)(()=>{let t=e.api;if(!t)return;let i=t.onWillDragPanel(e=>{oa.has(e.panel.id)&&e.nativeEvent.preventDefault()});return()=>i.dispose()},[e.api]),(0,W.useEffect)(()=>{!e.api||!t||e.api.getPanel(n7)||e.api.getPanel(oe)||e.api.getPanel(ot)||r(e.api)},[r,t,e.api]),(0,V.jsx)("div",{className:"h-full w-full",children:(0,V.jsx)(nV,{className:"dockview-theme-abyss hyperview-dockview",components:o_,tabComponents:oD,onReady:s,theme:ni,defaultRenderer:"always",scrollbars:"native",watermarkComponent:ox})})}function oE(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function oA(...e){return t=>{let i=!1,n=e.map(e=>{let n=oE(e,t);return i||"function"!=typeof n||(i=!0),n});if(i)return()=>{for(let t=0;t{let{children:i,...n}=e;if(oR(i)&&"function"==typeof oP&&(i=oP(i._payload)),W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName="Slot.SlotClone",n=f,(o=W.forwardRef((e,t)=>{let{children:i,...o}=e;oR(i)&&"function"==typeof oP&&(i=oP(i._payload));let r=W.Children.toArray(i),s=r.find(oI);if(s){let e=s.props.children,i=r.map(t=>t!==s?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(n,{...o,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(n,{...o,ref:t,children:i})})).displayName="Slot.Slot",o),oO=Symbol("radix.slottable");function oI(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===oO}let oM=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,oL=(r="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",s={variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}},e=>{var t;if((null==s?void 0:s.variants)==null)return ev(r,null==e?void 0:e.class,null==e?void 0:e.className);let{variants:i,defaultVariants:n}=s,o=Object.keys(i).map(t=>{let o=null==e?void 0:e[t],r=null==n?void 0:n[t];if(null===o)return null;let s=oM(o)||oM(r);return i[t][s]}),a=e&&Object.entries(e).reduce((e,t)=>{let[i,n]=t;return void 0===n||(e[i]=n),e},{});return ev(r,o,null==s||null==(t=s.compoundVariants)?void 0:t.reduce((e,t)=>{let{class:i,className:o,...r}=t;return Object.entries(r).every(e=>{let[t,i]=e;return Array.isArray(i)?i.includes({...n,...a}[t]):({...n,...a})[t]===i})?[...e,i,o]:e},[]),null==e?void 0:e.class,null==e?void 0:e.className)}),oT=W.forwardRef(({className:e,variant:t,size:i,asChild:n=!1,...o},r)=>(0,V.jsx)(n?oN:"button",{className:tm(oL({variant:t,size:i,className:e})),ref:r,...o}));function oj(e,t,{checkForDefaultPrevented:i=!0}={}){return function(n){if(e?.(n),!1===i||!n.defaultPrevented)return t?.(n)}}function oG(e,t=[]){let i=[],n=()=>{let t=i.map(e=>W.createContext(e));return function(i){let n=i?.[e]||t;return W.useMemo(()=>({[`__scope${e}`]:{...i,[e]:n}}),[i,n])}};return n.scopeName=e,[function(t,n){let o=W.createContext(n),r=i.length;i=[...i,n];let s=t=>{let{scope:i,children:n,...s}=t,a=i?.[e]?.[r]||o,l=W.useMemo(()=>s,Object.values(s));return(0,V.jsx)(a.Provider,{value:l,children:n})};return s.displayName=t+"Provider",[s,function(i,s){let a=s?.[e]?.[r]||o,l=W.useContext(a);if(l)return l;if(void 0!==n)return n;throw Error(`\`${i}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let i=()=>{let i=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=i.reduce((t,{useScope:i,scopeName:n})=>{let o=i(e)[`__scope${n}`];return{...t,...o}},{});return W.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return i.scopeName=t.scopeName,i}(n,...t)]}oT.displayName="Button","undefined"!=typeof window&&window.document&&window.document.createElement;var oV=globalThis?.document?W.useLayoutEffect:()=>{};W[" useEffectEvent ".trim().toString()],W[" useInsertionEffect ".trim().toString()];var oW=W[" useInsertionEffect ".trim().toString()]||oV;function oH({prop:e,defaultProp:t,onChange:i=()=>{},caller:n}){let[o,r,s]=function({defaultProp:e,onChange:t}){let[i,n]=W.useState(e),o=W.useRef(i),r=W.useRef(t);return oW(()=>{r.current=t},[t]),W.useEffect(()=>{o.current!==i&&(r.current?.(i),o.current=i)},[i,o]),[i,n,r]}({defaultProp:t,onChange:i}),a=void 0!==e,l=a?e:o;{let t=W.useRef(void 0!==e);W.useEffect(()=>{let e=t.current;if(e!==a){let t=a?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=a},[a,n])}return[l,W.useCallback(t=>{if(a){let i="function"==typeof t?t(e):t;i!==e&&s.current?.(i)}else r(t)},[a,e,r,s])]}Symbol("RADIX:SYNC_STATE");var oF=Symbol("radix.slottable");function oB(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===oF}var o$=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{var i,n;let o,r,s,a=(n=i=`Primitive.${t}`,(o=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName=`${n}.SlotClone`,r=o,(s=W.forwardRef((e,t)=>{let{children:i,...n}=e,o=W.Children.toArray(i),s=o.find(oB);if(s){let e=s.props.children,i=o.map(t=>t!==s?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(r,{...n,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(r,{...n,ref:t,children:i})})).displayName=`${i}.Slot`,s),l=W.forwardRef((e,i)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,V.jsx)(n?a:t,{...o,ref:i})});return l.displayName=`Primitive.${t}`,{...e,[t]:l}},{});function oU(e,t){e&&H.flushSync(()=>e.dispatchEvent(t))}function oK(e){var t;let i,n=(t=e,(i=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName=`${t}.SlotClone`,i),o=W.forwardRef((e,t)=>{let{children:i,...o}=e,r=W.Children.toArray(i),s=r.find(oZ);if(s){let e=s.props.children,i=r.map(t=>t!==s?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(n,{...o,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(n,{...o,ref:t,children:i})});return o.displayName=`${e}.Slot`,o}var oJ=Symbol("radix.slottable");function oZ(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===oJ}function oX(e){let t=e+"CollectionProvider",[i,n]=oG(t),[o,r]=i(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:i}=e,n=W.default.useRef(null),r=W.default.useRef(new Map).current;return(0,V.jsx)(o,{scope:t,itemMap:r,collectionRef:n,children:i})};s.displayName=t;let a=e+"CollectionSlot",l=oK(a),d=W.default.forwardRef((e,t)=>{let{scope:i,children:n}=e,o=ok(t,r(a,i).collectionRef);return(0,V.jsx)(l,{ref:o,children:n})});d.displayName=a;let h=e+"CollectionItemSlot",u="data-radix-collection-item",c=oK(h),p=W.default.forwardRef((e,t)=>{let{scope:i,children:n,...o}=e,s=W.default.useRef(null),a=ok(t,s),l=r(h,i);return W.default.useEffect(()=>(l.itemMap.set(s,{ref:s,...o}),()=>void l.itemMap.delete(s))),(0,V.jsx)(c,{...{[u]:""},ref:a,children:n})});return p.displayName=h,[{Provider:s,Slot:d,ItemSlot:p},function(t){let i=r(e+"CollectionConsumer",t);return W.default.useCallback(()=>{let e=i.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(i.itemMap.values()).sort((e,i)=>t.indexOf(e.ref.current)-t.indexOf(i.ref.current))},[i.collectionRef,i.itemMap])},n]}var oq=new WeakMap;function oY(e,t){var i,n;let o,r,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let a=(i=e,n=t,o=i.length,(s=(r=oQ(n))>=0?r:o+r)<0||s>=o?-1:s);return -1===a?void 0:e[a]}function oQ(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],oq.set(this,!0)}set(e,t){return oq.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,i){let n,o=this.has(t),r=this.#e.length,s=oQ(e),a=s>=0?s:r+s,l=a<0||a>=r?-1:a;if(l===this.size||o&&l===this.size-1||-1===l)return this.set(t,i),this;let d=this.size+ +!o;s<0&&a++;let h=[...this.#e],u=!1;for(let e=a;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let i=this.indexOf(e);if(-1===i)return;let n=i+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let i=0;for(let n of this){if(Reflect.apply(e,t,[n,i,this]))return n;i++}}findIndex(e,t){let i=0;for(let n of this){if(Reflect.apply(e,t,[n,i,this]))return i;i++}return -1}filter(t,i){let n=[],o=0;for(let e of this)Reflect.apply(t,i,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,i){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,i,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,i]=e,n=0,o=i??this.at(0);for(let i of this)o=0===n&&1===e.length?i:Reflect.apply(t,this,[o,i,n,this]),n++;return o}reduceRight(...e){let[t,i]=e,n=i??this.at(-1);for(let i=this.size-1;i>=0;i--){let o=this.at(i);n=i===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,i,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let i=this.keyAt(e),n=this.get(i);t.set(i,n)}return t}toSpliced(...t){let i=[...this.entries()];return i.splice(...t),new e(i)}slice(t,i){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==i&&i>0&&(o=i-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),i=this.get(t);n.set(t,i)}return n}every(e,t){let i=0;for(let n of this){if(!Reflect.apply(e,t,[n,i,this]))return!1;i++}return!0}some(e,t){let i=0;for(let n of this){if(Reflect.apply(e,t,[n,i,this]))return!0;i++}return!1}});var o0=W.createContext(void 0);function o1(e){let t=W.useContext(o0);return e||t||"ltr"}function o2(e){let t=W.useRef(e);return W.useEffect(()=>{t.current=e}),W.useMemo(()=>(...e)=>t.current?.(...e),[])}var o5="dismissableLayer.update",o3=W.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),o4=W.forwardRef((e,t)=>{let{disableOutsidePointerEvents:i=!1,onEscapeKeyDown:n,onPointerDownOutside:o,onFocusOutside:r,onInteractOutside:s,onDismiss:a,...l}=e,d=W.useContext(o3),[h,u]=W.useState(null),c=h?.ownerDocument??globalThis?.document,[,p]=W.useState({}),m=ok(t,e=>u(e)),f=Array.from(d.layers),[g]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),v=f.indexOf(g),w=h?f.indexOf(h):-1,b=d.layersWithOutsidePointerEventsDisabled.size>0,y=w>=v,x=function(e,t=globalThis?.document){let i=o2(e),n=W.useRef(!1),o=W.useRef(()=>{});return W.useEffect(()=>{let e=e=>{if(e.target&&!n.current){let n=function(){o6("dismissableLayer.pointerDownOutside",i,r,{discrete:!0})},r={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=n,t.addEventListener("click",o.current,{once:!0})):n()}else t.removeEventListener("click",o.current);n.current=!1},r=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(r),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}},[t,i]),{onPointerDownCapture:()=>n.current=!0}}(e=>{let t=e.target,i=[...d.branches].some(e=>e.contains(t));y&&!i&&(o?.(e),s?.(e),e.defaultPrevented||a?.())},c),_=function(e,t=globalThis?.document){let i=o2(e),n=W.useRef(!1);return W.useEffect(()=>{let e=e=>{e.target&&!n.current&&o6("dismissableLayer.focusOutside",i,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,i]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}(e=>{let t=e.target;![...d.branches].some(e=>e.contains(t))&&(r?.(e),s?.(e),e.defaultPrevented||a?.())},c);return!function(e,t=globalThis?.document){let i=o2(e);W.useEffect(()=>{let e=e=>{"Escape"===e.key&&i(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[i,t])}(e=>{w===d.layers.size-1&&(n?.(e),!e.defaultPrevented&&a&&(e.preventDefault(),a()))},c),W.useEffect(()=>{if(h)return i&&(0===d.layersWithOutsidePointerEventsDisabled.size&&(j=c.body.style.pointerEvents,c.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(h)),d.layers.add(h),o9(),()=>{i&&1===d.layersWithOutsidePointerEventsDisabled.size&&(c.body.style.pointerEvents=j)}},[h,c,i,d]),W.useEffect(()=>()=>{h&&(d.layers.delete(h),d.layersWithOutsidePointerEventsDisabled.delete(h),o9())},[h,d]),W.useEffect(()=>{let e=()=>p({});return document.addEventListener(o5,e),()=>document.removeEventListener(o5,e)},[]),(0,V.jsx)(o$.div,{...l,ref:m,style:{pointerEvents:b?y?"auto":"none":void 0,...e.style},onFocusCapture:oj(e.onFocusCapture,_.onFocusCapture),onBlurCapture:oj(e.onBlurCapture,_.onBlurCapture),onPointerDownCapture:oj(e.onPointerDownCapture,x.onPointerDownCapture)})});function o9(){let e=new CustomEvent(o5);document.dispatchEvent(e)}function o6(e,t,i,{discrete:n}){let o=i.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:i});t&&o.addEventListener(e,t,{once:!0}),n?oU(o,r):o.dispatchEvent(r)}o4.displayName="DismissableLayer",W.forwardRef((e,t)=>{let i=W.useContext(o3),n=W.useRef(null),o=ok(t,n);return W.useEffect(()=>{let e=n.current;if(e)return i.branches.add(e),()=>{i.branches.delete(e)}},[i.branches]),(0,V.jsx)(o$.div,{...e,ref:o})}).displayName="DismissableLayerBranch";var o8=0;function o7(){W.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??re()),document.body.insertAdjacentElement("beforeend",e[1]??re()),o8++,()=>{1===o8&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),o8--}},[])}function re(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var rt="focusScope.autoFocusOnMount",ri="focusScope.autoFocusOnUnmount",rn={bubbles:!1,cancelable:!0},ro=W.forwardRef((e,t)=>{let{loop:i=!1,trapped:n=!1,onMountAutoFocus:o,onUnmountAutoFocus:r,...s}=e,[a,l]=W.useState(null),d=o2(o),h=o2(r),u=W.useRef(null),c=ok(t,e=>l(e)),p=W.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;W.useEffect(()=>{if(n){let e=function(e){if(p.paused||!a)return;let t=e.target;a.contains(t)?u.current=t:ra(u.current,{select:!0})},t=function(e){if(p.paused||!a)return;let t=e.relatedTarget;null!==t&&(a.contains(t)||ra(u.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let i=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&ra(a)});return a&&i.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),i.disconnect()}}},[n,a,p.paused]),W.useEffect(()=>{if(a){rl.add(p);let e=document.activeElement;if(!a.contains(e)){let t=new CustomEvent(rt,rn);a.addEventListener(rt,d),a.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let i=document.activeElement;for(let n of e)if(ra(n,{select:t}),document.activeElement!==i)return}(rr(a).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&ra(a))}return()=>{a.removeEventListener(rt,d),setTimeout(()=>{let t=new CustomEvent(ri,rn);a.addEventListener(ri,h),a.dispatchEvent(t),t.defaultPrevented||ra(e??document.body,{select:!0}),a.removeEventListener(ri,h),rl.remove(p)},0)}}},[a,d,h,p]);let m=W.useCallback(e=>{if(!i&&!n||p.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){var r;let t,n=e.currentTarget,[s,a]=[rs(t=rr(r=n),r),rs(t.reverse(),r)];s&&a?e.shiftKey||o!==a?e.shiftKey&&o===s&&(e.preventDefault(),i&&ra(a,{select:!0})):(e.preventDefault(),i&&ra(s,{select:!0})):o===n&&e.preventDefault()}},[i,n,p.paused]);return(0,V.jsx)(o$.div,{tabIndex:-1,...s,ref:c,onKeyDown:m})});function rr(e){let t=[],i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;i.nextNode();)t.push(i.currentNode);return t}function rs(e,t){for(let i of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(i,{upTo:t}))return i}function ra(e,{select:t=!1}={}){if(e&&e.focus){var i;let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&(i=e)instanceof HTMLInputElement&&"select"in i&&t&&e.select()}}ro.displayName="FocusScope";var rl=(g=[],{add(e){let t=g[0];e!==t&&t?.pause(),(g=rd(g,e)).unshift(e)},remove(e){g=rd(g,e),g[0]?.resume()}});function rd(e,t){let i=[...e],n=i.indexOf(t);return -1!==n&&i.splice(n,1),i}var rh=W[" useId ".trim().toString()]||(()=>void 0),ru=0;function rc(e){let[t,i]=W.useState(rh());return oV(()=>{e||i(e=>e??String(ru++))},[e]),e||(t?`radix-${t}`:"")}let rp=["top","right","bottom","left"],rm=Math.min,rf=Math.max,rg=Math.round,rv=Math.floor,rw=e=>({x:e,y:e}),rb={left:"right",right:"left",bottom:"top",top:"bottom"},ry={start:"end",end:"start"};function rx(e,t){return"function"==typeof e?e(t):e}function r_(e){return e.split("-")[0]}function rD(e){return e.split("-")[1]}function rC(e){return"x"===e?"y":"x"}function rS(e){return"y"===e?"height":"width"}let rE=new Set(["top","bottom"]);function rA(e){return rE.has(r_(e))?"y":"x"}function rk(e){return e.replace(/start|end/g,e=>ry[e])}let rz=["left","right"],rP=["right","left"],rR=["top","bottom"],rN=["bottom","top"];function rO(e){return e.replace(/left|right|bottom|top/g,e=>rb[e])}function rI(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function rM(e){let{x:t,y:i,width:n,height:o}=e;return{width:n,height:o,top:i,left:t,right:t+n,bottom:i+o,x:t,y:i}}function rL(e,t,i){let n,{reference:o,floating:r}=e,s=rA(t),a=rC(rA(t)),l=rS(a),d=r_(t),h="y"===s,u=o.x+o.width/2-r.width/2,c=o.y+o.height/2-r.height/2,p=o[l]/2-r[l]/2;switch(d){case"top":n={x:u,y:o.y-r.height};break;case"bottom":n={x:u,y:o.y+o.height};break;case"right":n={x:o.x+o.width,y:c};break;case"left":n={x:o.x-r.width,y:c};break;default:n={x:o.x,y:o.y}}switch(rD(t)){case"start":n[a]-=p*(i&&h?-1:1);break;case"end":n[a]+=p*(i&&h?-1:1)}return n}let rT=async(e,t,i)=>{let{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),l=await (null==s.isRTL?void 0:s.isRTL(t)),d=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:h,y:u}=rL(d,n,l),c=n,p={},m=0;for(let i=0;ie[t]>=0)}let rW=new Set(["left","top"]);async function rH(e,t){let{placement:i,platform:n,elements:o}=e,r=await (null==n.isRTL?void 0:n.isRTL(o.floating)),s=r_(i),a=rD(i),l="y"===rA(i),d=rW.has(s)?-1:1,h=r&&l?-1:1,u=rx(t,e),{mainAxis:c,crossAxis:p,alignmentAxis:m}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return a&&"number"==typeof m&&(p="end"===a?-1*m:m),l?{x:p*h,y:c*d}:{x:c*d,y:p*h}}function rF(){return"undefined"!=typeof window}function rB(e){return rK(e)?(e.nodeName||"").toLowerCase():"#document"}function r$(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function rU(e){var t;return null==(t=(rK(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function rK(e){return!!rF()&&(e instanceof Node||e instanceof r$(e).Node)}function rJ(e){return!!rF()&&(e instanceof Element||e instanceof r$(e).Element)}function rZ(e){return!!rF()&&(e instanceof HTMLElement||e instanceof r$(e).HTMLElement)}function rX(e){return!!rF()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof r$(e).ShadowRoot)}let rq=new Set(["inline","contents"]);function rY(e){let{overflow:t,overflowX:i,overflowY:n,display:o}=r7(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+i)&&!rq.has(o)}let rQ=new Set(["table","td","th"]),r0=[":popover-open",":modal"];function r1(e){return r0.some(t=>{try{return e.matches(t)}catch(e){return!1}})}let r2=["transform","translate","scale","rotate","perspective"],r5=["transform","translate","scale","rotate","perspective","filter"],r3=["paint","layout","strict","content"];function r4(e){let t=r9(),i=rJ(e)?r7(e):e;return r2.some(e=>!!i[e]&&"none"!==i[e])||!!i.containerType&&"normal"!==i.containerType||!t&&!!i.backdropFilter&&"none"!==i.backdropFilter||!t&&!!i.filter&&"none"!==i.filter||r5.some(e=>(i.willChange||"").includes(e))||r3.some(e=>(i.contain||"").includes(e))}function r9(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}let r6=new Set(["html","body","#document"]);function r8(e){return r6.has(rB(e))}function r7(e){return r$(e).getComputedStyle(e)}function se(e){return rJ(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function st(e){if("html"===rB(e))return e;let t=e.assignedSlot||e.parentNode||rX(e)&&e.host||rU(e);return rX(t)?t.host:t}function si(e,t,i){var n;void 0===t&&(t=[]),void 0===i&&(i=!0);let o=function e(t){let i=st(t);return r8(i)?t.ownerDocument?t.ownerDocument.body:t.body:rZ(i)&&rY(i)?i:e(i)}(e),r=o===(null==(n=e.ownerDocument)?void 0:n.body),s=r$(o);if(r){let e=sn(s);return t.concat(s,s.visualViewport||[],rY(o)?o:[],e&&i?si(e):[])}return t.concat(o,si(o,[],i))}function sn(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function so(e){let t=r7(e),i=parseFloat(t.width)||0,n=parseFloat(t.height)||0,o=rZ(e),r=o?e.offsetWidth:i,s=o?e.offsetHeight:n,a=rg(i)!==r||rg(n)!==s;return a&&(i=r,n=s),{width:i,height:n,$:a}}function sr(e){return rJ(e)?e:e.contextElement}function ss(e){let t=sr(e);if(!rZ(t))return rw(1);let i=t.getBoundingClientRect(),{width:n,height:o,$:r}=so(t),s=(r?rg(i.width):i.width)/n,a=(r?rg(i.height):i.height)/o;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}let sa=rw(0);function sl(e){let t=r$(e);return r9()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:sa}function sd(e,t,i,n){var o;void 0===t&&(t=!1),void 0===i&&(i=!1);let r=e.getBoundingClientRect(),s=sr(e),a=rw(1);t&&(n?rJ(n)&&(a=ss(n)):a=ss(e));let l=(void 0===(o=i)&&(o=!1),n&&(!o||n===r$(s))&&o)?sl(s):rw(0),d=(r.left+l.x)/a.x,h=(r.top+l.y)/a.y,u=r.width/a.x,c=r.height/a.y;if(s){let e=r$(s),t=n&&rJ(n)?r$(n):n,i=e,o=sn(i);for(;o&&n&&t!==i;){let e=ss(o),t=o.getBoundingClientRect(),n=r7(o),r=t.left+(o.clientLeft+parseFloat(n.paddingLeft))*e.x,s=t.top+(o.clientTop+parseFloat(n.paddingTop))*e.y;d*=e.x,h*=e.y,u*=e.x,c*=e.y,d+=r,h+=s,o=sn(i=r$(o))}}return rM({width:u,height:c,x:d,y:h})}function sh(e,t){let i=se(e).scrollLeft;return t?t.left+i:sd(rU(e)).left+i}function su(e,t){let i=e.getBoundingClientRect();return{x:i.left+t.scrollLeft-sh(e,i),y:i.top+t.scrollTop}}let sc=new Set(["absolute","fixed"]);function sp(e,t,i){var n;let o;if("viewport"===t)o=function(e,t){let i=r$(e),n=rU(e),o=i.visualViewport,r=n.clientWidth,s=n.clientHeight,a=0,l=0;if(o){r=o.width,s=o.height;let e=r9();(!e||e&&"fixed"===t)&&(a=o.offsetLeft,l=o.offsetTop)}let d=sh(n);if(d<=0){let e=n.ownerDocument,t=e.body,i=getComputedStyle(t),o="CSS1Compat"===e.compatMode&&parseFloat(i.marginLeft)+parseFloat(i.marginRight)||0,s=Math.abs(n.clientWidth-t.clientWidth-o);s<=25&&(r-=s)}else d<=25&&(r+=d);return{width:r,height:s,x:a,y:l}}(e,i);else if("document"===t){let t,i,r,s,a,l,d;n=rU(e),t=rU(n),i=se(n),r=n.ownerDocument.body,s=rf(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=rf(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),l=-i.scrollLeft+sh(n),d=-i.scrollTop,"rtl"===r7(r).direction&&(l+=rf(t.clientWidth,r.clientWidth)-s),o={width:s,height:a,x:l,y:d}}else if(rJ(t)){let e,n,r,s,a,l;n=(e=sd(t,!0,"fixed"===i)).top+t.clientTop,r=e.left+t.clientLeft,s=rZ(t)?ss(t):rw(1),a=t.clientWidth*s.x,l=t.clientHeight*s.y,o={width:a,height:l,x:r*s.x,y:n*s.y}}else{let i=sl(e);o={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return rM(o)}function sm(e){return"static"===r7(e).position}function sf(e,t){if(!rZ(e)||"fixed"===r7(e).position)return null;if(t)return t(e);let i=e.offsetParent;return rU(e)===i&&(i=i.ownerDocument.body),i}function sg(e,t){var i;let n=r$(e);if(r1(e))return n;if(!rZ(e)){let t=st(e);for(;t&&!r8(t);){if(rJ(t)&&!sm(t))return t;t=st(t)}return n}let o=sf(e,t);for(;o&&(i=o,rQ.has(rB(i)))&&sm(o);)o=sf(o,t);return o&&r8(o)&&sm(o)&&!r4(o)?n:o||function(e){let t=st(e);for(;rZ(t)&&!r8(t);){if(r4(t))return t;if(r1(t))break;t=st(t)}return null}(e)||n}let sv=async function(e){let t=this.getOffsetParent||sg,i=this.getDimensions,n=await i(e.floating);return{reference:function(e,t,i){let n=rZ(t),o=rU(t),r="fixed"===i,s=sd(e,!0,r,t),a={scrollLeft:0,scrollTop:0},l=rw(0);if(n||!n&&!r)if(("body"!==rB(t)||rY(o))&&(a=se(t)),n){let e=sd(t,!0,r,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else o&&(l.x=sh(o));r&&!n&&o&&(l.x=sh(o));let d=!o||n||r?rw(0):su(o,a);return{x:s.left+a.scrollLeft-l.x-d.x,y:s.top+a.scrollTop-l.y-d.y,width:s.width,height:s.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}},sw={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:i,offsetParent:n,strategy:o}=e,r="fixed"===o,s=rU(n),a=!!t&&r1(t.floating);if(n===s||a&&r)return i;let l={scrollLeft:0,scrollTop:0},d=rw(1),h=rw(0),u=rZ(n);if((u||!u&&!r)&&(("body"!==rB(n)||rY(s))&&(l=se(n)),rZ(n))){let e=sd(n);d=ss(n),h.x=e.x+n.clientLeft,h.y=e.y+n.clientTop}let c=!s||u||r?rw(0):su(s,l);return{width:i.width*d.x,height:i.height*d.y,x:i.x*d.x-l.scrollLeft*d.x+h.x+c.x,y:i.y*d.y-l.scrollTop*d.y+h.y+c.y}},getDocumentElement:rU,getClippingRect:function(e){let{element:t,boundary:i,rootBoundary:n,strategy:o}=e,r=[..."clippingAncestors"===i?r1(t)?[]:function(e,t){let i=t.get(e);if(i)return i;let n=si(e,[],!1).filter(e=>rJ(e)&&"body"!==rB(e)),o=null,r="fixed"===r7(e).position,s=r?st(e):e;for(;rJ(s)&&!r8(s);){let t=r7(s),i=r4(s);i||"fixed"!==t.position||(o=null),(r?!i&&!o:!i&&"static"===t.position&&!!o&&sc.has(o.position)||rY(s)&&!i&&function e(t,i){let n=st(t);return!(n===i||!rJ(n)||r8(n))&&("fixed"===r7(n).position||e(n,i))}(e,s))?n=n.filter(e=>e!==s):o=t,s=st(s)}return t.set(e,n),n}(t,this._c):[].concat(i),n],s=r[0],a=r.reduce((e,i)=>{let n=sp(t,i,o);return e.top=rf(n.top,e.top),e.right=rm(n.right,e.right),e.bottom=rm(n.bottom,e.bottom),e.left=rf(n.left,e.left),e},sp(t,s,o));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:sg,getElementRects:sv,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:i}=so(e);return{width:t,height:i}},getScale:ss,isElement:rJ,isRTL:function(e){return"rtl"===r7(e).direction}};function sb(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}let sy=e=>({name:"arrow",options:e,async fn(t){let{x:i,y:n,placement:o,rects:r,platform:s,elements:a,middlewareData:l}=t,{element:d,padding:h=0}=rx(e,t)||{};if(null==d)return{};let u=rI(h),c={x:i,y:n},p=rC(rA(o)),m=rS(p),f=await s.getDimensions(d),g="y"===p,v=g?"clientHeight":"clientWidth",w=r.reference[m]+r.reference[p]-c[p]-r.floating[m],b=c[p]-r.reference[p],y=await (null==s.getOffsetParent?void 0:s.getOffsetParent(d)),x=y?y[v]:0;x&&await (null==s.isElement?void 0:s.isElement(y))||(x=a.floating[v]||r.floating[m]);let _=x/2-f[m]/2-1,D=rm(u[g?"top":"left"],_),C=rm(u[g?"bottom":"right"],_),S=x-f[m]-C,E=x/2-f[m]/2+(w/2-b/2),A=rf(D,rm(E,S)),k=!l.arrow&&null!=rD(o)&&E!==A&&r.reference[m]/2-(E{t.current=e}),t}var sE=W.forwardRef((e,t)=>{let{children:i,width:n=10,height:o=5,...r}=e;return(0,V.jsx)(o$.svg,{...r,ref:t,width:n,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?i:(0,V.jsx)("polygon",{points:"0,0 30,0 15,10"})})});sE.displayName="Arrow";var sA="Popper",[sk,sz]=oG(sA),[sP,sR]=sk(sA),sN=e=>{let{__scopePopper:t,children:i}=e,[n,o]=W.useState(null);return(0,V.jsx)(sP,{scope:t,anchor:n,onAnchorChange:o,children:i})};sN.displayName=sA;var sO="PopperAnchor",sI=W.forwardRef((e,t)=>{let{__scopePopper:i,virtualRef:n,...o}=e,r=sR(sO,i),s=W.useRef(null),a=ok(t,s),l=W.useRef(null);return W.useEffect(()=>{let e=l.current;l.current=n?.current||s.current,e!==l.current&&r.onAnchorChange(l.current)}),n?null:(0,V.jsx)(o$.div,{...o,ref:a})});sI.displayName=sO;var sM="PopperContent",[sL,sT]=sk(sM),sj=W.forwardRef((e,t)=>{var i,n,o,r,s,a,l,d,h,u,c,p,m,f,g,v,w,b,y,x,_;let{__scopePopper:D,side:C="bottom",sideOffset:S=0,align:E="center",alignOffset:A=0,arrowPadding:k=0,avoidCollisions:z=!0,collisionBoundary:P=[],collisionPadding:R=0,sticky:N="partial",hideWhenDetached:O=!1,updatePositionStrategy:I="optimized",onPlaced:M,...L}=e,T=sR(sM,D),[j,G]=W.useState(null),F=ok(t,e=>G(e)),[B,$]=W.useState(null),U=function(e){let[t,i]=W.useState(void 0);return oV(()=>{if(e){i({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,o;if(!Array.isArray(t)||!t.length)return;let r=t[0];if("borderBoxSize"in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,o=t.blockSize}else n=e.offsetWidth,o=e.offsetHeight;i({width:n,height:o})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}i(void 0)},[e]),t}(B),K=U?.width??0,J=U?.height??0,Z="number"==typeof R?R:{top:0,right:0,bottom:0,left:0,...R},X=Array.isArray(P)?P:[P],q=X.length>0,Y={padding:Z,boundary:X.filter(sH),altBoundary:q},{refs:Q,floatingStyles:ee,placement:et,isPositioned:ei,middlewareData:en}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:i="absolute",middleware:n=[],platform:o,elements:{reference:r,floating:s}={},transform:a=!0,whileElementsMounted:l,open:d}=e,[h,u]=W.useState({x:0,y:0,strategy:i,placement:t,middlewareData:{},isPositioned:!1}),[c,p]=W.useState(n);s_(c,n)||p(n);let[m,f]=W.useState(null),[g,v]=W.useState(null),w=W.useCallback(e=>{e!==_.current&&(_.current=e,f(e))},[]),b=W.useCallback(e=>{e!==D.current&&(D.current=e,v(e))},[]),y=r||m,x=s||g,_=W.useRef(null),D=W.useRef(null),C=W.useRef(h),S=null!=l,E=sS(l),A=sS(o),k=sS(d),z=W.useCallback(()=>{var e,n;let o,r,s;if(!_.current||!D.current)return;let a={placement:t,strategy:i,middleware:c};A.current&&(a.platform=A.current),(e=_.current,n=D.current,o=new Map,s={...(r={platform:sw,...a}).platform,_c:o},rT(e,n,{...r,platform:s})).then(e=>{let t={...e,isPositioned:!1!==k.current};P.current&&!s_(C.current,t)&&(C.current=t,H.flushSync(()=>{u(t)}))})},[c,t,i,A,k]);sx(()=>{!1===d&&C.current.isPositioned&&(C.current.isPositioned=!1,u(e=>({...e,isPositioned:!1})))},[d]);let P=W.useRef(!1);sx(()=>(P.current=!0,()=>{P.current=!1}),[]),sx(()=>{if(y&&(_.current=y),x&&(D.current=x),y&&x){if(E.current)return E.current(y,x,z);z()}},[y,x,z,E,S]);let R=W.useMemo(()=>({reference:_,floating:D,setReference:w,setFloating:b}),[w,b]),N=W.useMemo(()=>({reference:y,floating:x}),[y,x]),O=W.useMemo(()=>{let e={position:i,left:0,top:0};if(!N.floating)return e;let t=sC(N.floating,h.x),n=sC(N.floating,h.y);return a?{...e,transform:"translate("+t+"px, "+n+"px)",...sD(N.floating)>=1.5&&{willChange:"transform"}}:{position:i,left:t,top:n}},[i,a,N.floating,h.x,h.y]);return W.useMemo(()=>({...h,update:z,refs:R,elements:N,floatingStyles:O}),[h,z,R,N,O])}({strategy:"fixed",placement:C+("center"!==E?"-"+E:""),whileElementsMounted:(...e)=>(function(e,t,i,n){let o;void 0===n&&(n={});let{ancestorScroll:r=!0,ancestorResize:s=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:d=!1}=n,h=sr(e),u=r||s?[...h?si(h):[],...si(t)]:[];u.forEach(e=>{r&&e.addEventListener("scroll",i,{passive:!0}),s&&e.addEventListener("resize",i)});let c=h&&l?function(e,t){let i,n=null,o=rU(e);function r(){var e;clearTimeout(i),null==(e=n)||e.disconnect(),n=null}return!function s(a,l){void 0===a&&(a=!1),void 0===l&&(l=1),r();let d=e.getBoundingClientRect(),{left:h,top:u,width:c,height:p}=d;if(a||t(),!c||!p)return;let m={rootMargin:-rv(u)+"px "+-rv(o.clientWidth-(h+c))+"px "+-rv(o.clientHeight-(u+p))+"px "+-rv(h)+"px",threshold:rf(0,rm(1,l))||1},f=!0;function g(t){let n=t[0].intersectionRatio;if(n!==l){if(!f)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}1!==n||sb(d,e.getBoundingClientRect())||s(),f=!1}try{n=new IntersectionObserver(g,{...m,root:o.ownerDocument})}catch(e){n=new IntersectionObserver(g,m)}n.observe(e)}(!0),r}(h,i):null,p=-1,m=null;a&&(m=new ResizeObserver(e=>{let[n]=e;n&&n.target===h&&m&&(m.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=m)||e.observe(t)})),i()}),h&&!d&&m.observe(h),m.observe(t));let f=d?sd(e):null;return d&&function t(){let n=sd(e);f&&!sb(f,n)&&i(),f=n,o=requestAnimationFrame(t)}(),i(),()=>{var e;u.forEach(e=>{r&&e.removeEventListener("scroll",i),s&&e.removeEventListener("resize",i)}),null==c||c(),null==(e=m)||e.disconnect(),m=null,d&&cancelAnimationFrame(o)}})(...e,{animationFrame:"always"===I}),elements:{reference:T.anchor},middleware:[{...{name:"offset",options:o=i={mainAxis:S+J,alignmentAxis:A},async fn(e){var t,i;let{x:n,y:r,placement:s,middlewareData:a}=e,l=await rH(e,o);return s===(null==(t=a.offset)?void 0:t.placement)&&null!=(i=a.arrow)&&i.alignmentOffset?{}:{x:n+l.x,y:r+l.y,data:{...l,placement:s}}}},options:[i,n]},z&&{...{name:"shift",options:h=l={mainAxis:!0,crossAxis:!1,limiter:"partial"===N?{...(void 0===(a=r)&&(a={}),{options:a,fn(e){let{x:t,y:i,placement:n,rects:o,middlewareData:r}=e,{offset:s=0,mainAxis:l=!0,crossAxis:d=!0}=rx(a,e),h={x:t,y:i},u=rA(n),c=rC(u),p=h[c],m=h[u],f=rx(s,e),g="number"==typeof f?{mainAxis:f,crossAxis:0}:{mainAxis:0,crossAxis:0,...f};if(l){let e="y"===c?"height":"width",t=o.reference[c]-o.floating[e]+g.mainAxis,i=o.reference[c]+o.reference[e]-g.mainAxis;pi&&(p=i)}if(d){var v,w;let e="y"===c?"width":"height",t=rW.has(r_(n)),i=o.reference[u]-o.floating[e]+(t&&(null==(v=r.offset)?void 0:v[u])||0)+(t?0:g.crossAxis),s=o.reference[u]+o.reference[e]+(t?0:(null==(w=r.offset)?void 0:w[u])||0)-(t?g.crossAxis:0);ms&&(m=s)}return{[c]:p,[u]:m}}}),options:[r,s]}:void 0,...Y},async fn(e){let{x:t,y:i,placement:n}=e,{mainAxis:o=!0,crossAxis:r=!1,limiter:s={fn:e=>{let{x:t,y:i}=e;return{x:t,y:i}}},...a}=rx(h,e),l={x:t,y:i},d=await rj(e,a),u=rA(r_(n)),c=rC(u),p=l[c],m=l[u];if(o){let e="y"===c?"top":"left",t="y"===c?"bottom":"right",i=p+d[e],n=p-d[t];p=rf(i,rm(p,n))}if(r){let e="y"===u?"top":"left",t="y"===u?"bottom":"right",i=m+d[e],n=m-d[t];m=rf(i,rm(m,n))}let f=s.fn({...e,[c]:p,[u]:m});return{...f,data:{x:f.x-t,y:f.y-i,enabled:{[c]:o,[u]:r}}}}},options:[l,d]},z&&{...{name:"flip",options:p=u={...Y},async fn(e){var t,i,n,o,r,s,a,l;let d,h,u,{placement:c,middlewareData:m,rects:f,initialPlacement:g,platform:v,elements:w}=e,{mainAxis:b=!0,crossAxis:y=!0,fallbackPlacements:x,fallbackStrategy:_="bestFit",fallbackAxisSideDirection:D="none",flipAlignment:C=!0,...S}=rx(p,e);if(null!=(t=m.arrow)&&t.alignmentOffset)return{};let E=r_(c),A=rA(g),k=r_(g)===g,z=await (null==v.isRTL?void 0:v.isRTL(w.floating)),P=x||(k||!C?[rO(g)]:(d=rO(g),[rk(g),d,rk(d)])),R="none"!==D;!x&&R&&P.push(...(h=rD(g),u=function(e,t,i){switch(e){case"top":case"bottom":if(i)return t?rP:rz;return t?rz:rP;case"left":case"right":return t?rR:rN;default:return[]}}(r_(g),"start"===D,z),h&&(u=u.map(e=>e+"-"+h),C&&(u=u.concat(u.map(rk)))),u));let N=[g,...P],O=await rj(e,S),I=[],M=(null==(i=m.flip)?void 0:i.overflows)||[];if(b&&I.push(O[E]),y){let e,t,i,n,o=(s=c,a=f,void 0===(l=z)&&(l=!1),e=rD(s),i=rS(t=rC(rA(s))),n="x"===t?e===(l?"end":"start")?"right":"left":"start"===e?"bottom":"top",a.reference[i]>a.floating[i]&&(n=rO(n)),[n,rO(n)]);I.push(O[o[0]],O[o[1]])}if(M=[...M,{placement:c,overflows:I}],!I.every(e=>e<=0)){let e=((null==(n=m.flip)?void 0:n.index)||0)+1,t=N[e];if(t&&("alignment"!==y||A===rA(t)||M.every(e=>rA(e.placement)!==A||e.overflows[0]>0)))return{data:{index:e,overflows:M},reset:{placement:t}};let i=null==(o=M.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:o.placement;if(!i)switch(_){case"bestFit":{let e=null==(r=M.filter(e=>{if(R){let t=rA(e.placement);return t===A||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:r[0];e&&(i=e);break}case"initialPlacement":i=g}if(c!==i)return{reset:{placement:i}}}return{}}},options:[u,c]},{...{name:"size",options:g=m={...Y,apply:({elements:e,rects:t,availableWidth:i,availableHeight:n})=>{let{width:o,height:r}=t.reference,s=e.floating.style;s.setProperty("--radix-popper-available-width",`${i}px`),s.setProperty("--radix-popper-available-height",`${n}px`),s.setProperty("--radix-popper-anchor-width",`${o}px`),s.setProperty("--radix-popper-anchor-height",`${r}px`)}},async fn(e){var t,i;let n,o,{placement:r,rects:s,platform:a,elements:l}=e,{apply:d=()=>{},...h}=rx(g,e),u=await rj(e,h),c=r_(r),p=rD(r),m="y"===rA(r),{width:f,height:v}=s.floating;"top"===c||"bottom"===c?(n=c,o=p===(await (null==a.isRTL?void 0:a.isRTL(l.floating))?"start":"end")?"left":"right"):(o=c,n="end"===p?"top":"bottom");let w=v-u.top-u.bottom,b=f-u.left-u.right,y=rm(v-u[n],w),x=rm(f-u[o],b),_=!e.middlewareData.shift,D=y,C=x;if(null!=(t=e.middlewareData.shift)&&t.enabled.x&&(C=b),null!=(i=e.middlewareData.shift)&&i.enabled.y&&(D=w),_&&!p){let e=rf(u.left,0),t=rf(u.right,0),i=rf(u.top,0),n=rf(u.bottom,0);m?C=f-2*(0!==e||0!==t?e+t:rf(u.left,u.right)):D=v-2*(0!==i||0!==n?i+n:rf(u.top,u.bottom))}await d({...e,availableWidth:C,availableHeight:D});let S=await a.getDimensions(l.floating);return f!==S.width||v!==S.height?{reset:{rects:!0}}:{}}},options:[m,f]},B&&{...{name:"arrow",options:b=v={element:B,padding:k},fn(e){let{element:t,padding:i}="function"==typeof b?b(e):b;return t&&({}).hasOwnProperty.call(t,"current")?null!=t.current?sy({element:t.current,padding:i}).fn(e):{}:t?sy({element:t,padding:i}).fn(e):{}}},options:[v,w]},sF({arrowWidth:K,arrowHeight:J}),O&&{...{name:"hide",options:_=y={strategy:"referenceHidden",...Y},async fn(e){let{rects:t}=e,{strategy:i="referenceHidden",...n}=rx(_,e);switch(i){case"referenceHidden":{let i=rG(await rj(e,{...n,elementContext:"reference"}),t.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:rV(i)}}}case"escaped":{let i=rG(await rj(e,{...n,altBoundary:!0}),t.floating);return{data:{escapedOffsets:i,escaped:rV(i)}}}default:return{}}}},options:[y,x]}]}),[eo,er]=sB(et),es=o2(M);oV(()=>{ei&&es?.()},[ei,es]);let ea=en.arrow?.x,el=en.arrow?.y,ed=en.arrow?.centerOffset!==0,[eh,eu]=W.useState();return oV(()=>{j&&eu(window.getComputedStyle(j).zIndex)},[j]),(0,V.jsx)("div",{ref:Q.setFloating,"data-radix-popper-content-wrapper":"",style:{...ee,transform:ei?ee.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:eh,"--radix-popper-transform-origin":[en.transformOrigin?.x,en.transformOrigin?.y].join(" "),...en.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,V.jsx)(sL,{scope:D,placedSide:eo,onArrowChange:$,arrowX:ea,arrowY:el,shouldHideArrow:ed,children:(0,V.jsx)(o$.div,{"data-side":eo,"data-align":er,...L,ref:F,style:{...L.style,animation:ei?void 0:"none"}})})})});sj.displayName=sM;var sG="PopperArrow",sV={top:"bottom",right:"left",bottom:"top",left:"right"},sW=W.forwardRef(function(e,t){let{__scopePopper:i,...n}=e,o=sT(sG,i),r=sV[o.placedSide];return(0,V.jsx)("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[r]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:(0,V.jsx)(sE,{...n,ref:t,style:{...n.style,display:"block"}})})});function sH(e){return null!==e}sW.displayName=sG;var sF=e=>({name:"transformOrigin",options:e,fn(t){let{placement:i,rects:n,middlewareData:o}=t,r=o.arrow?.centerOffset!==0,s=r?0:e.arrowWidth,a=r?0:e.arrowHeight,[l,d]=sB(i),h={start:"0%",center:"50%",end:"100%"}[d],u=(o.arrow?.x??0)+s/2,c=(o.arrow?.y??0)+a/2,p="",m="";return"bottom"===l?(p=r?h:`${u}px`,m=`${-a}px`):"top"===l?(p=r?h:`${u}px`,m=`${n.floating.height+a}px`):"right"===l?(p=`${-a}px`,m=r?h:`${c}px`):"left"===l&&(p=`${n.floating.width+a}px`,m=r?h:`${c}px`),{data:{x:p,y:m}}}});function sB(e){let[t,i="center"]=e.split("-");return[t,i]}var s$=W.forwardRef((e,t)=>{let{container:i,...n}=e,[o,r]=W.useState(!1);oV(()=>r(!0),[]);let s=i||o&&globalThis?.document?.body;return s?H.default.createPortal((0,V.jsx)(o$.div,{...n,ref:t}),s):null});s$.displayName="Portal";var sU=e=>{var t;let i,n,{present:o,children:r}=e,s=function(e){var t,i;let[n,o]=W.useState(),r=W.useRef(null),s=W.useRef(e),a=W.useRef("none"),[l,d]=(t=e?"mounted":"unmounted",i={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},W.useReducer((e,t)=>i[e][t]??e,t));return W.useEffect(()=>{let e=sK(r.current);a.current="mounted"===l?e:"none"},[l]),oV(()=>{let t=r.current,i=s.current;if(i!==e){let n=a.current,o=sK(t);e?d("MOUNT"):"none"===o||t?.display==="none"?d("UNMOUNT"):i&&n!==o?d("ANIMATION_OUT"):d("UNMOUNT"),s.current=e}},[e,d]),oV(()=>{if(n){let e,t=n.ownerDocument.defaultView??window,i=i=>{let o=sK(r.current).includes(CSS.escape(i.animationName));if(i.target===n&&o&&(d("ANIMATION_END"),!s.current)){let i=n.style.animationFillMode;n.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===n.style.animationFillMode&&(n.style.animationFillMode=i)})}},o=e=>{e.target===n&&(a.current=sK(r.current))};return n.addEventListener("animationstart",o),n.addEventListener("animationcancel",i),n.addEventListener("animationend",i),()=>{t.clearTimeout(e),n.removeEventListener("animationstart",o),n.removeEventListener("animationcancel",i),n.removeEventListener("animationend",i)}}d("ANIMATION_END")},[n,d]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:W.useCallback(e=>{r.current=e?getComputedStyle(e):null,o(e)},[])}}(o),a="function"==typeof r?r({present:s.isPresent}):W.Children.only(r),l=ok(s.ref,(t=a,(n=(i=Object.getOwnPropertyDescriptor(t.props,"ref")?.get)&&"isReactWarning"in i&&i.isReactWarning)?t.ref:(n=(i=Object.getOwnPropertyDescriptor(t,"ref")?.get)&&"isReactWarning"in i&&i.isReactWarning)?t.props.ref:t.props.ref||t.ref));return"function"==typeof r||s.isPresent?W.cloneElement(a,{ref:l}):null};function sK(e){return e?.animationName||"none"}sU.displayName="Presence";var sJ="rovingFocusGroup.onEntryFocus",sZ={bubbles:!1,cancelable:!0},sX="RovingFocusGroup",[sq,sY,sQ]=oX(sX),[s0,s1]=oG(sX,[sQ]),[s2,s5]=s0(sX),s3=W.forwardRef((e,t)=>(0,V.jsx)(sq.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,V.jsx)(sq.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,V.jsx)(s4,{...e,ref:t})})}));s3.displayName=sX;var s4=W.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:i,orientation:n,loop:o=!1,dir:r,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:l,onEntryFocus:d,preventScrollOnEntryFocus:h=!1,...u}=e,c=W.useRef(null),p=ok(t,c),m=o1(r),[f,g]=oH({prop:s,defaultProp:a??null,onChange:l,caller:sX}),[v,w]=W.useState(!1),b=o2(d),y=sY(i),x=W.useRef(!1),[_,D]=W.useState(0);return W.useEffect(()=>{let e=c.current;if(e)return e.addEventListener(sJ,b),()=>e.removeEventListener(sJ,b)},[b]),(0,V.jsx)(s2,{scope:i,orientation:n,dir:m,loop:o,currentTabStopId:f,onItemFocus:W.useCallback(e=>g(e),[g]),onItemShiftTab:W.useCallback(()=>w(!0),[]),onFocusableItemAdd:W.useCallback(()=>D(e=>e+1),[]),onFocusableItemRemove:W.useCallback(()=>D(e=>e-1),[]),children:(0,V.jsx)(o$.div,{tabIndex:v||0===_?-1:0,"data-orientation":n,...u,ref:p,style:{outline:"none",...e.style},onMouseDown:oj(e.onMouseDown,()=>{x.current=!0}),onFocus:oj(e.onFocus,e=>{let t=!x.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(sJ,sZ);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=y().filter(e=>e.focusable);s7([e.find(e=>e.active),e.find(e=>e.id===f),...e].filter(Boolean).map(e=>e.ref.current),h)}}x.current=!1}),onBlur:oj(e.onBlur,()=>w(!1))})})}),s9="RovingFocusGroupItem",s6=W.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:i,focusable:n=!0,active:o=!1,tabStopId:r,children:s,...a}=e,l=rc(),d=r||l,h=s5(s9,i),u=h.currentTabStopId===d,c=sY(i),{onFocusableItemAdd:p,onFocusableItemRemove:m,currentTabStopId:f}=h;return W.useEffect(()=>{if(n)return p(),()=>m()},[n,p,m]),(0,V.jsx)(sq.ItemSlot,{scope:i,id:d,focusable:n,active:o,children:(0,V.jsx)(o$.span,{tabIndex:u?0:-1,"data-orientation":h.orientation,...a,ref:t,onMouseDown:oj(e.onMouseDown,e=>{n?h.onItemFocus(d):e.preventDefault()}),onFocus:oj(e.onFocus,()=>h.onItemFocus(d)),onKeyDown:oj(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void h.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,i){var n;let o=(n=e.key,"rtl"!==i?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return s8[o]}(e,h.orientation,h.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=c().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var i,n;"prev"===t&&o.reverse();let r=o.indexOf(e.currentTarget);o=h.loop?(i=o,n=r+1,i.map((e,t)=>i[(n+t)%i.length])):o.slice(r+1)}setTimeout(()=>s7(o))}}),children:"function"==typeof s?s({isCurrentTabStop:u,hasTabStop:null!=f}):s})})});s6.displayName=s9;var s8={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function s7(e,t=!1){let i=document.activeElement;for(let n of e)if(n===i||(n.focus({preventScroll:t}),document.activeElement!==i))return}var ae=Symbol("radix.slottable");function at(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===ae}var ai=new WeakMap,an=new WeakMap,ao={},ar=0,as=function(e){return e&&(e.host||as(e.parentNode))},aa=function(e,t,i,n){var o=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var i=as(e);return i&&t.contains(i)?i:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});ao[i]||(ao[i]=new WeakMap);var r=ao[i],s=[],a=new Set,l=new Set(o),d=function(e){!e||a.has(e)||(a.add(e),d(e.parentNode))};o.forEach(d);var h=function(e){!e||l.has(e)||Array.prototype.forEach.call(e.children,function(e){if(a.has(e))h(e);else try{var t=e.getAttribute(n),o=null!==t&&"false"!==t,l=(ai.get(e)||0)+1,d=(r.get(e)||0)+1;ai.set(e,l),r.set(e,d),s.push(e),1===l&&o&&an.set(e,!0),1===d&&e.setAttribute(i,"true"),o||e.setAttribute(n,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return h(t),a.clear(),ar++,function(){s.forEach(function(e){var t=ai.get(e)-1,o=r.get(e)-1;ai.set(e,t),r.set(e,o),t||(an.has(e)||e.removeAttribute(n),an.delete(e)),o||e.removeAttribute(i)}),--ar||(ai=new WeakMap,ai=new WeakMap,an=new WeakMap,ao={})}},al=function(e,t,i){void 0===i&&(i="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),o=t||("undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(n.push.apply(n,Array.from(o.querySelectorAll("[aria-live], script"))),aa(n,o,i,"aria-hidden")):function(){return null}},ad=function(){return(ad=Object.assign||function(e){for(var t,i=1,n=arguments.length;it.indexOf(n)&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(i[n[o]]=e[n[o]]);return i}var au=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),ac="width-before-scroll-bar";function ap(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var am="undefined"!=typeof window?W.useLayoutEffect:W.useEffect,af=new WeakMap,ag=(void 0===S&&(S={}),(void 0===E&&(E=function(e){return e}),A=[],k=!1,z={read:function(){if(k)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return A.length?A[A.length-1]:null},useMedium:function(e){var t=E(e,k);return A.push(t),function(){A=A.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(k=!0;A.length;){var t=A;A=[],t.forEach(e)}A={push:function(t){return e(t)},filter:function(){return A}}},assignMedium:function(e){k=!0;var t=[];if(A.length){var i=A;A=[],i.forEach(e),t=A}var n=function(){var i=t;t=[],i.forEach(e)},o=function(){return Promise.resolve().then(n)};o(),A={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),A}}}}).options=ad({async:!0,ssr:!1},S),z),av=function(){},aw=W.forwardRef(function(e,t){var i,n,o,r,s=W.useRef(null),a=W.useState({onScrollCapture:av,onWheelCapture:av,onTouchMoveCapture:av}),l=a[0],d=a[1],h=e.forwardProps,u=e.children,c=e.className,p=e.removeScrollBar,m=e.enabled,f=e.shards,g=e.sideCar,v=e.noRelative,w=e.noIsolation,b=e.inert,y=e.allowPinchZoom,x=e.as,_=e.gapMode,D=ah(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),C=(i=[s,t],n=function(e){return i.forEach(function(t){return ap(t,e)})},(o=(0,W.useState)(function(){return{value:null,callback:n,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=n,r=o.facade,am(function(){var e=af.get(r);if(e){var t=new Set(e),n=new Set(i),o=r.current;t.forEach(function(e){n.has(e)||ap(e,null)}),n.forEach(function(e){t.has(e)||ap(e,o)})}af.set(r,i)},[i]),r),S=ad(ad({},D),l);return W.createElement(W.Fragment,null,m&&W.createElement(g,{sideCar:ag,removeScrollBar:p,shards:f,noRelative:v,noIsolation:w,inert:b,setCallbacks:d,allowPinchZoom:!!y,lockRef:s,gapMode:_}),h?W.cloneElement(W.Children.only(u),ad(ad({},S),{ref:C})):W.createElement(void 0===x?"div":x,ad({},S,{className:c,ref:C}),u))});aw.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},aw.classNames={fullWidth:ac,zeroRight:au};var ab=function(e){var t=e.sideCar,i=ah(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw Error("Sidecar medium not found");return W.createElement(n,ad({},i))};ab.isSideCarExport=!0;var ay=function(){var e=0,t=null;return{add:function(i){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=G||("undefined"!=typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var n,o;(n=t).styleSheet?n.styleSheet.cssText=i:n.appendChild(document.createTextNode(i)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ax=function(){var e=ay();return function(t,i){W.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&i])}},a_=function(){var e=ax();return function(t){return e(t.styles,t.dynamic),null}},aD={left:0,top:0,right:0,gap:0},aC=function(e){return parseInt(e||"",10)||0},aS=function(e){var t=window.getComputedStyle(document.body),i=t["padding"===e?"paddingLeft":"marginLeft"],n=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[aC(i),aC(n),aC(o)]},aE=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return aD;var t=aS(e),i=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-i+t[2]-t[0])}},aA=a_(),ak="data-scroll-locked",az=function(e,t,i,n){var o=e.left,r=e.top,s=e.right,a=e.gap;return void 0===i&&(i="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(n,";\n padding-right: ").concat(a,"px ").concat(n,";\n }\n body[").concat(ak,"] {\n overflow: hidden ").concat(n,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(n,";"),"margin"===i&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(r,"px;\n padding-right: ").concat(s,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(a,"px ").concat(n,";\n "),"padding"===i&&"padding-right: ".concat(a,"px ").concat(n,";")].filter(Boolean).join(""),"\n }\n \n .").concat(au," {\n right: ").concat(a,"px ").concat(n,";\n }\n \n .").concat(ac," {\n margin-right: ").concat(a,"px ").concat(n,";\n }\n \n .").concat(au," .").concat(au," {\n right: 0 ").concat(n,";\n }\n \n .").concat(ac," .").concat(ac," {\n margin-right: 0 ").concat(n,";\n }\n \n body[").concat(ak,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(a,"px;\n }\n")},aP=function(){var e=parseInt(document.body.getAttribute(ak)||"0",10);return isFinite(e)?e:0},aR=function(){W.useEffect(function(){return document.body.setAttribute(ak,(aP()+1).toString()),function(){var e=aP()-1;e<=0?document.body.removeAttribute(ak):document.body.setAttribute(ak,e.toString())}},[])},aN=function(e){var t=e.noRelative,i=e.noImportant,n=e.gapMode,o=void 0===n?"margin":n;aR();var r=W.useMemo(function(){return aE(o)},[o]);return W.createElement(aA,{styles:az(r,!t,o,i?"":"!important")})},aO=!1;if("undefined"!=typeof window)try{var aI=Object.defineProperty({},"passive",{get:function(){return aO=!0,!0}});window.addEventListener("test",aI,aI),window.removeEventListener("test",aI,aI)}catch(e){aO=!1}var aM=!!aO&&{passive:!1},aL=function(e,t){if(!(e instanceof Element))return!1;var i=window.getComputedStyle(e);return"hidden"!==i[t]&&(i.overflowY!==i.overflowX||"TEXTAREA"===e.tagName||"visible"!==i[t])},aT=function(e,t){var i=t.ownerDocument,n=t;do{if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),aj(e,n)){var o=aG(e,n);if(o[1]>o[2])return!0}n=n.parentNode}while(n&&n!==i.body)return!1},aj=function(e,t){return"v"===e?aL(t,"overflowY"):aL(t,"overflowX")},aG=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},aV=function(e,t,i,n,o){var r,s=(r=window.getComputedStyle(t).direction,"h"===e&&"rtl"===r?-1:1),a=s*n,l=i.target,d=t.contains(l),h=!1,u=a>0,c=0,p=0;do{if(!l)break;var m=aG(e,l),f=m[0],g=m[1]-m[2]-s*f;(f||g)&&aj(e,l)&&(c+=g,p+=f);var v=l.parentNode;l=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!d&&l!==document.body||d&&(t.contains(l)||t===l))return u&&(o&&1>Math.abs(c)||!o&&a>c)?h=!0:!u&&(o&&1>Math.abs(p)||!o&&-a>p)&&(h=!0),h},aW=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},aH=function(e){return[e.deltaX,e.deltaY]},aF=function(e){return e&&"current"in e?e.current:e},aB=0,a$=[];let aU=(P=function(e){var t=W.useRef([]),i=W.useRef([0,0]),n=W.useRef(),o=W.useState(aB++)[0],r=W.useState(a_)[0],s=W.useRef(e);W.useEffect(function(){s.current=e},[e]),W.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,i){if(i||2==arguments.length)for(var n,o=0,r=t.length;oMath.abs(d)?"h":"v";if("touches"in e&&"h"===u&&"range"===h.type)return!1;var c=window.getSelection(),p=c&&c.anchorNode;if(p&&(p===h||p.contains(h)))return!1;var m=aT(u,h);if(!m)return!0;if(m?o=u:(o="v"===u?"h":"v",m=aT(u,h)),!m)return!1;if(!n.current&&"changedTouches"in e&&(l||d)&&(n.current=o),!o)return!0;var f=n.current||o;return aV(f,t,e,"h"===f?l:d,!0)},[]),l=W.useCallback(function(e){if(a$.length&&a$[a$.length-1]===r){var i="deltaY"in e?aH(e):aW(e),n=t.current.filter(function(t){var n;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(n=t.delta,n[0]===i[0]&&n[1]===i[1])})[0];if(n&&n.should){e.cancelable&&e.preventDefault();return}if(!n){var o=(s.current.shards||[]).map(aF).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?a(e,o[0]):!s.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),d=W.useCallback(function(e,i,n,o){var r={name:e,delta:i,target:n,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(n)};t.current.push(r),setTimeout(function(){t.current=t.current.filter(function(e){return e!==r})},1)},[]),h=W.useCallback(function(e){i.current=aW(e),n.current=void 0},[]),u=W.useCallback(function(t){d(t.type,aH(t),t.target,a(t,e.lockRef.current))},[]),c=W.useCallback(function(t){d(t.type,aW(t),t.target,a(t,e.lockRef.current))},[]);W.useEffect(function(){return a$.push(r),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:c}),document.addEventListener("wheel",l,aM),document.addEventListener("touchmove",l,aM),document.addEventListener("touchstart",h,aM),function(){a$=a$.filter(function(e){return e!==r}),document.removeEventListener("wheel",l,aM),document.removeEventListener("touchmove",l,aM),document.removeEventListener("touchstart",h,aM)}},[]);var p=e.removeScrollBar,m=e.inert;return W.createElement(W.Fragment,null,m?W.createElement(r,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,p?W.createElement(aN,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},ag.useMedium(P),ab);var aK=W.forwardRef(function(e,t){return W.createElement(aw,ad({},e,{ref:t,sideCar:aU}))});aK.classNames=aw.classNames;var aJ=["Enter"," "],aZ=["ArrowUp","PageDown","End"],aX=["ArrowDown","PageUp","Home",...aZ],aq={ltr:[...aJ,"ArrowRight"],rtl:[...aJ,"ArrowLeft"]},aY={ltr:["ArrowLeft"],rtl:["ArrowRight"]},aQ="Menu",[a0,a1,a2]=oX(aQ),[a5,a3]=oG(aQ,[a2,sz,s1]),a4=sz(),a9=s1(),[a6,a8]=a5(aQ),[a7,le]=a5(aQ),lt=e=>{let{__scopeMenu:t,open:i=!1,children:n,dir:o,onOpenChange:r,modal:s=!0}=e,a=a4(t),[l,d]=W.useState(null),h=W.useRef(!1),u=o2(r),c=o1(o);return W.useEffect(()=>{let e=()=>{h.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>h.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,V.jsx)(sN,{...a,children:(0,V.jsx)(a6,{scope:t,open:i,onOpenChange:u,content:l,onContentChange:d,children:(0,V.jsx)(a7,{scope:t,onClose:W.useCallback(()=>u(!1),[u]),isUsingKeyboardRef:h,dir:c,modal:s,children:n})})})};lt.displayName=aQ;var li=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e,o=a4(i);return(0,V.jsx)(sI,{...o,...n,ref:t})});li.displayName="MenuAnchor";var ln="MenuPortal",[lo,lr]=a5(ln,{forceMount:void 0}),ls=e=>{let{__scopeMenu:t,forceMount:i,children:n,container:o}=e,r=a8(ln,t);return(0,V.jsx)(lo,{scope:t,forceMount:i,children:(0,V.jsx)(sU,{present:i||r.open,children:(0,V.jsx)(s$,{asChild:!0,container:o,children:n})})})};ls.displayName=ln;var la="MenuContent",[ll,ld]=a5(la),lh=W.forwardRef((e,t)=>{let i=lr(la,e.__scopeMenu),{forceMount:n=i.forceMount,...o}=e,r=a8(la,e.__scopeMenu),s=le(la,e.__scopeMenu);return(0,V.jsx)(a0.Provider,{scope:e.__scopeMenu,children:(0,V.jsx)(sU,{present:n||r.open,children:(0,V.jsx)(a0.Slot,{scope:e.__scopeMenu,children:s.modal?(0,V.jsx)(lu,{...o,ref:t}):(0,V.jsx)(lc,{...o,ref:t})})})})}),lu=W.forwardRef((e,t)=>{let i=a8(la,e.__scopeMenu),n=W.useRef(null),o=ok(t,n);return W.useEffect(()=>{let e=n.current;if(e)return al(e)},[]),(0,V.jsx)(lm,{...e,ref:o,trapFocus:i.open,disableOutsidePointerEvents:i.open,disableOutsideScroll:!0,onFocusOutside:oj(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>i.onOpenChange(!1)})}),lc=W.forwardRef((e,t)=>{let i=a8(la,e.__scopeMenu);return(0,V.jsx)(lm,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>i.onOpenChange(!1)})}),lp=((v=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName="MenuContent.ScrollLock.SlotClone",a=v,(l=W.forwardRef((e,t)=>{let{children:i,...n}=e,o=W.Children.toArray(i),r=o.find(at);if(r){let e=r.props.children,i=o.map(t=>t!==r?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(a,{...n,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(a,{...n,ref:t,children:i})})).displayName="MenuContent.ScrollLock.Slot",l),lm=W.forwardRef((e,t)=>{let{__scopeMenu:i,loop:n=!1,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:s,disableOutsidePointerEvents:a,onEntryFocus:l,onEscapeKeyDown:d,onPointerDownOutside:h,onFocusOutside:u,onInteractOutside:c,onDismiss:p,disableOutsideScroll:m,...f}=e,g=a8(la,i),v=le(la,i),w=a4(i),b=a9(i),y=a1(i),[x,_]=W.useState(null),D=W.useRef(null),C=ok(t,D,g.onContentChange),S=W.useRef(0),E=W.useRef(""),A=W.useRef(0),k=W.useRef(null),z=W.useRef("right"),P=W.useRef(0),R=m?aK:W.Fragment;W.useEffect(()=>()=>window.clearTimeout(S.current),[]),o7();let N=W.useCallback(e=>{var t,i;return z.current===k.current?.side&&(t=e,!!(i=k.current?.area)&&function(e,t){let{x:i,y:n}=e,o=!1;for(let e=0,r=t.length-1;en!=u>n&&i<(h-l)*(n-d)/(u-d)+l&&(o=!o)}return o}({x:t.clientX,y:t.clientY},i))},[]);return(0,V.jsx)(ll,{scope:i,searchRef:E,onItemEnter:W.useCallback(e=>{N(e)&&e.preventDefault()},[N]),onItemLeave:W.useCallback(e=>{N(e)||(D.current?.focus(),_(null))},[N]),onTriggerLeave:W.useCallback(e=>{N(e)&&e.preventDefault()},[N]),pointerGraceTimerRef:A,onPointerGraceIntentChange:W.useCallback(e=>{k.current=e},[]),children:(0,V.jsx)(R,{...m?{as:lp,allowPinchZoom:!0}:void 0,children:(0,V.jsx)(ro,{asChild:!0,trapped:o,onMountAutoFocus:oj(r,e=>{e.preventDefault(),D.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:s,children:(0,V.jsx)(o4,{asChild:!0,disableOutsidePointerEvents:a,onEscapeKeyDown:d,onPointerDownOutside:h,onFocusOutside:u,onInteractOutside:c,onDismiss:p,children:(0,V.jsx)(s3,{asChild:!0,...b,dir:v.dir,orientation:"vertical",loop:n,currentTabStopId:x,onCurrentTabStopIdChange:_,onEntryFocus:oj(l,e=>{v.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,V.jsx)(sj,{role:"menu","aria-orientation":"vertical","data-state":lV(g.open),"data-radix-menu-content":"",dir:v.dir,...w,...f,ref:C,style:{outline:"none",...f.style},onKeyDown:oj(f.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,i=e.ctrlKey||e.altKey||e.metaKey,n=1===e.key.length;if(t){var o;let t,r,s,a,l,d;"Tab"===e.key&&e.preventDefault(),!i&&n&&(o=e.key,t=E.current+o,r=y().filter(e=>!e.disabled),s=document.activeElement,a=r.find(e=>e.ref.current===s)?.textValue,l=function(e,t,i){var n;let o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,r=i?e.indexOf(i):-1,s=(n=Math.max(r,0),e.map((t,i)=>e[(n+i)%e.length]));1===o.length&&(s=s.filter(e=>e!==i));let a=s.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return a!==i?a:void 0}(r.map(e=>e.textValue),t,a),d=r.find(e=>e.textValue===l)?.ref.current,function e(t){E.current=t,window.clearTimeout(S.current),""!==t&&(S.current=window.setTimeout(()=>e(""),1e3))}(t),d&&setTimeout(()=>d.focus()))}let r=D.current;if(e.target!==r||!aX.includes(e.key))return;e.preventDefault();let s=y().filter(e=>!e.disabled).map(e=>e.ref.current);aZ.includes(e.key)&&s.reverse(),function(e){let t=document.activeElement;for(let i of e)if(i===t||(i.focus(),document.activeElement!==t))return}(s)}),onBlur:oj(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(S.current),E.current="")}),onPointerMove:oj(e.onPointerMove,lF(e=>{let t=e.target,i=P.current!==e.clientX;e.currentTarget.contains(t)&&i&&(z.current=e.clientX>P.current?"right":"left",P.current=e.clientX)}))})})})})})})});lh.displayName=la;var lf=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e;return(0,V.jsx)(o$.div,{role:"group",...n,ref:t})});lf.displayName="MenuGroup";var lg=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e;return(0,V.jsx)(o$.div,{...n,ref:t})});lg.displayName="MenuLabel";var lv="MenuItem",lw="menu.itemSelect",lb=W.forwardRef((e,t)=>{let{disabled:i=!1,onSelect:n,...o}=e,r=W.useRef(null),s=le(lv,e.__scopeMenu),a=ld(lv,e.__scopeMenu),l=ok(t,r),d=W.useRef(!1);return(0,V.jsx)(ly,{...o,ref:l,disabled:i,onClick:oj(e.onClick,()=>{let e=r.current;if(!i&&e){let t=new CustomEvent(lw,{bubbles:!0,cancelable:!0});e.addEventListener(lw,e=>n?.(e),{once:!0}),oU(e,t),t.defaultPrevented?d.current=!1:s.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),d.current=!0},onPointerUp:oj(e.onPointerUp,e=>{d.current||e.currentTarget?.click()}),onKeyDown:oj(e.onKeyDown,e=>{let t=""!==a.searchRef.current;i||t&&" "===e.key||aJ.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});lb.displayName=lv;var ly=W.forwardRef((e,t)=>{let{__scopeMenu:i,disabled:n=!1,textValue:o,...r}=e,s=ld(lv,i),a=a9(i),l=W.useRef(null),d=ok(t,l),[h,u]=W.useState(!1),[c,p]=W.useState("");return W.useEffect(()=>{let e=l.current;e&&p((e.textContent??"").trim())},[r.children]),(0,V.jsx)(a0.ItemSlot,{scope:i,disabled:n,textValue:o??c,children:(0,V.jsx)(s6,{asChild:!0,...a,focusable:!n,children:(0,V.jsx)(o$.div,{role:"menuitem","data-highlighted":h?"":void 0,"aria-disabled":n||void 0,"data-disabled":n?"":void 0,...r,ref:d,onPointerMove:oj(e.onPointerMove,lF(e=>{n?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:oj(e.onPointerLeave,lF(e=>s.onItemLeave(e))),onFocus:oj(e.onFocus,()=>u(!0)),onBlur:oj(e.onBlur,()=>u(!1))})})})}),lx=W.forwardRef((e,t)=>{let{checked:i=!1,onCheckedChange:n,...o}=e;return(0,V.jsx)(lz,{scope:e.__scopeMenu,checked:i,children:(0,V.jsx)(lb,{role:"menuitemcheckbox","aria-checked":lW(i)?"mixed":i,...o,ref:t,"data-state":lH(i),onSelect:oj(o.onSelect,()=>n?.(!!lW(i)||!i),{checkForDefaultPrevented:!1})})})});lx.displayName="MenuCheckboxItem";var l_="MenuRadioGroup",[lD,lC]=a5(l_,{value:void 0,onValueChange:()=>{}}),lS=W.forwardRef((e,t)=>{let{value:i,onValueChange:n,...o}=e,r=o2(n);return(0,V.jsx)(lD,{scope:e.__scopeMenu,value:i,onValueChange:r,children:(0,V.jsx)(lf,{...o,ref:t})})});lS.displayName=l_;var lE="MenuRadioItem",lA=W.forwardRef((e,t)=>{let{value:i,...n}=e,o=lC(lE,e.__scopeMenu),r=i===o.value;return(0,V.jsx)(lz,{scope:e.__scopeMenu,checked:r,children:(0,V.jsx)(lb,{role:"menuitemradio","aria-checked":r,...n,ref:t,"data-state":lH(r),onSelect:oj(n.onSelect,()=>o.onValueChange?.(i),{checkForDefaultPrevented:!1})})})});lA.displayName=lE;var lk="MenuItemIndicator",[lz,lP]=a5(lk,{checked:!1}),lR=W.forwardRef((e,t)=>{let{__scopeMenu:i,forceMount:n,...o}=e,r=lP(lk,i);return(0,V.jsx)(sU,{present:n||lW(r.checked)||!0===r.checked,children:(0,V.jsx)(o$.span,{...o,ref:t,"data-state":lH(r.checked)})})});lR.displayName=lk;var lN=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e;return(0,V.jsx)(o$.div,{role:"separator","aria-orientation":"horizontal",...n,ref:t})});lN.displayName="MenuSeparator";var lO=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e,o=a4(i);return(0,V.jsx)(sW,{...o,...n,ref:t})});lO.displayName="MenuArrow";var[lI,lM]=a5("MenuSub"),lL="MenuSubTrigger",lT=W.forwardRef((e,t)=>{let i=a8(lL,e.__scopeMenu),n=le(lL,e.__scopeMenu),o=lM(lL,e.__scopeMenu),r=ld(lL,e.__scopeMenu),s=W.useRef(null),{pointerGraceTimerRef:a,onPointerGraceIntentChange:l}=r,d={__scopeMenu:e.__scopeMenu},h=W.useCallback(()=>{s.current&&window.clearTimeout(s.current),s.current=null},[]);return W.useEffect(()=>h,[h]),W.useEffect(()=>{let e=a.current;return()=>{window.clearTimeout(e),l(null)}},[a,l]),(0,V.jsx)(li,{asChild:!0,...d,children:(0,V.jsx)(ly,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":o.contentId,"data-state":lV(i.open),...e,ref:oA(t,o.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),i.open||i.onOpenChange(!0))},onPointerMove:oj(e.onPointerMove,lF(t=>{r.onItemEnter(t),!t.defaultPrevented&&(e.disabled||i.open||s.current||(r.onPointerGraceIntentChange(null),s.current=window.setTimeout(()=>{i.onOpenChange(!0),h()},100)))})),onPointerLeave:oj(e.onPointerLeave,lF(e=>{h();let t=i.content?.getBoundingClientRect();if(t){let n=i.content?.dataset.side,o="right"===n,s=t[o?"left":"right"],l=t[o?"right":"left"];r.onPointerGraceIntentChange({area:[{x:e.clientX+(o?-5:5),y:e.clientY},{x:s,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:s,y:t.bottom}],side:n}),window.clearTimeout(a.current),a.current=window.setTimeout(()=>r.onPointerGraceIntentChange(null),300)}else{if(r.onTriggerLeave(e),e.defaultPrevented)return;r.onPointerGraceIntentChange(null)}})),onKeyDown:oj(e.onKeyDown,t=>{let o=""!==r.searchRef.current;e.disabled||o&&" "===t.key||aq[n.dir].includes(t.key)&&(i.onOpenChange(!0),i.content?.focus(),t.preventDefault())})})})});lT.displayName=lL;var lj="MenuSubContent",lG=W.forwardRef((e,t)=>{let i=lr(la,e.__scopeMenu),{forceMount:n=i.forceMount,...o}=e,r=a8(la,e.__scopeMenu),s=le(la,e.__scopeMenu),a=lM(lj,e.__scopeMenu),l=W.useRef(null),d=ok(t,l);return(0,V.jsx)(a0.Provider,{scope:e.__scopeMenu,children:(0,V.jsx)(sU,{present:n||r.open,children:(0,V.jsx)(a0.Slot,{scope:e.__scopeMenu,children:(0,V.jsx)(lm,{id:a.contentId,"aria-labelledby":a.triggerId,...o,ref:d,align:"start",side:"rtl"===s.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{s.isUsingKeyboardRef.current&&l.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:oj(e.onFocusOutside,e=>{e.target!==a.trigger&&r.onOpenChange(!1)}),onEscapeKeyDown:oj(e.onEscapeKeyDown,e=>{s.onClose(),e.preventDefault()}),onKeyDown:oj(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),i=aY[s.dir].includes(e.key);t&&i&&(r.onOpenChange(!1),a.trigger?.focus(),e.preventDefault())})})})})})});function lV(e){return e?"open":"closed"}function lW(e){return"indeterminate"===e}function lH(e){return lW(e)?"indeterminate":e?"checked":"unchecked"}function lF(e){return t=>"mouse"===t.pointerType?e(t):void 0}lG.displayName=lj;var lB="DropdownMenu",[l$,lU]=oG(lB,[a3]),lK=a3(),[lJ,lZ]=l$(lB),lX=e=>{let{__scopeDropdownMenu:t,children:i,dir:n,open:o,defaultOpen:r,onOpenChange:s,modal:a=!0}=e,l=lK(t),d=W.useRef(null),[h,u]=oH({prop:o,defaultProp:r??!1,onChange:s,caller:lB});return(0,V.jsx)(lJ,{scope:t,triggerId:rc(),triggerRef:d,contentId:rc(),open:h,onOpenChange:u,onOpenToggle:W.useCallback(()=>u(e=>!e),[u]),modal:a,children:(0,V.jsx)(lt,{...l,open:h,onOpenChange:u,dir:n,modal:a,children:i})})};lX.displayName=lB;var lq="DropdownMenuTrigger",lY=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,disabled:n=!1,...o}=e,r=lZ(lq,i),s=lK(i);return(0,V.jsx)(li,{asChild:!0,...s,children:(0,V.jsx)(o$.button,{type:"button",id:r.triggerId,"aria-haspopup":"menu","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":r.open?"open":"closed","data-disabled":n?"":void 0,disabled:n,...o,ref:oA(t,r.triggerRef),onPointerDown:oj(e.onPointerDown,e=>{!n&&0===e.button&&!1===e.ctrlKey&&(r.onOpenToggle(),r.open||e.preventDefault())}),onKeyDown:oj(e.onKeyDown,e=>{!n&&(["Enter"," "].includes(e.key)&&r.onOpenToggle(),"ArrowDown"===e.key&&r.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});lY.displayName=lq;var lQ=e=>{let{__scopeDropdownMenu:t,...i}=e,n=lK(t);return(0,V.jsx)(ls,{...n,...i})};lQ.displayName="DropdownMenuPortal";var l0="DropdownMenuContent",l1=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lZ(l0,i),r=lK(i),s=W.useRef(!1);return(0,V.jsx)(lh,{id:o.contentId,"aria-labelledby":o.triggerId,...r,...n,ref:t,onCloseAutoFocus:oj(e.onCloseAutoFocus,e=>{s.current||o.triggerRef.current?.focus(),s.current=!1,e.preventDefault()}),onInteractOutside:oj(e.onInteractOutside,e=>{let t=e.detail.originalEvent,i=0===t.button&&!0===t.ctrlKey,n=2===t.button||i;(!o.modal||n)&&(s.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});l1.displayName=l0,W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lf,{...o,...n,ref:t})}).displayName="DropdownMenuGroup";var l2=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lg,{...o,...n,ref:t})});l2.displayName="DropdownMenuLabel";var l5=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lb,{...o,...n,ref:t})});l5.displayName="DropdownMenuItem";var l3=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lx,{...o,...n,ref:t})});l3.displayName="DropdownMenuCheckboxItem",W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lS,{...o,...n,ref:t})}).displayName="DropdownMenuRadioGroup";var l4=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lA,{...o,...n,ref:t})});l4.displayName="DropdownMenuRadioItem";var l9=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lR,{...o,...n,ref:t})});l9.displayName="DropdownMenuItemIndicator";var l6=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lN,{...o,...n,ref:t})});l6.displayName="DropdownMenuSeparator",W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lO,{...o,...n,ref:t})}).displayName="DropdownMenuArrow";var l8=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lT,{...o,...n,ref:t})});l8.displayName="DropdownMenuSubTrigger";var l7=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lG,{...o,...n,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});l7.displayName="DropdownMenuSubContent";let de=nJ("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);W.forwardRef(({className:e,inset:t,children:i,...n},o)=>(0,V.jsxs)(l8,{ref:o,className:tm("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...n,children:[i,(0,V.jsx)(n2,{className:"ml-auto"})]})).displayName=l8.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(l7,{ref:i,className:tm("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",e),...t})).displayName=l7.displayName;let dt=W.forwardRef(({className:e,sideOffset:t=4,...i},n)=>(0,V.jsx)(lQ,{children:(0,V.jsx)(l1,{ref:n,sideOffset:t,className:tm("z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",e),...i})}));dt.displayName=l1.displayName;let di=W.forwardRef(({className:e,inset:t,...i},n)=>(0,V.jsx)(l5,{ref:n,className:tm("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",t&&"pl-8",e),...i}));di.displayName=l5.displayName,W.forwardRef(({className:e,children:t,checked:i,...n},o)=>(0,V.jsxs)(l3,{ref:o,className:tm("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:i,...n,children:[(0,V.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,V.jsx)(l9,{children:(0,V.jsx)(de,{className:"h-4 w-4"})})}),t]})).displayName=l3.displayName,W.forwardRef(({className:e,children:t,...i},n)=>(0,V.jsxs)(l4,{ref:n,className:tm("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...i,children:[(0,V.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,V.jsx)(l9,{children:(0,V.jsx)(nZ,{className:"h-2 w-2 fill-current"})})}),t]})).displayName=l4.displayName,W.forwardRef(({className:e,inset:t,...i},n)=>(0,V.jsx)(l2,{ref:n,className:tm("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...i})).displayName=l2.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(l6,{ref:i,className:tm("-mx-1 my-1 h-px bg-muted",e),...t})).displayName=l6.displayName;var dn=Symbol("radix.slottable");function dr(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===dn}var ds="Popover",[da,dl]=oG(ds,[sz]),dd=sz(),[dh,du]=da(ds),dc=e=>{let{__scopePopover:t,children:i,open:n,defaultOpen:o,onOpenChange:r,modal:s=!1}=e,a=dd(t),l=W.useRef(null),[d,h]=W.useState(!1),[u,c]=oH({prop:n,defaultProp:o??!1,onChange:r,caller:ds});return(0,V.jsx)(sN,{...a,children:(0,V.jsx)(dh,{scope:t,contentId:rc(),triggerRef:l,open:u,onOpenChange:c,onOpenToggle:W.useCallback(()=>c(e=>!e),[c]),hasCustomAnchor:d,onCustomAnchorAdd:W.useCallback(()=>h(!0),[]),onCustomAnchorRemove:W.useCallback(()=>h(!1),[]),modal:s,children:i})})};dc.displayName=ds;var dp="PopoverAnchor";W.forwardRef((e,t)=>{let{__scopePopover:i,...n}=e,o=du(dp,i),r=dd(i),{onCustomAnchorAdd:s,onCustomAnchorRemove:a}=o;return W.useEffect(()=>(s(),()=>a()),[s,a]),(0,V.jsx)(sI,{...r,...n,ref:t})}).displayName=dp;var dm="PopoverTrigger",df=W.forwardRef((e,t)=>{let{__scopePopover:i,...n}=e,o=du(dm,i),r=dd(i),s=ok(t,o.triggerRef),a=(0,V.jsx)(o$.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":dA(o.open),...n,ref:s,onClick:oj(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?a:(0,V.jsx)(sI,{asChild:!0,...r,children:a})});df.displayName=dm;var dg="PopoverPortal",[dv,dw]=da(dg,{forceMount:void 0}),db=e=>{let{__scopePopover:t,forceMount:i,children:n,container:o}=e,r=du(dg,t);return(0,V.jsx)(dv,{scope:t,forceMount:i,children:(0,V.jsx)(sU,{present:i||r.open,children:(0,V.jsx)(s$,{asChild:!0,container:o,children:n})})})};db.displayName=dg;var dy="PopoverContent",dx=W.forwardRef((e,t)=>{let i=dw(dy,e.__scopePopover),{forceMount:n=i.forceMount,...o}=e,r=du(dy,e.__scopePopover);return(0,V.jsx)(sU,{present:n||r.open,children:r.modal?(0,V.jsx)(dD,{...o,ref:t}):(0,V.jsx)(dC,{...o,ref:t})})});dx.displayName=dy;var d_=((w=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName="PopoverContent.RemoveScroll.SlotClone",d=w,(h=W.forwardRef((e,t)=>{let{children:i,...n}=e,o=W.Children.toArray(i),r=o.find(dr);if(r){let e=r.props.children,i=o.map(t=>t!==r?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(d,{...n,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(d,{...n,ref:t,children:i})})).displayName="PopoverContent.RemoveScroll.Slot",h),dD=W.forwardRef((e,t)=>{let i=du(dy,e.__scopePopover),n=W.useRef(null),o=ok(t,n),r=W.useRef(!1);return W.useEffect(()=>{let e=n.current;if(e)return al(e)},[]),(0,V.jsx)(aK,{as:d_,allowPinchZoom:!0,children:(0,V.jsx)(dS,{...e,ref:o,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:oj(e.onCloseAutoFocus,e=>{e.preventDefault(),r.current||i.triggerRef.current?.focus()}),onPointerDownOutside:oj(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,i=0===t.button&&!0===t.ctrlKey;r.current=2===t.button||i},{checkForDefaultPrevented:!1}),onFocusOutside:oj(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),dC=W.forwardRef((e,t)=>{let i=du(dy,e.__scopePopover),n=W.useRef(!1),o=W.useRef(!1);return(0,V.jsx)(dS,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||i.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let r=t.target;i.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),dS=W.forwardRef((e,t)=>{let{__scopePopover:i,trapFocus:n,onOpenAutoFocus:o,onCloseAutoFocus:r,disableOutsidePointerEvents:s,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:d,onInteractOutside:h,...u}=e,c=du(dy,i),p=dd(i);return o7(),(0,V.jsx)(ro,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:o,onUnmountAutoFocus:r,children:(0,V.jsx)(o4,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:h,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:d,onDismiss:()=>c.onOpenChange(!1),children:(0,V.jsx)(sj,{"data-state":dA(c.open),role:"dialog",id:c.contentId,...p,...u,ref:t,style:{...u.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),dE="PopoverClose";function dA(e){return e?"open":"closed"}W.forwardRef((e,t)=>{let{__scopePopover:i,...n}=e,o=du(dE,i);return(0,V.jsx)(o$.button,{type:"button",...n,ref:t,onClick:oj(e.onClick,()=>o.onOpenChange(!1))})}).displayName=dE,W.forwardRef((e,t)=>{let{__scopePopover:i,...n}=e,o=dd(i);return(0,V.jsx)(sW,{...o,...n,ref:t})}).displayName="PopoverArrow";let dk=W.forwardRef(({className:e,align:t="center",sideOffset:i=4,...n},o)=>(0,V.jsx)(db,{children:(0,V.jsx)(dx,{ref:o,align:t,sideOffset:i,className:tm("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]",e),...n})}));dk.displayName=dx.displayName;var dz=/[\\\/_+.#"@\[\(\{&]/,dP=/[\\\/_+.#"@\[\(\{&]/g,dR=/[\s-]/,dN=/[\s-]/g;function dO(e){return e.toLowerCase().replace(dN," ")}var dI=Symbol("radix.slottable");function dM(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===dI}var dL="Dialog",[dT,dj]=oG(dL),[dG,dV]=dT(dL),dW=e=>{let{__scopeDialog:t,children:i,open:n,defaultOpen:o,onOpenChange:r,modal:s=!0}=e,a=W.useRef(null),l=W.useRef(null),[d,h]=oH({prop:n,defaultProp:o??!1,onChange:r,caller:dL});return(0,V.jsx)(dG,{scope:t,triggerRef:a,contentRef:l,contentId:rc(),titleId:rc(),descriptionId:rc(),open:d,onOpenChange:h,onOpenToggle:W.useCallback(()=>h(e=>!e),[h]),modal:s,children:i})};dW.displayName=dL;var dH="DialogTrigger";W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(dH,i),r=ok(t,o.triggerRef);return(0,V.jsx)(o$.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":d8(o.open),...n,ref:r,onClick:oj(e.onClick,o.onOpenToggle)})}).displayName=dH;var dF="DialogPortal",[dB,d$]=dT(dF,{forceMount:void 0}),dU=e=>{let{__scopeDialog:t,forceMount:i,children:n,container:o}=e,r=dV(dF,t);return(0,V.jsx)(dB,{scope:t,forceMount:i,children:W.Children.map(n,e=>(0,V.jsx)(sU,{present:i||r.open,children:(0,V.jsx)(s$,{asChild:!0,container:o,children:e})}))})};dU.displayName=dF;var dK="DialogOverlay",dJ=W.forwardRef((e,t)=>{let i=d$(dK,e.__scopeDialog),{forceMount:n=i.forceMount,...o}=e,r=dV(dK,e.__scopeDialog);return r.modal?(0,V.jsx)(sU,{present:n||r.open,children:(0,V.jsx)(dX,{...o,ref:t})}):null});dJ.displayName=dK;var dZ=((b=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName="DialogOverlay.RemoveScroll.SlotClone",u=b,(c=W.forwardRef((e,t)=>{let{children:i,...n}=e,o=W.Children.toArray(i),r=o.find(dM);if(r){let e=r.props.children,i=o.map(t=>t!==r?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(u,{...n,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(u,{...n,ref:t,children:i})})).displayName="DialogOverlay.RemoveScroll.Slot",c),dX=W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(dK,i);return(0,V.jsx)(aK,{as:dZ,allowPinchZoom:!0,shards:[o.contentRef],children:(0,V.jsx)(o$.div,{"data-state":d8(o.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),dq="DialogContent",dY=W.forwardRef((e,t)=>{let i=d$(dq,e.__scopeDialog),{forceMount:n=i.forceMount,...o}=e,r=dV(dq,e.__scopeDialog);return(0,V.jsx)(sU,{present:n||r.open,children:r.modal?(0,V.jsx)(dQ,{...o,ref:t}):(0,V.jsx)(d0,{...o,ref:t})})});dY.displayName=dq;var dQ=W.forwardRef((e,t)=>{let i=dV(dq,e.__scopeDialog),n=W.useRef(null),o=ok(t,i.contentRef,n);return W.useEffect(()=>{let e=n.current;if(e)return al(e)},[]),(0,V.jsx)(d1,{...e,ref:o,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:oj(e.onCloseAutoFocus,e=>{e.preventDefault(),i.triggerRef.current?.focus()}),onPointerDownOutside:oj(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,i=0===t.button&&!0===t.ctrlKey;(2===t.button||i)&&e.preventDefault()}),onFocusOutside:oj(e.onFocusOutside,e=>e.preventDefault())})}),d0=W.forwardRef((e,t)=>{let i=dV(dq,e.__scopeDialog),n=W.useRef(!1),o=W.useRef(!1);return(0,V.jsx)(d1,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||i.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let r=t.target;i.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),d1=W.forwardRef((e,t)=>{let{__scopeDialog:i,trapFocus:n,onOpenAutoFocus:o,onCloseAutoFocus:r,...s}=e,a=dV(dq,i),l=W.useRef(null),d=ok(t,l);return o7(),(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(ro,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:o,onUnmountAutoFocus:r,children:(0,V.jsx)(o4,{role:"dialog",id:a.contentId,"aria-describedby":a.descriptionId,"aria-labelledby":a.titleId,"data-state":d8(a.open),...s,ref:d,onDismiss:()=>a.onOpenChange(!1)})}),(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(hi,{titleId:a.titleId}),(0,V.jsx)(hn,{contentRef:l,descriptionId:a.descriptionId})]})]})}),d2="DialogTitle",d5=W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(d2,i);return(0,V.jsx)(o$.h2,{id:o.titleId,...n,ref:t})});d5.displayName=d2;var d3="DialogDescription",d4=W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(d3,i);return(0,V.jsx)(o$.p,{id:o.descriptionId,...n,ref:t})});d4.displayName=d3;var d9="DialogClose",d6=W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(d9,i);return(0,V.jsx)(o$.button,{type:"button",...n,ref:t,onClick:oj(e.onClick,()=>o.onOpenChange(!1))})});function d8(e){return e?"open":"closed"}d6.displayName=d9;var d7="DialogTitleWarning",[he,ht]=(R={contentName:dq,titleName:d2,docsSlug:"dialog"},p=W.createContext(R),(m=e=>{let{children:t,...i}=e,n=W.useMemo(()=>i,Object.values(i));return(0,V.jsx)(p.Provider,{value:n,children:t})}).displayName=d7+"Provider",[m,function(e){let t=W.useContext(p);if(t)return t;if(void 0!==R)return R;throw Error(`\`${e}\` must be used within \`${d7}\``)}]),hi=({titleId:e})=>{let t=ht(d7),i=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return W.useEffect(()=>{e&&(document.getElementById(e)||console.error(i))},[i,e]),null},hn=({contentRef:e,descriptionId:t})=>{let i=ht("DialogDescriptionWarning"),n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${i.contentName}}.`;return W.useEffect(()=>{let i=e.current?.getAttribute("aria-describedby");t&&i&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},ho='[cmdk-group=""]',hr='[cmdk-group-items=""]',hs='[cmdk-item=""]',ha=`${hs}:not([aria-disabled="true"])`,hl="cmdk-item-select",hd="data-value",hh=(e,t,i)=>{var n;return n=e,function e(t,i,n,o,r,s,a){if(s===i.length)return r===t.length?1:.99;var l=`${r},${s}`;if(void 0!==a[l])return a[l];for(var d,h,u,c,p=o.charAt(s),m=n.indexOf(p,r),f=0;m>=0;)(d=e(t,i,n,o,m+1,s+1,a))>f&&(m===r?d*=1:dz.test(t.charAt(m-1))?(d*=.8,(u=t.slice(r,m-1).match(dP))&&r>0&&(d*=Math.pow(.999,u.length))):dR.test(t.charAt(m-1))?(d*=.9,(c=t.slice(r,m-1).match(dN))&&r>0&&(d*=Math.pow(.999,c.length))):(d*=.17,r>0&&(d*=Math.pow(.999,m-r))),t.charAt(m)!==i.charAt(s)&&(d*=.9999)),(d<.1&&n.charAt(m-1)===o.charAt(s+1)||o.charAt(s+1)===o.charAt(s)&&n.charAt(m-1)!==o.charAt(s))&&.1*(h=e(t,i,n,o,m+1,s+2,a))>d&&(d=.1*h),d>f&&(f=d),m=n.indexOf(p,m+1);return a[l]=f,f}(n=i&&i.length>0?`${n+" "+i.join(" ")}`:n,t,dO(n),dO(t),0,0,{})},hu=W.createContext(void 0),hc=W.createContext(void 0),hp=W.createContext(void 0),hm=W.forwardRef((e,t)=>{let i=hC(()=>{var t,i;return{search:"",value:null!=(i=null!=(t=e.value)?t:e.defaultValue)?i:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=hC(()=>new Set),o=hC(()=>new Map),r=hC(()=>new Map),s=hC(()=>new Set),a=h_(e),{label:l,children:d,value:h,onValueChange:u,filter:c,shouldFilter:p,loop:m,disablePointerSelection:f=!1,vimBindings:g=!0,...v}=e,w=rc(),b=rc(),y=rc(),x=W.useRef(null),_=hA();hD(()=>{if(void 0!==h){let e=h.trim();i.current.value=e,D.emit()}},[h]),hD(()=>{_(6,z)},[]);let D=W.useMemo(()=>({subscribe:e=>(s.current.add(e),()=>s.current.delete(e)),snapshot:()=>i.current,setState:(e,t,n)=>{var o,r,s,l;if(!Object.is(i.current[e],t)){if(i.current[e]=t,"search"===e)k(),E(),_(1,A);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(y);e?e.focus():null==(o=document.getElementById(w))||o.focus()}if(_(7,()=>{var e;i.current.selectedItemId=null==(e=P())?void 0:e.id,D.emit()}),n||_(5,z),(null==(r=a.current)?void 0:r.value)!==void 0){null==(l=(s=a.current).onValueChange)||l.call(s,null!=t?t:"");return}}D.emit()}},emit:()=>{s.current.forEach(e=>e())}}),[]),C=W.useMemo(()=>({value:(e,t,n)=>{var o;t!==(null==(o=r.current.get(e))?void 0:o.value)&&(r.current.set(e,{value:t,keywords:n}),i.current.filtered.items.set(e,S(t,n)),_(2,()=>{E(),D.emit()}))},item:(e,t)=>(n.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),_(3,()=>{k(),E(),i.current.value||A(),D.emit()}),()=>{r.current.delete(e),n.current.delete(e),i.current.filtered.items.delete(e);let t=P();_(4,()=>{k(),(null==t?void 0:t.getAttribute("id"))===e&&A(),D.emit()})}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{r.current.delete(e),o.current.delete(e)}),filter:()=>a.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>a.current.disablePointerSelection,listId:w,inputId:y,labelId:b,listInnerRef:x}),[]);function S(e,t){var n,o;let r=null!=(o=null==(n=a.current)?void 0:n.filter)?o:hh;return e?r(e,i.current.search,t):0}function E(){if(!i.current.search||!1===a.current.shouldFilter)return;let e=i.current.filtered.items,t=[];i.current.filtered.groups.forEach(i=>{let n=o.current.get(i),r=0;n.forEach(t=>{r=Math.max(e.get(t),r)}),t.push([i,r])});let n=x.current;R().sort((t,i)=>{var n,o;let r=t.getAttribute("id"),s=i.getAttribute("id");return(null!=(n=e.get(s))?n:0)-(null!=(o=e.get(r))?o:0)}).forEach(e=>{let t=e.closest(hr);t?t.appendChild(e.parentElement===t?e:e.closest(`${hr} > *`)):n.appendChild(e.parentElement===n?e:e.closest(`${hr} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let i=null==(t=x.current)?void 0:t.querySelector(`${ho}[${hd}="${encodeURIComponent(e[0])}"]`);null==i||i.parentElement.appendChild(i)})}function A(){let e=R().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(hd);D.setState("value",t||void 0)}function k(){var e,t,s,l;if(!i.current.search||!1===a.current.shouldFilter){i.current.filtered.count=n.current.size;return}i.current.filtered.groups=new Set;let d=0;for(let o of n.current){let n=S(null!=(t=null==(e=r.current.get(o))?void 0:e.value)?t:"",null!=(l=null==(s=r.current.get(o))?void 0:s.keywords)?l:[]);i.current.filtered.items.set(o,n),n>0&&d++}for(let[e,t]of o.current)for(let n of t)if(i.current.filtered.items.get(n)>0){i.current.filtered.groups.add(e);break}i.current.filtered.count=d}function z(){var e,t,i;let n=P();n&&((null==(e=n.parentElement)?void 0:e.firstChild)===n&&(null==(i=null==(t=n.closest(ho))?void 0:t.querySelector('[cmdk-group-heading=""]'))||i.scrollIntoView({block:"nearest"})),n.scrollIntoView({block:"nearest"}))}function P(){var e;return null==(e=x.current)?void 0:e.querySelector(`${hs}[aria-selected="true"]`)}function R(){var e;return Array.from((null==(e=x.current)?void 0:e.querySelectorAll(ha))||[])}function N(e){let t=R()[e];t&&D.setState("value",t.getAttribute(hd))}function O(e){var t;let i=P(),n=R(),o=n.findIndex(e=>e===i),r=n[o+e];null!=(t=a.current)&&t.loop&&(r=o+e<0?n[n.length-1]:o+e===n.length?n[0]:n[o+e]),r&&D.setState("value",r.getAttribute(hd))}function I(e){let t=P(),i=null==t?void 0:t.closest(ho),n;for(;i&&!n;)n=null==(i=e>0?function(e,t){let i=e.nextElementSibling;for(;i;){if(i.matches(t))return i;i=i.nextElementSibling}}(i,ho):function(e,t){let i=e.previousElementSibling;for(;i;){if(i.matches(t))return i;i=i.previousElementSibling}}(i,ho))?void 0:i.querySelector(ha);n?D.setState("value",n.getAttribute(hd)):O(e)}let M=()=>N(R().length-1),L=e=>{e.preventDefault(),e.metaKey?M():e.altKey?I(1):O(1)},T=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?I(-1):O(-1)};return W.createElement(o$.div,{ref:t,tabIndex:-1,...v,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=v.onKeyDown)||t.call(v,e);let i=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||i))switch(e.key){case"n":case"j":g&&e.ctrlKey&&L(e);break;case"ArrowDown":L(e);break;case"p":case"k":g&&e.ctrlKey&&T(e);break;case"ArrowUp":T(e);break;case"Home":e.preventDefault(),N(0);break;case"End":e.preventDefault(),M();break;case"Enter":{e.preventDefault();let t=P();if(t){let e=new Event(hl);t.dispatchEvent(e)}}}}},W.createElement("label",{"cmdk-label":"",htmlFor:C.inputId,id:C.labelId,style:hz},l),hk(e,e=>W.createElement(hc.Provider,{value:D},W.createElement(hu.Provider,{value:C},e))))}),hf=W.forwardRef((e,t)=>{var i,n;let o=rc(),r=W.useRef(null),s=W.useContext(hp),a=W.useContext(hu),l=h_(e),d=null!=(n=null==(i=l.current)?void 0:i.forceMount)?n:null==s?void 0:s.forceMount;hD(()=>{if(!d)return a.item(o,null==s?void 0:s.id)},[d]);let h=hE(o,r,[e.value,e.children,r],e.keywords),u=W.useContext(hc),c=hS(e=>e.value&&e.value===h.current),p=hS(e=>!!d||!1===a.filter()||!e.search||e.filtered.items.get(o)>0);function m(){var e,t;f(),null==(t=(e=l.current).onSelect)||t.call(e,h.current)}function f(){u.setState("value",h.current,!0)}if(W.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(hl,m),()=>t.removeEventListener(hl,m)},[p,e.onSelect,e.disabled]),!p)return null;let{disabled:g,value:v,onSelect:w,forceMount:b,keywords:y,...x}=e;return W.createElement(o$.div,{ref:oA(r,t),...x,id:o,"cmdk-item":"",role:"option","aria-disabled":!!g,"aria-selected":!!c,"data-disabled":!!g,"data-selected":!!c,onPointerMove:g||a.getDisablePointerSelection()?void 0:f,onClick:g?void 0:m},e.children)}),hg=W.forwardRef((e,t)=>{let{heading:i,children:n,forceMount:o,...r}=e,s=rc(),a=W.useRef(null),l=W.useRef(null),d=rc(),h=W.useContext(hu),u=hS(e=>!!o||!1===h.filter()||!e.search||e.filtered.groups.has(s));hD(()=>h.group(s),[]),hE(s,a,[e.value,e.heading,l]);let c=W.useMemo(()=>({id:s,forceMount:o}),[o]);return W.createElement(o$.div,{ref:oA(a,t),...r,"cmdk-group":"",role:"presentation",hidden:!u||void 0},i&&W.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:d},i),hk(e,e=>W.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":i?d:void 0},W.createElement(hp.Provider,{value:c},e))))}),hv=W.forwardRef((e,t)=>{let{alwaysRender:i,...n}=e,o=W.useRef(null),r=hS(e=>!e.search);return i||r?W.createElement(o$.div,{ref:oA(o,t),...n,"cmdk-separator":"",role:"separator"}):null}),hw=W.forwardRef((e,t)=>{let{onValueChange:i,...n}=e,o=null!=e.value,r=W.useContext(hc),s=hS(e=>e.search),a=hS(e=>e.selectedItemId),l=W.useContext(hu);return W.useEffect(()=>{null!=e.value&&r.setState("search",e.value)},[e.value]),W.createElement(o$.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":a,id:l.inputId,type:"text",value:o?e.value:s,onChange:e=>{o||r.setState("search",e.target.value),null==i||i(e.target.value)}})}),hb=W.forwardRef((e,t)=>{let{children:i,label:n="Suggestions",...o}=e,r=W.useRef(null),s=W.useRef(null),a=hS(e=>e.selectedItemId),l=W.useContext(hu);return W.useEffect(()=>{if(s.current&&r.current){let e=s.current,t=r.current,i,n=new ResizeObserver(()=>{i=requestAnimationFrame(()=>{let i=e.offsetHeight;t.style.setProperty("--cmdk-list-height",i.toFixed(1)+"px")})});return n.observe(e),()=>{cancelAnimationFrame(i),n.unobserve(e)}}},[]),W.createElement(o$.div,{ref:oA(r,t),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":a,"aria-label":n,id:l.listId},hk(e,e=>W.createElement("div",{ref:oA(s,l.listInnerRef),"cmdk-list-sizer":""},e)))}),hy=W.forwardRef((e,t)=>{let{open:i,onOpenChange:n,overlayClassName:o,contentClassName:r,container:s,...a}=e;return W.createElement(dW,{open:i,onOpenChange:n},W.createElement(dU,{container:s},W.createElement(dJ,{"cmdk-overlay":"",className:o}),W.createElement(dY,{"aria-label":e.label,"cmdk-dialog":"",className:r},W.createElement(hm,{ref:t,...a}))))}),hx=Object.assign(hm,{List:hb,Item:hf,Input:hw,Group:hg,Separator:hv,Dialog:hy,Empty:W.forwardRef((e,t)=>hS(e=>0===e.filtered.count)?W.createElement(o$.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:W.forwardRef((e,t)=>{let{progress:i,children:n,label:o="Loading...",...r}=e;return W.createElement(o$.div,{ref:t,...r,"cmdk-loading":"",role:"progressbar","aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},hk(e,e=>W.createElement("div",{"aria-hidden":!0},e)))})});function h_(e){let t=W.useRef(e);return hD(()=>{t.current=e}),t}var hD="undefined"==typeof window?W.useEffect:W.useLayoutEffect;function hC(e){let t=W.useRef();return void 0===t.current&&(t.current=e()),t}function hS(e){let t=W.useContext(hc),i=()=>e(t.snapshot());return W.useSyncExternalStore(t.subscribe,i,i)}function hE(e,t,i,n=[]){let o=W.useRef(),r=W.useContext(hu);return hD(()=>{var s;let a=(()=>{var e;for(let t of i){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),l=n.map(e=>e.trim());r.value(e,a,l),null==(s=t.current)||s.setAttribute(hd,a),o.current=a}),o}var hA=()=>{let[e,t]=W.useState(),i=hC(()=>new Map);return hD(()=>{i.current.forEach(e=>e()),i.current=new Map},[e]),(e,n)=>{i.current.set(e,n),t({})}};function hk({asChild:e,children:t},i){let n;return e&&W.isValidElement(t)?W.cloneElement("function"==typeof(n=t.type)?n(t.props):"render"in n?n.render(t.props):t,{ref:t.ref},i(t.props.children)):i(t)}var hz={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};let hP=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(dJ,{ref:i,className:tm("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));hP.displayName=dJ.displayName,W.forwardRef(({className:e,children:t,...i},n)=>(0,V.jsxs)(dU,{children:[(0,V.jsx)(hP,{}),(0,V.jsxs)(dY,{ref:n,className:tm("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...i,children:[t,(0,V.jsxs)(d6,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,V.jsx)(n3,{className:"h-4 w-4"}),(0,V.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})).displayName=dY.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(d5,{ref:i,className:tm("text-lg font-semibold leading-none tracking-tight",e),...t})).displayName=d5.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(d4,{ref:i,className:tm("text-sm text-muted-foreground",e),...t})).displayName=d4.displayName;let hR=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx,{ref:i,className:tm("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));hR.displayName=hx.displayName;let hN=W.forwardRef(({className:e,...t},i)=>(0,V.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,V.jsx)(n0,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,V.jsx)(hx.Input,{ref:i,className:tm("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));hN.displayName=hx.Input.displayName;let hO=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx.List,{ref:i,className:tm("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));hO.displayName=hx.List.displayName;let hI=W.forwardRef((e,t)=>(0,V.jsx)(hx.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));hI.displayName=hx.Empty.displayName;let hM=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx.Group,{ref:i,className:tm("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));hM.displayName=hx.Group.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx.Separator,{ref:i,className:tm("-mx-1 h-px bg-border",e),...t})).displayName=hx.Separator.displayName;let hL=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx.Item,{ref:i,className:tm("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));hL.displayName=hx.Item.displayName;let hT=nJ("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),hj=nJ("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),hG=nJ("panel-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}]]),hV=nJ("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),hW=nJ("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),hH=F.default.env.NEXT_PUBLIC_DISCORD_URL??"https://discord.gg/Qf2pXtY4Vf";function hF(){let{datasetInfo:e,leftPanelOpen:t,rightPanelOpen:i,bottomPanelOpen:n}=eg(),o=function(){let e=(0,W.useContext)(ou),t=eg(e=>e.datasetInfo),{leftPanelOpen:i,rightPanelOpen:n,bottomPanelOpen:o,setLeftPanelOpen:r,setRightPanelOpen:s,setBottomPanelOpen:a}=eg(),l=(0,W.useCallback)(i=>{if(!e?.api)return;let n=e.api,o=function(e){let t=function(e){for(let t of oo){let i=e.getPanel(t);if(i)return i}return e.panels.find(e=>!os.has(e.id))??e.activePanel}(e);if(t)return{referencePanel:t,direction:"within"}}(n),r=o?{position:o}:{},s=t?.layouts??[],a=tA(s,"euclidean"),l=tA(s,"poincare");if(n.getPanel(i))return void n.getPanel(i)?.focus();switch(i){case n8:n.addPanel({id:n8,component:"grid",title:"Samples",tabComponent:"samplesTab",renderer:"always",...r});break;case n7:n.addPanel({id:n7,component:"scatter",title:"Euclidean",tabComponent:"euclideanTab",params:{layoutKey:a?.layout_key,geometry:"euclidean"},renderer:"always",...r});break;case oe:n.addPanel({id:oe,component:"scatter",title:"Hyperbolic",tabComponent:"hyperbolicTab",params:{layoutKey:l?.layout_key,geometry:"poincare"},renderer:"always",...r})}},[e?.api,t]),d=(0,W.useCallback)(()=>{localStorage.removeItem(n9),window.location.reload()},[]),h=(0,W.useCallback)(t=>{let l;if(!e?.api)return;let d=e.api,h="left"===t?n6:"right"===t?oi:on,u="left"===t?r:"right"===t?s:a,c="left"===t?i:"right"===t?n:o,p=d.getPanel(h);if(c&&p){p.api.close(),u(!1);return}if(c)return;let m=ol(d),f=d?.height??window.innerHeight,g=oh(t);if("left"===t){let e=od(m);(l=d.addPanel({id:h,component:"explorer",title:"Explorer",position:g,initialWidth:e,minimumWidth:120,maximumWidth:e}))&&(l.group.locked=!0,l.group.header.hidden=!0,l.api.setSize({width:e}))}else l="right"===t?d.addPanel({id:h,component:"placeholder",title:"Blank",position:g,initialWidth:Math.round(Math.min(.45*m,300)),minimumWidth:120,maximumWidth:Math.round(.65*m)}):d.addPanel({id:h,component:"placeholder",title:"Blank",position:g,initialHeight:Math.round(Math.min(Math.max(.25*f,150),250)),minimumHeight:150,maximumHeight:Math.round(Math.max(f-150,150))});l&&(u(!0),l.api.setActive())},[e?.api,i,n,o,r,s,a]);return e?{api:e.api,addPanel:l,resetLayout:d,toggleZone:h}:null}(),[r,s]=(0,W.useState)(!1),a=new Set(or.map(e=>e.id).filter(e=>o?.api?.getPanel(e)));return(0,V.jsxs)("header",{className:"h-7 min-h-[28px] bg-secondary border-b border-border flex items-center justify-between px-2",children:[(0,V.jsxs)("div",{className:"flex items-center gap-2",children:[(0,V.jsx)("div",{className:"flex items-center justify-center h-6 w-6 text-primary",children:(0,V.jsx)(tg,{className:"h-3.5 w-3.5"})}),o&&(0,V.jsxs)(lX,{children:[(0,V.jsx)(lY,{asChild:!0,children:(0,V.jsxs)(oT,{variant:"ghost",size:"sm",className:"h-6 px-2 text-[12px] leading-[16px] tracking-[-0.15px] text-muted-foreground hover:text-foreground hover:bg-muted/50",children:["View",(0,V.jsx)(n1,{className:"ml-0.5 h-2.5 w-2.5"})]})}),(0,V.jsxs)(dt,{align:"start",className:"w-48",children:[or.map(e=>{let t=e.icon,i=a.has(e.id);return(0,V.jsxs)(di,{onClick:()=>(e=>{if(!o?.api)return;let t=o.api.getPanel(e);t?t.api.close():o.addPanel(e)})(e.id),className:"flex items-center justify-between h-7 text-[12px] leading-[16px]",children:[(0,V.jsxs)("span",{className:"flex items-center gap-2",children:[(0,V.jsx)(t,{className:"h-3.5 w-3.5"}),e.label]}),i&&(0,V.jsx)(de,{className:"h-3.5 w-3.5 text-primary"})]},e.id)}),(0,V.jsx)("div",{className:"h-2"}),(0,V.jsxs)(di,{onClick:()=>o.resetLayout(),className:"flex items-center gap-2 h-7 text-[12px] leading-[16px]",children:[(0,V.jsx)(hT,{className:"h-3.5 w-3.5"}),"Reset Layout"]})]})]})]}),(0,V.jsx)("div",{className:"flex-1 flex justify-center px-4",children:(0,V.jsxs)(dc,{open:r,onOpenChange:s,children:[(0,V.jsx)(df,{asChild:!0,children:(0,V.jsxs)(oT,{variant:"ghost",size:"sm",role:"combobox","aria-expanded":r,className:"h-6 min-w-[200px] max-w-[400px] px-3 text-[12px] leading-[16px] tracking-[-0.15px] text-muted-foreground hover:text-foreground bg-muted/40 hover:bg-muted/60 border border-border/50 rounded-md justify-start gap-2",children:[(0,V.jsx)(n0,{className:"h-3 w-3 flex-shrink-0 opacity-50"}),(0,V.jsx)("span",{className:"truncate flex-1 text-left",children:e?.name??"No dataset loaded"})]})}),(0,V.jsx)(dk,{className:"w-[280px] p-0",align:"center",children:(0,V.jsxs)(hR,{children:[(0,V.jsx)(hN,{placeholder:"Search datasets...",className:"h-6 text-[12px] leading-[16px]"}),(0,V.jsxs)(hO,{children:[(0,V.jsx)(hI,{className:"py-4 text-xs text-center",children:"No datasets found."}),(0,V.jsx)(hM,{children:e&&(0,V.jsxs)(hL,{value:e.name,onSelect:()=>s(!1),className:"text-[12px] leading-[16px]",children:[(0,V.jsx)("span",{className:"flex-1 truncate",children:e.name}),(0,V.jsxs)("span",{className:"text-[10px] text-muted-foreground ml-2",children:[e.num_samples.toLocaleString()," samples"]}),(0,V.jsx)(de,{className:"h-3 w-3 ml-2 text-primary"})]})})]})]})})]})}),(0,V.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,V.jsx)("a",{href:hH,target:"_blank",rel:"noopener noreferrer",className:"h-6 w-6 p-0 flex items-center justify-center rounded-sm text-muted-foreground hover:text-foreground hover:bg-muted/40 transition-colors",title:"Join our Discord community",children:(0,V.jsx)(tw,{className:"h-3.5 w-3.5"})}),(0,V.jsx)("div",{className:"w-px h-3 bg-border mx-1"}),(0,V.jsx)(oT,{variant:"ghost",size:"sm",onClick:()=>o?.toggleZone("left"),className:tm("h-6 w-6 p-0",t?"text-foreground bg-muted/50":"text-muted-foreground hover:text-foreground hover:bg-muted/40"),children:(0,V.jsx)(hj,{className:"h-3.5 w-3.5"})}),(0,V.jsx)(oT,{variant:"ghost",size:"sm",onClick:()=>o?.toggleZone("bottom"),className:tm("h-6 w-6 p-0",n?"text-foreground bg-muted/50":"text-muted-foreground hover:text-foreground hover:bg-muted/40"),children:(0,V.jsx)(hG,{className:"h-3.5 w-3.5"})}),(0,V.jsx)(oT,{variant:"ghost",size:"sm",onClick:()=>o?.toggleZone("right"),className:tm("h-6 w-6 p-0",i?"text-foreground bg-muted/50":"text-muted-foreground hover:text-foreground hover:bg-muted/40"),children:(0,V.jsx)(hV,{className:"h-3.5 w-3.5"})}),(0,V.jsx)("div",{className:"w-px h-3 bg-border mx-1"}),(0,V.jsx)(oT,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:(0,V.jsx)(hW,{className:"h-3.5 w-3.5"})})]})]})}function hB(){let{samples:e,totalSamples:t,samplesLoaded:i,setSamples:n,appendSamples:o,addSamplesIfMissing:r,setDatasetInfo:s,setIsLoading:a,isLoading:l,error:d,setError:h,selectedIds:u,isLassoSelection:c,selectionSource:p,lassoQuery:m,lassoSamples:f,lassoTotal:g,lassoIsLoading:v,setLassoResults:w,labelFilter:b}=eg(),[y,x]=(0,W.useState)(!1),_=(0,W.useRef)(b??null);(0,W.useEffect)(()=>{(async()=>{a(!0),h(null);try{let[e,t]=await Promise.all([tk(),tz(0,100)]);s(e),n(t.samples,t.total)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{a(!1)}})()},[]),(0,W.useEffect)(()=>{(async()=>{if(c||0===u.size||"label"===p)return;let t=new Set(e.map(e=>e.id)),i=Array.from(u).filter(e=>!t.has(e));if(0!==i.length)try{let e=await tR(i);r(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[u,e,r,c,p]),(0,W.useEffect)(()=>{if(_.current===b||c)return;_.current=b??null;let e=!1;return(async()=>{try{let t=await tz(0,100,b??void 0);if(e)return;n(t.samples,t.total)}catch(t){if(e)return;console.error("Failed to load filtered samples:",t)}})(),()=>{e=!0}},[c,b,n]),(0,W.useEffect)(()=>{if(!c||!m||!v)return;let e=new AbortController;return(async()=>{try{let t=await tN({layoutKey:m.layoutKey,polygon:m.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;w(t.samples,t.total,!1)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return;console.error("Failed to fetch lasso selection:",e),w([],0,!1)}})(),()=>e.abort()},[c,v,m,w]);let D=(0,W.useCallback)(async()=>{if(!y){if(c){if(!m||v||!v&&f.length>=g)return;x(!0);try{let e=await tN({layoutKey:m.layoutKey,polygon:m.polygon,offset:f.length,limit:100});w(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{x(!1)}return}if(!(i>=t)){x(!0);try{let e=await tz(i,100,b??void 0);o(e.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{x(!1)}}}},[y,o,c,v,m,f.length,g,i,t,w,b]),C=(0,W.useMemo)(()=>{if(c)return f;if("scatter"===p&&u.size>0){let t=new Map;for(let i of e)t.set(i.id,i);let i=[];for(let e of u){let n=t.get(e);n&&i.push(n)}if(i.length>0)return[...i,...e.filter(e=>!u.has(e.id))]}return e},[c,f,e,u,p]),S=c?g:t,E=c?C.lengthhB],50912)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/a096ec8e6ed56d42.js b/src/hyperview/server/static/_next/static/chunks/a096ec8e6ed56d42.js deleted file mode 100644 index 411bf1b..0000000 --- a/src/hyperview/server/static/_next/static/chunks/a096ec8e6ed56d42.js +++ /dev/null @@ -1,9 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50912,e=>{"use strict";let t,r,n,o,l,s;var i,a,d=e.i(48277),u=e.i(30668);let c=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},f=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var p={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let h=(0,u.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:n,className:o="",children:l,iconNode:s,...i},a)=>(0,u.createElement)("svg",{ref:a,...p,width:t,height:t,stroke:e,strokeWidth:n?24*Number(r)/Number(t):r,className:f("lucide",o),...!l&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(i)&&{"aria-hidden":"true"},...i},[...s.map(([e,t])=>(0,u.createElement)(e,t)),...Array.isArray(l)?l:[l]])),m=(i="grip-vertical",a=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],(r=(0,u.forwardRef)(({className:e,...t},r)=>(0,u.createElement)(h,{ref:r,iconNode:a,className:f(`lucide-${c(i).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${i}`,e),...t}))).displayName=c(i),r);function g(e,t="Assertion error"){if(!e)throw Error(t)}function y({group:e}){let{orientation:t,panels:r}=e;return r.reduce((e,r)=>e+="horizontal"===t?r.element.offsetWidth:r.element.offsetHeight,0)}function b(e,t){return t.sort("horizontal"===e?x:v)}function x(e,t){let r=e.element.offsetLeft-t.element.offsetLeft;return 0!==r?r:e.element.offsetWidth-t.element.offsetWidth}function v(e,t){let r=e.element.offsetTop-t.element.offsetTop;return 0!==r?r:e.element.offsetHeight-t.element.offsetHeight}function w(e){return null!==e&&"object"==typeof e&&"nodeType"in e&&e.nodeType===Node.ELEMENT_NODE}function k(e,t){return{x:e.x>=t.left&&e.x<=t.right?0:Math.min(Math.abs(e.x-t.left),Math.abs(e.x-t.right)),y:e.y>=t.top&&e.y<=t.bottom?0:Math.min(Math.abs(e.y-t.top),Math.abs(e.y-t.bottom))}}function S(e){let{element:t,orientation:r,panels:n,separators:o}=e,l=b(r,Array.from(t.children).filter(w).map(e=>({element:e}))).map(({element:e})=>e),s=[],i=!1,a,d=[];for(let t of l)if(t.hasAttribute("data-panel")){let o=n.find(e=>e.element===t);if(o){if(a){let n,l=a.element.getBoundingClientRect(),u=t.getBoundingClientRect();if(i){let e="horizontal"===r?new DOMRect(l.right,l.top,0,l.height):new DOMRect(l.left,l.bottom,l.width,0),t="horizontal"===r?new DOMRect(u.left,u.top,0,u.height):new DOMRect(u.left,u.top,u.width,0);switch(d.length){case 0:n=[e,t];break;case 1:{let o=d[0],s=function({orientation:e,rects:t,targetRect:r}){let n={x:r.x+r.width/2,y:r.y+r.height/2},o,l=Number.MAX_VALUE;for(let r of t){let{x:t,y:s}=k(n,r),i="horizontal"===e?t:s;ie.element===t);e?d.push(e):(a=void 0,d=[])}else i=!0;return s}function z({groupSize:e,panelElement:t,styleProp:r}){let n,[o,l]=function(e){switch(typeof e){case"number":return[e,"px"];case"string":{let t=parseFloat(e);return e.endsWith("%")?[t,"%"]:e.endsWith("px")?[t,"px"]:e.endsWith("rem")?[t,"rem"]:e.endsWith("em")?[t,"em"]:e.endsWith("vh")?[t,"vh"]:e.endsWith("vw")?[t,"vw"]:[t,"%"]}}}(r);switch(l){case"%":n=o/100*e;break;case"px":n=o;break;case"rem":n=o*parseFloat(getComputedStyle(t.ownerDocument.body).fontSize);break;case"em":n=o*parseFloat(getComputedStyle(t).fontSize);break;case"vh":n=o/100*window.innerHeight;break;case"vw":n=o/100*window.innerWidth}return n}function j(e){return parseFloat(e.toFixed(3))}function C(e){let{panels:t}=e,r=y({group:e});return 0===r?t.map(e=>({collapsedSize:0,collapsible:!0===e.panelConstraints.collapsible,defaultSize:void 0,minSize:0,maxSize:100,panelId:e.id})):t.map(e=>{let t,{element:n,panelConstraints:o}=e,l=0;void 0!==o.collapsedSize&&(l=j(z({groupSize:r,panelElement:n,styleProp:o.collapsedSize})/r*100)),void 0!==o.defaultSize&&(t=j(z({groupSize:r,panelElement:n,styleProp:o.defaultSize})/r*100));let s=0;void 0!==o.minSize&&(s=j(z({groupSize:r,panelElement:n,styleProp:o.minSize})/r*100));let i=100;return void 0!==o.maxSize&&(i=j(z({groupSize:r,panelElement:n,styleProp:o.maxSize})/r*100)),{collapsedSize:l,collapsible:!0===o.collapsible,defaultSize:t,minSize:s,maxSize:i,panelId:e.id}})}function E(e,t,r=0){return Math.abs(j(e)-j(t))<=r}let M={cursorFlags:0,interactionState:{state:"inactive"},mountedGroups:new Map},R=new class{#e={};addListener(e,t){let r=this.#e[e];return void 0===r?this.#e[e]=[t]:r.includes(t)||r.push(t),()=>{this.removeListener(e,t)}}emit(e,t){let r=this.#e[e];if(void 0!==r)if(1===r.length)r[0].call(null,t);else{let e=!1,n=null,o=Array.from(r);for(let r=0;r=0&&r.splice(e,1)}}};function N(e){let t="function"==typeof e?e(M):e;if(M===t)return M;let r=M;return M={...M,...t},void 0!==t.cursorFlags&&R.emit("cursorFlagsChange",M.cursorFlags),void 0!==t.interactionState&&R.emit("interactionStateChange",M.interactionState),void 0!==t.mountedGroups&&(M.mountedGroups.forEach((e,t)=>{e.derivedPanelConstraints.forEach(n=>{if(n.collapsible){let{layout:o}=r.mountedGroups.get(t)??{};if(o){let r=E(n.collapsedSize,e.layout[n.panelId]),l=E(n.collapsedSize,o[n.panelId]);r&&!l&&(t.inMemoryLastExpandedPanelSizes[n.panelId]=o[n.panelId])}}})}),R.emit("mountedGroupsChange",M.mountedGroups)),M}function L(e,t){return E(e,t)?0:e>t?1:-1}function I({panelConstraints:e,size:t}){let{collapsedSize:r=0,collapsible:n,maxSize:o=100,minSize:l=0}=e;return 0>L(t,l)&&(t=n&&0>L(t,(r+l)/2)?r:l),j(t=Math.min(o,t))}function P({delta:e,initialLayout:t,panelConstraints:r,pivotIndices:n,prevLayout:o,trigger:l}){if(E(e,0))return t;let s=Object.values(t),i=Object.values(o),a=[...s],[d,u]=n;g(null!=d,"Invalid first pivot index"),g(null!=u,"Invalid second pivot index");let c=0;if("keyboard"===l){{let t=e<0?u:d,n=r[t];g(n,`Panel constraints not found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,o)){let t=i-r;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}{let t=e<0?d:u,n=r[t];g(n,`No panel constraints found for index ${t}`);let{collapsedSize:o=0,collapsible:l,minSize:i=0}=n;if(l){let r=s[t];if(g(null!=r,`Previous layout not found for panel index ${t}`),E(r,i)){let t=r-o;L(t,Math.abs(e))>0&&(e=e<0?0-t:t)}}}}{let t=e<0?1:-1,n=e<0?u:d,o=0;for(;;){let e=s[n];if(g(null!=e,`Previous layout not found for panel index ${n}`),o+=I({panelConstraints:r[n],size:100})-e,(n+=t)<0||n>=r.length)break}let l=Math.min(Math.abs(e),Math.abs(o));e=e<0?0-l:l}{let t=e<0?d:u;for(;t>=0&&t=0))break;e<0?t--:t++}}if(function(e,t){if(e.length!==t.length)return!1;for(let r=0;r=0&&n0?n--:n++}}}if(!E(Object.values(a).reduce((e,t)=>t+e,0),100,.1))return o;let f=Object.keys(o);return a.reduce((e,t,r)=>(e[f[r]]=t,e),{})}function O(e){let{mountedGroups:t}=M;for(let[r]of t)if(r.separators.some(t=>t.element===e))return r;throw Error("Could not find parent Group for separator element")}function T(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(void 0===t[r]||0!==L(e[r],t[r]))return!1;return!0}function A({layout:e,panelConstraints:t}){let r=[...Object.values(e)],n=r.reduce((e,t)=>e+t,0);if(r.length!==t.length)throw Error(`Invalid ${t.length} panel layout: ${r.map(e=>`${e}%`).join(", ")}`);if(!E(n,100)&&r.length>0)for(let e=0;e(e[l[r]]=t,e),{})}function D({groupId:e}){let t=()=>{let{mountedGroups:t}=M;for(let[r,n]of t)if(r.id===e)return{group:r,...n};throw Error(`Could not find Group with id "${e}"`)};return{getLayout(){let{defaultLayoutDeferred:e,layout:r}=t();return e?{}:r},setLayout(e){let{defaultLayoutDeferred:r,derivedPanelConstraints:n,group:o,layout:l,separatorToPanels:s}=t(),i=A({layout:e,panelConstraints:n});return r?l:(T(l,i)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(o,{defaultLayoutDeferred:r,derivedPanelConstraints:n,layout:i,separatorToPanels:s})})),i)}}}function F(e){let{mountedGroups:t}=M,r=t.get(e);return g(r,`Mounted Group ${e.id} not found`),r}function $(e,t){let r=O(e),n=F(r),o=r.separators.find(t=>t.element===e);g(o,"Matching separator not found");let l=n.separatorToPanels.get(o);g(l,"Matching panels not found");let s=l.map(e=>r.panels.indexOf(e)),i=D({groupId:r.id}).getLayout(),a=A({layout:P({delta:t,initialLayout:i,panelConstraints:n.derivedPanelConstraints,pivotIndices:s,prevLayout:i,trigger:"keyboard"}),panelConstraints:n.derivedPanelConstraints});T(i,a)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(r,{defaultLayoutDeferred:n.defaultLayoutDeferred,derivedPanelConstraints:n.derivedPanelConstraints,layout:a,separatorToPanels:n.separatorToPanels})}))}function _(e){if(e.defaultPrevented)return;let t=e.currentTarget,r=O(t);if(!r.disabled)switch(e.key){case"ArrowDown":e.preventDefault(),"vertical"===r.orientation&&$(t,5);break;case"ArrowLeft":e.preventDefault(),"horizontal"===r.orientation&&$(t,-5);break;case"ArrowRight":e.preventDefault(),"horizontal"===r.orientation&&$(t,5);break;case"ArrowUp":e.preventDefault(),"vertical"===r.orientation&&$(t,-5);break;case"End":e.preventDefault(),$(t,100);break;case"Enter":{e.preventDefault();let r=O(t),{derivedPanelConstraints:n,layout:o,separatorToPanels:l}=F(r),s=r.separators.find(e=>e.element===t);g(s,"Matching separator not found");let i=l.get(s);g(i,"Matching panels not found");let a=i[0],d=n.find(e=>e.panelId===a.id);if(g(d,"Panel metadata not found"),d.collapsible){let e=o[a.id];$(t,(d.collapsedSize===e?r.inMemoryLastExpandedPanelSizes[a.id]??d.minSize:d.collapsedSize)-e)}break}case"F6":{e.preventDefault();let r=O(t).separators.map(e=>e.element),n=Array.from(r).findIndex(t=>t===e.currentTarget);g(null!==n,"Index not found");let o=e.shiftKey?n>0?n-1:r.length-1:n+1e,W=()=>{},B=/\b(?:position|zIndex|opacity|transform|webkitTransform|mixBlendMode|filter|webkitFilter|isolation)\b/;function V(e){let t=e.length;for(;t--;){let r=e[t];if(g(r,"Missing node"),function(e){let t,r=getComputedStyle(e);return!!("fixed"===r.position||"auto"!==r.zIndex&&("static"!==r.position||"flex"===(t=getComputedStyle(U(e)??e).display)||"inline-flex"===t)||1>+r.opacity||"transform"in r&&"none"!==r.transform||"webkitTransform"in r&&"none"!==r.webkitTransform||"mixBlendMode"in r&&"normal"!==r.mixBlendMode||"filter"in r&&"none"!==r.filter||"webkitFilter"in r&&"none"!==r.webkitFilter||"isolation"in r&&"isolate"===r.isolation||B.test(r.willChange)||"touch"===r.webkitOverflowScrolling)}(r))return r}return null}function K(e){return e&&Number(getComputedStyle(e).zIndex)||0}function H(e){let t=[];for(;e;)t.push(e),e=U(e);return t}function U(e){let{parentNode:t}=e;return null!==t&&"object"==typeof t&&"nodeType"in t&&t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?t.host:t}function q(e,r){let n=[];return r.forEach((r,o)=>{if(o.disabled)return;let l=(void 0===t&&(t="function"==typeof matchMedia&&!!matchMedia("(pointer:coarse)").matches),t)?10:5,s=S(o),i=function(e,t,r){let n,o={x:1/0,y:1/0};for(let l of t){let t=k(r,l.rect);switch(e){case"horizontal":t.x<=o.x&&(n=l,o=t);break;case"vertical":t.y<=o.y&&(n=l,o=t)}}return n?{distance:o,hitRegion:n}:void 0}(o.orientation,s,{x:e.clientX,y:e.clientY});i&&i.distance.x<=l&&i.distance.y<=l&&function({groupElement:e,hitRegion:t,pointerEventTarget:r}){if(!w(r)||r.contains(e)||e.contains(r))return!0;if(function(e,t){let r;if(e===t)throw Error("Cannot compare node with itself");let n={a:H(e),b:H(t)};for(;n.a.at(-1)===n.b.at(-1);)e=n.a.pop(),t=n.b.pop(),r=e;g(r,"Stacking order can only be calculated for elements with a common ancestor");let o={a:K(V(n.a)),b:K(V(n.b))};if(o.a===o.b){let e=r.childNodes,t={a:n.a.at(-1),b:n.b.at(-1)},o=e.length;for(;o--;){let r=e[o];if(r===t.a)return 1;if(r===t.b)return -1}}return Math.sign(o.a-o.b)}(r,e)>0){let o=r;for(;o;){var n;if(o.contains(e))break;if(n=o.getBoundingClientRect(),n.xt.x&&n.yt.y)return!1;o=o.parentElement}}return!0}({groupElement:o.element,hitRegion:i.hitRegion.rect,pointerEventTarget:e.target})&&n.push(i.hitRegion)}),n}function Y(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{mountedGroups:t}=M,r=q(e,t),n=new Set,o=new Set,l=new Set,s=new Map,i=!1;r.forEach(e=>{n.add(e.group),e.panels.forEach(e=>{o.add(e)}),e.separator&&(l.add(e.separator),i||(i=!0,e.separator.element.focus()));let r=t.get(e.group);r&&s.set(e.group,r.layout)}),N({interactionState:{hitRegions:r,initialLayoutMap:s,pointerDownAtPoint:{x:e.clientX,y:e.clientY},state:"active"}}),r.length&&e.preventDefault()}let Q=new WeakMap;function X(e){if(null===e.defaultView||void 0===e.defaultView)return;let{prevStyle:t,styleSheet:r}=Q.get(e)??{};void 0===r&&(r=new e.defaultView.CSSStyleSheet,e.adoptedStyleSheets=[r]);let{cursorFlags:n,interactionState:o}=M;switch(o.state){case"active":case"hover":{let e=function({cursorFlags:e,groups:t,state:r}){let n=0,o=0;switch(r){case"active":case"hover":t.forEach(e=>{if(!e.disableCursor)switch(e.orientation){case"horizontal":n++;break;case"vertical":o++}})}if(0===n&&0===o)return null;if("active"===r){let t=(4&e)!=0,r=(8&e)!=0;if(e){if((1&e)!=0)return t?"se-resize":r?"ne-resize":"e-resize";if((2&e)!=0)return t?"sw-resize":r?"nw-resize":"w-resize";if(t)return"s-resize";if(r)return"n-resize"}}return n>0&&o>0?"move":n>0?"ew-resize":"ns-resize"}({cursorFlags:n,groups:o.hitRegions.map(e=>e.group),state:o.state}),l=`*{cursor: ${e} !important; ${"active"===o.state?"touch-action: none;":""} }`;if(t===l)return;t=l,e?0===r.cssRules.length?r.insertRule(l):r.replaceSync(l):1===r.cssRules.length&&r.deleteRule(0);break}case"inactive":t=void 0,1===r.cssRules.length&&r.deleteRule(0)}Q.set(e,{prevStyle:t,styleSheet:r})}function Z({document:e,event:t,hitRegions:r,initialLayoutMap:n,mountedGroups:o,pointerDownAtPoint:l}){let s=0,i=new Map(o);r.forEach(e=>{let{group:r,groupSize:a}=e,{disableCursor:d,orientation:u,panels:c}=r,f=0;f=l?"horizontal"===u?(t.clientX-l.x)/a*100:(t.clientY-l.y)/a*100:"horizontal"===u?t.clientX<0?-100:100:t.clientY<0?-100:100;let p=n.get(r),{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:g,separatorToPanels:y}=o.get(r)??{defaultLayoutDeferred:!1};if(m&&p&&g&&y){let t=P({delta:f,initialLayout:p,panelConstraints:m,pivotIndices:e.panels.map(e=>c.indexOf(e)),prevLayout:g,trigger:"mouse-or-touch"});if(T(t,g)){if(0!==f&&!d)switch(u){case"horizontal":s|=f<0?1:2;break;case"vertical":s|=f<0?4:8}}else{i.set(e.group,{defaultLayoutDeferred:h,derivedPanelConstraints:m,layout:t,separatorToPanels:y});let r=e.group.panels.map(({id:e})=>e).join(",");e.group.inMemoryLayouts[r]=t}}}),N({cursorFlags:s,mountedGroups:i}),X(e)}function J(e){let{interactionState:t,mountedGroups:r}=M;"active"===t.state&&Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r})}function ee(e){if(e.defaultPrevented)return;let{interactionState:t,mountedGroups:r}=M;if("active"===t.state){if(0===e.buttons){N(e=>"inactive"===e.interactionState.state?e:{cursorFlags:0,interactionState:{state:"inactive"}}),N(e=>({mountedGroups:new Map(e.mountedGroups)}));return}Z({document:e.currentTarget,event:e,hitRegions:t.hitRegions,initialLayoutMap:t.initialLayoutMap,mountedGroups:r,pointerDownAtPoint:t.pointerDownAtPoint})}else{let n=q(e,r);0===n.length?"inactive"!==t.state&&N({interactionState:{state:"inactive"}}):N({interactionState:{hitRegions:n,state:"hover"}}),X(e.currentTarget)}}function et(e){if(e.defaultPrevented||"mouse"===e.pointerType&&e.button>0)return;let{interactionState:t}=M;"active"===t.state&&(N({cursorFlags:0,interactionState:{state:"inactive"}}),t.hitRegions.length>0&&(X(e.currentTarget),N(e=>({mountedGroups:new Map(e.mountedGroups)})),e.preventDefault()))}function er(e){let t=0,r=0,n={};for(let o of e)if(void 0!==o.defaultSize){t++;let e=j(o.defaultSize);r+=e,n[o.panelId]=e}else n[o.panelId]=void 0;let o=e.length-t;if(0!==o){let t=j((100-r)/o);for(let r of e)void 0===r.defaultSize&&(n[r.panelId]=t)}return n}let en=new Map;function eo(){let[e,t]=(0,u.useState)({});return[e,(0,u.useCallback)(()=>t({}),[])]}function el(e){let t=(0,u.useId)();return`${e??t}`}let es="u">typeof window?u.useLayoutEffect:u.useEffect;function ei(e){let t=(0,u.useRef)(e);return es(()=>{t.current=e},[e]),(0,u.useCallback)((...e)=>t.current?.(...e),[t])}function ea(...e){return ei(t=>{e.forEach(e=>{if(e)switch(typeof e){case"function":e(t);break;case"object":e.current=t}})})}let ed=(0,u.createContext)(null);function eu({children:e,className:t,defaultLayout:r,disableCursor:n,disabled:o,elementRef:l,groupRef:s,id:i,onLayoutChange:a,onLayoutChanged:c,orientation:f="horizontal",style:p,...h}){var m;let x,v,w=(0,u.useRef)({onLayoutChange:{},onLayoutChanged:{}}),k=ei(e=>{T(w.current.onLayoutChange,e)||(w.current.onLayoutChange=e,a?.(e))}),z=ei(e=>{T(w.current.onLayoutChanged,e)||(w.current.onLayoutChanged=e,c?.(e))}),E=el(i),L=(0,u.useRef)(null),[I,P]=eo(),O=(0,u.useRef)({lastExpandedPanelSizes:{},layouts:{},panels:[],separators:[]}),F=ea(L,l);x=(0,u.useRef)({getLayout:()=>({}),setLayout:G}),(0,u.useImperativeHandle)(s,()=>x.current,[]),es(()=>{Object.assign(x.current,D({groupId:E}))});let $=ei((e,t)=>{let{interactionState:n,mountedGroups:o}=M;for(let r of o.keys())if(r.id===e){let e=o.get(r);if(e){let o=!1;return"active"===n.state&&(o=n.hitRegions.some(e=>e.group===r)),{flexGrow:e.layout[t]??1,pointerEvents:o?"none":void 0}}}return{flexGrow:r?.[t]??1}}),W=(0,u.useMemo)(()=>({getPanelStyles:$,id:E,orientation:f,registerPanel:e=>{let t=O.current;return t.panels=b(f,[...t.panels,e]),P(),()=>{t.panels=t.panels.filter(t=>t!==e),P()}},registerSeparator:e=>{let t=O.current;return t.separators=b(f,[...t.separators,e]),P(),()=>{t.separators=t.separators.filter(t=>t!==e),P()}}}),[$,E,P,f]),B=(m={defaultLayout:r,disableCursor:n},v=(0,u.useRef)({...m}),es(()=>{for(let e in m)v.current[e]=m[e]},[m]),v.current),V=(0,u.useRef)(null);return es(()=>{let e,t,r,n,l,s,i,a,d,u,c,p,h=L.current;if(null===h)return;let m=O.current,b={defaultLayout:B.defaultLayout,disableCursor:!!B.disableCursor,disabled:!!o,element:h,id:E,inMemoryLastExpandedPanelSizes:O.current.lastExpandedPanelSizes,inMemoryLayouts:O.current.layouts,orientation:f,panels:m.panels,separators:m.separators};V.current=b;let x=(e=!0,g(b.element.ownerDocument.defaultView,"Cannot register an unmounted Group"),t=b.element.ownerDocument.defaultView.ResizeObserver,r=new Set,n=new Set,(l=new t(t=>{for(let r of t){let{borderBoxSize:t,target:n}=r;if(n===b.element){if(e){if(0===y({group:b}))return;N(e=>{let t=e.mountedGroups.get(b);if(t){let r=C(b),n=t.defaultLayoutDeferred?er(r):t.layout,o=A({layout:n,panelConstraints:r});return!t.defaultLayoutDeferred&&T(n,o)&&function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let r in e)if(e[r]!==t[r])return!1;return!0}(t.derivedPanelConstraints,r)?e:{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:!1,derivedPanelConstraints:r,layout:o,separatorToPanels:t.separatorToPanels})}}return e})}}else!function(e,t,r){if(!r[0])return;let n=e.panels.find(e=>e.element===t);if(!n||!n.onResize)return;let o=y({group:e}),l="horizontal"===e.orientation?n.element.offsetWidth:n.element.offsetHeight,s=n.mutableValues.prevSize,i={asPercentage:j(l/o*100),inPixels:l};n.mutableValues.prevSize=i,n.onResize(i,n.id,s)}(b,n,t)}})).observe(b.element),b.panels.forEach(e=>{g(!r.has(e.id),`Panel ids must be unique; id "${e.id}" was used more than once`),r.add(e.id),e.onResize&&l.observe(e.element)}),s=y({group:b}),i=C(b),a=b.panels.map(({id:e})=>e).join(","),(d=b.defaultLayout)&&(function(e,t){let r=e.map(e=>e.id),n=Object.keys(t);if(r.length!==n.length)return!1;for(let e of r)if(!n.includes(e))return!1;return!0}(b.panels,d)||(d=void 0)),u=A({layout:b.inMemoryLayouts[a]??d??er(i),panelConstraints:i}),c=S(b),p=b.element.ownerDocument,N(e=>{let t=new Map;return en.set(p,(en.get(p)??0)+1),c.forEach(e=>{e.separator&&t.set(e.separator,e.panels)}),{mountedGroups:new Map(e.mountedGroups).set(b,{defaultLayoutDeferred:0===s,derivedPanelConstraints:i,layout:u,separatorToPanels:t})}}),b.separators.forEach(e=>{g(!n.has(e.id),`Separator ids must be unique; id "${e.id}" was used more than once`),n.add(e.id),e.element.addEventListener("keydown",_)}),1===en.get(p)&&(p.addEventListener("pointerdown",Y,!0),p.addEventListener("pointerleave",J),p.addEventListener("pointermove",ee),p.addEventListener("pointerup",et,!0)),function(){e=!1,en.set(p,Math.max(0,(en.get(p)??0)-1)),N(e=>{let t=new Map(e.mountedGroups);return t.delete(b),{mountedGroups:t}}),b.separators.forEach(e=>{e.element.removeEventListener("keydown",_)}),en.get(p)||(p.removeEventListener("pointerdown",Y,!0),p.removeEventListener("pointerleave",J),p.removeEventListener("pointermove",ee),p.removeEventListener("pointerup",et,!0)),l.disconnect()}),v=M.mountedGroups.get(b);if(v){let{defaultLayoutDeferred:e,derivedPanelConstraints:t,layout:r}=v;!e&&t.length>0&&(k(r),z(r),m.panels.forEach(e=>{e.scheduleUpdate()}))}let w=R.addListener("interactionStateChange",()=>{m.panels.forEach(e=>{e.scheduleUpdate()})}),I=R.addListener("mountedGroupsChange",e=>{let t=e.get(b);if(t){let{defaultLayoutDeferred:e,derivedPanelConstraints:r,layout:n}=t;if(e||0===r.length)return;let{interactionState:o}=M,l="active"!==o.state;k(n),l&&z(n),m.panels.forEach(e=>{e.scheduleUpdate()})}});return()=>{V.current=null,x(),w(),I()}},[o,E,z,k,f,I,B]),(0,u.useEffect)(()=>{let e=V.current;e&&(e.defaultLayout=r,e.disableCursor=!!n)}),(0,d.jsx)(ed.Provider,{value:W,children:(0,d.jsx)("div",{...h,"aria-orientation":f,className:t,"data-group":!0,"data-testid":E,id:E,ref:F,style:{height:"100%",width:"100%",overflow:"hidden",...p,display:"flex",flexDirection:"horizontal"===f?"row":"column",flexWrap:"nowrap"},children:e})})}function ec(){let e=(0,u.useContext)(ed);return g(e,"Group Context not found; did you render a Panel or Separator outside of a Group?"),e}function ef({children:e,className:t,collapsedSize:r="0%",collapsible:n=!1,defaultSize:o,elementRef:l,id:s,maxSize:i="100%",minSize:a="0%",onResize:c,panelRef:f,style:p,...h}){let m=!!s,g=el(s),b=(0,u.useRef)(null),x=ea(b,l),[,v]=eo(),{getPanelStyles:w,id:k,registerPanel:S}=ec(),z=null!==c,C=ei((e,t,r)=>{c?.(e,s,r)});es(()=>{let e=b.current;if(null!==e)return S({element:e,id:g,idIsStable:m,mutableValues:{expandToSize:void 0,prevSize:void 0},onResize:z?C:void 0,panelConstraints:{collapsedSize:r,collapsible:n,defaultSize:o,maxSize:i,minSize:a},scheduleUpdate:v})},[r,n,o,v,z,g,m,i,a,C,S]),function(e,t){let{id:r}=ec(),n=(0,u.useRef)({collapse:W,expand:W,getSize:()=>({asPercentage:0,inPixels:0}),isCollapsed:()=>!1,resize:W});(0,u.useImperativeHandle)(t,()=>n.current,[]),es(()=>{Object.assign(n.current,function({groupId:e,panelId:t}){let r=()=>{let{mountedGroups:t}=M;for(let[r,{defaultLayoutDeferred:n,derivedPanelConstraints:o,layout:l,separatorToPanels:s}]of t)if(r.id===e)return{defaultLayoutDeferred:n,derivedPanelConstraints:o,group:r,layout:l,separatorToPanels:s};throw Error(`Group ${e} not found`)},n=()=>{let e=r().derivedPanelConstraints.find(e=>e.panelId===t);if(void 0!==e)return e;throw Error(`Panel constraints not found for Panel ${t}`)},o=()=>{let e=r().group.panels.find(e=>e.id===t);if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},l=()=>{let e=r().layout[t];if(void 0!==e)return e;throw Error(`Layout not found for Panel ${t}`)},s=e=>{let n=l();if(e===n)return;let{defaultLayoutDeferred:o,derivedPanelConstraints:s,group:i,layout:a,separatorToPanels:d}=r(),u=i.panels.findIndex(e=>e.id===t),c=u===i.panels.length-1,f=A({layout:P({delta:c?n-e:e-n,initialLayout:a,panelConstraints:s,pivotIndices:c?[u-1,u]:[u,u+1],prevLayout:a,trigger:"imperative-api"}),panelConstraints:s});T(a,f)||N(e=>({mountedGroups:new Map(e.mountedGroups).set(i,{defaultLayoutDeferred:o,derivedPanelConstraints:s,layout:f,separatorToPanels:d})}))};return{collapse:()=>{let{collapsible:e,collapsedSize:t}=n(),{mutableValues:r}=o(),i=l();e&&i!==t&&(r.expandToSize=i,s(t))},expand:()=>{let{collapsible:e,collapsedSize:t,minSize:r}=n(),{mutableValues:i}=o(),a=l();if(e&&a===t){let e=i.expandToSize??r;0===e&&(e=1),s(e)}},getSize:()=>{let{group:e}=r(),t=l(),{element:n}=o();return{asPercentage:t,inPixels:"horizontal"===e.orientation?n.offsetWidth:n.offsetHeight}},isCollapsed:()=>{let{collapsible:e,collapsedSize:t}=n(),r=l();return e&&E(t,r)},resize:e=>{if(l()!==e){let t;switch(typeof e){case"number":{let{group:n}=r();t=j(e/y({group:n})*100);break}case"string":t=parseFloat(e)}s(t)}}}}({groupId:r,panelId:e}))})}(g,f);let R=w(k,g);return(0,d.jsx)("div",{...h,"data-panel":!0,"data-testid":g,id:g,ref:x,style:{...ep,flexBasis:0,flexShrink:1,overflow:"hidden",...R},children:(0,d.jsx)("div",{className:t,style:{width:"100%",height:"100%",...p},children:e})})}eu.displayName="Group",ef.displayName="Panel";let ep={minHeight:0,maxHeight:"100%",height:"auto",minWidth:0,maxWidth:"100%",width:"auto",border:"none",borderWidth:0,padding:0,margin:0};function eh({children:e,className:t,elementRef:r,id:n,style:o,...l}){let s=el(n),[i,a]=(0,u.useState)({}),[c,f]=(0,u.useState)("inactive"),p=(0,u.useRef)(null),h=ea(p,r),{id:m,orientation:g,registerSeparator:y}=ec();return es(()=>{let e=p.current;if(null!==e){let t={element:e,id:s},r=y(t),n=R.addListener("interactionStateChange",e=>{f("inactive"!==e.state&&e.hitRegions.some(e=>e.separator===t)?e.state:"inactive")}),o=R.addListener("mountedGroupsChange",e=>{e.forEach(({derivedPanelConstraints:e,layout:r,separatorToPanels:n},o)=>{if(o.id===m){let l=n.get(t);if(l){let t=l[0],n=o.panels.indexOf(t);a(function({layout:e,panelConstraints:t,panelId:r,panelIndex:n}){let o,l,s=e[r],i=t.find(e=>e.panelId===r);if(i){let a=i.maxSize,d=l=i.collapsible?i.collapsedSize:i.minSize,u=[n,n+1];l=A({layout:P({delta:d-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r],o=A({layout:P({delta:a-s,initialLayout:e,panelConstraints:t,pivotIndices:u,prevLayout:e,trigger:"keyboard"}),panelConstraints:t})[r]}return{valueControls:r,valueMax:o,valueMin:l,valueNow:s}}({layout:r,panelConstraints:e,panelId:t.id,panelIndex:n}))}}})});return()=>{n(),o(),r()}}},[m,s,y]),(0,d.jsx)("div",{...l,"aria-controls":i.valueControls,"aria-orientation":"horizontal"===g?"vertical":"horizontal","aria-valuemax":i.valueMax,"aria-valuemin":i.valueMin,"aria-valuenow":i.valueNow,children:e,className:t,"data-separator":c,"data-testid":s,id:s,ref:h,role:"separator",style:{flexBasis:"auto",...o,flexGrow:0,flexShrink:0},tabIndex:0})}function em(){for(var e,t,r=0,n="",o=arguments.length;r({nextPart:e,validators:t,classGroupId:r}),ey=[],eb=(e,t,r)=>{if(0==e.length-t)return r.classGroupId;let n=e[t],o=r.nextPart.get(n);if(o){let r=eb(e,t+1,o);if(r)return r}let l=r.validators;if(null===l)return;let s=0===t?e.join("-"):e.slice(t).join("-"),i=l.length;for(let e=0;e{let r=eg();for(let n in e)ev(e[n],r,n,t);return r},ev=(e,t,r,n)=>{let o=e.length;for(let l=0;l{"string"==typeof e?ek(e,t,r):"function"==typeof e?eS(e,t,r,n):ez(e,t,r,n)},ek=(e,t,r)=>{(""===e?t:ej(t,e)).classGroupId=r},eS=(e,t,r,n)=>{eC(e)?ev(e(n),t,r,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:r,validator:e}))},ez=(e,t,r,n)=>{let o=Object.entries(e),l=o.length;for(let e=0;e{let r=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,eE=[],eM=(e,t,r,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:n,isExternal:o}),eR=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let r="";for(let n=0;n{let t=t=>t[e]||eL;return t.isThemeGetter=!0,t},eP=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eO=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,eA=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eD=/\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$/,eF=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,e$=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,e_=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eG=e=>eT.test(e),eW=e=>!!e&&!Number.isNaN(Number(e)),eB=e=>!!e&&Number.isInteger(Number(e)),eV=e=>e.endsWith("%")&&eW(e.slice(0,-1)),eK=e=>eA.test(e),eH=()=>!0,eU=e=>eD.test(e)&&!eF.test(e),eq=()=>!1,eY=e=>e$.test(e),eQ=e=>e_.test(e),eX=e=>!eJ(e)&&!e3(e),eZ=e=>tr(e,ts,eq),eJ=e=>eP.test(e),e0=e=>tr(e,ti,eU),e1=e=>tr(e,ta,eW),e2=e=>tr(e,to,eq),e5=e=>tr(e,tl,eQ),e4=e=>tr(e,tu,eY),e3=e=>eO.test(e),e6=e=>tn(e,ti),e8=e=>tn(e,td),e9=e=>tn(e,to),e7=e=>tn(e,ts),te=e=>tn(e,tl),tt=e=>tn(e,tu,!0),tr=(e,t,r)=>{let n=eP.exec(e);return!!n&&(n[1]?t(n[1]):r(n[2]))},tn=(e,t,r=!1)=>{let n=eO.exec(e);return!!n&&(n[1]?t(n[1]):r)},to=e=>"position"===e||"percentage"===e,tl=e=>"image"===e||"url"===e,ts=e=>"length"===e||"size"===e||"bg-size"===e,ti=e=>"length"===e,ta=e=>"number"===e,td=e=>"family-name"===e,tu=e=>"shadow"===e,tc=((e,...t)=>{let r,n,o,l,s=e=>{let t=n(e);if(t)return t;let l=((e,t)=>{let{parseClassName:r,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:l}=t,s=[],i=e.trim().split(eR),a="";for(let e=i.length-1;e>=0;e-=1){let t=i[e],{isExternal:d,modifiers:u,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:p}=r(t);if(d){a=t+(a.length>0?" "+a:a);continue}let h=!!p,m=n(h?f.substring(0,p):f);if(!m){if(!h||!(m=n(f))){a=t+(a.length>0?" "+a:a);continue}h=!1}let g=0===u.length?"":1===u.length?u[0]:l(u).join(":"),y=c?g+"!":g,b=y+m;if(s.indexOf(b)>-1)continue;s.push(b);let x=o(m,h);for(let e=0;e0?" "+a:a)}return a})(e,r);return o(e,l),l};return l=i=>{var a;let d;return n=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,r=Object.create(null),n=Object.create(null),o=(o,l)=>{r[o]=l,++t>e&&(t=0,n=r,r=Object.create(null))};return{get(e){let t=r[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in r?r[e]=t:o(e,t)}}})((a=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:r}=e,n=e=>{let t,r=[],n=0,o=0,l=0,s=e.length;for(let i=0;il?t-l:void 0)};if(t){let e=t+":",r=n;n=t=>t.startsWith(e)?r(t.slice(e.length)):eM(eE,!1,t,void 0,!0)}if(r){let e=n;n=t=>r({className:t,parseClassName:e})}return n})(a),sortModifiers:(d=new Map,a.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],r=[];for(let n=0;n0&&(r.sort(),t.push(...r),r=[]),t.push(o)):r.push(o)}return r.length>0&&(r.sort(),t.push(...r)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:r}=e;return ex(r,t)})(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var r;let t,n,o;return -1===(r=e).slice(1,-1).indexOf(":")?void 0:(n=(t=r.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return eb(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=r[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tl(((...e)=>{let t,r,n=0,o="";for(;n{let e=eI("color"),t=eI("font"),r=eI("text"),n=eI("font-weight"),o=eI("tracking"),l=eI("leading"),s=eI("breakpoint"),i=eI("container"),a=eI("spacing"),d=eI("radius"),u=eI("shadow"),c=eI("inset-shadow"),f=eI("text-shadow"),p=eI("drop-shadow"),h=eI("blur"),m=eI("perspective"),g=eI("aspect"),y=eI("ease"),b=eI("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],v=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...v(),e3,eJ],k=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],z=()=>[e3,eJ,a],j=()=>[eG,"full","auto",...z()],C=()=>[eB,"none","subgrid",e3,eJ],E=()=>["auto",{span:["full",eB,e3,eJ]},eB,e3,eJ],M=()=>[eB,"auto",e3,eJ],R=()=>["auto","min","max","fr",e3,eJ],N=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],L=()=>["start","end","center","stretch","center-safe","end-safe"],I=()=>["auto",...z()],P=()=>[eG,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...z()],O=()=>[e,e3,eJ],T=()=>[...v(),e9,e2,{position:[e3,eJ]}],A=()=>["no-repeat",{repeat:["","x","y","space","round"]}],D=()=>["auto","cover","contain",e7,eZ,{size:[e3,eJ]}],F=()=>[eV,e6,e0],$=()=>["","none","full",d,e3,eJ],_=()=>["",eW,e6,e0],G=()=>["solid","dashed","dotted","double"],W=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>[eW,eV,e9,e2],V=()=>["","none",h,e3,eJ],K=()=>["none",eW,e3,eJ],H=()=>["none",eW,e3,eJ],U=()=>[eW,e3,eJ],q=()=>[eG,"full",...z()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eK],breakpoint:[eK],color:[eH],container:[eK],"drop-shadow":[eK],ease:["in","out","in-out"],font:[eX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eK],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eK],shadow:[eK],spacing:["px",eW],text:[eK],"text-shadow":[eK],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",eG,eJ,e3,g]}],container:["container"],columns:[{columns:[eW,eJ,e3,i]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"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:w()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[eB,"auto",e3,eJ]}],basis:[{basis:[eG,"full","auto",i,...z()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eW,eG,"auto","initial","none",eJ]}],grow:[{grow:["",eW,e3,eJ]}],shrink:[{shrink:["",eW,e3,eJ]}],order:[{order:[eB,"first","last","none",e3,eJ]}],"grid-cols":[{"grid-cols":C()}],"col-start-end":[{col:E()}],"col-start":[{"col-start":M()}],"col-end":[{"col-end":M()}],"grid-rows":[{"grid-rows":C()}],"row-start-end":[{row:E()}],"row-start":[{"row-start":M()}],"row-end":[{"row-end":M()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":R()}],"auto-rows":[{"auto-rows":R()}],gap:[{gap:z()}],"gap-x":[{"gap-x":z()}],"gap-y":[{"gap-y":z()}],"justify-content":[{justify:[...N(),"normal"]}],"justify-items":[{"justify-items":[...L(),"normal"]}],"justify-self":[{"justify-self":["auto",...L()]}],"align-content":[{content:["normal",...N()]}],"align-items":[{items:[...L(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...L(),{baseline:["","last"]}]}],"place-content":[{"place-content":N()}],"place-items":[{"place-items":[...L(),"baseline"]}],"place-self":[{"place-self":["auto",...L()]}],p:[{p:z()}],px:[{px:z()}],py:[{py:z()}],ps:[{ps:z()}],pe:[{pe:z()}],pt:[{pt:z()}],pr:[{pr:z()}],pb:[{pb:z()}],pl:[{pl:z()}],m:[{m:I()}],mx:[{mx:I()}],my:[{my:I()}],ms:[{ms:I()}],me:[{me:I()}],mt:[{mt:I()}],mr:[{mr:I()}],mb:[{mb:I()}],ml:[{ml:I()}],"space-x":[{"space-x":z()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":z()}],"space-y-reverse":["space-y-reverse"],size:[{size:P()}],w:[{w:[i,"screen",...P()]}],"min-w":[{"min-w":[i,"screen","none",...P()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[s]},...P()]}],h:[{h:["screen","lh",...P()]}],"min-h":[{"min-h":["screen","lh","none",...P()]}],"max-h":[{"max-h":["screen","lh",...P()]}],"font-size":[{text:["base",r,e6,e0]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e3,e1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eV,eJ]}],"font-family":[{font:[e8,eJ,t]}],"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:[o,e3,eJ]}],"line-clamp":[{"line-clamp":[eW,"none",e3,e1]}],leading:[{leading:[l,...z()]}],"list-image":[{"list-image":["none",e3,eJ]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e3,eJ]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:O()}],"text-color":[{text:O()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:[eW,"from-font","auto",e3,e0]}],"text-decoration-color":[{decoration:O()}],"underline-offset":[{"underline-offset":[eW,"auto",e3,eJ]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:z()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e3,eJ]}],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",e3,eJ]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:T()}],"bg-repeat":[{bg:A()}],"bg-size":[{bg:D()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},eB,e3,eJ],radial:["",e3,eJ],conic:[eB,e3,eJ]},te,e5]}],"bg-color":[{bg:O()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:O()}],"gradient-via":[{via:O()}],"gradient-to":[{to:O()}],rounded:[{rounded:$()}],"rounded-s":[{"rounded-s":$()}],"rounded-e":[{"rounded-e":$()}],"rounded-t":[{"rounded-t":$()}],"rounded-r":[{"rounded-r":$()}],"rounded-b":[{"rounded-b":$()}],"rounded-l":[{"rounded-l":$()}],"rounded-ss":[{"rounded-ss":$()}],"rounded-se":[{"rounded-se":$()}],"rounded-ee":[{"rounded-ee":$()}],"rounded-es":[{"rounded-es":$()}],"rounded-tl":[{"rounded-tl":$()}],"rounded-tr":[{"rounded-tr":$()}],"rounded-br":[{"rounded-br":$()}],"rounded-bl":[{"rounded-bl":$()}],"border-w":[{border:_()}],"border-w-x":[{"border-x":_()}],"border-w-y":[{"border-y":_()}],"border-w-s":[{"border-s":_()}],"border-w-e":[{"border-e":_()}],"border-w-t":[{"border-t":_()}],"border-w-r":[{"border-r":_()}],"border-w-b":[{"border-b":_()}],"border-w-l":[{"border-l":_()}],"divide-x":[{"divide-x":_()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":_()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...G(),"hidden","none"]}],"divide-style":[{divide:[...G(),"hidden","none"]}],"border-color":[{border:O()}],"border-color-x":[{"border-x":O()}],"border-color-y":[{"border-y":O()}],"border-color-s":[{"border-s":O()}],"border-color-e":[{"border-e":O()}],"border-color-t":[{"border-t":O()}],"border-color-r":[{"border-r":O()}],"border-color-b":[{"border-b":O()}],"border-color-l":[{"border-l":O()}],"divide-color":[{divide:O()}],"outline-style":[{outline:[...G(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eW,e3,eJ]}],"outline-w":[{outline:["",eW,e6,e0]}],"outline-color":[{outline:O()}],shadow:[{shadow:["","none",u,tt,e4]}],"shadow-color":[{shadow:O()}],"inset-shadow":[{"inset-shadow":["none",c,tt,e4]}],"inset-shadow-color":[{"inset-shadow":O()}],"ring-w":[{ring:_()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:O()}],"ring-offset-w":[{"ring-offset":[eW,e0]}],"ring-offset-color":[{"ring-offset":O()}],"inset-ring-w":[{"inset-ring":_()}],"inset-ring-color":[{"inset-ring":O()}],"text-shadow":[{"text-shadow":["none",f,tt,e4]}],"text-shadow-color":[{"text-shadow":O()}],opacity:[{opacity:[eW,e3,eJ]}],"mix-blend":[{"mix-blend":[...W(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":W()}],"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":[eW]}],"mask-image-linear-from-pos":[{"mask-linear-from":B()}],"mask-image-linear-to-pos":[{"mask-linear-to":B()}],"mask-image-linear-from-color":[{"mask-linear-from":O()}],"mask-image-linear-to-color":[{"mask-linear-to":O()}],"mask-image-t-from-pos":[{"mask-t-from":B()}],"mask-image-t-to-pos":[{"mask-t-to":B()}],"mask-image-t-from-color":[{"mask-t-from":O()}],"mask-image-t-to-color":[{"mask-t-to":O()}],"mask-image-r-from-pos":[{"mask-r-from":B()}],"mask-image-r-to-pos":[{"mask-r-to":B()}],"mask-image-r-from-color":[{"mask-r-from":O()}],"mask-image-r-to-color":[{"mask-r-to":O()}],"mask-image-b-from-pos":[{"mask-b-from":B()}],"mask-image-b-to-pos":[{"mask-b-to":B()}],"mask-image-b-from-color":[{"mask-b-from":O()}],"mask-image-b-to-color":[{"mask-b-to":O()}],"mask-image-l-from-pos":[{"mask-l-from":B()}],"mask-image-l-to-pos":[{"mask-l-to":B()}],"mask-image-l-from-color":[{"mask-l-from":O()}],"mask-image-l-to-color":[{"mask-l-to":O()}],"mask-image-x-from-pos":[{"mask-x-from":B()}],"mask-image-x-to-pos":[{"mask-x-to":B()}],"mask-image-x-from-color":[{"mask-x-from":O()}],"mask-image-x-to-color":[{"mask-x-to":O()}],"mask-image-y-from-pos":[{"mask-y-from":B()}],"mask-image-y-to-pos":[{"mask-y-to":B()}],"mask-image-y-from-color":[{"mask-y-from":O()}],"mask-image-y-to-color":[{"mask-y-to":O()}],"mask-image-radial":[{"mask-radial":[e3,eJ]}],"mask-image-radial-from-pos":[{"mask-radial-from":B()}],"mask-image-radial-to-pos":[{"mask-radial-to":B()}],"mask-image-radial-from-color":[{"mask-radial-from":O()}],"mask-image-radial-to-color":[{"mask-radial-to":O()}],"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":v()}],"mask-image-conic-pos":[{"mask-conic":[eW]}],"mask-image-conic-from-pos":[{"mask-conic-from":B()}],"mask-image-conic-to-pos":[{"mask-conic-to":B()}],"mask-image-conic-from-color":[{"mask-conic-from":O()}],"mask-image-conic-to-color":[{"mask-conic-to":O()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:T()}],"mask-repeat":[{mask:A()}],"mask-size":[{mask:D()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e3,eJ]}],filter:[{filter:["","none",e3,eJ]}],blur:[{blur:V()}],brightness:[{brightness:[eW,e3,eJ]}],contrast:[{contrast:[eW,e3,eJ]}],"drop-shadow":[{"drop-shadow":["","none",p,tt,e4]}],"drop-shadow-color":[{"drop-shadow":O()}],grayscale:[{grayscale:["",eW,e3,eJ]}],"hue-rotate":[{"hue-rotate":[eW,e3,eJ]}],invert:[{invert:["",eW,e3,eJ]}],saturate:[{saturate:[eW,e3,eJ]}],sepia:[{sepia:["",eW,e3,eJ]}],"backdrop-filter":[{"backdrop-filter":["","none",e3,eJ]}],"backdrop-blur":[{"backdrop-blur":V()}],"backdrop-brightness":[{"backdrop-brightness":[eW,e3,eJ]}],"backdrop-contrast":[{"backdrop-contrast":[eW,e3,eJ]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eW,e3,eJ]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eW,e3,eJ]}],"backdrop-invert":[{"backdrop-invert":["",eW,e3,eJ]}],"backdrop-opacity":[{"backdrop-opacity":[eW,e3,eJ]}],"backdrop-saturate":[{"backdrop-saturate":[eW,e3,eJ]}],"backdrop-sepia":[{"backdrop-sepia":["",eW,e3,eJ]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":z()}],"border-spacing-x":[{"border-spacing-x":z()}],"border-spacing-y":[{"border-spacing-y":z()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e3,eJ]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eW,"initial",e3,eJ]}],ease:[{ease:["linear","initial",y,e3,eJ]}],delay:[{delay:[eW,e3,eJ]}],animate:[{animate:["none",b,e3,eJ]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,e3,eJ]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:H()}],"scale-x":[{"scale-x":H()}],"scale-y":[{"scale-y":H()}],"scale-z":[{"scale-z":H()}],"scale-3d":["scale-3d"],skew:[{skew:U()}],"skew-x":[{"skew-x":U()}],"skew-y":[{"skew-y":U()}],transform:[{transform:[e3,eJ,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:q()}],"translate-x":[{"translate-x":q()}],"translate-y":[{"translate-y":q()}],"translate-z":[{"translate-z":q()}],"translate-none":["translate-none"],accent:[{accent:O()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:O()}],"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",e3,eJ]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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",e3,eJ]}],fill:[{fill:["none",...O()]}],"stroke-w":[{stroke:[eW,e6,e0,e1]}],stroke:[{stroke:["none",...O()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tf(...e){return tc(em(e))}let tp=({className:e,...t})=>(0,d.jsx)(eu,{className:tf("flex h-full w-full data-[orientation=vertical]:flex-col",e),...t}),th=({withHandle:e,className:t,...r})=>(0,d.jsx)(eh,{className:tf("relative flex w-[3px] items-center justify-center bg-border/50 hover:bg-primary/50 transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-2 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring data-[orientation=vertical]:h-[3px] data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-2 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:-translate-y-1/2 data-[orientation=vertical]:after:translate-x-0 [&[data-orientation=vertical]>div]:rotate-90",t),...r,children:e&&(0,d.jsx)("div",{className:"z-10 flex h-5 w-3 items-center justify-center rounded-sm border border-border bg-secondary",children:(0,d.jsx)(m,{className:"h-3 w-3 text-muted-foreground"})})});var tm=e.i(69941);function tg(e,t,r){let n,o=r.initialDeps??[];function l(){var l,s,i,a;let d,u;r.key&&(null==(l=r.debug)?void 0:l.call(r))&&(d=Date.now());let c=e();if(!(c.length!==o.length||c.some((e,t)=>o[t]!==e)))return n;if(o=c,r.key&&(null==(s=r.debug)?void 0:s.call(r))&&(u=Date.now()),n=t(...c),r.key&&(null==(i=r.debug)?void 0:i.call(r))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-u)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{o=e},l}function ty(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}e.i(39057);let tb=e=>{let{offsetWidth:t,offsetHeight:r}=e;return{width:t,height:r}},tx=e=>e,tv=e=>{let t=Math.max(e.startIndex-e.overscan,0),r=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=r;e++)n.push(e);return n},tw=(e,t)=>{let r=e.scrollElement;if(!r)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:r,height:n}=e;t({width:Math.round(r),height:Math.round(n)})};if(o(tb(r)),!n.ResizeObserver)return()=>{};let l=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(tb(r))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return l.observe(r,{box:"border-box"}),()=>{l.unobserve(r)}},tk={passive:!0},tS="undefined"==typeof window||"onscrollend"in window,tz=(e,t)=>{var r,n;let o,l=e.scrollElement;if(!l)return;let s=e.targetWindow;if(!s)return;let i=0,a=e.options.useScrollendEvent&&tS?()=>void 0:(r=()=>{t(i,!1)},n=e.options.isScrollingResetDelay,function(...e){s.clearTimeout(o),o=s.setTimeout(()=>r.apply(this,e),n)}),d=r=>()=>{let{horizontal:n,isRtl:o}=e.options;i=n?l.scrollLeft*(o&&-1||1):l.scrollTop,a(),t(i,r)},u=d(!0),c=d(!1);c(),l.addEventListener("scroll",u,tk);let f=e.options.useScrollendEvent&&tS;return f&&l.addEventListener("scrollend",c,tk),()=>{l.removeEventListener("scroll",u),f&&l.removeEventListener("scrollend",c)}},tj=(e,t,r)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[r.options.horizontal?"inlineSize":"blockSize"])}return e[r.options.horizontal?"offsetWidth":"offsetHeight"]},tC=(e,{adjustments:t=0,behavior:r},n)=>{var o,l;null==(l=null==(o=n.scrollElement)?void 0:o.scrollTo)||l.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:r})};class tE{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var r;null==(r=t())||r.disconnect(),e=null},observe:e=>{var r;return null==(r=t())?void 0:r.observe(e,{box:"border-box"})},unobserve:e=>{var r;return null==(r=t())?void 0:r.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,r])=>{void 0===r&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:tx,rangeExtractor:tv,onChange:()=>{},measureElement:tj,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,r;null==(r=(t=this.options).onChange)||r.call(t,this,e)},this.maybeNotify=tg(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let r=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(r.has(t.lane))continue;let l=n.get(t.lane);if(null==l||t.end>l.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=tg(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,r,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=tg(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:r,getItemKey:n,enabled:o},l)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let i=this.measurementsCache.slice(0,s);for(let o=s;othis.options.debug}),this.calculateRange=tg(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,r,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:r,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let l=tM(0,o,t=>e[t].start,r),s=l;if(1===n)for(;s1){let i=Array(n).fill(0);for(;se=0&&a.some(e=>e>=r);){let t=e[l];a[t.lane]=t.start,l--}l=Math.max(0,l-l%n),s=Math.min(o,s+(n-1-s%n))}return{startIndex:l,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:r,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=tg(()=>{let e=null,t=null,r=this.calculateRange();return r&&(e=r.startIndex,t=r.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,r,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,r=e.getAttribute(t);return r?parseInt(r,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let r=this.indexFromElement(e),n=this.measurementsCache[r];if(!n)return;let o=n.key,l=this.elementsCache.get(o);l!==e&&(l&&this.observer.unobserve(l),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(r,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let r=this.measurementsCache[e];if(!r)return;let n=t-(this.itemSizeCache.get(r.key)??r.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(r,n,this):r.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=tg(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let r=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return ty(t[tM(0,t.length-1,e=>ty(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,r=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(r-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.measurementsCache[e];if(!r)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(r.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(r.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let l="end"===t?r.end+this.options.scrollPaddingEnd:r.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,r.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:r})},this.scrollToIndex=(e,{align:t="auto",behavior:r}={})=>{"smooth"===r&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,s]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:r}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),r=this.getOffsetForIndex(e,s);r?1.01>Math.abs(r[0]-t)||l(s):console.warn("Failed to get offset for index:",e)})},l=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,r=this.getMeasurements();if(0===r.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=r[r.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=r.length-1;for(;n>=0&&e.some(e=>null===e);){let t=r[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:r})=>{this.options.scrollToFn(e,{behavior:r,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let tM=(e,t,r,n)=>{for(;e<=t;){let o=(e+t)/2|0,l=r(o);if(ln))return o;t=o-1}}return e>0?e-1:0},tR="undefined"!=typeof document?u.useLayoutEffect:u.useEffect,tN=e=>{let t,r=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),r.forEach(r=>r(t,e))}},o=()=>t,l={setState:n,getState:o,getInitialState:()=>s,subscribe:e=>(r.add(e),()=>r.delete(e))},s=t=e(n,o,l);return l},tL=e=>{let t=e?tN(e):tN,r=e=>(function(e,t=e=>e){let r=u.default.useSyncExternalStore(e.subscribe,u.default.useCallback(()=>t(e.getState()),[e,t]),u.default.useCallback(()=>t(e.getInitialState()),[e,t]));return u.default.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},tI=(n=(e,t)=>({datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,samplesLoaded:0,setSamples:(t,r)=>e({samples:t,totalSamples:r,samplesLoaded:t.length}),appendSamples:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id)),o=e.samplesLoaded+t.length;return 0===n.length?{samplesLoaded:o}:{samples:[...e.samples,...n],samplesLoaded:o}}),addSamplesIfMissing:t=>e(e=>{let r=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!r.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddings:null,setEmbeddings:t=>e({embeddings:t,currentLayoutKey:t?.layout_key??null}),currentLayoutKey:null,geometry:"euclidean",setGeometry:t=>e({geometry:t}),selectedIds:new Set,isLassoSelection:!1,selectionSource:null,setSelectedIds:(t,r="grid")=>e({selectedIds:t,selectionSource:t.size>0?r:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let r=new Set(e.selectedIds);return r.has(t)?r.delete(t):r.add(t),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let r=new Set(e.selectedIds);return t.forEach(e=>r.add(e)),{selectedIds:r,selectionSource:r.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,selectionSource:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,selectionSource:"lasso",lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,r,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:r,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,selectionSource:null,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?tL(n):tL;function tP({children:e,className:t}){return(0,d.jsx)("div",{className:tf("flex flex-col h-full bg-card rounded-sm overflow-hidden border border-border",t),children:e})}function tO({children:e,className:t}){return(0,d.jsx)("div",{className:tf("px-2 py-1.5 text-[11px] text-muted-foreground/70 border-t border-border bg-card font-mono",t),children:e})}function tT({icon:e,title:t,subtitle:r,children:n,className:o}){return(0,d.jsxs)("div",{className:tf("h-9 min-h-[36px] flex items-center justify-between px-2 border-b border-border bg-secondary select-none",o),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[e&&(0,d.jsx)("span",{className:"flex-shrink-0 w-4 h-4 text-muted-foreground",children:e}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground truncate",children:t}),r&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:r})]}),n&&(0,d.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let tA=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("rect",{x:"3",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"3",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"3",y:"14",width:"7",height:"7"}),(0,d.jsx)("rect",{x:"14",y:"14",width:"7",height:"7"})]}),tD=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",className:"w-4 h-4",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"16",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"18",cy:"8",r:"2"}),(0,d.jsx)("circle",{cx:"6",cy:"16",r:"2"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2"})]}),tF=()=>(0,d.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:"w-5 h-5",children:[(0,d.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,d.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),t$=()=>(0,d.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})}),t_=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("rect",{x:"2",y:"2",width:"12",height:"12",rx:"1"}),(0,d.jsx)("line",{x1:"2",y1:"8",x2:"14",y2:"8"}),(0,d.jsx)("line",{x1:"8",y1:"2",x2:"8",y2:"14"})]}),tG=()=>(0,d.jsxs)("svg",{viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.25",className:"w-3.5 h-3.5",children:[(0,d.jsx)("circle",{cx:"8",cy:"8",r:"6"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"3",ry:"5.5"}),(0,d.jsx)("ellipse",{cx:"8",cy:"8",rx:"5.5",ry:"3"})]});function tW({samples:e,onLoadMore:t,hasMore:r}){let n=(0,u.useRef)(null),{selectedIds:o,isLassoSelection:l,selectionSource:s,lassoTotal:i,toggleSelection:a,addToSelection:c,setHoveredId:f,hoveredId:p}=tI(),[h,m]=(0,u.useState)(4);(0,u.useEffect)(()=>{let e=()=>{n.current&&m(Math.max(1,Math.floor((n.current.clientWidth-16+8)/208)))};e();let t=new ResizeObserver(e);return n.current&&t.observe(n.current),()=>t.disconnect()},[]);let g=function(e){let t=u.useReducer(()=>({}),{})[1],r={...e,onChange:(r,n)=>{var o;n?(0,tm.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,r,n)}},[n]=u.useState(()=>new tE(r));return n.setOptions(r),tR(()=>n._didMount(),[]),tR(()=>n._willUpdate()),n}({observeElementRect:tw,observeElementOffset:tz,scrollToFn:tC,...{count:Math.ceil(e.length/h),getScrollElement:()=>n.current,estimateSize:()=>208,overscan:5,getItemKey:(0,u.useCallback)(t=>{let r=t*h;return e.slice(r,r+h).map(e=>e.id).join("-")||`row-${t}`},[e,h])}});(0,u.useEffect)(()=>{let e=n.current;if(!e||!t||!r)return;let o=()=>{let{scrollTop:r,scrollHeight:n,clientHeight:o}=e;n-r-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,r]),(0,u.useEffect)(()=>{g.measure()},[o,l,g]),(0,u.useEffect)(()=>{if(!l&&"scatter"===s&&0!==o.size)try{g.scrollToIndex(0,{align:"start"})}catch{n.current?.scrollTo({top:0})}},[l,o,s,g]);let y=(0,u.useCallback)((t,r)=>{if(r.metaKey||r.ctrlKey)a(t.id);else if(r.shiftKey&&o.size>0){let r=Array.from(o),n=r[r.length-1],l=e.findIndex(e=>e.id===n),s=e.findIndex(e=>e.id===t.id);if(-1!==l&&-1!==s){let t=Math.min(l,s),r=Math.max(l,s);c(e.slice(t,r+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),tI.getState().setSelectedIds(e,"grid")}},[e,o,a,c]),b=g.getVirtualItems();return(0,d.jsxs)(tP,{children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tA,{}),title:"Samples",subtitle:l?`${i} selected`:o.size>0?`${o.size} selected`:`${e.length} items`}),(0,d.jsx)("div",{ref:n,className:"flex-1 overflow-auto p-2",children:(0,d.jsx)("div",{style:{height:`${g.getTotalSize()}px`,width:"100%",position:"relative"},children:b.map(t=>{let r=t.index*h,n=e.slice(r,r+h);return(0,d.jsxs)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:"200px",transform:`translateY(${t.start}px)`},className:"flex gap-2 px-1",children:[n.map(e=>{let t=!!l||o.has(e.id),r=p===e.id;return(0,d.jsxs)("div",{className:` - relative flex-1 rounded-md overflow-hidden cursor-pointer - transition-all duration-150 ease-out - ${t?"ring-2 ring-primary":""} - ${r?"ring-2 ring-primary/50":""} - `,onClick:t=>y(e,t),onMouseEnter:()=>f(e.id),onMouseLeave:()=>f(null),children:[e.thumbnail?(0,d.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,d.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,d.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,d.jsx)("div",{className:"absolute bottom-1 left-1 right-1",children:(0,d.jsx)("span",{className:"inline-block px-1.5 py-0.5 text-xs rounded truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),t&&(0,d.jsx)("div",{className:"absolute top-1 right-1 w-5 h-5 rounded-full bg-primary flex items-center justify-center",children:(0,d.jsx)(t$,{})})]},e.id)}),Array.from({length:h-n.length}).map((e,t)=>(0,d.jsx)("div",{className:"flex-1"},`empty-${t}`))]},t.key)})})}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"Click • ⌘+click multi • ⇧+click range"})})]})}function tB(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function tV(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function tK(e,t){if(!e)return;let r=e.getContext("2d");if(r&&(tV(e),!(t.length<6))){r.save(),r.lineWidth=2,r.strokeStyle="rgba(79,70,229,0.9)",r.fillStyle="rgba(79,70,229,0.15)",r.beginPath(),r.moveTo(t[0],t[1]);for(let e=2;e{let t=r.map(e=>u.createContext(e));return function(r){let n=r?.[e]||t;return u.useMemo(()=>({[`__scope${e}`]:{...r,[e]:n}}),[r,n])}};return n.scopeName=e,[function(t,n){let o=u.createContext(n),l=r.length;r=[...r,n];let s=t=>{let{scope:r,children:n,...s}=t,i=r?.[e]?.[l]||o,a=u.useMemo(()=>s,Object.values(s));return(0,d.jsx)(i.Provider,{value:a,children:n})};return s.displayName=t+"Provider",[s,function(r,s){let i=s?.[e]?.[l]||o,a=u.useContext(i);if(a)return a;if(void 0!==n)return n;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=r.reduce((t,{useScope:r,scopeName:n})=>{let o=r(e)[`__scope${n}`];return{...t,...o}},{});return u.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return r.scopeName=t.scopeName,r}(n,...t)]}function tU(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function tq(...e){return t=>{let r=!1,n=e.map(e=>{let n=tU(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{var r,n;let o,l,s,i=(n=r=`Primitive.${t}`,(o=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${n}.SlotClone`,l=o,(s=u.forwardRef((e,t)=>{let{children:r,...n}=e,o=u.Children.toArray(r),s=o.find(tX);if(s){let e=s.props.children,r=o.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(l,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(l,{...n,ref:t,children:r})})).displayName=`${r}.Slot`,s),a=u.forwardRef((e,r)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,d.jsx)(n?i:t,{...o,ref:r})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function tJ(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}function t0(e){var t;let r,n=(t=e,(r=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName=`${t}.SlotClone`,r),o=u.forwardRef((e,t)=>{let{children:r,...o}=e,l=u.Children.toArray(r),s=l.find(t2);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(n,{...o,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(n,{...o,ref:t,children:r})});return o.displayName=`${e}.Slot`,o}"undefined"!=typeof window&&window.document&&window.document.createElement;var t1=Symbol("radix.slottable");function t2(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===t1}var t5=new WeakMap;function t4(e,t){var r,n;let o,l,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let i=(r=e,n=t,o=r.length,(s=(l=t3(n))>=0?l:o+l)<0||s>=o?-1:s);return -1===i?void 0:e[i]}function t3(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#t;constructor(e){super(e),this.#t=[...super.keys()],t5.set(this,!0)}set(e,t){return t5.get(this)&&(this.has(e)?this.#t[this.#t.indexOf(e)]=e:this.#t.push(e)),super.set(e,t),this}insert(e,t,r){let n,o=this.has(t),l=this.#t.length,s=t3(e),i=s>=0?s:l+s,a=i<0||i>=l?-1:i;if(a===this.size||o&&a===this.size-1||-1===a)return this.set(t,r),this;let d=this.size+ +!o;s<0&&i++;let u=[...this.#t],c=!1;for(let e=i;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],o=0;for(let e of this)Reflect.apply(t,r,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,r){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,r]=e,n=0,o=r??this.at(0);for(let r of this)o=0===n&&1===e.length?r:Reflect.apply(t,this,[o,r,n,this]),n++;return o}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let o=this.at(r);n=r===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(o=r-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var t6=globalThis?.document?u.useLayoutEffect:()=>{},t8=u[" useId ".trim().toString()]||(()=>void 0),t9=0;u[" useEffectEvent ".trim().toString()],u[" useInsertionEffect ".trim().toString()];var t7=u[" useInsertionEffect ".trim().toString()]||t6;function re({prop:e,defaultProp:t,onChange:r=()=>{},caller:n}){let[o,l,s]=function({defaultProp:e,onChange:t}){let[r,n]=u.useState(e),o=u.useRef(r),l=u.useRef(t);return t7(()=>{l.current=t},[t]),u.useEffect(()=>{o.current!==r&&(l.current?.(r),o.current=r)},[r,o]),[r,n,l]}({defaultProp:t,onChange:r}),i=void 0!==e,a=i?e:o;{let t=u.useRef(void 0!==e);u.useEffect(()=>{let e=t.current;if(e!==i){let t=i?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=i},[i,n])}return[a,u.useCallback(t=>{if(i){let r="function"==typeof t?t(e):t;r!==e&&s.current?.(r)}else l(t)},[i,e,l,s])]}Symbol("RADIX:SYNC_STATE");var rt=u.createContext(void 0);function rr(e){let t=u.useContext(rt);return e||t||"ltr"}var rn="rovingFocusGroup.onEntryFocus",ro={bubbles:!1,cancelable:!0},rl="RovingFocusGroup",[rs,ri,ra]=function(e){let t=e+"CollectionProvider",[r,n]=tH(t),[o,l]=r(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:r}=e,n=u.default.useRef(null),l=u.default.useRef(new Map).current;return(0,d.jsx)(o,{scope:t,itemMap:l,collectionRef:n,children:r})};s.displayName=t;let i=e+"CollectionSlot",a=t0(i),c=u.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,o=tY(t,l(i,r).collectionRef);return(0,d.jsx)(a,{ref:o,children:n})});c.displayName=i;let f=e+"CollectionItemSlot",p="data-radix-collection-item",h=t0(f),m=u.default.forwardRef((e,t)=>{let{scope:r,children:n,...o}=e,s=u.default.useRef(null),i=tY(t,s),a=l(f,r);return u.default.useEffect(()=>(a.itemMap.set(s,{ref:s,...o}),()=>void a.itemMap.delete(s))),(0,d.jsx)(h,{...{[p]:""},ref:i,children:n})});return m.displayName=f,[{Provider:s,Slot:c,ItemSlot:m},function(t){let r=l(e+"CollectionConsumer",t);return u.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}(rl),[rd,ru]=tH(rl,[ra]),[rc,rf]=rd(rl),rp=u.forwardRef((e,t)=>(0,d.jsx)(rs.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rs.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,d.jsx)(rh,{...e,ref:t})})}));rp.displayName=rl;var rh=u.forwardRef((e,t)=>{let r,{__scopeRovingFocusGroup:n,orientation:o,loop:l=!1,dir:s,currentTabStopId:i,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:c,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,m=u.useRef(null),g=tY(t,m),y=rr(s),[b,x]=re({prop:i,defaultProp:a??null,onChange:c,caller:rl}),[v,w]=u.useState(!1),k=(r=u.useRef(f),u.useEffect(()=>{r.current=f}),u.useMemo(()=>(...e)=>r.current?.(...e),[])),S=ri(n),z=u.useRef(!1),[j,C]=u.useState(0);return u.useEffect(()=>{let e=m.current;if(e)return e.addEventListener(rn,k),()=>e.removeEventListener(rn,k)},[k]),(0,d.jsx)(rc,{scope:n,orientation:o,dir:y,loop:l,currentTabStopId:b,onItemFocus:u.useCallback(e=>x(e),[x]),onItemShiftTab:u.useCallback(()=>w(!0),[]),onFocusableItemAdd:u.useCallback(()=>C(e=>e+1),[]),onFocusableItemRemove:u.useCallback(()=>C(e=>e-1),[]),children:(0,d.jsx)(tZ.div,{tabIndex:v||0===j?-1:0,"data-orientation":o,...h,ref:g,style:{outline:"none",...e.style},onMouseDown:tJ(e.onMouseDown,()=>{z.current=!0}),onFocus:tJ(e.onFocus,e=>{let t=!z.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(rn,ro);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=S().filter(e=>e.focusable);rb([e.find(e=>e.active),e.find(e=>e.id===b),...e].filter(Boolean).map(e=>e.ref.current),p)}}z.current=!1}),onBlur:tJ(e.onBlur,()=>w(!1))})})}),rm="RovingFocusGroupItem",rg=u.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:o=!1,tabStopId:l,children:s,...i}=e,a=function(e){let[t,r]=u.useState(t8());return t6(()=>{r(e=>e??String(t9++))},[void 0]),t?`radix-${t}`:""}(),c=l||a,f=rf(rm,r),p=f.currentTabStopId===c,h=ri(r),{onFocusableItemAdd:m,onFocusableItemRemove:g,currentTabStopId:y}=f;return u.useEffect(()=>{if(n)return m(),()=>g()},[n,m,g]),(0,d.jsx)(rs.ItemSlot,{scope:r,id:c,focusable:n,active:o,children:(0,d.jsx)(tZ.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...i,ref:t,onMouseDown:tJ(e.onMouseDown,e=>{n?f.onItemFocus(c):e.preventDefault()}),onFocus:tJ(e.onFocus,()=>f.onItemFocus(c)),onKeyDown:tJ(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let o=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return ry[o]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=h().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&o.reverse();let l=o.indexOf(e.currentTarget);o=f.loop?(r=o,n=l+1,r.map((e,t)=>r[(n+t)%r.length])):o.slice(l+1)}setTimeout(()=>rb(o))}}),children:"function"==typeof s?s({isCurrentTabStop:p,hasTabStop:null!=y}):s})})});rg.displayName=rm;var ry={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rb(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var rx="Toggle",rv=u.forwardRef((e,t)=>{let{pressed:r,defaultPressed:n,onPressedChange:o,...l}=e,[s,i]=re({prop:r,onChange:o,defaultProp:n??!1,caller:rx});return(0,d.jsx)(tZ.button,{type:"button","aria-pressed":s,"data-state":s?"on":"off","data-disabled":e.disabled?"":void 0,...l,ref:t,onClick:tJ(e.onClick,()=>{e.disabled||i(!s)})})});rv.displayName=rx;var rw="ToggleGroup",[rk,rS]=tH(rw,[ru]),rz=ru(),rj=u.default.forwardRef((e,t)=>{let{type:r,...n}=e;if("single"===r)return(0,d.jsx)(rM,{...n,ref:t});if("multiple"===r)return(0,d.jsx)(rR,{...n,ref:t});throw Error(`Missing prop \`type\` expected on \`${rw}\``)});rj.displayName=rw;var[rC,rE]=rk(rw),rM=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??"",onChange:o,caller:rw});return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"single",value:u.default.useMemo(()=>s?[s]:[],[s]),onItemActivate:i,onItemDeactivate:u.default.useCallback(()=>i(""),[i]),children:(0,d.jsx)(rI,{...l,ref:t})})}),rR=u.default.forwardRef((e,t)=>{let{value:r,defaultValue:n,onValueChange:o=()=>{},...l}=e,[s,i]=re({prop:r,defaultProp:n??[],onChange:o,caller:rw}),a=u.default.useCallback(e=>i((t=[])=>[...t,e]),[i]),c=u.default.useCallback(e=>i((t=[])=>t.filter(t=>t!==e)),[i]);return(0,d.jsx)(rC,{scope:e.__scopeToggleGroup,type:"multiple",value:s,onItemActivate:a,onItemDeactivate:c,children:(0,d.jsx)(rI,{...l,ref:t})})});rj.displayName=rw;var[rN,rL]=rk(rw),rI=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,disabled:n=!1,rovingFocus:o=!0,orientation:l,dir:s,loop:i=!0,...a}=e,u=rz(r),c=rr(s),f={role:"group",dir:c,...a};return(0,d.jsx)(rN,{scope:r,rovingFocus:o,disabled:n,children:o?(0,d.jsx)(rp,{asChild:!0,...u,orientation:l,dir:c,loop:i,children:(0,d.jsx)(tZ.div,{...f,ref:t})}):(0,d.jsx)(tZ.div,{...f,ref:t})})}),rP="ToggleGroupItem",rO=u.default.forwardRef((e,t)=>{let r=rE(rP,e.__scopeToggleGroup),n=rL(rP,e.__scopeToggleGroup),o=rz(e.__scopeToggleGroup),l=r.value.includes(e.value),s=n.disabled||e.disabled,i={...e,pressed:l,disabled:s},a=u.default.useRef(null);return n.rovingFocus?(0,d.jsx)(rg,{asChild:!0,...o,focusable:!s,active:l,ref:a,children:(0,d.jsx)(rT,{...i,ref:t})}):(0,d.jsx)(rT,{...i,ref:t})});rO.displayName=rP;var rT=u.default.forwardRef((e,t)=>{let{__scopeToggleGroup:r,value:n,...o}=e,l=rE(rP,r),s={role:"radio","aria-checked":e.pressed,"aria-pressed":void 0},i="single"===l.type?s:void 0;return(0,d.jsx)(rv,{...i,...o,ref:t,onPressedChange:e=>{e?l.onItemActivate(n):l.onItemDeactivate(n)}})});let rA=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,rD=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return em(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:o,defaultVariants:l}=t,s=Object.keys(o).map(e=>{let t=null==r?void 0:r[e],n=null==l?void 0:l[e];if(null===t)return null;let s=rA(t)||rA(n);return o[e][s]}),i=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return em(e,s,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...o}=t;return Object.entries(o).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...l,...i}[t]):({...l,...i})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)},rF=rD("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground data-[state=on]:border-primary"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}});u.forwardRef(({className:e,variant:t,size:r,...n},o)=>(0,d.jsx)(rv,{ref:o,className:tf(rF({variant:t,size:r,className:e})),...n})).displayName=rv.displayName;let r$=u.createContext({size:"default",variant:"default"}),r_=u.forwardRef(({className:e,variant:t,size:r,children:n,...o},l)=>(0,d.jsx)(rj,{ref:l,className:tf("flex items-center justify-center gap-1",e),...o,children:(0,d.jsx)(r$.Provider,{value:{variant:t,size:r},children:n})}));r_.displayName=rj.displayName;let rG=u.forwardRef(({className:e,children:t,variant:r,size:n,...o},l)=>{let s=u.useContext(r$);return(0,d.jsx)(rO,{ref:l,className:tf(rF({variant:s.variant||r,size:s.size||n}),e),...o,children:t})});function rW({className:t=""}){let{datasetInfo:r,embeddings:n,selectedIds:o,setSelectedIds:l,beginLassoSelection:s,hoveredId:i,setHoveredId:a,geometry:c,setGeometry:f}=tI(),p=(0,u.useMemo)(()=>(function(e){let t=new Set;for(let r of e)t.add(r.geometry);return Array.from(t)})(r?.layouts??[]),[r?.layouts]),h=(0,u.useMemo)(()=>{if(!n||!r)return null;let e=n.layout_key,t=r.layouts.find(t=>t.layout_key===e),o=t?.space_key??e.split("__")[0],l=r.spaces.find(e=>e.space_key===o);return l?.model_id??l?.space_key??o},[r,n]),m=(0,u.useMemo)(()=>{if(!n)return null;let e=[...new Set(n.labels.map(e=>e||"undefined"))],t={};for(let r=0;r"undefined"===e?"#008080":n.label_colors[e]||"#808080");return{uniqueLabels:e,categories:r,palette:o}},[n]),{canvasRef:g,overlayCanvasRef:y,containerRef:b,handlePointerDown:x,handlePointerMove:v,handlePointerUp:w,handlePointerLeave:k,handleDoubleClick:S,rendererError:z}=function({embeddings:t,labelsInfo:r,selectedIds:n,hoveredId:o,setSelectedIds:l,beginLassoSelection:s,setHoveredId:i}){let a=(0,u.useRef)(null),d=(0,u.useRef)(null),c=(0,u.useRef)(null),f=(0,u.useRef)(null),[p,h]=(0,u.useState)(null),m=(0,u.useRef)(!1),g=(0,u.useRef)(!1),y=(0,u.useRef)(!1),b=(0,u.useRef)(0),x=(0,u.useRef)(0),v=(0,u.useRef)(0),w=(0,u.useRef)(0),k=(0,u.useRef)([]),S=(0,u.useRef)(-1),z=(0,u.useMemo)(()=>{if(!t)return null;let e=new Map;for(let r=0;r{m.current||(m.current=!0,requestAnimationFrame(()=>{m.current=!1;let e=f.current;if(e){try{e.render()}catch(t){console.error("hyper-scatter renderer.render() failed:",t);try{e.destroy()}catch{}f.current=null,h("This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox."),tV(d.current);return}y.current&&tK(d.current,k.current)}}))},[]),C=(0,u.useCallback)(e=>{let t=a.current;if(!t)return{x:0,y:0};let r=t.getBoundingClientRect();return{x:e.clientX-r.left,y:e.clientY-r.top}},[]),E=(0,u.useCallback)(()=>{g.current=!1,y.current=!1,k.current=[],tV(d.current)},[]);(0,u.useEffect)(()=>{if(!t||!r||!a.current||!c.current)return;let n=!1;return(async()=>{if(h(null),!function(){try{if("undefined"==typeof document)return!1;return!!document.createElement("canvas").getContext("webgl2")}catch{return!1}}())return h("This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox.");try{let o=await e.A(20606);if(n)return;let l=c.current,s=a.current;if(!l||!s)return;f.current&&(f.current.destroy(),f.current=null);let i=l.getBoundingClientRect(),u=Math.floor(i.width),p=Math.floor(i.height);d.current&&(d.current.width=Math.max(1,u),d.current.height=Math.max(1,p),d.current.style.width=`${u}px`,d.current.style.height=`${p}px`,tV(d.current));let m=t.coords,g=new Float32Array(2*m.length);for(let e=0;e{n=!0,E(),f.current&&(f.current.destroy(),f.current=null)}},[t,r,j,E]),(0,u.useEffect)(()=>{let e=f.current;if(!e||!t||!z)return;let r=new Set;for(let e of n){let t=z.get(e);"number"==typeof t&&r.add(t)}e.setSelection(r);let l=o?z.get(o)??-1:-1;e.setHovered(l),S.current=l,j()},[t,o,z,j,n]),(0,u.useEffect)(()=>{let e=c.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),r=Math.floor(t.width),n=Math.floor(t.height);if(!(r>0)||!(n>0))return;d.current&&(d.current.width=Math.max(1,r),d.current.height=Math.max(1,n),d.current.style.width=`${r}px`,d.current.style.height=`${n}px`);let o=f.current;o&&(o.resize(r,n),j())};t();let r=new ResizeObserver(t);return r.observe(e),()=>r.disconnect()},[j]),(0,u.useEffect)(()=>{let e=a.current;if(!e)return;let t=e=>{let t=f.current;if(!t)return;e.preventDefault();let r=C(e),n=-e.deltaY/100;t.zoom(r.x,r.y,n,tB(e)),j()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[C,j]);let M=(0,u.useCallback)(e=>{if(!f.current||"number"==typeof e.button&&0!==e.button)return;let t=C(e);b.current=t.x,x.current=t.y,v.current=t.x,w.current=t.y,e.shiftKey?(y.current=!0,g.current=!1,k.current=[t.x,t.y],tK(d.current,k.current)):(g.current=!0,y.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[C]),R=(0,u.useCallback)(e=>{let r=f.current;if(!r)return;let n=C(e);if(g.current){let t=n.x-v.current,o=n.y-w.current;v.current=n.x,w.current=n.y,r.pan(t,o,tB(e)),j();return}if(y.current){let e=k.current,t=e[e.length-2]??n.x,r=e[e.length-1]??n.y,o=n.x-t,l=n.y-r;o*o+l*l>=4&&(e.push(n.x,n.y),tK(d.current,e));return}let o=r.hitTest(n.x,n.y),l=o?o.index:-1;l===S.current||(S.current=l,r.setHovered(l),t&&(l>=0&&l{let r=f.current;if(!r||!t)return void E();if(y.current){let e=k.current;if(E(),e.length>=6)try{let n=new Float32Array(e),o=r.lassoSelect(n),l=o.geometry?.coords;if(!l||l.length<6)return;r.setSelection(new Set);let i=function(e,t){let r=Math.floor(e.length/2);if(r<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*r/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(l,0);if(i.length<6)return;s({layoutKey:t.layout_key,polygon:i})}catch(e){console.error("Lasso selection failed:",e)}j();return}let o=C(e),i=o.x-b.current,a=o.y-x.current;if(i*i+a*a<=36){let s=r.hitTest(o.x,o.y),i=s?s.index:-1;if(i>=0&&i{let t=f.current;t&&(S.current=-1,i(null),t.setHovered(-1),j()),E()},[j,i,E]),handleDoubleClick:(0,u.useCallback)(e=>{let t=f.current;t&&(E(),t.setSelection(new Set),l(new Set,"scatter"),j())},[j,l,E]),rendererError:p}}({embeddings:n,labelsInfo:m,selectedIds:o,hoveredId:i,setSelectedIds:l,beginLassoSelection:s,setHoveredId:a}),j=m?.uniqueLabels??[];return(0,d.jsxs)(tP,{className:t,children:[(0,d.jsx)(tT,{icon:(0,d.jsx)(tD,{}),title:"Embeddings",subtitle:n?h??"":"Loading...",children:p.length>1&&(0,d.jsxs)(r_,{type:"single",value:c,onValueChange:e=>e&&f(e),size:"sm",variant:"outline",className:"bg-muted/50 rounded-md p-0.5 gap-0.5",children:[(0,d.jsxs)(rG,{value:"euclidean","aria-label":"Euclidean geometry",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(t_,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Euclidean"})]}),(0,d.jsxs)(rG,{value:"poincare","aria-label":"Poincaré disk (hyperbolic)",className:"h-6 px-2 gap-1.5 text-[11px] border-0 data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm data-[state=off]:bg-transparent data-[state=off]:text-muted-foreground",children:[(0,d.jsx)(tG,{}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Poincaré"})]})]})}),(0,d.jsxs)("div",{className:"flex-1 flex",children:[(0,d.jsxs)("div",{ref:b,className:"flex-1 relative",children:[(0,d.jsx)("canvas",{ref:g,className:"absolute inset-0",style:{zIndex:1},onPointerDown:x,onPointerMove:v,onPointerUp:w,onPointerCancel:w,onPointerLeave:k,onDoubleClick:S}),(0,d.jsx)("canvas",{ref:y,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),z?(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/85 z-10 p-6",children:(0,d.jsxs)("div",{className:"max-w-md text-center",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-foreground mb-2",children:"Browser not supported"}),(0,d.jsx)("div",{className:"text-sm text-muted-foreground",children:z})]})}):!n&&(0,d.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,d.jsx)("div",{className:"text-muted-foreground",children:"Loading embeddings..."})})]}),j.length>0&&(0,d.jsxs)("div",{className:"w-36 border-l border-border bg-card p-2 overflow-y-auto",children:[(0,d.jsx)("div",{className:"text-[11px] font-medium mb-2 text-muted-foreground uppercase tracking-wide",children:"Labels"}),(0,d.jsxs)("div",{className:"space-y-1",children:[j.slice(0,20).map(e=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-2.5 h-2.5 rounded-full flex-shrink-0",style:{backgroundColor:"undefined"===e?"hsl(var(--accent-cyan))":n?.label_colors[e]||"hsl(var(--muted-foreground))"}}),(0,d.jsx)("span",{className:"text-[11px] text-muted-foreground truncate font-mono",title:e,children:e})]},e)),j.length>20&&(0,d.jsxs)("div",{className:"text-[11px] text-muted-foreground/70",children:["+",j.length-20," more"]})]})]})]}),(0,d.jsx)(tO,{children:(0,d.jsx)("span",{children:"⇧+drag lasso • scroll zoom • drag pan"})})]})}rG.displayName=rO.displayName;var rB=Symbol.for("react.lazy"),rV=u[" use ".trim().toString()];function rK(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===rB&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var rH=((s=u.forwardRef((e,t)=>{let{children:r,...n}=e;if(rK(r)&&"function"==typeof rV&&(r=rV(r._payload)),u.isValidElement(r)){var o;let e,l,s=(o=r,(l=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(l=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),i=function(e,t){let r={...t};for(let n in t){let o=e[n],l=t[n];/^on[A-Z]/.test(n)?o&&l?r[n]=(...e)=>{let t=l(...e);return o(...e),t}:o&&(r[n]=o):"style"===n?r[n]={...o,...l}:"className"===n&&(r[n]=[o,l].filter(Boolean).join(" "))}return{...e,...r}}(n,r.props);return r.type!==u.Fragment&&(i.ref=t?tq(t,s):s),u.cloneElement(r,i)}return u.Children.count(r)>1?u.Children.only(null):null})).displayName="Slot.SlotClone",o=s,(l=u.forwardRef((e,t)=>{let{children:r,...n}=e;rK(r)&&"function"==typeof rV&&(r=rV(r._payload));let l=u.Children.toArray(r),s=l.find(rq);if(s){let e=s.props.children,r=l.map(t=>t!==s?t:u.Children.count(e)>1?u.Children.only(null):u.isValidElement(e)?e.props.children:null);return(0,d.jsx)(o,{...n,ref:t,children:u.isValidElement(e)?u.cloneElement(e,void 0,r):null})}return(0,d.jsx)(o,{...n,ref:t,children:r})})).displayName="Slot.Slot",l),rU=Symbol("radix.slottable");function rq(e){return u.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===rU}let rY=rD("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),rQ=u.forwardRef(({className:e,variant:t,size:r,asChild:n=!1,...o},l)=>(0,d.jsx)(n?rH:"button",{className:tf(rY({variant:t,size:r,className:e})),ref:l,...o}));function rX(){let{datasetInfo:e,selectedIds:t,clearSelection:r}=tI();return(0,d.jsxs)("header",{className:"h-10 min-h-[40px] bg-secondary border-b border-border flex items-center justify-between px-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-7 h-7 rounded flex items-center justify-center text-primary",children:(0,d.jsx)(tF,{})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("h1",{className:"text-sm font-semibold text-foreground",children:"HyperView"}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground/70 font-mono",children:e.name})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[e&&(0,d.jsxs)("div",{className:"flex items-center gap-3 text-[11px] font-mono",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"samples"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.num_samples.toLocaleString()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-muted-foreground/70",children:"labels"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.labels.length})]})]}),t.size>0&&(0,d.jsxs)(rQ,{variant:"secondary",size:"sm",onClick:r,className:"h-6 text-[11px]",children:["Clear (",t.size,")"]})]})]})}async function rZ(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function rJ(e=0,t=100,r){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});r&&n.set("label",r);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function r0(e){let t=new URLSearchParams;e&&t.set("layout_key",e);let r=t.toString(),n=await fetch(`/api/embeddings${r?`?${r}`:""}`);if(!n.ok)throw Error(`Failed to fetch embeddings: ${n.statusText}`);return n.json()}async function r1(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function r2(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({layout_key:e.layoutKey,polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function r5(){let{datasetInfo:e,samples:t,totalSamples:r,samplesLoaded:n,setSamples:o,appendSamples:l,addSamplesIfMissing:s,setDatasetInfo:i,setEmbeddings:a,setIsLoading:c,isLoading:f,error:p,setError:h,selectedIds:m,isLassoSelection:g,selectionSource:y,lassoQuery:b,lassoSamples:x,lassoTotal:v,lassoIsLoading:w,setLassoResults:k,geometry:S}=tI(),[z,j]=(0,u.useState)(!1),[C,E]=(0,u.useState)(!1);(0,u.useEffect)(()=>{(async()=>{c(!0),h(null);try{let[e,t,r]=await Promise.all([rZ(),rJ(0,100),r0()]);i(e),o(t.samples,t.total),a(r)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{c(!1)}})()},[]),(0,u.useEffect)(()=>{if(!e)return;let t=e.layouts.find(e=>e.geometry===S);t&&tI.getState().currentLayoutKey!==t.layout_key&&(async()=>{E(!0);try{let e=await r0(t.layout_key);a(e)}catch(e){console.error("Failed to load geometry:",e)}finally{E(!1)}})()},[S,e,a]),(0,u.useEffect)(()=>{(async()=>{if(g||0===m.size)return;let e=new Set(t.map(e=>e.id)),r=Array.from(m).filter(t=>!e.has(t));if(0!==r.length)try{let e=await r1(r);s(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[m,t,s,g]),(0,u.useEffect)(()=>{if(!g||!b||!w)return;let e=new AbortController;return(async()=>{try{let t=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;k(t.samples,t.total,!1)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return;console.error("Failed to fetch lasso selection:",e),k([],0,!1)}})(),()=>e.abort()},[g,w,b,k]);let M=(0,u.useCallback)(async()=>{if(!z){if(g){if(!b||w||!w&&x.length>=v)return;j(!0);try{let e=await r2({layoutKey:b.layoutKey,polygon:b.polygon,offset:x.length,limit:100});k(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{j(!1)}return}if(!(n>=r)){j(!0);try{let e=await rJ(n,100);l(e.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{j(!1)}}}},[z,l,g,w,b,x.length,v,n,r,k]),R=(0,u.useMemo)(()=>{if(g)return x;if("scatter"===y&&m.size>0){let e=new Map;for(let r of t)e.set(r.id,r);let r=[];for(let t of m){let n=e.get(t);n&&r.push(n)}if(r.length>0)return[...r,...t.filter(e=>!m.has(e.id))]}return t},[g,x,t,m,y]),N=g?v:r,L=g?R.lengthr5],50912)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/5a5ec5690ca4254a.js b/src/hyperview/server/static/_next/static/chunks/b96ffc94b0d8fbba.js similarity index 99% rename from src/hyperview/server/static/_next/static/chunks/5a5ec5690ca4254a.js rename to src/hyperview/server/static/_next/static/chunks/b96ffc94b0d8fbba.js index 4111781..840f9b7 100644 --- a/src/hyperview/server/static/_next/static/chunks/5a5ec5690ca4254a.js +++ b/src/hyperview/server/static/_next/static/chunks/b96ffc94b0d8fbba.js @@ -1,2 +1,2 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50407,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getAssetPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(84524);function l(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new r.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?u.createElement("select",{is:r.is}):u.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?u.createElement(l,{is:r.is}):u.createElement(l)}}a[eW]=t,a[eK]=r;e:for(u=t.child;null!==u;){if(5===u.tag||6===u.tag)a.appendChild(u.stateNode);else if(4!==u.tag&&27!==u.tag&&null!==u.child){u.child.return=u,u=u.child;continue}if(u===t)break;for(;null===u.sibling;){if(null===u.return||u.return===t)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}switch(t.stateNode=a,cl(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&ou(t)}}return of(t),t.subtreeFlags&=-0x2000001,oo(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ou(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));if(e=en.current,rY(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=rB))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eW]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||ct(e.nodeValue,n)))||rQ(t,!0)}else(e=ci(e).createTextNode(r))[eW]=t,t.stateNode=e}return of(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rY(t),null!==n){if(null===e){if(!r)throw Error(i(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(i(557));e[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),e=!1}else n=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return l7(t),t;return l7(t),null}if(0!=(128&t.flags))throw Error(i(558))}return of(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rY(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(i(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(i(317));l[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),l=!1}else l=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&t.flags)return l7(t),t;return l7(t),null}}if(l7(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),os(t,t.updateQueue),of(t),null;case 4:return ea(),null===e&&s1(t.stateNode.containerInfo),t.flags|=0x4000000,of(t),null;case 10:return r8(t.type),of(t),null;case 19:if(an(t),null===(r=t.memoizedState))return of(t),null;if(l=0!=(128&t.flags),null===(a=r.rendering))if(l)oc(r,!1);else{if(0!==iM||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=ar(e))){for(t.flags|=128,oc(r,!1),t.updateQueue=e=a.updateQueue,os(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rS(n,e),n=n.sibling;return at(t,1&ae.current|2),rq&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ey()>iV&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304)}else{if(!l)if(null!==(e=ar(a))){if(t.flags|=128,l=!0,t.updateQueue=e=e.updateQueue,os(t,e),oc(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rq)return of(t),null}else 2*ey()-r.renderingStartTime>iV&&0x20000000!==n&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ey(),e.sibling=null,a=ae.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rq?at(t,a):(n=a,Z(l3,t),Z(ae,n),null===l4&&(l4=t)),rq&&rA(t,r.treeForkCount),e}return of(t),null;case 22:case 23:return l7(t),l2(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(of(t),6&t.subtreeFlags&&(t.flags|=8192)):of(t),null!==(n=t.updateQueue)&&os(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(lv),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),r8(lo),of(t),null;case 25:return null;case 30:return t.flags|=0x2000000,of(t),null}throw Error(i(156,t.tag))}(t.alternate,t,iN);if(null!==n){iP=n;return}if(null!==(t=t.sibling)){iP=t;return}iP=t=e}while(null!==t)0===iM&&(iM=5)}function sh(e,t){do{var n=function(e,t){switch(rU(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return r8(lo),ea(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return eo(t),null;case 31:if(null!==t.memoizedState){if(l7(t),null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(l7(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return an(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ea(),null;case 10:return r8(t.type),null;case 22:case 23:return l7(t),l2(),null!==e&&J(lv),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return r8(lo),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,iP=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){iP=e;return}iP=e=n}while(null!==e)iM=6,iP=null}function sm(e,t,n,r,l,a,u,o,s,c,f){e.cancelPendingCommit=null;do sE();while(0!==iW)if(0!=(6&iE))throw Error(i(327));if(null!==t){var d;if(t===e.current)throw Error(i(177));if(!function(e,t,n,r,l,a){var u=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,i=e.expirationTimes,s=e.hiddenUpdates;for(n=u&~n;0fc){o.length=u;break}d=new Promise(cR.bind(d)),o.push(d)}}}return 0g&&(u=g,g=m,m=u);var y=nH(o,m),v=nH(o,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=f.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),m>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(f=[],p=o;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof o.focus&&o.focus(),o=0;on?32:n,W.T=null,n=iY,iY=null;var a=iK,u=iG;if(iW=0,iQ=iK=null,iG=0,0!=(6&iE))throw Error(i(331));var o=iE;if(iE|=4,iv(a.current),ic(a,a.current,u,n),iE=o,sI(0,!1),ek&&"function"==typeof ek.onPostCommitFiberRoot)try{ek.onPostCommitFiberRoot(eP,a)}catch(e){}return!0}finally{K.p=l,W.T=r,sw(e,t)}}function sP(e,t,n){t=rT(n,t),t=uF(e.stateNode,t,2),null!==(e=lq(e,t,2))&&(eA(e,2),sA(e))}function sk(e,t,n){if(3===e.tag)sP(e,e,n);else for(;null!==t;){if(3===t.tag){sP(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===i$||!i$.has(r))){e=rT(n,e),null!==(r=lq(t,n=uA(2),2))&&(uI(n,r,t,e),eA(r,2),sA(r));break}}t=t.return}}function sR(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new iw;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(iC=!0,l.add(n),e=sT.bind(null,e,t,n),t.then(e,e))}function sT(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,i_===e&&(ik&n)===n&&(4===iM||3===iM&&(0x3c00000&ik)===ik&&300>ey()-iH?0==(2&iE)&&sr(e,0):ij|=n,iA===ik&&(iA=0)),sA(e)}function sx(e,t){0===t&&(t=ej()),null!==(e=rd(e,t))&&(eA(e,t),sA(e))}function sO(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sx(e,n)}function sC(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),sx(e,n)}var sN=null,sM=null,sL=!1,sz=!1,sj=!1,sF=0;function sA(e){e!==sM&&null===e.next&&(null===sM?sN=sM=e:sM=sM.next=e),sz=!0,sL||(sL=!0,cg(function(){0!=(6&iE)?ep(eb,sD):sU()}))}function sI(e,t){if(!sj&&sz){sj=!0;do for(var n=!1,r=sN;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var u=r.suspendedLanes,o=r.pingedLanes;a=0xc000095&(a=(1<<31-eR(42|e)+1)-1&(l&~(u&~o)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sV(r,a))}else a=ik,0==(3&(a=eL(r,r===i_?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ez(r,a)||(n=!0,sV(r,a));r=r.next}while(n)sj=!1}}function sD(){sU()}function sU(){sz=sL=!1;var e,t=0;0===sF||((e=window.event)&&"popstate"===e.type?e===cd||(cd=e,0):(cd=null,1))||(t=sF);for(var n=ey(),r=null,l=sN;null!==l;){var a=l.next,u=sH(l,n);0===u?(l.next=null,null===r?sN=a:r.next=a,null===a&&(sM=r)):(r=l,(0!==t||0!=(3&u))&&(sz=!0)),l=a}0!==iW&&5!==iW||sI(t,!1),0!==sF&&(sF=0)}function sH(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function fu(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function fo(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function fi(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fs(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=fi(t),e.suspenseyImages.push(t)),e=fp.bind(e),t.decode().then(e,e))}var fc=0;function ff(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fm(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function fd(){this.count--,ff(this)}function fp(){this.imgCount--,ff(this)}var fh=null;function fm(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fh=new Map,t.forEach(fg,e),fh=null,fd.call(e))}function fg(e,t){if(!(4&t.state.loading)){var n=fh.get(e);if(n)var r=n.get(null);else{n=new Map,fh.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(94454)},98084,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HeadManagerContext",{enumerable:!0,get:function(){return r}});let r=e.r(35856)._(e.r(30668)).default.createContext({})},26717,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={onCaughtError:function(){return d},onUncaughtError:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(35856),u=e.r(31028),o=e.r(19551),i=e.r(96887),s=e.r(71202),c=a._(e.r(75115)),f={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function d(e,t){let n,r=t.errorBoundary?.constructor;if(n=n||r===s.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===c.default)return p(e);(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||f.originConsoleError(e)}function p(e){(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||(0,i.reportGlobalError)(e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},5725,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={computeChangedPath:function(){return f},extractPathFromFlightRouterState:function(){return c},getSelectedParams:function(){return function e(t,n={}){for(let r of Object.values(t[1])){let t=r[0],l=Array.isArray(t),a=l?t[1]:t;!a||a.startsWith(u.PAGE_SEGMENT_KEY)||(l&&("c"===t[2]||"oc"===t[2])?n[t[0]]=t[1].split("/"):l&&(n[t[0]]=t[1]),n=e(r,n))}return n}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(50864),u=e.r(91395),o=e.r(22039),i=e=>"string"==typeof e?"children"===e?"":e:e[1];function s(e){return e.reduce((e,t)=>{let n;return""===(t="/"===(n=t)[0]?n.slice(1):n)||(0,u.isGroupSegment)(t)?e:`${e}/${t}`},"")||"/"}function c(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===u.DEFAULT_SEGMENT_KEY||a.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t.startsWith(u.PAGE_SEGMENT_KEY))return"";let n=[i(t)],r=e[1]??{},l=r.children?c(r.children):void 0;if(void 0!==l)n.push(l);else for(let[e,t]of Object.entries(r)){if("children"===e)continue;let r=c(t);void 0!==r&&n.push(r)}return s(n)}function f(e,t){let n=function e(t,n){let[r,l]=t,[u,s]=n,f=i(r),d=i(u);if(a.INTERCEPTION_ROUTE_MARKERS.some(e=>f.startsWith(e)||d.startsWith(e)))return"";if(!(0,o.matchSegment)(r,u))return c(n)??"";for(let t in l)if(s[t]){let n=e(l[t],s[t]);if(null!==n)return`${i(u)}/${n}`}return null}(e,t);return null==n||"/"===n?n:s(n.split("/"))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},40494,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleMutable",{enumerable:!0,get:function(){return a}});let r=e.r(5725);function l(e){return void 0!==e}function a(e,t){let n=t.shouldScroll??!0,a=e.previousNextUrl,u=e.nextUrl;if(l(t.patchedTree)){let n=(0,r.computeChangedPath)(e.tree,t.patchedTree);n?(a=u,u=n):u||(u=e.canonicalUrl)}return{canonicalUrl:t.canonicalUrl??e.canonicalUrl,renderedSearch:t.renderedSearch??e.renderedSearch,pushRef:{pendingPush:l(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:l(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:l(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!n&&(!!l(t?.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:t.onlyHashChange||!1,hashFragment:n?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:n?t?.scrollableSegments??e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,tree:l(t.patchedTree)?t.patchedTree:e.tree,nextUrl:u,previousNextUrl:a,debugInfo:t.collectedDebugInfo??null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},84697,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,n){let r=t[0],l=n[0];if(Array.isArray(r)&&Array.isArray(l)){if(r[0]!==l[0]||r[2]!==l[2])return!0}else if(r!==l)return!0;if(t[4])return!n[4];if(n[4])return!0;let a=Object.values(t[1])[0],u=Object.values(n[1])[0];return!a||!u||e(a,u)}}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1989,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={abortTask:function(){return y},listenForDynamicRequest:function(){return g},startPPRNavigation:function(){return d},updateCacheNodeOnPopstateRestoration:function(){return function e(t,n){let r=n[1],l=t.parallelRoutes,a=new Map(l);for(let t in r){let n=r[t],u=n[0],o=(0,i.createRouterCacheKey)(u),s=l.get(t);if(void 0!==s){let r=s.get(o);if(void 0!==r){let l=e(r,n),u=new Map(s);u.set(o,l),a.set(t,u)}}}let u=t.rsc,o=S(u)&&"pending"===u.status;return{lazyData:null,rsc:u,head:t.head,prefetchHead:o?t.prefetchHead:[null,null],prefetchRsc:o?t.prefetchRsc:null,loading:t.loading,parallelRoutes:a,navigatedAt:t.navigatedAt}}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(91395),u=e.r(22039),o=e.r(80118),i=e.r(43317),s=e.r(84697),c=e.r(28806),f={route:null,node:null,dynamicRequestTree:null,children:null};function d(e,t,n,r,l,s,c,d,m,g){return function e(t,n,r,l,s,c,d,m,g,y,v,b){let S=l[1],w=s[1],E=null!==d?d[1]:null;c||!0===s[4]&&(c=!0);let _=r.parallelRoutes,P=new Map(_),k={},R=null,T=!1,x={};for(let r in w){let l,s=w[r],d=S[r],O=_.get(r),C=null!==E?E[r]:null,N=s[0],M=v.concat([r,N]),L=(0,i.createRouterCacheKey)(N),z=void 0!==d?d[0]:void 0,j=void 0!==O?O.get(L):void 0;if(null!==(l=N===a.DEFAULT_SEGMENT_KEY?void 0!==d?function(e,t){let n;return"refresh"===t[3]?n=t:((n=h(t,t[1]))[2]=(0,o.createHrefFromUrl)(e),n[3]="refresh"),{route:n,node:null,dynamicRequestTree:null,children:null}}(n,d):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):y&&0===Object.keys(s[1]).length?p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):void 0!==d&&void 0!==z&&(0,u.matchSegment)(N,z)&&void 0!==j&&void 0!==d?e(t,n,j,d,s,c,C,m,g,y,M,b):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b))){if(null===l.route)return f;null===R&&(R=new Map),R.set(r,l);let e=l.node;if(null!==e){let t=new Map(O);t.set(L,e),P.set(r,t)}let t=l.route;k[r]=t;let n=l.dynamicRequestTree;null!==n?(T=!0,x[r]=n):x[r]=t}else k[r]=s,x[r]=s}if(null===R)return null;let O={lazyData:null,rsc:r.rsc,prefetchRsc:r.prefetchRsc,head:r.head,prefetchHead:r.prefetchHead,loading:r.loading,parallelRoutes:P,navigatedAt:t};return{route:h(s,k),node:O,dynamicRequestTree:T?h(s,x):null,children:R}}(e,t,n,r,l,!1,s,c,d,m,[],g)}function p(e,t,n,r,l,a,u,o,d,p){return!l&&(void 0===t||(0,s.isNavigatingToNewRootLayout)(t,n))?f:function e(t,n,r,l,a,u,o,s){let f,d,p,g,y=n[1],v=0===Object.keys(y).length;if(void 0!==r&&r.navigatedAt+c.DYNAMIC_STALETIME_MS>t)f=r.rsc,d=r.loading,p=r.head,g=r.navigatedAt;else if(null===l)return m(t,n,null,a,u,o,s);else if(f=l[0],d=l[2],p=v?a:null,g=t,l[3]||u&&v)return m(t,n,l,a,u,o,s);let b=null!==l?l[1]:null,S=new Map,w=void 0!==r?r.parallelRoutes:null,E=new Map(w),_={},P=!1;if(v)s.push(o);else for(let n in y){let r=y[n],l=null!==b?b[n]:null,c=null!==w?w.get(n):void 0,f=r[0],d=o.concat([n,f]),p=(0,i.createRouterCacheKey)(f),h=e(t,r,void 0!==c?c.get(p):void 0,l,a,u,d,s);S.set(n,h);let m=h.dynamicRequestTree;null!==m?(P=!0,_[n]=m):_[n]=r;let g=h.node;if(null!==g){let e=new Map;e.set(p,g),E.set(n,e)}}return{route:n,node:{lazyData:null,rsc:f,prefetchRsc:null,head:p,prefetchHead:null,loading:d,parallelRoutes:E,navigatedAt:g},dynamicRequestTree:P?h(n,_):null,children:S}}(e,n,r,a,u,o,d,p)}function h(e,t){let n=[e[0],t];return 2 in e&&(n[2]=e[2]),3 in e&&(n[3]=e[3]),4 in e&&(n[4]=e[4]),n}function m(e,t,n,r,l,a,u){let o=h(t,t[1]);return o[3]="refetch",{route:t,node:function e(t,n,r,l,a,u,o){let s=n[1],c=null!==r?r[1]:null,f=new Map;for(let n in s){let r=s[n],d=null!==c?c[n]:null,p=r[0],h=u.concat([n,p]),m=(0,i.createRouterCacheKey)(p),g=e(t,r,void 0===d?null:d,l,a,h,o),y=new Map;y.set(m,g),f.set(n,y)}let d=0===f.size;d&&o.push(u);let p=null!==r?r[0]:null;return{lazyData:null,parallelRoutes:f,prefetchRsc:void 0!==p?p:null,prefetchHead:d?l:[null,null],rsc:w(),head:d?w():null,loading:null!==r?r[2]??null:w(),navigatedAt:t}}(e,t,n,r,l,a,u),dynamicRequestTree:o,children:null}}function g(e,t){t.then(t=>{if("string"==typeof t)return;let{flightData:n,debugInfo:r}=t;for(let t of n){let{segmentPath:n,tree:l,seedData:a,head:o}=t;a&&function(e,t,n,r,l,a){let o=e;for(let e=0;e{y(e,t,null)})}function y(e,t,n){let r=e.node;if(null===r)return;let l=e.children;if(null===l)v(e.route,r,t,n);else for(let e of l.values())y(e,t,n);e.dynamicRequestTree=null}function v(e,t,n,r){let l=e[1],a=t.parallelRoutes;for(let e in l){let t=l[e],u=a.get(e);if(void 0===u)continue;let o=t[0],s=(0,i.createRouterCacheKey)(o),c=u.get(s);void 0!==c&&v(t,c,n,r)}let u=t.rsc;S(u)&&(null===n?u.resolve(null,r):u.reject(n,r));let o=t.loading;S(o)&&o.resolve(null,r);let s=t.head;S(s)&&s.resolve(null,r)}let b=Symbol();function S(e){return e&&"object"==typeof e&&e.tag===b}function w(){let e,t,n=[],r=new Promise((n,r)=>{e=n,t=r});return r.status="pending",r.resolve=(t,l)=>{"pending"===r.status&&(r.status="fulfilled",r.value=t,null!==l&&n.push.apply(n,l),e(t))},r.reject=(e,l)=>{"pending"===r.status&&(r.status="rejected",r.reason=e,null!==l&&n.push.apply(n,l),t(e))},r.tag=b,r._debugInfo=n,r}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18563,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HasLoadingBoundary",{enumerable:!0,get:function(){return l}});var r,l=((r={})[r.SegmentHasLoadingBoundary=1]="SegmentHasLoadingBoundary",r[r.SubtreeHasLoadingBoundary=2]="SubtreeHasLoadingBoundary",r[r.SubtreeHasNoLoadingBoundary=3]="SubtreeHasNoLoadingBoundary",r)},24994,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l,a,u={FetchStrategy:function(){return c},NavigationResultTag:function(){return i},PrefetchPriority:function(){return s}};for(var o in u)Object.defineProperty(n,o,{enumerable:!0,get:u[o]});var i=((r={})[r.MPA=0]="MPA",r[r.Success=1]="Success",r[r.NoOp=2]="NoOp",r[r.Async=3]="Async",r),s=((l={})[l.Intent=2]="Intent",l[l.Default=1]="Default",l[l.Background=0]="Background",l),c=((a={})[a.LoadingBoundary=0]="LoadingBoundary",a[a.PPR=1]="PPR",a[a.PPRRuntime=2]="PPRRuntime",a[a.Full=3]="Full",a);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},68323,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={deleteFromLru:function(){return f},lruPut:function(){return s},updateLruSize:function(){return c}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(47661),u=null,o=!1,i=0;function s(e){if(u===e)return;let t=e.prev,n=e.next;if(null===n||null===t?(i+=e.size,d()):(t.next=n,n.prev=t),null===u)e.prev=e,e.next=e;else{let t=u.prev;e.prev=t,null!==t&&(t.next=e),e.next=u,u.prev=e}u=e}function c(e,t){let n=e.size;e.size=t,null!==e.next&&(i=i-n+t,d())}function f(e){let t=e.next,n=e.prev;null!==t&&null!==n&&(i-=e.size,e.next=null,e.prev=null,u===e?u=t===u?null:t:(n.next=t,t.prev=n))}function d(){o||i<=0x3200000||(o=!0,h(p))}function p(){o=!1;for(;i>0x2d00000&&null!==u;){let e=u.prev;null!==e&&(0,a.deleteFromCacheMap)(e.value)}}let h="function"==typeof requestIdleCallback?requestIdleCallback:e=>setTimeout(e,0);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},47661,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={Fallback:function(){return u},createCacheMap:function(){return i},deleteFromCacheMap:function(){return h},getFromCacheMap:function(){return s},isValueExpired:function(){return c},setInCacheMap:function(){return f},setSizeInCacheMap:function(){return g}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(68323),u={},o={};function i(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function s(e,t,n,r,l){let i=function e(t,n,r,l,a,i){let s,f;if(null!==l)s=l.value,f=l.parent;else if(a&&i!==o)s=o,f=null;else return null===r.value?r:c(t,n,r.value)?(m(r),null):r;let d=r.map;if(null!==d){let r=d.get(s);if(void 0!==r){let l=e(t,n,r,f,a,s);if(null!==l)return l}let l=d.get(u);if(void 0!==l)return e(t,n,l,f,a,s)}return null}(e,t,n,r,l,0);return null===i||null===i.value?null:((0,a.lruPut)(i),i.value)}function c(e,t,n){return n.staleAt<=e||n.version{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={appendLayoutVaryPath:function(){return c},clonePageVaryPathWithNewSearchParams:function(){return m},finalizeLayoutVaryPath:function(){return f},finalizeMetadataVaryPath:function(){return p},finalizePageVaryPath:function(){return d},getFulfilledRouteVaryPath:function(){return s},getRouteVaryPath:function(){return i},getSegmentVaryPathForRequest:function(){return h}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(24994),u=e.r(47661),o=e.r(69434);function i(e,t,n){return{value:e,parent:{value:t,parent:{value:n,parent:null}}}}function s(e,t,n,r){return{value:e,parent:{value:t,parent:{value:r?n:u.Fallback,parent:null}}}}function c(e,t){return{value:t,parent:e}}function f(e,t){return{value:e,parent:t}}function d(e,t,n){return{value:e,parent:{value:t,parent:n}}}function p(e,t,n){return{value:e+o.HEAD_REQUEST_KEY,parent:{value:t,parent:n}}}function h(e,t){let n=t.varyPath;if(t.isPage&&e!==a.FetchStrategy.Full&&e!==a.FetchStrategy.PPRRuntime){let e=n.parent.parent;return{value:n.value,parent:{value:u.Fallback,parent:e}}}return n}function m(e,t){let n=e.parent;return{value:e.value,parent:{value:t,parent:n.parent}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},63280,(e,t,n)=>{"use strict";function r(e,t){let n=new URL(e);return{pathname:n.pathname,search:n.search,nextUrl:t}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createCacheKey",{enumerable:!0,get:function(){return r}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},40285,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={cancelPrefetchTask:function(){return w},isPrefetchTaskDirty:function(){return _},pingPrefetchTask:function(){return O},reschedulePrefetchTask:function(){return E},schedulePrefetchTask:function(){return S},startRevalidationCooldown:function(){return b}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(18563),u=e.r(22039),o=e.r(91666),i=e.r(91900),s=e.r(63280),c=e.r(24994),f=e.r(91395),d="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),p=[],h=0,m=0,g=!1,y=null,v=null;function b(){null!==v&&clearTimeout(v),v=setTimeout(()=>{v=null,k()},300)}function S(e,t,n,r,l){let a={key:e,treeAtTimeOfPrefetch:t,cacheVersion:(0,o.getCurrentCacheVersion)(),priority:r,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:n,sortId:m++,isCanceled:!1,onInvalidate:l,_heapIndex:-1};return P(a),H(p,a),k(),a}function w(e){e.isCanceled=!0,function(e,t){let n=t._heapIndex;if(-1!==n&&(t._heapIndex=-1,0!==e.length)){let r=e.pop();r!==t&&(e[n]=r,r._heapIndex=n,W(e,r,n))}}(p,e)}function E(e,t,n,r){e.isCanceled=!1,e.phase=1,e.sortId=m++,e.priority=e===y?c.PrefetchPriority.Intent:r,e.treeAtTimeOfPrefetch=t,e.fetchStrategy=n,P(e),-1!==e._heapIndex?q(p,e):H(p,e),k()}function _(e,t,n){let r=(0,o.getCurrentCacheVersion)();return e.cacheVersion!==r||e.treeAtTimeOfPrefetch!==n||e.key.nextUrl!==t}function P(e){e.priority===c.PrefetchPriority.Intent&&e!==y&&(null!==y&&y.priority!==c.PrefetchPriority.Background&&(y.priority=c.PrefetchPriority.Default,q(p,y)),y=e)}function k(){g||(g=!0,d(C))}function R(e){return null===v&&(e.priority===c.PrefetchPriority.Intent?h<12:h<4)}function T(e){return h++,e.then(e=>null===e?(x(),null):(e.closed.then(x),e.value))}function x(){h--,k()}function O(e){e.isCanceled||-1!==e._heapIndex||(H(p,e),k())}function C(){g=!1;let e=Date.now(),t=B(p);for(;null!==t&&R(t);){t.cacheVersion=(0,o.getCurrentCacheVersion)();let n=function(e,t){let n=t.key,r=(0,o.readOrCreateRouteCacheEntry)(e,t,n),l=function(e,t,n){switch(n.status){case o.EntryStatus.Empty:T((0,o.fetchRouteOnCacheMiss)(n,t,t.key)),n.staleAt=e+6e4,n.status=o.EntryStatus.Pending;case o.EntryStatus.Pending:{let e=n.blockedTasks;return null===e?n.blockedTasks=new Set([t]):e.add(t),1}case o.EntryStatus.Rejected:break;case o.EntryStatus.Fulfilled:{if(0!==t.phase)return 2;if(!R(t))return 0;let i=n.tree,s=t.fetchStrategy===c.FetchStrategy.PPR?n.isPPREnabled?c.FetchStrategy.PPR:c.FetchStrategy.LoadingBoundary:t.fetchStrategy;switch(s){case c.FetchStrategy.PPR:{var r,l,u;if(z(r=e,l=t,u=n,(0,o.readOrCreateSegmentCacheEntry)(r,c.FetchStrategy.PPR,u,u.metadata),l.key,u.metadata),0===function e(t,n,r,l,a){let u=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,a);z(t,n,r,u,n.key,a);let i=l[1],s=a.slots;if(null!==s)for(let l in s){if(!R(n))return 0;let a=s[l],u=a.segment,c=i[l],f=c?.[0];if(0===(void 0!==f&&D(r,u,f)?e(t,n,r,c,a):function e(t,n,r,l){if(l.hasRuntimePrefetch)return null===n.spawnedRuntimePrefetches?n.spawnedRuntimePrefetches=new Set([l.requestKey]):n.spawnedRuntimePrefetches.add(l.requestKey),2;let a=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);if(z(t,n,r,a,n.key,l),null!==l.slots){if(!R(n))return 0;for(let a in l.slots)if(0===e(t,n,r,l.slots[a]))return 0}return 2}(t,n,r,a)))return 0}return 2}(e,t,n,t.treeAtTimeOfPrefetch,i))return 0;let a=t.spawnedRuntimePrefetches;if(null!==a){let r=new Map;M(e,t,n,r,c.FetchStrategy.PPRRuntime);let l=function e(t,n,r,l,a,u){if(a.has(l.requestKey))return L(t,n,r,l,!1,u,c.FetchStrategy.PPRRuntime);let o={},i=l.slots;if(null!==i)for(let l in i){let s=i[l];o[l]=e(t,n,r,s,a,u)}return[l.segment,o,null,null]}(e,t,n,i,a,r);r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,c.FetchStrategy.PPRRuntime,l,r))}return 2}case c.FetchStrategy.Full:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.LoadingBoundary:{let r=new Map;M(e,t,n,r,s);let l=function e(t,n,r,l,u,i,s){let f=l[1],d=u.slots,p={};if(null!==d)for(let l in d){let u=d[l],h=u.segment,m=f[l],g=m?.[0];if(void 0!==g&&D(r,h,g)){let a=e(t,n,r,m,u,i,s);p[l]=a}else switch(s){case c.FetchStrategy.LoadingBoundary:{let e=u.hasLoadingBoundary!==a.HasLoadingBoundary.SubtreeHasNoLoadingBoundary?function e(t,n,r,l,u,i){let s=null===u?"inside-shared-layout":null,f=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);switch(f.status){case o.EntryStatus.Empty:i.set(l.requestKey,(0,o.upgradeToPendingSegment)(f,c.FetchStrategy.LoadingBoundary)),"refetch"!==u&&(s=u="refetch");break;case o.EntryStatus.Fulfilled:if(l.hasLoadingBoundary===a.HasLoadingBoundary.SegmentHasLoadingBoundary)return(0,o.convertRouteTreeToFlightRouterState)(l);case o.EntryStatus.Pending:case o.EntryStatus.Rejected:}let d={};if(null!==l.slots)for(let a in l.slots){let o=l.slots[a];d[a]=e(t,n,r,o,u,i)}return[l.segment,d,null,s,l.isRootLayout]}(t,n,r,u,null,i):(0,o.convertRouteTreeToFlightRouterState)(u);p[l]=e;break}case c.FetchStrategy.PPRRuntime:{let e=L(t,n,r,u,!1,i,s);p[l]=e;break}case c.FetchStrategy.Full:{let e=L(t,n,r,u,!1,i,s);p[l]=e}}}return[u.segment,p,null,null,u.isRootLayout]}(e,t,n,t.treeAtTimeOfPrefetch,i,r,s);return r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,s,l,r)),2}}}}return 2}(e,t,r);if(0!==l&&""!==n.search){let r=new URL(n.pathname,location.origin),l=(0,s.createCacheKey)(r.href,n.nextUrl),a=(0,o.readOrCreateRouteCacheEntry)(e,t,l);switch(a.status){case o.EntryStatus.Empty:N(t)&&(a.status=o.EntryStatus.Pending,T((0,o.fetchRouteOnCacheMiss)(a,t,l)));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}return l}(e,t),r=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,n){case 0:return;case 1:V(p),t=B(p);continue;case 2:1===t.phase?(t.phase=0,q(p,t)):r?(t.priority=c.PrefetchPriority.Background,q(p,t)):V(p),t=B(p);continue}}}function N(e){return e.priority===c.PrefetchPriority.Background||(e.hasBackgroundWork=!0,!1)}function M(e,t,n,r,l){L(e,t,n,n.metadata,!1,r,l===c.FetchStrategy.LoadingBoundary?c.FetchStrategy.Full:l)}function L(e,t,n,r,l,a,u){let i=(0,o.readOrCreateSegmentCacheEntry)(e,u,n,r),s=null;switch(i.status){case o.EntryStatus.Empty:s=(0,o.upgradeToPendingSegment)(i,u);break;case o.EntryStatus.Fulfilled:i.isPartial&&(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u));break;case o.EntryStatus.Pending:case o.EntryStatus.Rejected:(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u))}let c={};if(null!==r.slots)for(let o in r.slots){let i=r.slots[o];c[o]=L(e,t,n,i,l||null!==s,a,u)}null!==s&&a.set(r.requestKey,s);let f=l||null===s?null:"refetch";return[r.segment,c,null,f,r.isRootLayout]}function z(e,t,n,r,l,a){switch(r.status){case o.EntryStatus.Empty:T((0,o.fetchSegmentOnCacheMiss)(n,(0,o.upgradeToPendingSegment)(r,c.FetchStrategy.PPR),l,a));break;case o.EntryStatus.Pending:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:N(t)&&j(e,n,l,a);break;default:r.fetchStrategy}break;case o.EntryStatus.Rejected:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:j(e,n,l,a);break;default:r.fetchStrategy}case o.EntryStatus.Fulfilled:}}function j(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,c.FetchStrategy.PPR,t,r);switch(l.status){case o.EntryStatus.Empty:I(T((0,o.fetchSegmentOnCacheMiss)(t,(0,o.upgradeToPendingSegment)(l,c.FetchStrategy.PPR),n,r)),(0,i.getSegmentVaryPathForRequest)(c.FetchStrategy.PPR,r));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}function F(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,r,t,n);if(l.status===o.EntryStatus.Empty){let e=(0,o.upgradeToPendingSegment)(l,r);return I((0,o.waitForSegmentCacheEntry)(e),(0,i.getSegmentVaryPathForRequest)(r,n)),e}if((0,o.canNewFetchStrategyProvideMoreContent)(l.fetchStrategy,r)){let e=(0,o.overwriteRevalidatingSegmentCacheEntry)(r,t,n),l=(0,o.upgradeToPendingSegment)(e,r);return I((0,o.waitForSegmentCacheEntry)(l),(0,i.getSegmentVaryPathForRequest)(r,n)),l}switch(l.status){case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:default:return null}}let A=()=>{};function I(e,t){e.then(e=>{null!==e&&(0,o.upsertSegmentEntry)(Date.now(),t,e)},A)}function D(e,t,n){return n===f.PAGE_SEGMENT_KEY?t===(0,f.addSearchParamsIfPageSegment)(f.PAGE_SEGMENT_KEY,Object.fromEntries(new URLSearchParams(e.renderedSearch))):(0,u.matchSegment)(n,t)}function U(e,t){let n=t.priority-e.priority;if(0!==n)return n;let r=t.phase-e.phase;return 0!==r?r:t.sortId-e.sortId}function H(e,t){let n=e.length;e.push(t),t._heapIndex=n,$(e,t,n)}function B(e){return 0===e.length?null:e[0]}function V(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let n=e.pop();return n!==t&&(e[0]=n,n._heapIndex=0,W(e,n,0)),t}function q(e,t){let n=t._heapIndex;-1!==n&&(0===n?W(e,t,0):U(e[n-1>>>1],t)>0?$(e,t,n):W(e,t,n))}function $(e,t,n){let r=n;for(;r>0;){let n=r-1>>>1,l=e[n];if(!(U(l,t)>0))return;e[n]=t,t._heapIndex=n,e[r]=l,l._heapIndex=r,r=n}}function W(e,t,n){let r=n,l=e.length,a=l>>>1;for(;rU(a,t))uU(o,a)?(e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u):(e[r]=a,a._heapIndex=r,e[n]=t,t._heapIndex=n,r=n);else{if(!(uU(o,t)))return;e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},28732,(e,t,n)=>{"use strict";function r(e){let t=e.indexOf("#"),n=e.indexOf("?"),r=n>-1&&(t<0||n-1?{pathname:e.substring(0,r?n:t),query:r?e.substring(n,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"parsePath",{enumerable:!0,get:function(){return r}})},26935,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(28732);function l(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:n,query:l,hash:a}=(0,r.parsePath)(e);return`${t}${n}${l}${a}`}},20206,(e,t,n)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},67268,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return a}});let r=e.r(20206),l=e.r(28732),a=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:n,hash:a}=(0,l.parsePath)(e);return/\.[^/]+\/?$/.test(t)?`${(0,r.removeTrailingSlash)(t)}${n}${a}`:t.endsWith("/")?`${t}${n}${a}`:`${t}/${n}${a}`};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},39940,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addBasePath",{enumerable:!0,get:function(){return a}});let r=e.r(26935),l=e.r(67268);function a(e,t){return(0,l.normalizePathTrailingSlash)((0,r.addPathPrefix)(e,""))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},93259,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createPrefetchURL:function(){return i},isExternalURL:function(){return o}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(62112),u=e.r(39940);function o(e){return e.origin!==window.location.origin}function i(e){let t;if((0,a.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,u.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return o(t)?null:t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79111,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return c},mountFormInstance:function(){return S},mountLinkInstance:function(){return b},onLinkVisibilityChanged:function(){return E},onNavigationIntent:function(){return _},pingVisibleLinks:function(){return k},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return p},unmountPrefetchableInstance:function(){return w}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(24994),u=e.r(63280),o=e.r(40285),i=e.r(30668),s=null,c={pending:!0},f={pending:!1};function d(e){(0,i.startTransition)(()=>{s?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(c),s=e})}function p(e){s===e&&(s=null)}let h="function"==typeof WeakMap?new WeakMap:new Map,m=new Set,g="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;E(t.target,e)}},{rootMargin:"200px"}):null;function y(e,t){void 0!==h.get(e)&&w(e),h.set(e,t),null!==g&&g.observe(e)}function v(t){if("undefined"==typeof window)return null;{let{createPrefetchURL:n}=e.r(93259);try{return n(t)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${t}' because it cannot be converted to a URL.`),null}}}function b(e,t,n,r,l,a){if(l){let l=v(t);if(null!==l){let t={router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:a};return y(e,t),t}}return{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:a}}function S(e,t,n,r){let l=v(t);null===l||y(e,{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:null})}function w(e){let t=h.get(e);if(void 0!==t){h.delete(e),m.delete(t);let n=t.prefetchTask;null!==n&&(0,o.cancelPrefetchTask)(n)}null!==g&&g.unobserve(e)}function E(e,t){let n=h.get(e);void 0!==n&&(n.isVisible=t,t?m.add(n):m.delete(n),P(n,a.PrefetchPriority.Default))}function _(e,t){let n=h.get(e);void 0!==n&&void 0!==n&&P(n,a.PrefetchPriority.Intent)}function P(t,n){if("undefined"!=typeof window){let r=t.prefetchTask;if(!t.isVisible){null!==r&&(0,o.cancelPrefetchTask)(r);return}let{getCurrentAppRouterState:l}=e.r(19998),a=l();if(null!==a){let e=a.tree;if(null===r){let r=a.nextUrl,l=(0,u.createCacheKey)(t.prefetchHref,r);t.prefetchTask=(0,o.schedulePrefetchTask)(l,e,t.fetchStrategy,n,null)}else(0,o.reschedulePrefetchTask)(r,e,t.fetchStrategy,n)}}}function k(e,t){for(let n of m){let r=n.prefetchTask;if(null!==r&&!(0,o.isPrefetchTaskDirty)(r,e,t))continue;null!==r&&(0,o.cancelPrefetchTask)(r);let l=(0,u.createCacheKey)(n.prefetchHref,e);n.prefetchTask=(0,o.schedulePrefetchTask)(l,t,n.fetchStrategy,a.PrefetchPriority.Default,null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},76534,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return u},doesExportedHtmlMatchBuildId:function(){return s},insertBuildIdComment:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a="",u="bytes=0-63";function o(e){return e.slice(0,24).replace(/-/g,"_")}function i(e,t){return t.includes("-->")||!e.startsWith(a)?e:e.replace(a,a+"")}function s(e,t){return e.startsWith(a+"")}},91666,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l={EntryStatus:function(){return k},canNewFetchStrategyProvideMoreContent:function(){return el},convertRouteTreeToFlightRouterState:function(){return function e(t){let n={};if(null!==t.slots)for(let r in t.slots)n[r]=e(t.slots[r]);return[t.segment,n,null,null,t.isRootLayout]}},createDetachedSegmentCacheEntry:function(){return q},fetchRouteOnCacheMiss:function(){return X},fetchSegmentOnCacheMiss:function(){return Y},fetchSegmentPrefetchesUsingDynamicRequest:function(){return J},getCurrentCacheVersion:function(){return N},getStaleTimeMs:function(){return P},overwriteRevalidatingSegmentCacheEntry:function(){return B},pingInvalidationListeners:function(){return L},readOrCreateRevalidatingSegmentEntry:function(){return H},readOrCreateRouteCacheEntry:function(){return A},readOrCreateSegmentCacheEntry:function(){return U},readRouteCacheEntry:function(){return z},readSegmentCacheEntry:function(){return j},requestOptimisticRouteCacheEntry:function(){return I},revalidateEntireCache:function(){return M},upgradeToPendingSegment:function(){return $},upsertSegmentEntry:function(){return V},waitForSegmentCacheEntry:function(){return F}};for(var a in l)Object.defineProperty(n,a,{enumerable:!0,get:l[a]});let u=e.r(18563),o=e.r(2089),i=e.r(20320),s=e.r(40285),c=e.r(91900),f=e.r(70410),d=e.r(80118),p=e.r(63280),h=e.r(88617),m=e.r(47661),g=e.r(69434),y=e.r(94955),v=e.r(28806),b=e.r(79111),S=e.r(91395),w=e.r(76534),E=e.r(24994),_=e.r(59162);function P(e){return 1e3*Math.max(e,30)}var k=((r={})[r.Empty=0]="Empty",r[r.Pending=1]="Pending",r[r.Fulfilled=2]="Fulfilled",r[r.Rejected=3]="Rejected",r);let R=["",{},null,"metadata-only"],T=(0,m.createCacheMap)(),x=(0,m.createCacheMap)(),O=null,C=0;function N(){return C}function M(e,t){C++,(0,s.startRevalidationCooldown)(),(0,b.pingVisibleLinks)(e,t),L(e,t)}function L(e,t){if(null!==O){let n=O;for(let r of(O=null,n))(0,s.isPrefetchTaskDirty)(r,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(r)}}function z(e,t){let n=(0,c.getRouteVaryPath)(t.pathname,t.search,t.nextUrl);return(0,m.getFromCacheMap)(e,C,T,n,!1)}function j(e,t){return(0,m.getFromCacheMap)(e,C,x,t,!1)}function F(e){let t=e.promise;return null===t&&(t=e.promise=(0,_.createPromiseWithResolvers)()),t.promise}function A(e,t,n){null!==t.onInvalidate&&(null===O?O=new Set([t]):O.add(t));let r=z(e,n);if(null!==r)return r;let l={canonicalUrl:null,status:0,blockedTasks:null,tree:null,metadata:null,couldBeIntercepted:!0,isPPREnabled:!1,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:C},a=(0,c.getRouteVaryPath)(n.pathname,n.search,n.nextUrl);return(0,m.setInCacheMap)(T,a,l,!1),l}function I(e,t,n){let r=t.search;if(""===r)return null;let l=new URL(t);l.search="";let a=z(e,(0,p.createCacheKey)(l.href,n));if(null===a||2!==a.status)return null;let u=new URL(a.canonicalUrl,t.origin),o=""!==u.search?u.search:r,i=""!==a.renderedSearch?a.renderedSearch:r,s=new URL(a.canonicalUrl,location.origin);return s.search=o,{canonicalUrl:(0,d.createHrefFromUrl)(s),status:2,blockedTasks:null,tree:D(a.tree,i),metadata:D(a.metadata,i),couldBeIntercepted:a.couldBeIntercepted,isPPREnabled:a.isPPREnabled,renderedSearch:i,ref:null,size:0,staleAt:a.staleAt,version:a.version}}function D(e,t){let n=null,r=e.slots;if(null!==r)for(let e in n={},r){let l=r[e];n[e]=D(l,t)}return e.isPage?{requestKey:e.requestKey,segment:e.segment,varyPath:(0,c.clonePageVaryPathWithNewSearchParams)(e.varyPath,t),isPage:!0,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}:{requestKey:e.requestKey,segment:e.segment,varyPath:e.varyPath,isPage:!1,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}}function U(e,t,n,r){let l=j(e,r.varyPath);if(null!==l)return l;let a=(0,c.getSegmentVaryPathForRequest)(t,r),u=q(n.staleAt);return(0,m.setInCacheMap)(x,a,u,!1),u}function H(e,t,n,r){var l;let a=(l=r.varyPath,(0,m.getFromCacheMap)(e,C,x,l,!0));if(null!==a)return a;let u=(0,c.getSegmentVaryPathForRequest)(t,r),o=q(n.staleAt);return(0,m.setInCacheMap)(x,u,o,!0),o}function B(e,t,n){let r=(0,c.getSegmentVaryPathForRequest)(e,n),l=q(t.staleAt);return(0,m.setInCacheMap)(x,r,l,!0),l}function V(e,t,n){if((0,m.isValueExpired)(e,C,n))return null;let r=j(e,t);if(null!==r){var l;if(n.fetchStrategy!==r.fetchStrategy&&(l=r.fetchStrategy,!(l""!==e),r=g.ROOT_SEGMENT_REQUEST_KEY,function e(t,n,r,l,a,o,i,s){let f,d,p=null,m=t.slots;if(null!==m)for(let t in f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r),p={},m){let n,u,f,d=m[t],y=d.name,v=d.paramType,b=d.paramKey;if(null!==v){let e=(0,h.parseDynamicParamFromURLPart)(v,a,o),t=null!==b?b:(0,h.getCacheKeyForDynamicParam)(e,"");f=(0,c.appendLayoutVaryPath)(r,t),u=[y,t,v],n=!0}else f=r,u=y,n=(0,h.doesStaticSegmentAppearInURL)(y);let S=n?o+1:o,w=(0,g.createSegmentRequestKeyPart)(u),E=(0,g.appendSegmentRequestKeyPart)(l,t,w);p[t]=e(d,u,f,E,a,S,i,s)}else l.endsWith(S.PAGE_SEGMENT_KEY)?(f=!0,d=(0,c.finalizePageVaryPath)(l,i,r),null===s.metadataVaryPath&&(s.metadataVaryPath=(0,c.finalizeMetadataVaryPath)(l,i,r))):(f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r));return{requestKey:l,segment:n,varyPath:d,isPage:f,slots:p,isRootLayout:t.isRootLayout,hasLoadingBoundary:u.HasLoadingBoundary.SegmentHasLoadingBoundary,hasRuntimePrefetch:t.hasRuntimePrefetch}}(o.tree,r,null,g.ROOT_SEGMENT_REQUEST_KEY,n,0,d,v)),E=v.metadataVaryPath;if(null===E)return Q(e,Date.now()+1e4),null;let _=P(o.staleTime);y=Date.now()+_,l={requestKey:g.HEAD_REQUEST_KEY,segment:g.HEAD_REQUEST_KEY,varyPath:E,isPage:!0,slots:null,isRootLayout:!1,hasLoadingBoundary:u.HasLoadingBoundary.SubtreeHasNoLoadingBoundary,hasRuntimePrefetch:!1},e.status=2,e.tree=w,e.metadata=l,e.staleAt=y,e.couldBeIntercepted=k,e.canonicalUrl=b,e.renderedSearch=d,e.isPPREnabled=x,W(e)}if(!k){let t=(0,c.getFulfilledRouteVaryPath)(r,l,a,k);(0,m.setInCacheMap)(T,t,e,!1)}return{value:null,closed:R.promise}}catch(t){return Q(e,Date.now()+1e4),null}}async function Y(e,t,n,r){let l=new URL(e.canonicalUrl,location.origin),a=n.nextUrl,u=r.requestKey,s=u===g.ROOT_SEGMENT_REQUEST_KEY?"/_index":u,c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_PREFETCH_HEADER]:"1",[o.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:s};null!==a&&(c[o.NEXT_URL]=a);let d=er(l,s);try{let n=await et(d,c);if(!n||!n.ok||204===n.status||"2"!==n.headers.get(o.NEXT_DID_POSTPONE_HEADER)&&0||!n.body)return G(t,Date.now()+1e4),null;let r=(0,_.createPromiseWithResolvers)(),l=en(n.body,r.resolve,function(e){(0,m.setSizeInCacheMap)(t,e)}),a=await (0,i.createFromNextReadableStream)(l,c);if(a.buildId!==(0,f.getAppBuildId)())return G(t,Date.now()+1e4),null;return{value:K(t,a.rsc,a.loading,e.staleAt,a.isPartial),closed:r.promise}}catch(e){return G(t,Date.now()+1e4),null}}async function J(e,t,n,r,l){let a=e.key,u=new URL(t.canonicalUrl,location.origin),s=a.nextUrl;1===l.size&&l.has(t.metadata.requestKey)&&(r=R);let c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_STATE_TREE_HEADER]:(0,y.prepareFlightRouterStateForRequest)(r)};switch(null!==s&&(c[o.NEXT_URL]=s),n){case E.FetchStrategy.Full:break;case E.FetchStrategy.PPRRuntime:c[o.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case E.FetchStrategy.LoadingBoundary:c[o.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let r=await et(u,c);if(!r||!r.ok||!r.body||(0,h.getRenderedSearch)(r)!==t.renderedSearch)return Z(l,Date.now()+1e4),null;let a=(0,_.createPromiseWithResolvers)(),s=null,d=en(r.body,a.resolve,function(e){if(null===s)return;let t=e/s.length;for(let e of s)(0,m.setSizeInCacheMap)(e,t)}),p=await (0,i.createFromNextReadableStream)(d,c),g=n===E.FetchStrategy.PPRRuntime&&p.rp?.[0]===!0;return s=function(e,t,n,r,l,a,u,i){if(l.b!==(0,f.getAppBuildId)())return null!==i&&Z(i,e+1e4),null;let s=(0,y.normalizeFlightData)(l.f);if("string"==typeof s)return null;let c="number"==typeof l.rp?.[1]?l.rp[1]:parseInt(r.headers.get(o.NEXT_ROUTER_STALE_TIME_HEADER)??"",10),d=e+(isNaN(c)?v.STATIC_STALETIME_MS:P(c));for(let r of s){let l=r.seedData;if(null!==l){let o=r.segmentPath,s=u.tree;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"navigate",{enumerable:!0,get:function(){return c}});let r=e.r(20320),l=e.r(1989),a=e.r(80118),u=e.r(91666),o=e.r(63280),i=e.r(91395),s=e.r(24994);function c(e,t,n,r,l,a,i){let c=Date.now(),d=e.href,g=d===window.location.href,y=(0,o.createCacheKey)(d,l),v=(0,u.readRouteCacheEntry)(c,y);if(null!==v&&v.status===u.EntryStatus.Fulfilled){let u=p(c,v,v.tree),o=u.flightRouterState,i=u.seedData,s=h(c,v),d=s.rsc,m=s.isPartial,y=v.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,o,i,d,m,y,v.renderedSearch,a,e.hash)}if(null===v||v.status!==u.EntryStatus.Rejected){let o=(0,u.requestOptimisticRouteCacheEntry)(c,e,l);if(null!==o){let u=p(c,o,o.tree),i=u.flightRouterState,s=u.seedData,d=h(c,o),m=d.rsc,y=d.isPartial,v=o.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,i,s,m,y,v,o.renderedSearch,a,e.hash)}}let b=i.collectedDebugInfo??[];return void 0===i.collectedDebugInfo&&(b=i.collectedDebugInfo=[]),{tag:s.NavigationResultTag.Async,data:m(c,e,t,l,g,n,r,a,e.hash,b)}}function f(e,t,n,a,u,o,i,c,f,p,h,m,g,y,v){let b=[],S=(0,l.startPPRNavigation)(e,n,o,i,c,f,p,h,u,b);if(null!==S){let e=S.dynamicRequestTree;if(null!==e){let n=(0,r.fetchServerResponse)(new URL(m,t.origin),{flightRouterState:e,nextUrl:a});(0,l.listenForDynamicRequest)(S,n)}return d(S,o,m,g,b,y,v)}return{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:m,shouldScroll:y}}}function d(e,t,n,r,l,a,u){let o=e.route;if(null===o)return{tag:s.NavigationResultTag.MPA,data:n};let i=e.node;return{tag:s.NavigationResultTag.Success,data:{flightRouterState:o,cacheNode:null!==i?i:t,canonicalUrl:n,renderedSearch:r,scrollableSegments:l,shouldScroll:a,hash:u}}}function p(e,t,n){let r={},l={},a=n.slots;if(null!==a)for(let n in a){let u=p(e,t,a[n]);r[n]=u.flightRouterState,l[n]=u.seedData}let o=null,s=null,c=!0,f=(0,u.readSegmentCacheEntry)(e,n.varyPath);if(null!==f)switch(f.status){case u.EntryStatus.Fulfilled:o=f.rsc,s=f.loading,c=f.isPartial;break;case u.EntryStatus.Pending:{let e=(0,u.waitForSegmentCacheEntry)(f);o=e.then(e=>null!==e?e.rsc:null),s=e.then(e=>null!==e?e.loading:null),c=!0}case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{flightRouterState:[(0,i.addSearchParamsIfPageSegment)(n.segment,Object.fromEntries(new URLSearchParams(t.renderedSearch))),r,null,null,n.isRootLayout],seedData:[o,l,s,c,!1]}}function h(e,t){let n=null,r=!0,l=(0,u.readSegmentCacheEntry)(e,t.metadata.varyPath);if(null!==l)switch(l.status){case u.EntryStatus.Fulfilled:n=l.rsc,r=l.isPartial;break;case u.EntryStatus.Pending:n=(0,u.waitForSegmentCacheEntry)(l).then(e=>null!==e?e.rsc:null),r=!0;case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{rsc:n,isPartial:r}}async function m(e,t,n,u,o,i,c,f,p,h){let m=(0,r.fetchServerResponse)(t,{flightRouterState:c,nextUrl:u}),g=await m;if("string"==typeof g)return{tag:s.NavigationResultTag.MPA,data:g};let{flightData:y,canonicalUrl:v,renderedSearch:b,debugInfo:S}=g;null!==S&&h.push(...S);let w=function(e,t){let n=e;for(let{segmentPath:r,tree:l}of t){let t=n!==e;n=function e(t,n,r,l,a){if(a===r.length)return n;let u=r[a],o=t[1],i={};for(let t in o)if(t===u){let u=o[t];i[t]=e(u,n,r,l,a+2)}else i[t]=o[t];if(l)return t[1]=i,t;let s=[t[0],i];return 2 in t&&(s[2]=t[2]),3 in t&&(s[3]=t[3]),4 in t&&(s[4]=t[4]),s}(n,l,r,t,0)}return n}(c,y),E=[],_=(0,l.startPPRNavigation)(e,n,i,c,w,null,null,!0,o,E);return null!==_?(null!==_.dynamicRequestTree&&(0,l.listenForDynamicRequest)(_,m),d(_,i,(0,a.createHrefFromUrl)(v),b,E,f,p)):{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:(0,a.createHrefFromUrl)(v),shouldScroll:f}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},28806,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DYNAMIC_STALETIME_MS:function(){return c},STATIC_STALETIME_MS:function(){return f},generateSegmentsFromPatch:function(){return function e(t){let n=[],[r,l]=t;if(0===Object.keys(l).length)return[[r]];for(let[t,a]of Object.entries(l))for(let l of e(a))""===r?n.push([t,...l]):n.push([r,t,...l]);return n}},handleExternalUrl:function(){return d},navigateReducer:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(80118),u=e.r(40494),o=e.r(94345),i=e.r(24994),s=e.r(91666),c=1e3*Number("0"),f=(0,s.getStaleTimeMs)(Number("300"));function d(e,t,n,r){return t.mpaNavigation=!0,t.canonicalUrl=n,t.pendingPush=r,t.scrollableSegments=void 0,(0,u.handleMutable)(e,t)}function p(e,t){let{url:n,isExternalUrl:r,navigateType:l,shouldScroll:s}=t,c={},f=(0,a.createHrefFromUrl)(n),p="push"===l;if(c.preserveCustomHistoryState=!1,c.pendingPush=p,r)return d(e,c,n.toString(),p);if(document.getElementById("__next-page-redirect"))return d(e,c,f,p);let h=new URL(e.canonicalUrl,location.origin),m=(0,o.navigate)(n,h,e.cache,e.tree,e.nextUrl,s,c);return function e(t,n,r,l,a){switch(a.tag){case i.NavigationResultTag.MPA:return d(n,r,a.data,l);case i.NavigationResultTag.NoOp:{r.canonicalUrl=a.data.canonicalUrl;let e=new URL(n.canonicalUrl,t);return t.pathname===e.pathname&&t.search===e.search&&t.hash!==e.hash&&(r.onlyHashChange=!0,r.shouldScroll=a.data.shouldScroll,r.hashFragment=t.hash,r.scrollableSegments=[]),(0,u.handleMutable)(n,r)}case i.NavigationResultTag.Success:return r.cache=a.data.cacheNode,r.patchedTree=a.data.flightRouterState,r.renderedSearch=a.data.renderedSearch,r.canonicalUrl=a.data.canonicalUrl,r.scrollableSegments=a.data.scrollableSegments,r.shouldScroll=a.data.shouldScroll,r.hashFragment=a.data.hash,(0,u.handleMutable)(n,r);case i.NavigationResultTag.Async:return a.data.then(a=>e(t,n,r,l,a),()=>n);default:return n}}(n,e,c,p,m)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},61447,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,n,l,a,u,o){if(0===Object.keys(a[1]).length){n.head=o;return}for(let i in a[1]){let s,c=a[1][i],f=c[0],d=(0,r.createRouterCacheKey)(f),p=null!==u&&void 0!==u[1][i]?u[1][i]:null;if(l){let r=l.parallelRoutes.get(i);if(r){let l,a=new Map(r),u=a.get(d);l=null!==p?{lazyData:null,rsc:p[0],prefetchRsc:null,head:null,prefetchHead:null,loading:p[2],parallelRoutes:new Map(u?.parallelRoutes),navigatedAt:t}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(u?.parallelRoutes),loading:null,navigatedAt:t},a.set(d,l),e(t,l,u,c,p||null,o),n.parallelRoutes.set(i,a);continue}}if(null!==p){let e=p[0],n=p[2];s={lazyData:null,rsc:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:n,navigatedAt:t}}else s={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:t};let h=n.parallelRoutes.get(i);h?h.set(d,s):n.parallelRoutes.set(i,new Map([[d,s]])),e(t,s,void 0,c,p,o)}}}});let r=e.r(43317);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},59941,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return l}});let r=e.r(43317);function l(e,t,n){for(let l in n[1]){let a=n[1][l][0],u=(0,r.createRouterCacheKey)(a),o=t.parallelRoutes.get(l);if(o){let t=new Map(o);t.delete(u),e.parallelRoutes.set(l,t)}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},96397,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={fillCacheWithNewSubTreeData:function(){return c},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return f}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(59941),u=e.r(61447),o=e.r(43317),i=e.r(91395);function s(e,t,n,r,l){let{segmentPath:s,seedData:c,tree:f,head:d}=r,p=t,h=n;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyFlightData",{enumerable:!0,get:function(){return a}});let r=e.r(61447),l=e.r(96397);function a(e,t,n,a){let{tree:u,seedData:o,head:i,isRootRender:s}=a;if(null===o)return!1;if(s){let l=o[0];n.loading=o[2],n.rsc=l,n.prefetchRsc=null,(0,r.fillLazyItemsTillLeafWithHead)(e,n,t,u,o,i)}else n.rsc=t.rsc,n.prefetchRsc=t.prefetchRsc,n.parallelRoutes=new Map(t.parallelRoutes),n.loading=t.loading,(0,l.fillCacheWithNewSubTreeData)(e,n,t,a);return!0}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},51441,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={addRefreshMarkerToActiveParallelSegments:function(){return function e(t,n){let[r,l,,a]=t;for(let u in r.includes(o.PAGE_SEGMENT_KEY)&&"refresh"!==a&&(t[2]=n,t[3]="refresh"),l)e(l[u],n)}},refreshInactiveParallelSegments:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(1465),u=e.r(20320),o=e.r(91395);async function i(e){let t=new Set;await s({...e,rootTree:e.updatedTree,fetchedSegments:t})}async function s({navigatedAt:e,state:t,updatedTree:n,updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i=n,canonicalUrl:c}){let[,f,d,p]=n,h=[];if(d&&d!==c&&"refresh"===p&&!o.has(d)){o.add(d);let n=(0,u.fetchServerResponse)(new URL(d,location.origin),{flightRouterState:[i[0],i[1],i[2],"refetch"],nextUrl:l?t.nextUrl:null}).then(t=>{if("string"!=typeof t){let{flightData:n}=t;for(let t of n)(0,a.applyFlightData)(e,r,r,t)}});h.push(n)}for(let n in f){let a=s({navigatedAt:e,state:t,updatedTree:f[n],updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i,canonicalUrl:c});h.push(a)}await Promise.all(h)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},84938,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,n,r,i){let s,[c,f,d,p,h]=n;if(1===t.length){let e=o(n,r);return(0,u.addRefreshMarkerToActiveParallelSegments)(e,i),e}let[m,g]=t;if(!(0,a.matchSegment)(m,c))return null;if(2===t.length)s=o(f[g],r);else if(null===(s=e((0,l.getNextFlightSegmentPath)(t),f[g],r,i)))return null;let y=[t[0],{...f,[g]:s},d,p];return h&&(y[4]=!0),(0,u.addRefreshMarkerToActiveParallelSegments)(y,i),y}}});let r=e.r(91395),l=e.r(94955),a=e.r(22039),u=e.r(51441);function o(e,t){let[n,l]=e,[u,i]=t;if(u===r.DEFAULT_SEGMENT_KEY&&n!==r.DEFAULT_SEGMENT_KEY)return e;if((0,a.matchSegment)(n,u)){let t={};for(let e in l)void 0!==i[e]?t[e]=o(l[e],i[e]):t[e]=l[e];for(let e in i)t[e]||(t[e]=i[e]);let r=[n,t];return e[2]&&(r[2]=e[2]),e[3]&&(r[3]=e[3]),e[4]&&(r[4]=e[4]),r}return t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},42887,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"AppRouterAnnouncer",{enumerable:!0,get:function(){return u}});let r=e.r(30668),l=e.r(69941),a="next-route-announcer";function u({tree:e}){let[t,n]=(0,r.useState)(null);(0,r.useEffect)(()=>(n(function(){let e=document.getElementsByName(a)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(a);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(a)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[u,o]=(0,r.useState)(""),i=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&o(e),i.current=e},[e]),t?(0,l.createPortal)(u,t):null}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},43941,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findHeadInCache",{enumerable:!0,get:function(){return a}});let r=e.r(91395),l=e.r(43317);function a(e,t){return function e(t,n,a,u){if(0===Object.keys(n).length)return[t,a,u];let o=Object.keys(n).filter(e=>"children"!==e);for(let u of("children"in n&&o.unshift("children"),o)){let[o,i]=n[u];if(o===r.DEFAULT_SEGMENT_KEY)continue;let s=t.parallelRoutes.get(u);if(!s)continue;let c=(0,l.createRouterCacheKey)(o),f=(0,l.createRouterCacheKey)(o,!0),d=s.get(c);if(!d)continue;let p=e(d,i,a+"/"+c,a+"/"+f);if(p)return p}return null}(e,t,"","")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},36254,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"pathHasPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(28732);function l(e,t){if("string"!=typeof e)return!1;let{pathname:n}=(0,r.parsePath)(e);return n===t||n.startsWith(t+"/")}},37023,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hasBasePath",{enumerable:!0,get:function(){return l}});let r=e.r(36254);function l(e){return(0,r.pathHasPrefix)(e,"")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},44351,(e,t,n)=>{"use strict";function r(e){return e}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeBasePath",{enumerable:!0,get:function(){return r}}),e.r(37023),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},9984,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={GracefulDegradeBoundary:function(){return o},default:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(48277),u=e.r(30668);class o extends u.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,u.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,n])=>{e.setAttribute(t,n)})}render(){let{hasError:e}=this.state;return("undefined"==typeof window||this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(35856),l=e.r(48277);e.r(30668);let a=r._(e.r(9984)),u=e.r(71202),o=e.r(62112),i="undefined"!=typeof window&&(0,o.isBot)(window.navigator.userAgent);function s({children:e,errorComponent:t,errorStyles:n,errorScripts:r}){return i?(0,l.jsx)(a.default,{children:e}):(0,l.jsx)(u.ErrorBoundary,{errorComponent:t,errorStyles:n,errorScripts:r,children:e})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},87670,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createEmptyCacheNode:function(){return N},default:function(){return j}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(35856),u=e.r(61909),o=e.r(48277),i=u._(e.r(30668)),s=e.r(45243),c=e.r(98165),f=e.r(80118),d=e.r(69370),p=e.r(53128),h=e.r(42887),m=e.r(2188),g=e.r(43941),y=e.r(83648),v=e.r(44351),b=e.r(37023),S=e.r(5725),w=e.r(61524),E=e.r(19998),_=e.r(44216),P=e.r(84628),k=e.r(79111),R=a._(e.r(81133)),T=a._(e.r(75115)),x=e.r(64381),O={};function C({appRouterState:e}){return(0,i.useInsertionEffect)(()=>{let{tree:t,pushRef:n,canonicalUrl:r,renderedSearch:l}=e,a={...n.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:l}};n.pendingPush&&(0,f.createHrefFromUrl)(new URL(window.location.href))!==r?(n.pendingPush=!1,window.history.pushState(a,"",r)):window.history.replaceState(a,"",r)},[e]),(0,i.useEffect)(()=>{(0,k.pingVisibleLinks)(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function N(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1}}function M(e){null==e&&(e={});let t=window.history.state,n=t?.__NA;n&&(e.__NA=n);let r=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return r&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=r),e}function L({headCacheNode:e}){let t=null!==e?e.head:null,n=null!==e?e.prefetchHead:null,r=null!==n?n:t;return(0,i.useDeferredValue)(t,r)}function z({actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r}){let l,a=(0,p.useActionQueue)(e),{canonicalUrl:u}=a,{searchParams:f,pathname:w}=(0,i.useMemo)(()=>{let e=new URL(u,"undefined"==typeof window?"http://n":window.location.href);return{searchParams:e.searchParams,pathname:(0,b.hasBasePath)(e.pathname)?(0,v.removeBasePath)(e.pathname):e.pathname}},[u]);(0,i.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(O.pendingMpaPath=void 0,(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,i.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,P.isRedirectError)(t)){e.preventDefault();let n=(0,_.getURLFromRedirectError)(t);(0,_.getRedirectTypeFromError)(t)===P.RedirectType.push?E.publicAppRouterInstance.push(n,{}):E.publicAppRouterInstance.replace(n,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:k}=a;if(k.mpaNavigation){if(O.pendingMpaPath!==u){let e=window.location;k.pendingPush?e.assign(u):e.replace(u),O.pendingMpaPath=u}throw y.unresolvedThenable}(0,i.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),n=e=>{let t=window.location.href,n=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,i.startTransition)(()=>{(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(e??t,t),historyState:n})})};window.history.pushState=function(t,r,l){return t?.__NA||t?._N||(t=M(t),l&&n(l)),e(t,r,l)},window.history.replaceState=function(e,r,l){return e?.__NA||e?._N||(e=M(e),l&&n(l)),t(e,r,l)};let r=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,i.startTransition)(()=>{(0,E.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",r),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",r)}},[]);let{cache:T,tree:N,nextUrl:z,focusAndScrollRef:j,previousNextUrl:F}=a,A=(0,i.useMemo)(()=>(0,g.findHeadInCache)(T,N[1]),[T,N]),D=(0,i.useMemo)(()=>(0,S.getSelectedParams)(N),[N]),U=(0,i.useMemo)(()=>({parentTree:N,parentCacheNode:T,parentSegmentPath:null,parentParams:{},debugNameContext:"/",url:u,isActive:!0}),[N,T,u]),H=(0,i.useMemo)(()=>({tree:N,focusAndScrollRef:j,nextUrl:z,previousNextUrl:F}),[N,j,z,F]);if(null!==A){let[e,t,n]=A;l=(0,o.jsx)(L,{headCacheNode:e},"undefined"==typeof window?n:t)}else l=null;let B=(0,o.jsxs)(m.RedirectBoundary,{children:[l,(0,o.jsx)(x.RootLayoutBoundary,{children:T.rsc}),(0,o.jsx)(h.AppRouterAnnouncer,{tree:N})]});return B=(0,o.jsx)(R.default,{errorComponent:t[0],errorStyles:t[1],children:B}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C,{appRouterState:a}),(0,o.jsx)(I,{}),(0,o.jsx)(d.NavigationPromisesContext.Provider,{value:null,children:(0,o.jsx)(d.PathParamsContext.Provider,{value:D,children:(0,o.jsx)(d.PathnameContext.Provider,{value:w,children:(0,o.jsx)(d.SearchParamsContext.Provider,{value:f,children:(0,o.jsx)(s.GlobalLayoutRouterContext.Provider,{value:H,children:(0,o.jsx)(s.AppRouterContext.Provider,{value:E.publicAppRouterInstance,children:(0,o.jsx)(s.LayoutRouterContext.Provider,{value:U,children:B})})})})})})})]})}function j({actionQueue:e,globalErrorState:t,webSocket:n,staticIndicatorState:r}){(0,w.useNavFailureHandler)();let l=(0,o.jsx)(z,{actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r});return(0,o.jsx)(R.default,{errorComponent:T.default,children:l})}let F=new Set,A=new Set;function I(){let[,e]=i.default.useState(0),t=F.size;return(0,i.useEffect)(()=>{let n=()=>e(e=>e+1);return A.add(n),t!==F.size&&n(),()=>{A.delete(n)}},[t,e]),[...F].map((e,t)=>(0,o.jsx)("link",{rel:"stylesheet",href:`${e}`,precedence:"next"},t))}globalThis._N_E_STYLE_LOAD=function(e){let t=F.size;return F.add(e),F.size!==t&&A.forEach(e=>e()),Promise.resolve()},("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},76702,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverPatchReducer",{enumerable:!0,get:function(){return c}});let r=e.r(80118),l=e.r(84938),a=e.r(84697),u=e.r(28806),o=e.r(1465),i=e.r(40494),s=e.r(87670);function c(e,t){let{serverResponse:n,navigatedAt:c}=t,f={};if(f.preserveCustomHistoryState=!1,"string"==typeof n)return(0,u.handleExternalUrl)(e,f,n,e.pushRef.pendingPush);let{flightData:d,canonicalUrl:p,renderedSearch:h}=n,m=e.tree,g=e.cache;for(let t of d){let{segmentPath:n,tree:i}=t,d=(0,l.applyRouterStatePatchToTree)(["",...n],m,i,e.canonicalUrl);if(null===d)return e;if((0,a.isNavigatingToNewRootLayout)(m,d))return(0,u.handleExternalUrl)(e,f,e.canonicalUrl,e.pushRef.pendingPush);f.canonicalUrl=(0,r.createHrefFromUrl)(p);let y=(0,s.createEmptyCacheNode)();(0,o.applyFlightData)(c,g,y,t),f.patchedTree=d,f.renderedSearch=h,f.cache=y,g=y,m=d}return(0,i.handleMutable)(e,f)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},43746,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"restoreReducer",{enumerable:!0,get:function(){return a}});let r=e.r(80118),l=e.r(5725);function a(e,t){let n,a,{url:u,historyState:o}=t,i=(0,r.createHrefFromUrl)(u);o?(n=o.tree,a=o.renderedSearch):(n=e.tree,a=e.renderedSearch);let s=e.cache;return{canonicalUrl:i,renderedSearch:a,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:s,tree:n,nextUrl:(0,l.extractPathFromFlightRouterState)(n)??u.pathname,previousNextUrl:null,debugInfo:null}}e.r(1989),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},45733,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleSegmentMismatch",{enumerable:!0,get:function(){return l}});let r=e.r(28806);function l(e,t,n){return(0,r.handleExternalUrl)(e,{},e.canonicalUrl,!0)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},64324,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"refreshReducer",{enumerable:!0,get:function(){return m}});let r=e.r(20320),l=e.r(80118),a=e.r(84938),u=e.r(84697),o=e.r(28806),i=e.r(40494),s=e.r(61447),c=e.r(87670),f=e.r(45733),d=e.r(20017),p=e.r(51441),h=e.r(91666);function m(e,t){let{origin:n}=t,m={},g=e.canonicalUrl,y=e.tree;m.preserveCustomHistoryState=!1;let v=(0,c.createEmptyCacheNode)(),b=(0,d.hasInterceptionRouteInCurrentTree)(e.tree);v.lazyData=(0,r.fetchServerResponse)(new URL(g,n),{flightRouterState:[y[0],y[1],y[2],"refetch"],nextUrl:b?e.nextUrl:null});let S=Date.now();return v.lazyData.then(async n=>{if("string"==typeof n)return(0,o.handleExternalUrl)(e,m,n,e.pushRef.pendingPush);let{flightData:r,canonicalUrl:c,renderedSearch:d}=n;for(let n of(v.lazyData=null,r)){let{tree:r,seedData:i,head:w,isRootRender:E}=n;if(!E)return console.log("REFRESH FAILED"),e;let _=(0,a.applyRouterStatePatchToTree)([""],y,r,e.canonicalUrl);if(null===_)return(0,f.handleSegmentMismatch)(e,t,r);if((0,u.isNavigatingToNewRootLayout)(y,_))return(0,o.handleExternalUrl)(e,m,g,e.pushRef.pendingPush);if(m.canonicalUrl=(0,l.createHrefFromUrl)(c),null!==i){let t=i[0],n=i[2];v.rsc=t,v.prefetchRsc=null,v.loading=n,(0,s.fillLazyItemsTillLeafWithHead)(S,v,void 0,r,i,w),(0,h.revalidateEntireCache)(e.nextUrl,_)}await (0,p.refreshInactiveParallelSegments)({navigatedAt:S,state:e,updatedTree:_,updatedCache:v,includeNextUrl:b,canonicalUrl:m.canonicalUrl||e.canonicalUrl}),m.cache=v,m.patchedTree=_,m.renderedSearch=d,y=_}return(0,i.handleMutable)(e,m)},()=>e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1470,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hmrRefreshReducer",{enumerable:!0,get:function(){return r}}),e.r(20320),e.r(80118),e.r(84938),e.r(84697),e.r(28806),e.r(40494),e.r(1465),e.r(87670),e.r(45733),e.r(20017);let r=function(e,t){return e};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},98454,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"assignLocation",{enumerable:!0,get:function(){return l}});let r=e.r(39940);function l(e,t){if(e.startsWith(".")){let n=t.origin+t.pathname;return new URL((n.endsWith("/")?n:n+"/")+e)}return new URL((0,r.addBasePath)(e),t.href)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},17213,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={extractInfoFromServerReferenceId:function(){return a},omitUnusedArgs:function(){return u}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});function a(e){let t=parseInt(e.slice(0,2),16),n=t>>1&63,r=Array(6);for(let e=0;e<6;e++){let t=n>>5-e&1;r[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:r,hasRestArgs:1==(1&t)}}function u(e,t){let n=Array(e.length);for(let r=0;r=6&&t.hasRestArgs)&&(n[r]=e[r]);return n}},92114,(e,t,n)=>{"use strict";let r;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverActionReducer",{enumerable:!0,get:function(){return C}});let l=e.r(59295),a=e.r(85045),u=e.r(2089),o=e.r(40288),i=e.r(30545),s=e.r(98454),c=e.r(80118),f=e.r(28806),d=e.r(84938),p=e.r(84697),h=e.r(40494),m=e.r(61447),g=e.r(87670),y=e.r(20017),v=e.r(45733),b=e.r(51441),S=e.r(94955),w=e.r(44216),E=e.r(84628),_=e.r(44351),P=e.r(37023),k=e.r(17213),R=e.r(91666),T=i.createFromFetch;async function x(e,t,{actionId:n,actionArgs:c}){let f,d,p,h,m=(0,i.createTemporaryReferenceSet)(),g=(0,k.extractInfoFromServerReferenceId)(n),y="use-cache"===g.type?(0,k.omitUnusedArgs)(c,g):c,v=await (0,i.encodeReply)(y,{temporaryReferences:m}),b={Accept:u.RSC_CONTENT_TYPE_HEADER,[u.ACTION_HEADER]:n,[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,S.prepareFlightRouterStateForRequest)(e.tree)};t&&(b[u.NEXT_URL]=t);let w=await fetch(e.canonicalUrl,{method:"POST",headers:b,body:v});if("1"===w.headers.get(u.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new o.UnrecognizedActionError(`Server Action "${n}" was not found on the server. +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50407,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getAssetPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(84524);function l(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new r.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?u.createElement("select",{is:r.is}):u.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?u.createElement(l,{is:r.is}):u.createElement(l)}}a[eW]=t,a[eK]=r;e:for(u=t.child;null!==u;){if(5===u.tag||6===u.tag)a.appendChild(u.stateNode);else if(4!==u.tag&&27!==u.tag&&null!==u.child){u.child.return=u,u=u.child;continue}if(u===t)break;for(;null===u.sibling;){if(null===u.return||u.return===t)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}switch(t.stateNode=a,cl(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&ou(t)}}return of(t),t.subtreeFlags&=-0x2000001,oo(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ou(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));if(e=en.current,rY(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=rB))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eW]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||ct(e.nodeValue,n)))||rQ(t,!0)}else(e=ci(e).createTextNode(r))[eW]=t,t.stateNode=e}return of(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rY(t),null!==n){if(null===e){if(!r)throw Error(i(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(i(557));e[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),e=!1}else n=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return l7(t),t;return l7(t),null}if(0!=(128&t.flags))throw Error(i(558))}return of(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rY(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(i(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(i(317));l[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),l=!1}else l=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&t.flags)return l7(t),t;return l7(t),null}}if(l7(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),os(t,t.updateQueue),of(t),null;case 4:return ea(),null===e&&s1(t.stateNode.containerInfo),t.flags|=0x4000000,of(t),null;case 10:return r8(t.type),of(t),null;case 19:if(an(t),null===(r=t.memoizedState))return of(t),null;if(l=0!=(128&t.flags),null===(a=r.rendering))if(l)oc(r,!1);else{if(0!==iM||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=ar(e))){for(t.flags|=128,oc(r,!1),t.updateQueue=e=a.updateQueue,os(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rS(n,e),n=n.sibling;return at(t,1&ae.current|2),rq&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ey()>iV&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304)}else{if(!l)if(null!==(e=ar(a))){if(t.flags|=128,l=!0,t.updateQueue=e=e.updateQueue,os(t,e),oc(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rq)return of(t),null}else 2*ey()-r.renderingStartTime>iV&&0x20000000!==n&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ey(),e.sibling=null,a=ae.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rq?at(t,a):(n=a,Z(l3,t),Z(ae,n),null===l4&&(l4=t)),rq&&rA(t,r.treeForkCount),e}return of(t),null;case 22:case 23:return l7(t),l2(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(of(t),6&t.subtreeFlags&&(t.flags|=8192)):of(t),null!==(n=t.updateQueue)&&os(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(lv),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),r8(lo),of(t),null;case 25:return null;case 30:return t.flags|=0x2000000,of(t),null}throw Error(i(156,t.tag))}(t.alternate,t,iN);if(null!==n){iP=n;return}if(null!==(t=t.sibling)){iP=t;return}iP=t=e}while(null!==t)0===iM&&(iM=5)}function sh(e,t){do{var n=function(e,t){switch(rU(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return r8(lo),ea(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return eo(t),null;case 31:if(null!==t.memoizedState){if(l7(t),null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(l7(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return an(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ea(),null;case 10:return r8(t.type),null;case 22:case 23:return l7(t),l2(),null!==e&&J(lv),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return r8(lo),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,iP=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){iP=e;return}iP=e=n}while(null!==e)iM=6,iP=null}function sm(e,t,n,r,l,a,u,o,s,c,f){e.cancelPendingCommit=null;do sE();while(0!==iW)if(0!=(6&iE))throw Error(i(327));if(null!==t){var d;if(t===e.current)throw Error(i(177));if(!function(e,t,n,r,l,a){var u=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,i=e.expirationTimes,s=e.hiddenUpdates;for(n=u&~n;0fc){o.length=u;break}d=new Promise(cR.bind(d)),o.push(d)}}}return 0g&&(u=g,g=m,m=u);var y=nH(o,m),v=nH(o,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=f.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),m>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(f=[],p=o;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof o.focus&&o.focus(),o=0;on?32:n,W.T=null,n=iY,iY=null;var a=iK,u=iG;if(iW=0,iQ=iK=null,iG=0,0!=(6&iE))throw Error(i(331));var o=iE;if(iE|=4,iv(a.current),ic(a,a.current,u,n),iE=o,sI(0,!1),ek&&"function"==typeof ek.onPostCommitFiberRoot)try{ek.onPostCommitFiberRoot(eP,a)}catch(e){}return!0}finally{K.p=l,W.T=r,sw(e,t)}}function sP(e,t,n){t=rT(n,t),t=uF(e.stateNode,t,2),null!==(e=lq(e,t,2))&&(eA(e,2),sA(e))}function sk(e,t,n){if(3===e.tag)sP(e,e,n);else for(;null!==t;){if(3===t.tag){sP(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===i$||!i$.has(r))){e=rT(n,e),null!==(r=lq(t,n=uA(2),2))&&(uI(n,r,t,e),eA(r,2),sA(r));break}}t=t.return}}function sR(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new iw;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(iC=!0,l.add(n),e=sT.bind(null,e,t,n),t.then(e,e))}function sT(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,i_===e&&(ik&n)===n&&(4===iM||3===iM&&(0x3c00000&ik)===ik&&300>ey()-iH?0==(2&iE)&&sr(e,0):ij|=n,iA===ik&&(iA=0)),sA(e)}function sx(e,t){0===t&&(t=ej()),null!==(e=rd(e,t))&&(eA(e,t),sA(e))}function sO(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sx(e,n)}function sC(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),sx(e,n)}var sN=null,sM=null,sL=!1,sz=!1,sj=!1,sF=0;function sA(e){e!==sM&&null===e.next&&(null===sM?sN=sM=e:sM=sM.next=e),sz=!0,sL||(sL=!0,cg(function(){0!=(6&iE)?ep(eb,sD):sU()}))}function sI(e,t){if(!sj&&sz){sj=!0;do for(var n=!1,r=sN;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var u=r.suspendedLanes,o=r.pingedLanes;a=0xc000095&(a=(1<<31-eR(42|e)+1)-1&(l&~(u&~o)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sV(r,a))}else a=ik,0==(3&(a=eL(r,r===i_?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ez(r,a)||(n=!0,sV(r,a));r=r.next}while(n)sj=!1}}function sD(){sU()}function sU(){sz=sL=!1;var e,t=0;0===sF||((e=window.event)&&"popstate"===e.type?e===cd||(cd=e,0):(cd=null,1))||(t=sF);for(var n=ey(),r=null,l=sN;null!==l;){var a=l.next,u=sH(l,n);0===u?(l.next=null,null===r?sN=a:r.next=a,null===a&&(sM=r)):(r=l,(0!==t||0!=(3&u))&&(sz=!0)),l=a}0!==iW&&5!==iW||sI(t,!1),0!==sF&&(sF=0)}function sH(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function fu(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function fo(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function fi(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fs(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=fi(t),e.suspenseyImages.push(t)),e=fp.bind(e),t.decode().then(e,e))}var fc=0;function ff(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fm(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function fd(){this.count--,ff(this)}function fp(){this.imgCount--,ff(this)}var fh=null;function fm(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fh=new Map,t.forEach(fg,e),fh=null,fd.call(e))}function fg(e,t){if(!(4&t.state.loading)){var n=fh.get(e);if(n)var r=n.get(null);else{n=new Map,fh.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(94454)},98084,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HeadManagerContext",{enumerable:!0,get:function(){return r}});let r=e.r(35856)._(e.r(30668)).default.createContext({})},26717,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={onCaughtError:function(){return d},onUncaughtError:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(35856),u=e.r(31028),o=e.r(19551),i=e.r(96887),s=e.r(71202),c=a._(e.r(75115)),f={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function d(e,t){let n,r=t.errorBoundary?.constructor;if(n=n||r===s.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===c.default)return p(e);(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||f.originConsoleError(e)}function p(e){(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||(0,i.reportGlobalError)(e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},5725,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={computeChangedPath:function(){return f},extractPathFromFlightRouterState:function(){return c},getSelectedParams:function(){return function e(t,n={}){for(let r of Object.values(t[1])){let t=r[0],l=Array.isArray(t),a=l?t[1]:t;!a||a.startsWith(u.PAGE_SEGMENT_KEY)||(l&&("c"===t[2]||"oc"===t[2])?n[t[0]]=t[1].split("/"):l&&(n[t[0]]=t[1]),n=e(r,n))}return n}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(50864),u=e.r(91395),o=e.r(22039),i=e=>"string"==typeof e?"children"===e?"":e:e[1];function s(e){return e.reduce((e,t)=>{let n;return""===(t="/"===(n=t)[0]?n.slice(1):n)||(0,u.isGroupSegment)(t)?e:`${e}/${t}`},"")||"/"}function c(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===u.DEFAULT_SEGMENT_KEY||a.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t.startsWith(u.PAGE_SEGMENT_KEY))return"";let n=[i(t)],r=e[1]??{},l=r.children?c(r.children):void 0;if(void 0!==l)n.push(l);else for(let[e,t]of Object.entries(r)){if("children"===e)continue;let r=c(t);void 0!==r&&n.push(r)}return s(n)}function f(e,t){let n=function e(t,n){let[r,l]=t,[u,s]=n,f=i(r),d=i(u);if(a.INTERCEPTION_ROUTE_MARKERS.some(e=>f.startsWith(e)||d.startsWith(e)))return"";if(!(0,o.matchSegment)(r,u))return c(n)??"";for(let t in l)if(s[t]){let n=e(l[t],s[t]);if(null!==n)return`${i(u)}/${n}`}return null}(e,t);return null==n||"/"===n?n:s(n.split("/"))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},40494,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleMutable",{enumerable:!0,get:function(){return a}});let r=e.r(5725);function l(e){return void 0!==e}function a(e,t){let n=t.shouldScroll??!0,a=e.previousNextUrl,u=e.nextUrl;if(l(t.patchedTree)){let n=(0,r.computeChangedPath)(e.tree,t.patchedTree);n?(a=u,u=n):u||(u=e.canonicalUrl)}return{canonicalUrl:t.canonicalUrl??e.canonicalUrl,renderedSearch:t.renderedSearch??e.renderedSearch,pushRef:{pendingPush:l(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:l(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:l(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!n&&(!!l(t?.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:t.onlyHashChange||!1,hashFragment:n?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:n?t?.scrollableSegments??e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,tree:l(t.patchedTree)?t.patchedTree:e.tree,nextUrl:u,previousNextUrl:a,debugInfo:t.collectedDebugInfo??null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},84697,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,n){let r=t[0],l=n[0];if(Array.isArray(r)&&Array.isArray(l)){if(r[0]!==l[0]||r[2]!==l[2])return!0}else if(r!==l)return!0;if(t[4])return!n[4];if(n[4])return!0;let a=Object.values(t[1])[0],u=Object.values(n[1])[0];return!a||!u||e(a,u)}}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1989,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={abortTask:function(){return y},listenForDynamicRequest:function(){return g},startPPRNavigation:function(){return d},updateCacheNodeOnPopstateRestoration:function(){return function e(t,n){let r=n[1],l=t.parallelRoutes,a=new Map(l);for(let t in r){let n=r[t],u=n[0],o=(0,i.createRouterCacheKey)(u),s=l.get(t);if(void 0!==s){let r=s.get(o);if(void 0!==r){let l=e(r,n),u=new Map(s);u.set(o,l),a.set(t,u)}}}let u=t.rsc,o=S(u)&&"pending"===u.status;return{lazyData:null,rsc:u,head:t.head,prefetchHead:o?t.prefetchHead:[null,null],prefetchRsc:o?t.prefetchRsc:null,loading:t.loading,parallelRoutes:a,navigatedAt:t.navigatedAt}}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(91395),u=e.r(22039),o=e.r(80118),i=e.r(91439),s=e.r(84697),c=e.r(28806),f={route:null,node:null,dynamicRequestTree:null,children:null};function d(e,t,n,r,l,s,c,d,m,g){return function e(t,n,r,l,s,c,d,m,g,y,v,b){let S=l[1],w=s[1],E=null!==d?d[1]:null;c||!0===s[4]&&(c=!0);let _=r.parallelRoutes,P=new Map(_),k={},R=null,T=!1,x={};for(let r in w){let l,s=w[r],d=S[r],O=_.get(r),C=null!==E?E[r]:null,N=s[0],M=v.concat([r,N]),L=(0,i.createRouterCacheKey)(N),z=void 0!==d?d[0]:void 0,j=void 0!==O?O.get(L):void 0;if(null!==(l=N===a.DEFAULT_SEGMENT_KEY?void 0!==d?function(e,t){let n;return"refresh"===t[3]?n=t:((n=h(t,t[1]))[2]=(0,o.createHrefFromUrl)(e),n[3]="refresh"),{route:n,node:null,dynamicRequestTree:null,children:null}}(n,d):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):y&&0===Object.keys(s[1]).length?p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):void 0!==d&&void 0!==z&&(0,u.matchSegment)(N,z)&&void 0!==j&&void 0!==d?e(t,n,j,d,s,c,C,m,g,y,M,b):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b))){if(null===l.route)return f;null===R&&(R=new Map),R.set(r,l);let e=l.node;if(null!==e){let t=new Map(O);t.set(L,e),P.set(r,t)}let t=l.route;k[r]=t;let n=l.dynamicRequestTree;null!==n?(T=!0,x[r]=n):x[r]=t}else k[r]=s,x[r]=s}if(null===R)return null;let O={lazyData:null,rsc:r.rsc,prefetchRsc:r.prefetchRsc,head:r.head,prefetchHead:r.prefetchHead,loading:r.loading,parallelRoutes:P,navigatedAt:t};return{route:h(s,k),node:O,dynamicRequestTree:T?h(s,x):null,children:R}}(e,t,n,r,l,!1,s,c,d,m,[],g)}function p(e,t,n,r,l,a,u,o,d,p){return!l&&(void 0===t||(0,s.isNavigatingToNewRootLayout)(t,n))?f:function e(t,n,r,l,a,u,o,s){let f,d,p,g,y=n[1],v=0===Object.keys(y).length;if(void 0!==r&&r.navigatedAt+c.DYNAMIC_STALETIME_MS>t)f=r.rsc,d=r.loading,p=r.head,g=r.navigatedAt;else if(null===l)return m(t,n,null,a,u,o,s);else if(f=l[0],d=l[2],p=v?a:null,g=t,l[3]||u&&v)return m(t,n,l,a,u,o,s);let b=null!==l?l[1]:null,S=new Map,w=void 0!==r?r.parallelRoutes:null,E=new Map(w),_={},P=!1;if(v)s.push(o);else for(let n in y){let r=y[n],l=null!==b?b[n]:null,c=null!==w?w.get(n):void 0,f=r[0],d=o.concat([n,f]),p=(0,i.createRouterCacheKey)(f),h=e(t,r,void 0!==c?c.get(p):void 0,l,a,u,d,s);S.set(n,h);let m=h.dynamicRequestTree;null!==m?(P=!0,_[n]=m):_[n]=r;let g=h.node;if(null!==g){let e=new Map;e.set(p,g),E.set(n,e)}}return{route:n,node:{lazyData:null,rsc:f,prefetchRsc:null,head:p,prefetchHead:null,loading:d,parallelRoutes:E,navigatedAt:g},dynamicRequestTree:P?h(n,_):null,children:S}}(e,n,r,a,u,o,d,p)}function h(e,t){let n=[e[0],t];return 2 in e&&(n[2]=e[2]),3 in e&&(n[3]=e[3]),4 in e&&(n[4]=e[4]),n}function m(e,t,n,r,l,a,u){let o=h(t,t[1]);return o[3]="refetch",{route:t,node:function e(t,n,r,l,a,u,o){let s=n[1],c=null!==r?r[1]:null,f=new Map;for(let n in s){let r=s[n],d=null!==c?c[n]:null,p=r[0],h=u.concat([n,p]),m=(0,i.createRouterCacheKey)(p),g=e(t,r,void 0===d?null:d,l,a,h,o),y=new Map;y.set(m,g),f.set(n,y)}let d=0===f.size;d&&o.push(u);let p=null!==r?r[0]:null;return{lazyData:null,parallelRoutes:f,prefetchRsc:void 0!==p?p:null,prefetchHead:d?l:[null,null],rsc:w(),head:d?w():null,loading:null!==r?r[2]??null:w(),navigatedAt:t}}(e,t,n,r,l,a,u),dynamicRequestTree:o,children:null}}function g(e,t){t.then(t=>{if("string"==typeof t)return;let{flightData:n,debugInfo:r}=t;for(let t of n){let{segmentPath:n,tree:l,seedData:a,head:o}=t;a&&function(e,t,n,r,l,a){let o=e;for(let e=0;e{y(e,t,null)})}function y(e,t,n){let r=e.node;if(null===r)return;let l=e.children;if(null===l)v(e.route,r,t,n);else for(let e of l.values())y(e,t,n);e.dynamicRequestTree=null}function v(e,t,n,r){let l=e[1],a=t.parallelRoutes;for(let e in l){let t=l[e],u=a.get(e);if(void 0===u)continue;let o=t[0],s=(0,i.createRouterCacheKey)(o),c=u.get(s);void 0!==c&&v(t,c,n,r)}let u=t.rsc;S(u)&&(null===n?u.resolve(null,r):u.reject(n,r));let o=t.loading;S(o)&&o.resolve(null,r);let s=t.head;S(s)&&s.resolve(null,r)}let b=Symbol();function S(e){return e&&"object"==typeof e&&e.tag===b}function w(){let e,t,n=[],r=new Promise((n,r)=>{e=n,t=r});return r.status="pending",r.resolve=(t,l)=>{"pending"===r.status&&(r.status="fulfilled",r.value=t,null!==l&&n.push.apply(n,l),e(t))},r.reject=(e,l)=>{"pending"===r.status&&(r.status="rejected",r.reason=e,null!==l&&n.push.apply(n,l),t(e))},r.tag=b,r._debugInfo=n,r}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18563,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HasLoadingBoundary",{enumerable:!0,get:function(){return l}});var r,l=((r={})[r.SegmentHasLoadingBoundary=1]="SegmentHasLoadingBoundary",r[r.SubtreeHasLoadingBoundary=2]="SubtreeHasLoadingBoundary",r[r.SubtreeHasNoLoadingBoundary=3]="SubtreeHasNoLoadingBoundary",r)},24994,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l,a,u={FetchStrategy:function(){return c},NavigationResultTag:function(){return i},PrefetchPriority:function(){return s}};for(var o in u)Object.defineProperty(n,o,{enumerable:!0,get:u[o]});var i=((r={})[r.MPA=0]="MPA",r[r.Success=1]="Success",r[r.NoOp=2]="NoOp",r[r.Async=3]="Async",r),s=((l={})[l.Intent=2]="Intent",l[l.Default=1]="Default",l[l.Background=0]="Background",l),c=((a={})[a.LoadingBoundary=0]="LoadingBoundary",a[a.PPR=1]="PPR",a[a.PPRRuntime=2]="PPRRuntime",a[a.Full=3]="Full",a);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},68323,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={deleteFromLru:function(){return f},lruPut:function(){return s},updateLruSize:function(){return c}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(47661),u=null,o=!1,i=0;function s(e){if(u===e)return;let t=e.prev,n=e.next;if(null===n||null===t?(i+=e.size,d()):(t.next=n,n.prev=t),null===u)e.prev=e,e.next=e;else{let t=u.prev;e.prev=t,null!==t&&(t.next=e),e.next=u,u.prev=e}u=e}function c(e,t){let n=e.size;e.size=t,null!==e.next&&(i=i-n+t,d())}function f(e){let t=e.next,n=e.prev;null!==t&&null!==n&&(i-=e.size,e.next=null,e.prev=null,u===e?u=t===u?null:t:(n.next=t,t.prev=n))}function d(){o||i<=0x3200000||(o=!0,h(p))}function p(){o=!1;for(;i>0x2d00000&&null!==u;){let e=u.prev;null!==e&&(0,a.deleteFromCacheMap)(e.value)}}let h="function"==typeof requestIdleCallback?requestIdleCallback:e=>setTimeout(e,0);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},47661,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={Fallback:function(){return u},createCacheMap:function(){return i},deleteFromCacheMap:function(){return h},getFromCacheMap:function(){return s},isValueExpired:function(){return c},setInCacheMap:function(){return f},setSizeInCacheMap:function(){return g}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(68323),u={},o={};function i(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function s(e,t,n,r,l){let i=function e(t,n,r,l,a,i){let s,f;if(null!==l)s=l.value,f=l.parent;else if(a&&i!==o)s=o,f=null;else return null===r.value?r:c(t,n,r.value)?(m(r),null):r;let d=r.map;if(null!==d){let r=d.get(s);if(void 0!==r){let l=e(t,n,r,f,a,s);if(null!==l)return l}let l=d.get(u);if(void 0!==l)return e(t,n,l,f,a,s)}return null}(e,t,n,r,l,0);return null===i||null===i.value?null:((0,a.lruPut)(i),i.value)}function c(e,t,n){return n.staleAt<=e||n.version{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={appendLayoutVaryPath:function(){return c},clonePageVaryPathWithNewSearchParams:function(){return m},finalizeLayoutVaryPath:function(){return f},finalizeMetadataVaryPath:function(){return p},finalizePageVaryPath:function(){return d},getFulfilledRouteVaryPath:function(){return s},getRouteVaryPath:function(){return i},getSegmentVaryPathForRequest:function(){return h}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(24994),u=e.r(47661),o=e.r(69434);function i(e,t,n){return{value:e,parent:{value:t,parent:{value:n,parent:null}}}}function s(e,t,n,r){return{value:e,parent:{value:t,parent:{value:r?n:u.Fallback,parent:null}}}}function c(e,t){return{value:t,parent:e}}function f(e,t){return{value:e,parent:t}}function d(e,t,n){return{value:e,parent:{value:t,parent:n}}}function p(e,t,n){return{value:e+o.HEAD_REQUEST_KEY,parent:{value:t,parent:n}}}function h(e,t){let n=t.varyPath;if(t.isPage&&e!==a.FetchStrategy.Full&&e!==a.FetchStrategy.PPRRuntime){let e=n.parent.parent;return{value:n.value,parent:{value:u.Fallback,parent:e}}}return n}function m(e,t){let n=e.parent;return{value:e.value,parent:{value:t,parent:n.parent}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},63280,(e,t,n)=>{"use strict";function r(e,t){let n=new URL(e);return{pathname:n.pathname,search:n.search,nextUrl:t}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createCacheKey",{enumerable:!0,get:function(){return r}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},40285,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={cancelPrefetchTask:function(){return w},isPrefetchTaskDirty:function(){return _},pingPrefetchTask:function(){return O},reschedulePrefetchTask:function(){return E},schedulePrefetchTask:function(){return S},startRevalidationCooldown:function(){return b}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(18563),u=e.r(22039),o=e.r(91666),i=e.r(91900),s=e.r(63280),c=e.r(24994),f=e.r(91395),d="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),p=[],h=0,m=0,g=!1,y=null,v=null;function b(){null!==v&&clearTimeout(v),v=setTimeout(()=>{v=null,k()},300)}function S(e,t,n,r,l){let a={key:e,treeAtTimeOfPrefetch:t,cacheVersion:(0,o.getCurrentCacheVersion)(),priority:r,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:n,sortId:m++,isCanceled:!1,onInvalidate:l,_heapIndex:-1};return P(a),H(p,a),k(),a}function w(e){e.isCanceled=!0,function(e,t){let n=t._heapIndex;if(-1!==n&&(t._heapIndex=-1,0!==e.length)){let r=e.pop();r!==t&&(e[n]=r,r._heapIndex=n,W(e,r,n))}}(p,e)}function E(e,t,n,r){e.isCanceled=!1,e.phase=1,e.sortId=m++,e.priority=e===y?c.PrefetchPriority.Intent:r,e.treeAtTimeOfPrefetch=t,e.fetchStrategy=n,P(e),-1!==e._heapIndex?q(p,e):H(p,e),k()}function _(e,t,n){let r=(0,o.getCurrentCacheVersion)();return e.cacheVersion!==r||e.treeAtTimeOfPrefetch!==n||e.key.nextUrl!==t}function P(e){e.priority===c.PrefetchPriority.Intent&&e!==y&&(null!==y&&y.priority!==c.PrefetchPriority.Background&&(y.priority=c.PrefetchPriority.Default,q(p,y)),y=e)}function k(){g||(g=!0,d(C))}function R(e){return null===v&&(e.priority===c.PrefetchPriority.Intent?h<12:h<4)}function T(e){return h++,e.then(e=>null===e?(x(),null):(e.closed.then(x),e.value))}function x(){h--,k()}function O(e){e.isCanceled||-1!==e._heapIndex||(H(p,e),k())}function C(){g=!1;let e=Date.now(),t=B(p);for(;null!==t&&R(t);){t.cacheVersion=(0,o.getCurrentCacheVersion)();let n=function(e,t){let n=t.key,r=(0,o.readOrCreateRouteCacheEntry)(e,t,n),l=function(e,t,n){switch(n.status){case o.EntryStatus.Empty:T((0,o.fetchRouteOnCacheMiss)(n,t,t.key)),n.staleAt=e+6e4,n.status=o.EntryStatus.Pending;case o.EntryStatus.Pending:{let e=n.blockedTasks;return null===e?n.blockedTasks=new Set([t]):e.add(t),1}case o.EntryStatus.Rejected:break;case o.EntryStatus.Fulfilled:{if(0!==t.phase)return 2;if(!R(t))return 0;let i=n.tree,s=t.fetchStrategy===c.FetchStrategy.PPR?n.isPPREnabled?c.FetchStrategy.PPR:c.FetchStrategy.LoadingBoundary:t.fetchStrategy;switch(s){case c.FetchStrategy.PPR:{var r,l,u;if(z(r=e,l=t,u=n,(0,o.readOrCreateSegmentCacheEntry)(r,c.FetchStrategy.PPR,u,u.metadata),l.key,u.metadata),0===function e(t,n,r,l,a){let u=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,a);z(t,n,r,u,n.key,a);let i=l[1],s=a.slots;if(null!==s)for(let l in s){if(!R(n))return 0;let a=s[l],u=a.segment,c=i[l],f=c?.[0];if(0===(void 0!==f&&D(r,u,f)?e(t,n,r,c,a):function e(t,n,r,l){if(l.hasRuntimePrefetch)return null===n.spawnedRuntimePrefetches?n.spawnedRuntimePrefetches=new Set([l.requestKey]):n.spawnedRuntimePrefetches.add(l.requestKey),2;let a=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);if(z(t,n,r,a,n.key,l),null!==l.slots){if(!R(n))return 0;for(let a in l.slots)if(0===e(t,n,r,l.slots[a]))return 0}return 2}(t,n,r,a)))return 0}return 2}(e,t,n,t.treeAtTimeOfPrefetch,i))return 0;let a=t.spawnedRuntimePrefetches;if(null!==a){let r=new Map;M(e,t,n,r,c.FetchStrategy.PPRRuntime);let l=function e(t,n,r,l,a,u){if(a.has(l.requestKey))return L(t,n,r,l,!1,u,c.FetchStrategy.PPRRuntime);let o={},i=l.slots;if(null!==i)for(let l in i){let s=i[l];o[l]=e(t,n,r,s,a,u)}return[l.segment,o,null,null]}(e,t,n,i,a,r);r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,c.FetchStrategy.PPRRuntime,l,r))}return 2}case c.FetchStrategy.Full:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.LoadingBoundary:{let r=new Map;M(e,t,n,r,s);let l=function e(t,n,r,l,u,i,s){let f=l[1],d=u.slots,p={};if(null!==d)for(let l in d){let u=d[l],h=u.segment,m=f[l],g=m?.[0];if(void 0!==g&&D(r,h,g)){let a=e(t,n,r,m,u,i,s);p[l]=a}else switch(s){case c.FetchStrategy.LoadingBoundary:{let e=u.hasLoadingBoundary!==a.HasLoadingBoundary.SubtreeHasNoLoadingBoundary?function e(t,n,r,l,u,i){let s=null===u?"inside-shared-layout":null,f=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);switch(f.status){case o.EntryStatus.Empty:i.set(l.requestKey,(0,o.upgradeToPendingSegment)(f,c.FetchStrategy.LoadingBoundary)),"refetch"!==u&&(s=u="refetch");break;case o.EntryStatus.Fulfilled:if(l.hasLoadingBoundary===a.HasLoadingBoundary.SegmentHasLoadingBoundary)return(0,o.convertRouteTreeToFlightRouterState)(l);case o.EntryStatus.Pending:case o.EntryStatus.Rejected:}let d={};if(null!==l.slots)for(let a in l.slots){let o=l.slots[a];d[a]=e(t,n,r,o,u,i)}return[l.segment,d,null,s,l.isRootLayout]}(t,n,r,u,null,i):(0,o.convertRouteTreeToFlightRouterState)(u);p[l]=e;break}case c.FetchStrategy.PPRRuntime:{let e=L(t,n,r,u,!1,i,s);p[l]=e;break}case c.FetchStrategy.Full:{let e=L(t,n,r,u,!1,i,s);p[l]=e}}}return[u.segment,p,null,null,u.isRootLayout]}(e,t,n,t.treeAtTimeOfPrefetch,i,r,s);return r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,s,l,r)),2}}}}return 2}(e,t,r);if(0!==l&&""!==n.search){let r=new URL(n.pathname,location.origin),l=(0,s.createCacheKey)(r.href,n.nextUrl),a=(0,o.readOrCreateRouteCacheEntry)(e,t,l);switch(a.status){case o.EntryStatus.Empty:N(t)&&(a.status=o.EntryStatus.Pending,T((0,o.fetchRouteOnCacheMiss)(a,t,l)));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}return l}(e,t),r=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,n){case 0:return;case 1:V(p),t=B(p);continue;case 2:1===t.phase?(t.phase=0,q(p,t)):r?(t.priority=c.PrefetchPriority.Background,q(p,t)):V(p),t=B(p);continue}}}function N(e){return e.priority===c.PrefetchPriority.Background||(e.hasBackgroundWork=!0,!1)}function M(e,t,n,r,l){L(e,t,n,n.metadata,!1,r,l===c.FetchStrategy.LoadingBoundary?c.FetchStrategy.Full:l)}function L(e,t,n,r,l,a,u){let i=(0,o.readOrCreateSegmentCacheEntry)(e,u,n,r),s=null;switch(i.status){case o.EntryStatus.Empty:s=(0,o.upgradeToPendingSegment)(i,u);break;case o.EntryStatus.Fulfilled:i.isPartial&&(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u));break;case o.EntryStatus.Pending:case o.EntryStatus.Rejected:(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u))}let c={};if(null!==r.slots)for(let o in r.slots){let i=r.slots[o];c[o]=L(e,t,n,i,l||null!==s,a,u)}null!==s&&a.set(r.requestKey,s);let f=l||null===s?null:"refetch";return[r.segment,c,null,f,r.isRootLayout]}function z(e,t,n,r,l,a){switch(r.status){case o.EntryStatus.Empty:T((0,o.fetchSegmentOnCacheMiss)(n,(0,o.upgradeToPendingSegment)(r,c.FetchStrategy.PPR),l,a));break;case o.EntryStatus.Pending:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:N(t)&&j(e,n,l,a);break;default:r.fetchStrategy}break;case o.EntryStatus.Rejected:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:j(e,n,l,a);break;default:r.fetchStrategy}case o.EntryStatus.Fulfilled:}}function j(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,c.FetchStrategy.PPR,t,r);switch(l.status){case o.EntryStatus.Empty:I(T((0,o.fetchSegmentOnCacheMiss)(t,(0,o.upgradeToPendingSegment)(l,c.FetchStrategy.PPR),n,r)),(0,i.getSegmentVaryPathForRequest)(c.FetchStrategy.PPR,r));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}function F(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,r,t,n);if(l.status===o.EntryStatus.Empty){let e=(0,o.upgradeToPendingSegment)(l,r);return I((0,o.waitForSegmentCacheEntry)(e),(0,i.getSegmentVaryPathForRequest)(r,n)),e}if((0,o.canNewFetchStrategyProvideMoreContent)(l.fetchStrategy,r)){let e=(0,o.overwriteRevalidatingSegmentCacheEntry)(r,t,n),l=(0,o.upgradeToPendingSegment)(e,r);return I((0,o.waitForSegmentCacheEntry)(l),(0,i.getSegmentVaryPathForRequest)(r,n)),l}switch(l.status){case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:default:return null}}let A=()=>{};function I(e,t){e.then(e=>{null!==e&&(0,o.upsertSegmentEntry)(Date.now(),t,e)},A)}function D(e,t,n){return n===f.PAGE_SEGMENT_KEY?t===(0,f.addSearchParamsIfPageSegment)(f.PAGE_SEGMENT_KEY,Object.fromEntries(new URLSearchParams(e.renderedSearch))):(0,u.matchSegment)(n,t)}function U(e,t){let n=t.priority-e.priority;if(0!==n)return n;let r=t.phase-e.phase;return 0!==r?r:t.sortId-e.sortId}function H(e,t){let n=e.length;e.push(t),t._heapIndex=n,$(e,t,n)}function B(e){return 0===e.length?null:e[0]}function V(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let n=e.pop();return n!==t&&(e[0]=n,n._heapIndex=0,W(e,n,0)),t}function q(e,t){let n=t._heapIndex;-1!==n&&(0===n?W(e,t,0):U(e[n-1>>>1],t)>0?$(e,t,n):W(e,t,n))}function $(e,t,n){let r=n;for(;r>0;){let n=r-1>>>1,l=e[n];if(!(U(l,t)>0))return;e[n]=t,t._heapIndex=n,e[r]=l,l._heapIndex=r,r=n}}function W(e,t,n){let r=n,l=e.length,a=l>>>1;for(;rU(a,t))uU(o,a)?(e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u):(e[r]=a,a._heapIndex=r,e[n]=t,t._heapIndex=n,r=n);else{if(!(uU(o,t)))return;e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},28732,(e,t,n)=>{"use strict";function r(e){let t=e.indexOf("#"),n=e.indexOf("?"),r=n>-1&&(t<0||n-1?{pathname:e.substring(0,r?n:t),query:r?e.substring(n,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"parsePath",{enumerable:!0,get:function(){return r}})},26935,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(28732);function l(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:n,query:l,hash:a}=(0,r.parsePath)(e);return`${t}${n}${l}${a}`}},20206,(e,t,n)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},67268,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return a}});let r=e.r(20206),l=e.r(28732),a=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:n,hash:a}=(0,l.parsePath)(e);return/\.[^/]+\/?$/.test(t)?`${(0,r.removeTrailingSlash)(t)}${n}${a}`:t.endsWith("/")?`${t}${n}${a}`:`${t}/${n}${a}`};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},39940,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addBasePath",{enumerable:!0,get:function(){return a}});let r=e.r(26935),l=e.r(67268);function a(e,t){return(0,l.normalizePathTrailingSlash)((0,r.addPathPrefix)(e,""))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},93259,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createPrefetchURL:function(){return i},isExternalURL:function(){return o}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(62112),u=e.r(39940);function o(e){return e.origin!==window.location.origin}function i(e){let t;if((0,a.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,u.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return o(t)?null:t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79111,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return c},mountFormInstance:function(){return S},mountLinkInstance:function(){return b},onLinkVisibilityChanged:function(){return E},onNavigationIntent:function(){return _},pingVisibleLinks:function(){return k},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return p},unmountPrefetchableInstance:function(){return w}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(24994),u=e.r(63280),o=e.r(40285),i=e.r(30668),s=null,c={pending:!0},f={pending:!1};function d(e){(0,i.startTransition)(()=>{s?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(c),s=e})}function p(e){s===e&&(s=null)}let h="function"==typeof WeakMap?new WeakMap:new Map,m=new Set,g="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;E(t.target,e)}},{rootMargin:"200px"}):null;function y(e,t){void 0!==h.get(e)&&w(e),h.set(e,t),null!==g&&g.observe(e)}function v(t){if("undefined"==typeof window)return null;{let{createPrefetchURL:n}=e.r(93259);try{return n(t)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${t}' because it cannot be converted to a URL.`),null}}}function b(e,t,n,r,l,a){if(l){let l=v(t);if(null!==l){let t={router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:a};return y(e,t),t}}return{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:a}}function S(e,t,n,r){let l=v(t);null===l||y(e,{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:null})}function w(e){let t=h.get(e);if(void 0!==t){h.delete(e),m.delete(t);let n=t.prefetchTask;null!==n&&(0,o.cancelPrefetchTask)(n)}null!==g&&g.unobserve(e)}function E(e,t){let n=h.get(e);void 0!==n&&(n.isVisible=t,t?m.add(n):m.delete(n),P(n,a.PrefetchPriority.Default))}function _(e,t){let n=h.get(e);void 0!==n&&void 0!==n&&P(n,a.PrefetchPriority.Intent)}function P(t,n){if("undefined"!=typeof window){let r=t.prefetchTask;if(!t.isVisible){null!==r&&(0,o.cancelPrefetchTask)(r);return}let{getCurrentAppRouterState:l}=e.r(19998),a=l();if(null!==a){let e=a.tree;if(null===r){let r=a.nextUrl,l=(0,u.createCacheKey)(t.prefetchHref,r);t.prefetchTask=(0,o.schedulePrefetchTask)(l,e,t.fetchStrategy,n,null)}else(0,o.reschedulePrefetchTask)(r,e,t.fetchStrategy,n)}}}function k(e,t){for(let n of m){let r=n.prefetchTask;if(null!==r&&!(0,o.isPrefetchTaskDirty)(r,e,t))continue;null!==r&&(0,o.cancelPrefetchTask)(r);let l=(0,u.createCacheKey)(n.prefetchHref,e);n.prefetchTask=(0,o.schedulePrefetchTask)(l,t,n.fetchStrategy,a.PrefetchPriority.Default,null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},76534,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return u},doesExportedHtmlMatchBuildId:function(){return s},insertBuildIdComment:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a="",u="bytes=0-63";function o(e){return e.slice(0,24).replace(/-/g,"_")}function i(e,t){return t.includes("-->")||!e.startsWith(a)?e:e.replace(a,a+"")}function s(e,t){return e.startsWith(a+"")}},91666,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l={EntryStatus:function(){return k},canNewFetchStrategyProvideMoreContent:function(){return el},convertRouteTreeToFlightRouterState:function(){return function e(t){let n={};if(null!==t.slots)for(let r in t.slots)n[r]=e(t.slots[r]);return[t.segment,n,null,null,t.isRootLayout]}},createDetachedSegmentCacheEntry:function(){return q},fetchRouteOnCacheMiss:function(){return X},fetchSegmentOnCacheMiss:function(){return Y},fetchSegmentPrefetchesUsingDynamicRequest:function(){return J},getCurrentCacheVersion:function(){return N},getStaleTimeMs:function(){return P},overwriteRevalidatingSegmentCacheEntry:function(){return B},pingInvalidationListeners:function(){return L},readOrCreateRevalidatingSegmentEntry:function(){return H},readOrCreateRouteCacheEntry:function(){return A},readOrCreateSegmentCacheEntry:function(){return U},readRouteCacheEntry:function(){return z},readSegmentCacheEntry:function(){return j},requestOptimisticRouteCacheEntry:function(){return I},revalidateEntireCache:function(){return M},upgradeToPendingSegment:function(){return $},upsertSegmentEntry:function(){return V},waitForSegmentCacheEntry:function(){return F}};for(var a in l)Object.defineProperty(n,a,{enumerable:!0,get:l[a]});let u=e.r(18563),o=e.r(2089),i=e.r(20320),s=e.r(40285),c=e.r(91900),f=e.r(70410),d=e.r(80118),p=e.r(63280),h=e.r(88617),m=e.r(47661),g=e.r(69434),y=e.r(94955),v=e.r(28806),b=e.r(79111),S=e.r(91395),w=e.r(76534),E=e.r(24994),_=e.r(59162);function P(e){return 1e3*Math.max(e,30)}var k=((r={})[r.Empty=0]="Empty",r[r.Pending=1]="Pending",r[r.Fulfilled=2]="Fulfilled",r[r.Rejected=3]="Rejected",r);let R=["",{},null,"metadata-only"],T=(0,m.createCacheMap)(),x=(0,m.createCacheMap)(),O=null,C=0;function N(){return C}function M(e,t){C++,(0,s.startRevalidationCooldown)(),(0,b.pingVisibleLinks)(e,t),L(e,t)}function L(e,t){if(null!==O){let n=O;for(let r of(O=null,n))(0,s.isPrefetchTaskDirty)(r,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(r)}}function z(e,t){let n=(0,c.getRouteVaryPath)(t.pathname,t.search,t.nextUrl);return(0,m.getFromCacheMap)(e,C,T,n,!1)}function j(e,t){return(0,m.getFromCacheMap)(e,C,x,t,!1)}function F(e){let t=e.promise;return null===t&&(t=e.promise=(0,_.createPromiseWithResolvers)()),t.promise}function A(e,t,n){null!==t.onInvalidate&&(null===O?O=new Set([t]):O.add(t));let r=z(e,n);if(null!==r)return r;let l={canonicalUrl:null,status:0,blockedTasks:null,tree:null,metadata:null,couldBeIntercepted:!0,isPPREnabled:!1,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:C},a=(0,c.getRouteVaryPath)(n.pathname,n.search,n.nextUrl);return(0,m.setInCacheMap)(T,a,l,!1),l}function I(e,t,n){let r=t.search;if(""===r)return null;let l=new URL(t);l.search="";let a=z(e,(0,p.createCacheKey)(l.href,n));if(null===a||2!==a.status)return null;let u=new URL(a.canonicalUrl,t.origin),o=""!==u.search?u.search:r,i=""!==a.renderedSearch?a.renderedSearch:r,s=new URL(a.canonicalUrl,location.origin);return s.search=o,{canonicalUrl:(0,d.createHrefFromUrl)(s),status:2,blockedTasks:null,tree:D(a.tree,i),metadata:D(a.metadata,i),couldBeIntercepted:a.couldBeIntercepted,isPPREnabled:a.isPPREnabled,renderedSearch:i,ref:null,size:0,staleAt:a.staleAt,version:a.version}}function D(e,t){let n=null,r=e.slots;if(null!==r)for(let e in n={},r){let l=r[e];n[e]=D(l,t)}return e.isPage?{requestKey:e.requestKey,segment:e.segment,varyPath:(0,c.clonePageVaryPathWithNewSearchParams)(e.varyPath,t),isPage:!0,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}:{requestKey:e.requestKey,segment:e.segment,varyPath:e.varyPath,isPage:!1,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}}function U(e,t,n,r){let l=j(e,r.varyPath);if(null!==l)return l;let a=(0,c.getSegmentVaryPathForRequest)(t,r),u=q(n.staleAt);return(0,m.setInCacheMap)(x,a,u,!1),u}function H(e,t,n,r){var l;let a=(l=r.varyPath,(0,m.getFromCacheMap)(e,C,x,l,!0));if(null!==a)return a;let u=(0,c.getSegmentVaryPathForRequest)(t,r),o=q(n.staleAt);return(0,m.setInCacheMap)(x,u,o,!0),o}function B(e,t,n){let r=(0,c.getSegmentVaryPathForRequest)(e,n),l=q(t.staleAt);return(0,m.setInCacheMap)(x,r,l,!0),l}function V(e,t,n){if((0,m.isValueExpired)(e,C,n))return null;let r=j(e,t);if(null!==r){var l;if(n.fetchStrategy!==r.fetchStrategy&&(l=r.fetchStrategy,!(l""!==e),r=g.ROOT_SEGMENT_REQUEST_KEY,function e(t,n,r,l,a,o,i,s){let f,d,p=null,m=t.slots;if(null!==m)for(let t in f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r),p={},m){let n,u,f,d=m[t],y=d.name,v=d.paramType,b=d.paramKey;if(null!==v){let e=(0,h.parseDynamicParamFromURLPart)(v,a,o),t=null!==b?b:(0,h.getCacheKeyForDynamicParam)(e,"");f=(0,c.appendLayoutVaryPath)(r,t),u=[y,t,v],n=!0}else f=r,u=y,n=(0,h.doesStaticSegmentAppearInURL)(y);let S=n?o+1:o,w=(0,g.createSegmentRequestKeyPart)(u),E=(0,g.appendSegmentRequestKeyPart)(l,t,w);p[t]=e(d,u,f,E,a,S,i,s)}else l.endsWith(S.PAGE_SEGMENT_KEY)?(f=!0,d=(0,c.finalizePageVaryPath)(l,i,r),null===s.metadataVaryPath&&(s.metadataVaryPath=(0,c.finalizeMetadataVaryPath)(l,i,r))):(f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r));return{requestKey:l,segment:n,varyPath:d,isPage:f,slots:p,isRootLayout:t.isRootLayout,hasLoadingBoundary:u.HasLoadingBoundary.SegmentHasLoadingBoundary,hasRuntimePrefetch:t.hasRuntimePrefetch}}(o.tree,r,null,g.ROOT_SEGMENT_REQUEST_KEY,n,0,d,v)),E=v.metadataVaryPath;if(null===E)return Q(e,Date.now()+1e4),null;let _=P(o.staleTime);y=Date.now()+_,l={requestKey:g.HEAD_REQUEST_KEY,segment:g.HEAD_REQUEST_KEY,varyPath:E,isPage:!0,slots:null,isRootLayout:!1,hasLoadingBoundary:u.HasLoadingBoundary.SubtreeHasNoLoadingBoundary,hasRuntimePrefetch:!1},e.status=2,e.tree=w,e.metadata=l,e.staleAt=y,e.couldBeIntercepted=k,e.canonicalUrl=b,e.renderedSearch=d,e.isPPREnabled=x,W(e)}if(!k){let t=(0,c.getFulfilledRouteVaryPath)(r,l,a,k);(0,m.setInCacheMap)(T,t,e,!1)}return{value:null,closed:R.promise}}catch(t){return Q(e,Date.now()+1e4),null}}async function Y(e,t,n,r){let l=new URL(e.canonicalUrl,location.origin),a=n.nextUrl,u=r.requestKey,s=u===g.ROOT_SEGMENT_REQUEST_KEY?"/_index":u,c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_PREFETCH_HEADER]:"1",[o.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:s};null!==a&&(c[o.NEXT_URL]=a);let d=er(l,s);try{let n=await et(d,c);if(!n||!n.ok||204===n.status||"2"!==n.headers.get(o.NEXT_DID_POSTPONE_HEADER)&&0||!n.body)return G(t,Date.now()+1e4),null;let r=(0,_.createPromiseWithResolvers)(),l=en(n.body,r.resolve,function(e){(0,m.setSizeInCacheMap)(t,e)}),a=await (0,i.createFromNextReadableStream)(l,c);if(a.buildId!==(0,f.getAppBuildId)())return G(t,Date.now()+1e4),null;return{value:K(t,a.rsc,a.loading,e.staleAt,a.isPartial),closed:r.promise}}catch(e){return G(t,Date.now()+1e4),null}}async function J(e,t,n,r,l){let a=e.key,u=new URL(t.canonicalUrl,location.origin),s=a.nextUrl;1===l.size&&l.has(t.metadata.requestKey)&&(r=R);let c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_STATE_TREE_HEADER]:(0,y.prepareFlightRouterStateForRequest)(r)};switch(null!==s&&(c[o.NEXT_URL]=s),n){case E.FetchStrategy.Full:break;case E.FetchStrategy.PPRRuntime:c[o.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case E.FetchStrategy.LoadingBoundary:c[o.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let r=await et(u,c);if(!r||!r.ok||!r.body||(0,h.getRenderedSearch)(r)!==t.renderedSearch)return Z(l,Date.now()+1e4),null;let a=(0,_.createPromiseWithResolvers)(),s=null,d=en(r.body,a.resolve,function(e){if(null===s)return;let t=e/s.length;for(let e of s)(0,m.setSizeInCacheMap)(e,t)}),p=await (0,i.createFromNextReadableStream)(d,c),g=n===E.FetchStrategy.PPRRuntime&&p.rp?.[0]===!0;return s=function(e,t,n,r,l,a,u,i){if(l.b!==(0,f.getAppBuildId)())return null!==i&&Z(i,e+1e4),null;let s=(0,y.normalizeFlightData)(l.f);if("string"==typeof s)return null;let c="number"==typeof l.rp?.[1]?l.rp[1]:parseInt(r.headers.get(o.NEXT_ROUTER_STALE_TIME_HEADER)??"",10),d=e+(isNaN(c)?v.STATIC_STALETIME_MS:P(c));for(let r of s){let l=r.seedData;if(null!==l){let o=r.segmentPath,s=u.tree;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"navigate",{enumerable:!0,get:function(){return c}});let r=e.r(20320),l=e.r(1989),a=e.r(80118),u=e.r(91666),o=e.r(63280),i=e.r(91395),s=e.r(24994);function c(e,t,n,r,l,a,i){let c=Date.now(),d=e.href,g=d===window.location.href,y=(0,o.createCacheKey)(d,l),v=(0,u.readRouteCacheEntry)(c,y);if(null!==v&&v.status===u.EntryStatus.Fulfilled){let u=p(c,v,v.tree),o=u.flightRouterState,i=u.seedData,s=h(c,v),d=s.rsc,m=s.isPartial,y=v.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,o,i,d,m,y,v.renderedSearch,a,e.hash)}if(null===v||v.status!==u.EntryStatus.Rejected){let o=(0,u.requestOptimisticRouteCacheEntry)(c,e,l);if(null!==o){let u=p(c,o,o.tree),i=u.flightRouterState,s=u.seedData,d=h(c,o),m=d.rsc,y=d.isPartial,v=o.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,i,s,m,y,v,o.renderedSearch,a,e.hash)}}let b=i.collectedDebugInfo??[];return void 0===i.collectedDebugInfo&&(b=i.collectedDebugInfo=[]),{tag:s.NavigationResultTag.Async,data:m(c,e,t,l,g,n,r,a,e.hash,b)}}function f(e,t,n,a,u,o,i,c,f,p,h,m,g,y,v){let b=[],S=(0,l.startPPRNavigation)(e,n,o,i,c,f,p,h,u,b);if(null!==S){let e=S.dynamicRequestTree;if(null!==e){let n=(0,r.fetchServerResponse)(new URL(m,t.origin),{flightRouterState:e,nextUrl:a});(0,l.listenForDynamicRequest)(S,n)}return d(S,o,m,g,b,y,v)}return{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:m,shouldScroll:y}}}function d(e,t,n,r,l,a,u){let o=e.route;if(null===o)return{tag:s.NavigationResultTag.MPA,data:n};let i=e.node;return{tag:s.NavigationResultTag.Success,data:{flightRouterState:o,cacheNode:null!==i?i:t,canonicalUrl:n,renderedSearch:r,scrollableSegments:l,shouldScroll:a,hash:u}}}function p(e,t,n){let r={},l={},a=n.slots;if(null!==a)for(let n in a){let u=p(e,t,a[n]);r[n]=u.flightRouterState,l[n]=u.seedData}let o=null,s=null,c=!0,f=(0,u.readSegmentCacheEntry)(e,n.varyPath);if(null!==f)switch(f.status){case u.EntryStatus.Fulfilled:o=f.rsc,s=f.loading,c=f.isPartial;break;case u.EntryStatus.Pending:{let e=(0,u.waitForSegmentCacheEntry)(f);o=e.then(e=>null!==e?e.rsc:null),s=e.then(e=>null!==e?e.loading:null),c=!0}case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{flightRouterState:[(0,i.addSearchParamsIfPageSegment)(n.segment,Object.fromEntries(new URLSearchParams(t.renderedSearch))),r,null,null,n.isRootLayout],seedData:[o,l,s,c,!1]}}function h(e,t){let n=null,r=!0,l=(0,u.readSegmentCacheEntry)(e,t.metadata.varyPath);if(null!==l)switch(l.status){case u.EntryStatus.Fulfilled:n=l.rsc,r=l.isPartial;break;case u.EntryStatus.Pending:n=(0,u.waitForSegmentCacheEntry)(l).then(e=>null!==e?e.rsc:null),r=!0;case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{rsc:n,isPartial:r}}async function m(e,t,n,u,o,i,c,f,p,h){let m=(0,r.fetchServerResponse)(t,{flightRouterState:c,nextUrl:u}),g=await m;if("string"==typeof g)return{tag:s.NavigationResultTag.MPA,data:g};let{flightData:y,canonicalUrl:v,renderedSearch:b,debugInfo:S}=g;null!==S&&h.push(...S);let w=function(e,t){let n=e;for(let{segmentPath:r,tree:l}of t){let t=n!==e;n=function e(t,n,r,l,a){if(a===r.length)return n;let u=r[a],o=t[1],i={};for(let t in o)if(t===u){let u=o[t];i[t]=e(u,n,r,l,a+2)}else i[t]=o[t];if(l)return t[1]=i,t;let s=[t[0],i];return 2 in t&&(s[2]=t[2]),3 in t&&(s[3]=t[3]),4 in t&&(s[4]=t[4]),s}(n,l,r,t,0)}return n}(c,y),E=[],_=(0,l.startPPRNavigation)(e,n,i,c,w,null,null,!0,o,E);return null!==_?(null!==_.dynamicRequestTree&&(0,l.listenForDynamicRequest)(_,m),d(_,i,(0,a.createHrefFromUrl)(v),b,E,f,p)):{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:(0,a.createHrefFromUrl)(v),shouldScroll:f}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},28806,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DYNAMIC_STALETIME_MS:function(){return c},STATIC_STALETIME_MS:function(){return f},generateSegmentsFromPatch:function(){return function e(t){let n=[],[r,l]=t;if(0===Object.keys(l).length)return[[r]];for(let[t,a]of Object.entries(l))for(let l of e(a))""===r?n.push([t,...l]):n.push([r,t,...l]);return n}},handleExternalUrl:function(){return d},navigateReducer:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(80118),u=e.r(40494),o=e.r(94345),i=e.r(24994),s=e.r(91666),c=1e3*Number("0"),f=(0,s.getStaleTimeMs)(Number("300"));function d(e,t,n,r){return t.mpaNavigation=!0,t.canonicalUrl=n,t.pendingPush=r,t.scrollableSegments=void 0,(0,u.handleMutable)(e,t)}function p(e,t){let{url:n,isExternalUrl:r,navigateType:l,shouldScroll:s}=t,c={},f=(0,a.createHrefFromUrl)(n),p="push"===l;if(c.preserveCustomHistoryState=!1,c.pendingPush=p,r)return d(e,c,n.toString(),p);if(document.getElementById("__next-page-redirect"))return d(e,c,f,p);let h=new URL(e.canonicalUrl,location.origin),m=(0,o.navigate)(n,h,e.cache,e.tree,e.nextUrl,s,c);return function e(t,n,r,l,a){switch(a.tag){case i.NavigationResultTag.MPA:return d(n,r,a.data,l);case i.NavigationResultTag.NoOp:{r.canonicalUrl=a.data.canonicalUrl;let e=new URL(n.canonicalUrl,t);return t.pathname===e.pathname&&t.search===e.search&&t.hash!==e.hash&&(r.onlyHashChange=!0,r.shouldScroll=a.data.shouldScroll,r.hashFragment=t.hash,r.scrollableSegments=[]),(0,u.handleMutable)(n,r)}case i.NavigationResultTag.Success:return r.cache=a.data.cacheNode,r.patchedTree=a.data.flightRouterState,r.renderedSearch=a.data.renderedSearch,r.canonicalUrl=a.data.canonicalUrl,r.scrollableSegments=a.data.scrollableSegments,r.shouldScroll=a.data.shouldScroll,r.hashFragment=a.data.hash,(0,u.handleMutable)(n,r);case i.NavigationResultTag.Async:return a.data.then(a=>e(t,n,r,l,a),()=>n);default:return n}}(n,e,c,p,m)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},61447,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,n,l,a,u,o){if(0===Object.keys(a[1]).length){n.head=o;return}for(let i in a[1]){let s,c=a[1][i],f=c[0],d=(0,r.createRouterCacheKey)(f),p=null!==u&&void 0!==u[1][i]?u[1][i]:null;if(l){let r=l.parallelRoutes.get(i);if(r){let l,a=new Map(r),u=a.get(d);l=null!==p?{lazyData:null,rsc:p[0],prefetchRsc:null,head:null,prefetchHead:null,loading:p[2],parallelRoutes:new Map(u?.parallelRoutes),navigatedAt:t}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(u?.parallelRoutes),loading:null,navigatedAt:t},a.set(d,l),e(t,l,u,c,p||null,o),n.parallelRoutes.set(i,a);continue}}if(null!==p){let e=p[0],n=p[2];s={lazyData:null,rsc:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:n,navigatedAt:t}}else s={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:t};let h=n.parallelRoutes.get(i);h?h.set(d,s):n.parallelRoutes.set(i,new Map([[d,s]])),e(t,s,void 0,c,p,o)}}}});let r=e.r(91439);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},59941,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return l}});let r=e.r(91439);function l(e,t,n){for(let l in n[1]){let a=n[1][l][0],u=(0,r.createRouterCacheKey)(a),o=t.parallelRoutes.get(l);if(o){let t=new Map(o);t.delete(u),e.parallelRoutes.set(l,t)}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},96397,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={fillCacheWithNewSubTreeData:function(){return c},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return f}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(59941),u=e.r(61447),o=e.r(91439),i=e.r(91395);function s(e,t,n,r,l){let{segmentPath:s,seedData:c,tree:f,head:d}=r,p=t,h=n;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyFlightData",{enumerable:!0,get:function(){return a}});let r=e.r(61447),l=e.r(96397);function a(e,t,n,a){let{tree:u,seedData:o,head:i,isRootRender:s}=a;if(null===o)return!1;if(s){let l=o[0];n.loading=o[2],n.rsc=l,n.prefetchRsc=null,(0,r.fillLazyItemsTillLeafWithHead)(e,n,t,u,o,i)}else n.rsc=t.rsc,n.prefetchRsc=t.prefetchRsc,n.parallelRoutes=new Map(t.parallelRoutes),n.loading=t.loading,(0,l.fillCacheWithNewSubTreeData)(e,n,t,a);return!0}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},51441,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={addRefreshMarkerToActiveParallelSegments:function(){return function e(t,n){let[r,l,,a]=t;for(let u in r.includes(o.PAGE_SEGMENT_KEY)&&"refresh"!==a&&(t[2]=n,t[3]="refresh"),l)e(l[u],n)}},refreshInactiveParallelSegments:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(1465),u=e.r(20320),o=e.r(91395);async function i(e){let t=new Set;await s({...e,rootTree:e.updatedTree,fetchedSegments:t})}async function s({navigatedAt:e,state:t,updatedTree:n,updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i=n,canonicalUrl:c}){let[,f,d,p]=n,h=[];if(d&&d!==c&&"refresh"===p&&!o.has(d)){o.add(d);let n=(0,u.fetchServerResponse)(new URL(d,location.origin),{flightRouterState:[i[0],i[1],i[2],"refetch"],nextUrl:l?t.nextUrl:null}).then(t=>{if("string"!=typeof t){let{flightData:n}=t;for(let t of n)(0,a.applyFlightData)(e,r,r,t)}});h.push(n)}for(let n in f){let a=s({navigatedAt:e,state:t,updatedTree:f[n],updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i,canonicalUrl:c});h.push(a)}await Promise.all(h)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},84938,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,n,r,i){let s,[c,f,d,p,h]=n;if(1===t.length){let e=o(n,r);return(0,u.addRefreshMarkerToActiveParallelSegments)(e,i),e}let[m,g]=t;if(!(0,a.matchSegment)(m,c))return null;if(2===t.length)s=o(f[g],r);else if(null===(s=e((0,l.getNextFlightSegmentPath)(t),f[g],r,i)))return null;let y=[t[0],{...f,[g]:s},d,p];return h&&(y[4]=!0),(0,u.addRefreshMarkerToActiveParallelSegments)(y,i),y}}});let r=e.r(91395),l=e.r(94955),a=e.r(22039),u=e.r(51441);function o(e,t){let[n,l]=e,[u,i]=t;if(u===r.DEFAULT_SEGMENT_KEY&&n!==r.DEFAULT_SEGMENT_KEY)return e;if((0,a.matchSegment)(n,u)){let t={};for(let e in l)void 0!==i[e]?t[e]=o(l[e],i[e]):t[e]=l[e];for(let e in i)t[e]||(t[e]=i[e]);let r=[n,t];return e[2]&&(r[2]=e[2]),e[3]&&(r[3]=e[3]),e[4]&&(r[4]=e[4]),r}return t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},42887,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"AppRouterAnnouncer",{enumerable:!0,get:function(){return u}});let r=e.r(30668),l=e.r(69941),a="next-route-announcer";function u({tree:e}){let[t,n]=(0,r.useState)(null);(0,r.useEffect)(()=>(n(function(){let e=document.getElementsByName(a)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(a);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(a)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[u,o]=(0,r.useState)(""),i=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&o(e),i.current=e},[e]),t?(0,l.createPortal)(u,t):null}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},43941,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findHeadInCache",{enumerable:!0,get:function(){return a}});let r=e.r(91395),l=e.r(91439);function a(e,t){return function e(t,n,a,u){if(0===Object.keys(n).length)return[t,a,u];let o=Object.keys(n).filter(e=>"children"!==e);for(let u of("children"in n&&o.unshift("children"),o)){let[o,i]=n[u];if(o===r.DEFAULT_SEGMENT_KEY)continue;let s=t.parallelRoutes.get(u);if(!s)continue;let c=(0,l.createRouterCacheKey)(o),f=(0,l.createRouterCacheKey)(o,!0),d=s.get(c);if(!d)continue;let p=e(d,i,a+"/"+c,a+"/"+f);if(p)return p}return null}(e,t,"","")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},36254,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"pathHasPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(28732);function l(e,t){if("string"!=typeof e)return!1;let{pathname:n}=(0,r.parsePath)(e);return n===t||n.startsWith(t+"/")}},37023,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hasBasePath",{enumerable:!0,get:function(){return l}});let r=e.r(36254);function l(e){return(0,r.pathHasPrefix)(e,"")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},44351,(e,t,n)=>{"use strict";function r(e){return e}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeBasePath",{enumerable:!0,get:function(){return r}}),e.r(37023),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},9984,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={GracefulDegradeBoundary:function(){return o},default:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(48277),u=e.r(30668);class o extends u.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,u.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,n])=>{e.setAttribute(t,n)})}render(){let{hasError:e}=this.state;return("undefined"==typeof window||this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(35856),l=e.r(48277);e.r(30668);let a=r._(e.r(9984)),u=e.r(71202),o=e.r(62112),i="undefined"!=typeof window&&(0,o.isBot)(window.navigator.userAgent);function s({children:e,errorComponent:t,errorStyles:n,errorScripts:r}){return i?(0,l.jsx)(a.default,{children:e}):(0,l.jsx)(u.ErrorBoundary,{errorComponent:t,errorStyles:n,errorScripts:r,children:e})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},87670,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createEmptyCacheNode:function(){return N},default:function(){return j}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(35856),u=e.r(61909),o=e.r(48277),i=u._(e.r(30668)),s=e.r(45243),c=e.r(98165),f=e.r(80118),d=e.r(69370),p=e.r(53128),h=e.r(42887),m=e.r(2188),g=e.r(43941),y=e.r(83648),v=e.r(44351),b=e.r(37023),S=e.r(5725),w=e.r(61524),E=e.r(19998),_=e.r(44216),P=e.r(84628),k=e.r(79111),R=a._(e.r(81133)),T=a._(e.r(75115)),x=e.r(64381),O={};function C({appRouterState:e}){return(0,i.useInsertionEffect)(()=>{let{tree:t,pushRef:n,canonicalUrl:r,renderedSearch:l}=e,a={...n.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:l}};n.pendingPush&&(0,f.createHrefFromUrl)(new URL(window.location.href))!==r?(n.pendingPush=!1,window.history.pushState(a,"",r)):window.history.replaceState(a,"",r)},[e]),(0,i.useEffect)(()=>{(0,k.pingVisibleLinks)(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function N(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1}}function M(e){null==e&&(e={});let t=window.history.state,n=t?.__NA;n&&(e.__NA=n);let r=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return r&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=r),e}function L({headCacheNode:e}){let t=null!==e?e.head:null,n=null!==e?e.prefetchHead:null,r=null!==n?n:t;return(0,i.useDeferredValue)(t,r)}function z({actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r}){let l,a=(0,p.useActionQueue)(e),{canonicalUrl:u}=a,{searchParams:f,pathname:w}=(0,i.useMemo)(()=>{let e=new URL(u,"undefined"==typeof window?"http://n":window.location.href);return{searchParams:e.searchParams,pathname:(0,b.hasBasePath)(e.pathname)?(0,v.removeBasePath)(e.pathname):e.pathname}},[u]);(0,i.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(O.pendingMpaPath=void 0,(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,i.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,P.isRedirectError)(t)){e.preventDefault();let n=(0,_.getURLFromRedirectError)(t);(0,_.getRedirectTypeFromError)(t)===P.RedirectType.push?E.publicAppRouterInstance.push(n,{}):E.publicAppRouterInstance.replace(n,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:k}=a;if(k.mpaNavigation){if(O.pendingMpaPath!==u){let e=window.location;k.pendingPush?e.assign(u):e.replace(u),O.pendingMpaPath=u}throw y.unresolvedThenable}(0,i.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),n=e=>{let t=window.location.href,n=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,i.startTransition)(()=>{(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(e??t,t),historyState:n})})};window.history.pushState=function(t,r,l){return t?.__NA||t?._N||(t=M(t),l&&n(l)),e(t,r,l)},window.history.replaceState=function(e,r,l){return e?.__NA||e?._N||(e=M(e),l&&n(l)),t(e,r,l)};let r=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,i.startTransition)(()=>{(0,E.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",r),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",r)}},[]);let{cache:T,tree:N,nextUrl:z,focusAndScrollRef:j,previousNextUrl:F}=a,A=(0,i.useMemo)(()=>(0,g.findHeadInCache)(T,N[1]),[T,N]),D=(0,i.useMemo)(()=>(0,S.getSelectedParams)(N),[N]),U=(0,i.useMemo)(()=>({parentTree:N,parentCacheNode:T,parentSegmentPath:null,parentParams:{},debugNameContext:"/",url:u,isActive:!0}),[N,T,u]),H=(0,i.useMemo)(()=>({tree:N,focusAndScrollRef:j,nextUrl:z,previousNextUrl:F}),[N,j,z,F]);if(null!==A){let[e,t,n]=A;l=(0,o.jsx)(L,{headCacheNode:e},"undefined"==typeof window?n:t)}else l=null;let B=(0,o.jsxs)(m.RedirectBoundary,{children:[l,(0,o.jsx)(x.RootLayoutBoundary,{children:T.rsc}),(0,o.jsx)(h.AppRouterAnnouncer,{tree:N})]});return B=(0,o.jsx)(R.default,{errorComponent:t[0],errorStyles:t[1],children:B}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C,{appRouterState:a}),(0,o.jsx)(I,{}),(0,o.jsx)(d.NavigationPromisesContext.Provider,{value:null,children:(0,o.jsx)(d.PathParamsContext.Provider,{value:D,children:(0,o.jsx)(d.PathnameContext.Provider,{value:w,children:(0,o.jsx)(d.SearchParamsContext.Provider,{value:f,children:(0,o.jsx)(s.GlobalLayoutRouterContext.Provider,{value:H,children:(0,o.jsx)(s.AppRouterContext.Provider,{value:E.publicAppRouterInstance,children:(0,o.jsx)(s.LayoutRouterContext.Provider,{value:U,children:B})})})})})})})]})}function j({actionQueue:e,globalErrorState:t,webSocket:n,staticIndicatorState:r}){(0,w.useNavFailureHandler)();let l=(0,o.jsx)(z,{actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r});return(0,o.jsx)(R.default,{errorComponent:T.default,children:l})}let F=new Set,A=new Set;function I(){let[,e]=i.default.useState(0),t=F.size;return(0,i.useEffect)(()=>{let n=()=>e(e=>e+1);return A.add(n),t!==F.size&&n(),()=>{A.delete(n)}},[t,e]),[...F].map((e,t)=>(0,o.jsx)("link",{rel:"stylesheet",href:`${e}`,precedence:"next"},t))}globalThis._N_E_STYLE_LOAD=function(e){let t=F.size;return F.add(e),F.size!==t&&A.forEach(e=>e()),Promise.resolve()},("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},76702,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverPatchReducer",{enumerable:!0,get:function(){return c}});let r=e.r(80118),l=e.r(84938),a=e.r(84697),u=e.r(28806),o=e.r(1465),i=e.r(40494),s=e.r(87670);function c(e,t){let{serverResponse:n,navigatedAt:c}=t,f={};if(f.preserveCustomHistoryState=!1,"string"==typeof n)return(0,u.handleExternalUrl)(e,f,n,e.pushRef.pendingPush);let{flightData:d,canonicalUrl:p,renderedSearch:h}=n,m=e.tree,g=e.cache;for(let t of d){let{segmentPath:n,tree:i}=t,d=(0,l.applyRouterStatePatchToTree)(["",...n],m,i,e.canonicalUrl);if(null===d)return e;if((0,a.isNavigatingToNewRootLayout)(m,d))return(0,u.handleExternalUrl)(e,f,e.canonicalUrl,e.pushRef.pendingPush);f.canonicalUrl=(0,r.createHrefFromUrl)(p);let y=(0,s.createEmptyCacheNode)();(0,o.applyFlightData)(c,g,y,t),f.patchedTree=d,f.renderedSearch=h,f.cache=y,g=y,m=d}return(0,i.handleMutable)(e,f)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},43746,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"restoreReducer",{enumerable:!0,get:function(){return a}});let r=e.r(80118),l=e.r(5725);function a(e,t){let n,a,{url:u,historyState:o}=t,i=(0,r.createHrefFromUrl)(u);o?(n=o.tree,a=o.renderedSearch):(n=e.tree,a=e.renderedSearch);let s=e.cache;return{canonicalUrl:i,renderedSearch:a,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:s,tree:n,nextUrl:(0,l.extractPathFromFlightRouterState)(n)??u.pathname,previousNextUrl:null,debugInfo:null}}e.r(1989),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},45733,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleSegmentMismatch",{enumerable:!0,get:function(){return l}});let r=e.r(28806);function l(e,t,n){return(0,r.handleExternalUrl)(e,{},e.canonicalUrl,!0)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},64324,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"refreshReducer",{enumerable:!0,get:function(){return m}});let r=e.r(20320),l=e.r(80118),a=e.r(84938),u=e.r(84697),o=e.r(28806),i=e.r(40494),s=e.r(61447),c=e.r(87670),f=e.r(45733),d=e.r(20017),p=e.r(51441),h=e.r(91666);function m(e,t){let{origin:n}=t,m={},g=e.canonicalUrl,y=e.tree;m.preserveCustomHistoryState=!1;let v=(0,c.createEmptyCacheNode)(),b=(0,d.hasInterceptionRouteInCurrentTree)(e.tree);v.lazyData=(0,r.fetchServerResponse)(new URL(g,n),{flightRouterState:[y[0],y[1],y[2],"refetch"],nextUrl:b?e.nextUrl:null});let S=Date.now();return v.lazyData.then(async n=>{if("string"==typeof n)return(0,o.handleExternalUrl)(e,m,n,e.pushRef.pendingPush);let{flightData:r,canonicalUrl:c,renderedSearch:d}=n;for(let n of(v.lazyData=null,r)){let{tree:r,seedData:i,head:w,isRootRender:E}=n;if(!E)return console.log("REFRESH FAILED"),e;let _=(0,a.applyRouterStatePatchToTree)([""],y,r,e.canonicalUrl);if(null===_)return(0,f.handleSegmentMismatch)(e,t,r);if((0,u.isNavigatingToNewRootLayout)(y,_))return(0,o.handleExternalUrl)(e,m,g,e.pushRef.pendingPush);if(m.canonicalUrl=(0,l.createHrefFromUrl)(c),null!==i){let t=i[0],n=i[2];v.rsc=t,v.prefetchRsc=null,v.loading=n,(0,s.fillLazyItemsTillLeafWithHead)(S,v,void 0,r,i,w),(0,h.revalidateEntireCache)(e.nextUrl,_)}await (0,p.refreshInactiveParallelSegments)({navigatedAt:S,state:e,updatedTree:_,updatedCache:v,includeNextUrl:b,canonicalUrl:m.canonicalUrl||e.canonicalUrl}),m.cache=v,m.patchedTree=_,m.renderedSearch=d,y=_}return(0,i.handleMutable)(e,m)},()=>e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1470,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hmrRefreshReducer",{enumerable:!0,get:function(){return r}}),e.r(20320),e.r(80118),e.r(84938),e.r(84697),e.r(28806),e.r(40494),e.r(1465),e.r(87670),e.r(45733),e.r(20017);let r=function(e,t){return e};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},98454,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"assignLocation",{enumerable:!0,get:function(){return l}});let r=e.r(39940);function l(e,t){if(e.startsWith(".")){let n=t.origin+t.pathname;return new URL((n.endsWith("/")?n:n+"/")+e)}return new URL((0,r.addBasePath)(e),t.href)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},17213,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={extractInfoFromServerReferenceId:function(){return a},omitUnusedArgs:function(){return u}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});function a(e){let t=parseInt(e.slice(0,2),16),n=t>>1&63,r=Array(6);for(let e=0;e<6;e++){let t=n>>5-e&1;r[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:r,hasRestArgs:1==(1&t)}}function u(e,t){let n=Array(e.length);for(let r=0;r=6&&t.hasRestArgs)&&(n[r]=e[r]);return n}},92114,(e,t,n)=>{"use strict";let r;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverActionReducer",{enumerable:!0,get:function(){return C}});let l=e.r(59295),a=e.r(85045),u=e.r(2089),o=e.r(40288),i=e.r(30545),s=e.r(98454),c=e.r(80118),f=e.r(28806),d=e.r(84938),p=e.r(84697),h=e.r(40494),m=e.r(61447),g=e.r(87670),y=e.r(20017),v=e.r(45733),b=e.r(51441),S=e.r(94955),w=e.r(44216),E=e.r(84628),_=e.r(44351),P=e.r(37023),k=e.r(17213),R=e.r(91666),T=i.createFromFetch;async function x(e,t,{actionId:n,actionArgs:c}){let f,d,p,h,m=(0,i.createTemporaryReferenceSet)(),g=(0,k.extractInfoFromServerReferenceId)(n),y="use-cache"===g.type?(0,k.omitUnusedArgs)(c,g):c,v=await (0,i.encodeReply)(y,{temporaryReferences:m}),b={Accept:u.RSC_CONTENT_TYPE_HEADER,[u.ACTION_HEADER]:n,[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,S.prepareFlightRouterStateForRequest)(e.tree)};t&&(b[u.NEXT_URL]=t);let w=await fetch(e.canonicalUrl,{method:"POST",headers:b,body:v});if("1"===w.headers.get(u.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new o.UnrecognizedActionError(`Server Action "${n}" was not found on the server. Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let _=w.headers.get("x-action-redirect"),[P,R]=_?.split(";")||[];switch(R){case"push":f=E.RedirectType.push;break;case"replace":f=E.RedirectType.replace;break;default:f=void 0}let x=!!w.headers.get(u.NEXT_IS_PRERENDER_HEADER);try{let e=JSON.parse(w.headers.get("x-action-revalidated")||"[[],0,0]");d={paths:e[0]||[],tag:!!e[1],cookie:e[2]}}catch(e){d=O}let C=P?(0,s.assignLocation)(P,new URL(e.canonicalUrl,window.location.href)):void 0,N=w.headers.get("content-type"),M=!!(N&&N.startsWith(u.RSC_CONTENT_TYPE_HEADER));if(!M&&!C)throw Object.defineProperty(Error(w.status>=400&&"text/plain"===N?await w.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(M){let e=await T(Promise.resolve(w),{callServer:l.callServer,findSourceMapURL:a.findSourceMapURL,temporaryReferences:m,debugChannel:r&&r(b)});p=C?void 0:e.a,h=(0,S.normalizeFlightData)(e.f)}else p=void 0,h=void 0;return{actionResult:p,actionFlightData:h,redirectLocation:C,redirectType:f,revalidatedParts:d,isPrerender:x}}let O={paths:[],tag:!1,cookie:!1};function C(e,t){let{resolve:n,reject:r}=t,l={},a=e.tree;l.preserveCustomHistoryState=!1;let u=(e.previousNextUrl||e.nextUrl)&&(0,y.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null,o=Date.now();return x(e,u,t).then(async({actionResult:i,actionFlightData:s,redirectLocation:y,redirectType:S,revalidatedParts:k})=>{let T;if(y&&(S===E.RedirectType.replace?(e.pushRef.pendingPush=!1,l.pendingPush=!1):(e.pushRef.pendingPush=!0,l.pendingPush=!0),l.canonicalUrl=T=(0,c.createHrefFromUrl)(y,!1)),!s)return(n(i),y)?(0,f.handleExternalUrl)(e,l,y.href,e.pushRef.pendingPush):e;if("string"==typeof s)return n(i),(0,f.handleExternalUrl)(e,l,s,e.pushRef.pendingPush);let x=k.paths.length>0||k.tag||k.cookie;for(let r of(x&&(t.didRevalidate=!0),s)){let{tree:s,seedData:c,head:h,isRootRender:y}=r;if(!y)return console.log("SERVER ACTION APPLY FAILED"),n(i),e;let S=(0,d.applyRouterStatePatchToTree)([""],a,s,T||e.canonicalUrl);if(null===S)return n(i),(0,v.handleSegmentMismatch)(e,t,s);if((0,p.isNavigatingToNewRootLayout)(a,S))return n(i),(0,f.handleExternalUrl)(e,l,T||e.canonicalUrl,e.pushRef.pendingPush);if(null!==c){let t=c[0],n=(0,g.createEmptyCacheNode)();n.rsc=t,n.prefetchRsc=null,n.loading=c[2],(0,m.fillLazyItemsTillLeafWithHead)(o,n,void 0,s,c,h),l.cache=n,(0,R.revalidateEntireCache)(e.nextUrl,S),x&&await (0,b.refreshInactiveParallelSegments)({navigatedAt:o,state:e,updatedTree:S,updatedCache:n,includeNextUrl:!!u,canonicalUrl:l.canonicalUrl||e.canonicalUrl})}l.patchedTree=S,a=S}if(y&&T){let e=(0,w.getRedirectError)((0,P.hasBasePath)(T)?(0,_.removeBasePath)(T):T,S||E.RedirectType.push);e.handled=!0,r(e)}else n(i);return(0,h.handleMutable)(e,l)},t=>(r(t),e))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},42939,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"reducer",{enumerable:!0,get:function(){return c}});let r=e.r(98165),l=e.r(28806),a=e.r(76702),u=e.r(43746),o=e.r(64324),i=e.r(1470),s=e.r(92114),c="undefined"==typeof window?function(e,t){return e}:function(e,t){switch(t.type){case r.ACTION_NAVIGATE:return(0,l.navigateReducer)(e,t);case r.ACTION_SERVER_PATCH:return(0,a.serverPatchReducer)(e,t);case r.ACTION_RESTORE:return(0,u.restoreReducer)(e,t);case r.ACTION_REFRESH:return(0,o.refreshReducer)(e,t);case r.ACTION_HMR_REFRESH:return(0,i.hmrRefreshReducer)(e,t);case r.ACTION_SERVER_ACTION:return(0,s.serverActionReducer)(e,t);default:throw Object.defineProperty(Error("Unknown action"),"__NEXT_ERROR_CODE",{value:"E295",enumerable:!1,configurable:!0})}};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},19939,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"prefetch",{enumerable:!0,get:function(){return o}});let r=e.r(93259),l=e.r(63280),a=e.r(40285),u=e.r(24994);function o(e,t,n,o,i){let s=(0,r.createPrefetchURL)(e);if(null===s)return;let c=(0,l.createCacheKey)(s.href,t);(0,a.schedulePrefetchTask)(c,n,o,u.PrefetchPriority.Default,i)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},19998,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createMutableActionQueue:function(){return v},dispatchNavigateAction:function(){return w},dispatchTraverseAction:function(){return E},getCurrentAppRouterState:function(){return b},publicAppRouterInstance:function(){return _}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(98165),u=e.r(42939),o=e.r(30668),i=e.r(65035),s=e.r(24994),c=e.r(19939),f=e.r(53128),d=e.r(39940),p=e.r(93259),h=e.r(79111);function m(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&g({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:a.ACTION_REFRESH,origin:window.location.origin},t))}async function g({actionQueue:e,action:t,setState:n}){let r=e.state;e.pending=t;let l=t.payload,u=e.action(r,l);function o(r){if(t.discarded){t.payload.type===a.ACTION_SERVER_ACTION&&t.payload.didRevalidate&&(e.needsRefresh=!0),m(e,n);return}e.state=r,m(e,n),t.resolve(r)}(0,i.isThenable)(u)?u.then(o,r=>{m(e,n),t.reject(r)}):o(u)}let y=null;function v(e,t){let n={state:e,dispatch:(e,t)=>(function(e,t,n){let r={resolve:n,reject:()=>{}};if(t.type!==a.ACTION_RESTORE){let e=new Promise((e,t)=>{r={resolve:e,reject:t}});(0,o.startTransition)(()=>{n(e)})}let l={payload:t,next:null,resolve:r.resolve,reject:r.reject};null===e.pending?(e.last=l,g({actionQueue:e,action:l,setState:n})):t.type===a.ACTION_NAVIGATE||t.type===a.ACTION_RESTORE?(e.pending.discarded=!0,l.next=e.pending.next,g({actionQueue:e,action:l,setState:n})):(null!==e.last&&(e.last.next=l),e.last=l)})(n,e,t),action:async(e,t)=>(0,u.reducer)(e,t),pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};if("undefined"!=typeof window){if(null!==y)throw Object.defineProperty(Error("Internal Next.js Error: createMutableActionQueue was called more than once"),"__NEXT_ERROR_CODE",{value:"E624",enumerable:!1,configurable:!0});y=n}return n}function b(){return null!==y?y.state:null}function S(){return null!==y?y.onRouterTransitionStart:null}function w(e,t,n,r){let l=new URL((0,d.addBasePath)(e),location.href);(0,h.setLinkForCurrentNavigation)(r);let u=S();null!==u&&u(e,t),(0,f.dispatchAppRouterAction)({type:a.ACTION_NAVIGATE,url:l,isExternalUrl:(0,p.isExternalURL)(l),locationSearch:location.search,shouldScroll:n,navigateType:t})}function E(e,t){let n=S();null!==n&&n(e,"traverse"),(0,f.dispatchAppRouterAction)({type:a.ACTION_RESTORE,url:new URL(e),historyState:t})}let _={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let n,r=function(){if(null===y)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});return y}();switch(t?.kind??a.PrefetchKind.AUTO){case a.PrefetchKind.AUTO:n=s.FetchStrategy.PPR;break;case a.PrefetchKind.FULL:n=s.FetchStrategy.Full;break;case a.PrefetchKind.TEMPORARY:return;default:n=s.FetchStrategy.PPR}(0,c.prefetch)(e,r.state.nextUrl,r.state.tree,n,t?.onInvalidate??null)},replace:(e,t)=>{(0,o.startTransition)(()=>{w(e,"replace",t?.scroll??!0,null)})},push:(e,t)=>{(0,o.startTransition)(()=>{w(e,"push",t?.scroll??!0,null)})},refresh:()=>{(0,o.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:a.ACTION_REFRESH,origin:window.location.origin})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};"undefined"!=typeof window&&window.next&&(window.next.router=_),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79216,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createInitialRouterState",{enumerable:!0,get:function(){return i}});let r=e.r(80118),l=e.r(61447),a=e.r(5725),u=e.r(51441),o=e.r(94955);function i({navigatedAt:e,initialFlightData:t,initialCanonicalUrlParts:n,initialRenderedSearch:i,initialParallelRoutes:s,location:c}){let f=n.join("/"),{tree:d,seedData:p,head:h}=(0,o.getFlightDataPartsFromPath)(t[0]),m={lazyData:null,rsc:p?.[0],prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:s,loading:p?.[2]??null,navigatedAt:e},g=c?(0,r.createHrefFromUrl)(c):f;return(0,u.addRefreshMarkerToActiveParallelSegments)(d,g),(null===s||0===s.size)&&(0,l.fillLazyItemsTillLeafWithHead)(e,m,void 0,d,p,h),{tree:d,cache:m,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{apply:!1,onlyHashChange:!1,hashFragment:null,segmentPaths:[]},canonicalUrl:g,renderedSearch:i,nextUrl:((0,a.extractPathFromFlightRouterState)(d)||c?.pathname)??null,previousNextUrl:null,debugInfo:null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},51971,(e,t,n)=>{"use strict";let r,l,a,u;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hydrate",{enumerable:!0,get:function(){return I}});let o=e.r(35856),i=e.r(48277);e.r(86096);let s=o._(e.r(69460)),c=o._(e.r(30668)),f=e.r(30545),d=e.r(98084),p=e.r(29554),h=e.r(26717),m=e.r(59295),g=e.r(85045),y=e.r(19998),v=o._(e.r(87670)),b=e.r(79216);e.r(45243);let S=e.r(70410),w=e.r(94955),E=f.createFromReadableStream,_=f.createFromFetch,P=document,k=new TextEncoder,R=!1,T=!1,x=null;function O(e){if(0===e[0])a=[];else if(1===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});u?u.enqueue(k.encode(e[1])):a.push(e[1])}else if(2===e[0])x=e[1];else if(3===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let n=atob(e[1]),r=new Uint8Array(n.length);for(var t=0;t{e.enqueue("string"==typeof t?k.encode(t):t)}),R&&!T)&&(null===e.desiredSize||e.desiredSize<0?e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),T=!0,a=void 0),u=e}}),L=window.__NEXT_CLIENT_RESUME;function z({initialRSCPayload:e,actionQueue:t,webSocket:n,staticIndicatorState:r}){return(0,i.jsx)(v.default,{actionQueue:t,globalErrorState:e.G,webSocket:n,staticIndicatorState:r})}l=L?Promise.resolve(_(L,{callServer:m.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r})).then(async e=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await L,e)):E(M,{callServer:m.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,startTime:0});let j=c.default.StrictMode;function F({children:e}){return e}let A={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:p.onRecoverableError,onCaughtError:h.onCaughtError,onUncaughtError:h.onUncaughtError};async function I(e,t){let n,r,a=await l;(0,S.setAppBuildId)(a.b);let u=Date.now(),o=(0,y.createMutableActionQueue)((0,b.createInitialRouterState)({navigatedAt:u,initialFlightData:a.f,initialCanonicalUrlParts:a.c,initialRenderedSearch:a.q,initialParallelRoutes:new Map,location:window.location}),e),f=(0,i.jsx)(j,{children:(0,i.jsx)(d.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,i.jsx)(F,{children:(0,i.jsx)(z,{initialRSCPayload:a,actionQueue:o,webSocket:r,staticIndicatorState:n})})})});"__next_error__"===document.documentElement.id?s.default.createRoot(P,A).render(f):c.default.startTransition(()=>{s.default.hydrateRoot(P,f,{...A,formState:x})})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},24153,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});let r=e.r(68402);e.r(29554),window.next.turbopack=!0,self.__webpack_hash__="";let l=e.r(22487);(0,r.appBootstrap)(t=>{let{hydrate:n}=e.r(51971);n(l,t)}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/48c5753aca325314.js b/src/hyperview/server/static/_next/static/chunks/cb115cad1deddecd.js similarity index 99% rename from src/hyperview/server/static/_next/static/chunks/48c5753aca325314.js rename to src/hyperview/server/static/_next/static/chunks/cb115cad1deddecd.js index b10dff8..f3d614e 100644 --- a/src/hyperview/server/static/_next/static/chunks/48c5753aca325314.js +++ b/src/hyperview/server/static/_next/static/chunks/cb115cad1deddecd.js @@ -1 +1 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,86051,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},39400,(e,r,t)=>{"use strict";function n(e,r={}){if(r.onlyHashChange)return void e();let t=document.documentElement;if("smooth"!==t.dataset.scrollBehavior)return void e();let a=t.style.scrollBehavior;t.style.scrollBehavior="auto",r.dontForceLayout||t.getClientRects(),e(),t.style.scrollBehavior=a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(86051)},15128,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return i}});let n=e.r(61909),a=e.r(48277),o=n._(e.r(30668)),c=e.r(83441),u=e.r(88112);e.r(86051);let l=e.r(45243);class s extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,u.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,u.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,r){return e.pathname!==r.previousPathname&&r.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:r.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:r,unauthorized:t,children:n}=this.props,{triggeredStatus:o}=this.state,c={[u.HTTPAccessErrorStatus.NOT_FOUND]:e,[u.HTTPAccessErrorStatus.FORBIDDEN]:r,[u.HTTPAccessErrorStatus.UNAUTHORIZED]:t};if(o){let l=o===u.HTTPAccessErrorStatus.NOT_FOUND&&e,s=o===u.HTTPAccessErrorStatus.FORBIDDEN&&r,i=o===u.HTTPAccessErrorStatus.UNAUTHORIZED&&t;return l||s||i?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,c[o]]}):n}return n}}function i({notFound:e,forbidden:r,unauthorized:t,children:n}){let u=(0,c.useUntrackedPathname)(),i=(0,o.useContext)(l.MissingSlotContext);return e||r||t?(0,a.jsx)(s,{pathname:u,notFound:e,forbidden:r,unauthorized:t,missingSlots:i,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},79227,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(30668);function a(e,r){let[t,a]=(0,n.useState)(()=>({tree:e,stateKey:r,next:null}));if(t.tree===e)return t;let o={tree:e,stateKey:r,next:null},c=1,u=t,l=o;for(;null!==u&&c<1;){if(u.stateKey===r){l.next=u.next;break}{c++;let e={tree:u.tree,stateKey:u.stateKey,next:null};l.next=e,l=e}u=u.next}return a(o),o}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},32035,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return T}});let n=e.r(35856),a=e.r(61909),o=e.r(48277),c=e.r(98165),u=a._(e.r(30668)),l=n._(e.r(69941)),s=e.r(45243),i=e.r(20320),d=e.r(83648),f=e.r(71202),p=e.r(22039),h=e.r(39400),m=e.r(2188),g=e.r(15128),y=e.r(43317),b=e.r(20017),P=e.r(53128),_=e.r(79227);e.r(86511);let v=e.r(69370),O=e.r(88617),S=l.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function R(e,r){let t=e.getBoundingClientRect();return t.top>=0&&t.top<=r}class j extends u.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:r}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>r.every((r,t)=>(0,p.matchSegment)(r,e[t]))))return;let t=null,n=e.hashFragment;if(n&&(t="top"===n?document.body:document.getElementById(n)??document.getElementsByName(n)[0]),t||(t="undefined"==typeof window?null:(0,S.findDOMNode)(this)),!(t instanceof Element))return;for(;!(t instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let r=e.getBoundingClientRect();return E.every(e=>0===r[e])}(t);){if(null===t.nextElementSibling)return;t=t.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,h.disableSmoothScrollDuringRouteTransition)(()=>{if(n)return void t.scrollIntoView();let e=document.documentElement,r=e.clientHeight;!R(t,r)&&(e.scrollTop=0,R(t,r)||t.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,t.focus()}}}}function w({segmentPath:e,children:r}){let t=(0,u.useContext)(s.GlobalLayoutRouterContext);if(!t)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,o.jsx)(j,{segmentPath:e,focusAndScrollRef:t.focusAndScrollRef,children:r})}function C({tree:e,segmentPath:r,debugNameContext:t,cacheNode:n,params:a,url:l,isActive:f}){let h=(0,u.useContext)(s.GlobalLayoutRouterContext);if((0,u.useContext)(v.NavigationPromisesContext),!h)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let{tree:m}=h,g=null!==n.prefetchRsc?n.prefetchRsc:n.rsc,y=(0,u.useDeferredValue)(n.rsc,g),_="object"==typeof y&&null!==y&&"function"==typeof y.then?(0,u.use)(y):y;if(!_){if(f){let e=n.lazyData;if(null===e){let t=function e(r,t){if(r){let[n,a]=r,o=2===r.length;if((0,p.matchSegment)(t[0],n)&&t[1].hasOwnProperty(a)){if(o){let r=e(void 0,t[1][a]);return[t[0],{...t[1],[a]:[r[0],r[1],r[2],"refetch"]}]}return[t[0],{...t[1],[a]:e(r.slice(2),t[1][a])}]}}return t}(["",...r],m),a=(0,b.hasInterceptionRouteInCurrentTree)(m),o=Date.now();n.lazyData=e=(0,i.fetchServerResponse)(new URL(l,location.origin),{flightRouterState:t,nextUrl:a?h.previousNextUrl||h.nextUrl:null}).then(e=>((0,u.startTransition)(()=>{(0,P.dispatchAppRouterAction)({type:c.ACTION_SERVER_PATCH,previousTree:m,serverResponse:e,navigatedAt:o})}),e)),(0,u.use)(e)}}(0,u.use)(d.unresolvedThenable)}return(0,o.jsx)(s.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:n,parentSegmentPath:r,parentParams:a,debugNameContext:t,url:l,isActive:f},children:_})}function x({name:e,loading:r,children:t}){let n;if(n="object"==typeof r&&null!==r&&"function"==typeof r.then?(0,u.use)(r):r){let r=n[0],a=n[1],c=n[2];return(0,o.jsx)(u.Suspense,{name:e,fallback:(0,o.jsxs)(o.Fragment,{children:[a,c,r]}),children:t})}return(0,o.jsx)(o.Fragment,{children:t})}function T({parallelRouterKey:e,error:r,errorStyles:t,errorScripts:n,templateStyles:a,templateScripts:c,template:l,notFound:i,forbidden:d,unauthorized:p,segmentViewBoundaries:h}){let b=(0,u.useContext)(s.LayoutRouterContext);if(!b)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:P,parentCacheNode:v,parentSegmentPath:S,parentParams:E,url:R,isActive:j,debugNameContext:T}=b,A=v.parallelRoutes,M=A.get(e);M||(M=new Map,A.set(e,M));let F=P[0],D=null===S?[e]:S.concat([F,e]),k=P[1][e],N=k[0],I=(0,y.createRouterCacheKey)(N,!0),U=(0,_.useRouterBFCache)(k,I),H=[];do{let e=U.tree,u=U.stateKey,h=e[0],b=(0,y.createRouterCacheKey)(h),P=M.get(b);if(void 0===P){let e={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};P=e,M.set(b,e)}let _=E;if(Array.isArray(h)){let e=h[0],r=h[1],t=h[2],n=(0,O.getParamValueFromCacheKey)(r,t);null!==n&&(_={...E,[e]:n})}let S=function(e){if("/"===e)return"/";if("string"==typeof e)if("(slot)"===e)return;else return e+"/";return e[1]+"/"}(h),A=S??T,F=void 0===S?void 0:T,k=v.loading,N=(0,o.jsxs)(s.TemplateContext.Provider,{value:(0,o.jsxs)(w,{segmentPath:D,children:[(0,o.jsx)(f.ErrorBoundary,{errorComponent:r,errorStyles:t,errorScripts:n,children:(0,o.jsx)(x,{name:F,loading:k,children:(0,o.jsx)(g.HTTPAccessFallbackBoundary,{notFound:i,forbidden:d,unauthorized:p,children:(0,o.jsxs)(m.RedirectBoundary,{children:[(0,o.jsx)(C,{url:R,tree:e,params:_,cacheNode:P,segmentPath:D,debugNameContext:A,isActive:j&&u===I}),null]})})})}),null]}),children:[a,c,l]},u);H.push(N),U=U.next}while(null!==U)return H}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},91168,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=e.r(61909),a=e.r(48277),o=n._(e.r(30668)),c=e.r(45243);function u(){let e=(0,o.useContext)(c.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},66387,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},12318,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(66387).createRenderSearchParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},13972,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},4986,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(13972).createRenderParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},27731,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}},36380,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return l}});let n=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var u=o?Object.getOwnPropertyDescriptor(e,c):null;u&&(u.get||u.set)?Object.defineProperty(n,c,u):n[c]=e[c]}return n.default=e,t&&t.set(e,n),n}(e.r(30668));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}let o={current:null},c="function"==typeof n.cache?n.cache:e=>e,u=console.warn;function l(e){return function(...r){u(e(...r))}}c(e=>{try{u(o.current)}finally{o.current=null}})},20697,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return u},describeStringPropertyAccess:function(){return c},wellKnownProperties:function(){return l}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function c(e,r){return o.test(r)?`\`${e}.${r}\``:`\`${e}[${JSON.stringify(r)}]\``}function u(e,r){let t=JSON.stringify(r);return`\`Reflect.has(${e}, ${t})\`, \`${t} in ${e}\`, or similar`}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule"])},84642,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},55436,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(84642)},83602,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return s},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return u}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(16819),c=e.r(55436);function u(e,r){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,r){let t=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,r),e.invalidDynamicUsageError??=t,t}function s(){let e=c.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},9115,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return g},createSearchParamsFromClient:function(){return p},createServerSearchParamsForMetadata:function(){return h},createServerSearchParamsForServerPage:function(){return m},makeErroringSearchParamsForUseCache:function(){return v}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(27731),c=e.r(93869),u=e.r(63416),l=e.r(84524),s=e.r(64265),i=e.r(36380),d=e.r(20697),f=e.r(83602);function p(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}e.r(93501);let h=m;function m(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"prerender-runtime":var n,a;return n=e,a=t,(0,c.delayUntilRuntimeStage)(a,O(n));case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}function g(e){if(e.forceStatic)return Promise.resolve({});let r=u.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":return(0,s.makeHangingPromise)(r.renderSignal,e.route,"`searchParams`");case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,u.throwInvariantForMissingStore)()}function y(e,r){if(e.forceStatic)return Promise.resolve({});switch(r.type){case"prerender":case"prerender-client":var t=e,n=r;let a=P.get(n);if(a)return a;let u=(0,s.makeHangingPromise)(n.renderSignal,t.route,"`searchParams`"),l=new Proxy(u,{get(e,r,t){if(Object.hasOwn(u,r))return o.ReflectAdapter.get(e,r,t);switch(r){case"then":return(0,c.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),o.ReflectAdapter.get(e,r,t);case"status":return(0,c.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),o.ReflectAdapter.get(e,r,t);default:return o.ReflectAdapter.get(e,r,t)}}});return P.set(n,l),l;case"prerender-ppr":case"prerender-legacy":var i=e,d=r;let p=P.get(i);if(p)return p;let h=Promise.resolve({}),m=new Proxy(h,{get(e,r,t){if(Object.hasOwn(h,r))return o.ReflectAdapter.get(e,r,t);if("string"==typeof r&&"then"===r){let e="`await searchParams`, `searchParams.then`, or similar";i.dynamicShouldError?(0,f.throwWithStaticGenerationBailoutErrorWithDynamicError)(i.route,e):"prerender-ppr"===d.type?(0,c.postponeWithTracking)(i.route,e,d.dynamicTracking):(0,c.throwToInterruptStaticGeneration)(e,i,d)}return o.ReflectAdapter.get(e,r,t)}});return P.set(i,m),m;default:return r}}function b(e,r,t){return r.forceStatic?Promise.resolve({}):O(e)}let P=new WeakMap,_=new WeakMap;function v(e){let r=_.get(e);if(r)return r;let t=Promise.resolve({}),n=new Proxy(t,{get:function r(n,a,c){return Object.hasOwn(t,a)||"string"!=typeof a||"then"!==a&&d.wellKnownProperties.has(a)||(0,f.throwForSearchParamsAccessInUseCache)(e,r),o.ReflectAdapter.get(n,a,c)}});return _.set(e,n),n}function O(e){let r=P.get(e);if(r)return r;let t=Promise.resolve(e);return P.set(e,t),t}(0,i.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},6782,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},14190,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(6782)},69318,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createParamsFromClient:function(){return h},createPrerenderParamsForClientSegment:function(){return b},createServerParamsForMetadata:function(){return m},createServerParamsForRoute:function(){return g},createServerParamsForServerSegment:function(){return y}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(26628),c=e.r(27731),u=e.r(93869),l=e.r(63416),s=e.r(84524),i=e.r(20697),d=e.r(64265),f=e.r(36380),p=e.r(14190);function h(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}e.r(93501);let m=y;function g(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function y(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function b(e){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new s.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`")}break;case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function P(e,r,t){switch(t.type){case"prerender":case"prerender-client":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t){let n=v.get(e);if(n)return n;let a=new Proxy((0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`"),O);return v.set(e,a),a}(e,r,t)}break}case"prerender-ppr":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t,n){let a=v.get(e);if(a)return a;let o={...e},c=Promise.resolve(o);return v.set(e,c),Object.keys(e).forEach(e=>{i.wellKnownProperties.has(e)||r.has(e)&&Object.defineProperty(o,e,{get(){let r=(0,i.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,u.postponeWithTracking)(t.route,r,n.dynamicTracking):(0,u.throwToInterruptStaticGeneration)(r,t,n)},enumerable:!0})}),c}(e,n,r,t)}}}return S(e)}function _(e,r){return(0,u.delayUntilRuntimeStage)(r,S(e))}let v=new WeakMap,O={get:function(e,r,t){if("then"===r||"catch"===r||"finally"===r){let n=c.ReflectAdapter.get(e,r,t);return({[r]:(...r)=>{let t=p.dynamicAccessAsyncStorage.getStore();return t&&t.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,r),O)}})[r]}return c.ReflectAdapter.get(e,r,t)}};function S(e){let r=v.get(e);if(r)return r;let t=Promise.resolve(e);return v.set(e,t),t}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},73440,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return s}});let n=e.r(48277),a=e.r(84524),o=e.r(45243),c=e.r(30668),u=e.r(88617),l=e.r(69370);function s({Component:r,serverProvidedParams:t}){let s,i;if(null!==t)s=t.searchParams,i=t.params;else{let e=(0,c.use)(o.LayoutRouterContext);i=null!==e?e.parentParams:{},s=(0,u.urlSearchParamsToParsedUrlQuery)((0,c.use)(l.SearchParamsContext))}if("undefined"==typeof window){let t,o,{workAsyncStorage:c}=e.r(26628),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling searchParams in a client Page."),"__NEXT_ERROR_CODE",{value:"E564",enumerable:!1,configurable:!0});let{createSearchParamsFromClient:l}=e.r(9115);t=l(s,u);let{createParamsFromClient:d}=e.r(69318);return o=d(i,u),(0,n.jsx)(r,{params:o,searchParams:t})}{let{createRenderSearchParamsFromClient:t}=e.r(12318),a=t(s),{createRenderParamsFromClient:o}=e.r(4986),c=o(i);return(0,n.jsx)(r,{params:c,searchParams:a})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},34636,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return u}});let n=e.r(48277),a=e.r(84524),o=e.r(45243),c=e.r(30668);function u({Component:r,slots:t,serverProvidedParams:u}){let l;if(null!==u)l=u.params;else{let e=(0,c.use)(o.LayoutRouterContext);l=null!==e?e.parentParams:{}}if("undefined"==typeof window){let o,{workAsyncStorage:c}=e.r(26628),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling params in a client segment such as a Layout or Template."),"__NEXT_ERROR_CODE",{value:"E600",enumerable:!1,configurable:!0});let{createParamsFromClient:s}=e.r(69318);return o=s(l,u),(0,n.jsx)(r,{...t,params:o})}{let{createRenderParamsFromClient:a}=e.r(4986),o=a(l);return(0,n.jsx)(r,{...t,params:o})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},12843,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(48277),a=()=>"undefined"!=typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]); \ No newline at end of file +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,86051,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},39400,(e,r,t)=>{"use strict";function n(e,r={}){if(r.onlyHashChange)return void e();let t=document.documentElement;if("smooth"!==t.dataset.scrollBehavior)return void e();let a=t.style.scrollBehavior;t.style.scrollBehavior="auto",r.dontForceLayout||t.getClientRects(),e(),t.style.scrollBehavior=a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(86051)},15128,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return i}});let n=e.r(61909),a=e.r(48277),o=n._(e.r(30668)),c=e.r(83441),u=e.r(88112);e.r(86051);let l=e.r(45243);class s extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,u.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,u.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,r){return e.pathname!==r.previousPathname&&r.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:r.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:r,unauthorized:t,children:n}=this.props,{triggeredStatus:o}=this.state,c={[u.HTTPAccessErrorStatus.NOT_FOUND]:e,[u.HTTPAccessErrorStatus.FORBIDDEN]:r,[u.HTTPAccessErrorStatus.UNAUTHORIZED]:t};if(o){let l=o===u.HTTPAccessErrorStatus.NOT_FOUND&&e,s=o===u.HTTPAccessErrorStatus.FORBIDDEN&&r,i=o===u.HTTPAccessErrorStatus.UNAUTHORIZED&&t;return l||s||i?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,c[o]]}):n}return n}}function i({notFound:e,forbidden:r,unauthorized:t,children:n}){let u=(0,c.useUntrackedPathname)(),i=(0,o.useContext)(l.MissingSlotContext);return e||r||t?(0,a.jsx)(s,{pathname:u,notFound:e,forbidden:r,unauthorized:t,missingSlots:i,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},79227,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(30668);function a(e,r){let[t,a]=(0,n.useState)(()=>({tree:e,stateKey:r,next:null}));if(t.tree===e)return t;let o={tree:e,stateKey:r,next:null},c=1,u=t,l=o;for(;null!==u&&c<1;){if(u.stateKey===r){l.next=u.next;break}{c++;let e={tree:u.tree,stateKey:u.stateKey,next:null};l.next=e,l=e}u=u.next}return a(o),o}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},32035,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return T}});let n=e.r(35856),a=e.r(61909),o=e.r(48277),c=e.r(98165),u=a._(e.r(30668)),l=n._(e.r(69941)),s=e.r(45243),i=e.r(20320),d=e.r(83648),f=e.r(71202),p=e.r(22039),h=e.r(39400),m=e.r(2188),g=e.r(15128),y=e.r(91439),b=e.r(20017),P=e.r(53128),_=e.r(79227);e.r(86511);let v=e.r(69370),O=e.r(88617),S=l.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function R(e,r){let t=e.getBoundingClientRect();return t.top>=0&&t.top<=r}class j extends u.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:r}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>r.every((r,t)=>(0,p.matchSegment)(r,e[t]))))return;let t=null,n=e.hashFragment;if(n&&(t="top"===n?document.body:document.getElementById(n)??document.getElementsByName(n)[0]),t||(t="undefined"==typeof window?null:(0,S.findDOMNode)(this)),!(t instanceof Element))return;for(;!(t instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let r=e.getBoundingClientRect();return E.every(e=>0===r[e])}(t);){if(null===t.nextElementSibling)return;t=t.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,h.disableSmoothScrollDuringRouteTransition)(()=>{if(n)return void t.scrollIntoView();let e=document.documentElement,r=e.clientHeight;!R(t,r)&&(e.scrollTop=0,R(t,r)||t.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,t.focus()}}}}function w({segmentPath:e,children:r}){let t=(0,u.useContext)(s.GlobalLayoutRouterContext);if(!t)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,o.jsx)(j,{segmentPath:e,focusAndScrollRef:t.focusAndScrollRef,children:r})}function C({tree:e,segmentPath:r,debugNameContext:t,cacheNode:n,params:a,url:l,isActive:f}){let h=(0,u.useContext)(s.GlobalLayoutRouterContext);if((0,u.useContext)(v.NavigationPromisesContext),!h)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let{tree:m}=h,g=null!==n.prefetchRsc?n.prefetchRsc:n.rsc,y=(0,u.useDeferredValue)(n.rsc,g),_="object"==typeof y&&null!==y&&"function"==typeof y.then?(0,u.use)(y):y;if(!_){if(f){let e=n.lazyData;if(null===e){let t=function e(r,t){if(r){let[n,a]=r,o=2===r.length;if((0,p.matchSegment)(t[0],n)&&t[1].hasOwnProperty(a)){if(o){let r=e(void 0,t[1][a]);return[t[0],{...t[1],[a]:[r[0],r[1],r[2],"refetch"]}]}return[t[0],{...t[1],[a]:e(r.slice(2),t[1][a])}]}}return t}(["",...r],m),a=(0,b.hasInterceptionRouteInCurrentTree)(m),o=Date.now();n.lazyData=e=(0,i.fetchServerResponse)(new URL(l,location.origin),{flightRouterState:t,nextUrl:a?h.previousNextUrl||h.nextUrl:null}).then(e=>((0,u.startTransition)(()=>{(0,P.dispatchAppRouterAction)({type:c.ACTION_SERVER_PATCH,previousTree:m,serverResponse:e,navigatedAt:o})}),e)),(0,u.use)(e)}}(0,u.use)(d.unresolvedThenable)}return(0,o.jsx)(s.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:n,parentSegmentPath:r,parentParams:a,debugNameContext:t,url:l,isActive:f},children:_})}function x({name:e,loading:r,children:t}){let n;if(n="object"==typeof r&&null!==r&&"function"==typeof r.then?(0,u.use)(r):r){let r=n[0],a=n[1],c=n[2];return(0,o.jsx)(u.Suspense,{name:e,fallback:(0,o.jsxs)(o.Fragment,{children:[a,c,r]}),children:t})}return(0,o.jsx)(o.Fragment,{children:t})}function T({parallelRouterKey:e,error:r,errorStyles:t,errorScripts:n,templateStyles:a,templateScripts:c,template:l,notFound:i,forbidden:d,unauthorized:p,segmentViewBoundaries:h}){let b=(0,u.useContext)(s.LayoutRouterContext);if(!b)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:P,parentCacheNode:v,parentSegmentPath:S,parentParams:E,url:R,isActive:j,debugNameContext:T}=b,A=v.parallelRoutes,M=A.get(e);M||(M=new Map,A.set(e,M));let F=P[0],D=null===S?[e]:S.concat([F,e]),k=P[1][e],N=k[0],I=(0,y.createRouterCacheKey)(N,!0),U=(0,_.useRouterBFCache)(k,I),H=[];do{let e=U.tree,u=U.stateKey,h=e[0],b=(0,y.createRouterCacheKey)(h),P=M.get(b);if(void 0===P){let e={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};P=e,M.set(b,e)}let _=E;if(Array.isArray(h)){let e=h[0],r=h[1],t=h[2],n=(0,O.getParamValueFromCacheKey)(r,t);null!==n&&(_={...E,[e]:n})}let S=function(e){if("/"===e)return"/";if("string"==typeof e)if("(slot)"===e)return;else return e+"/";return e[1]+"/"}(h),A=S??T,F=void 0===S?void 0:T,k=v.loading,N=(0,o.jsxs)(s.TemplateContext.Provider,{value:(0,o.jsxs)(w,{segmentPath:D,children:[(0,o.jsx)(f.ErrorBoundary,{errorComponent:r,errorStyles:t,errorScripts:n,children:(0,o.jsx)(x,{name:F,loading:k,children:(0,o.jsx)(g.HTTPAccessFallbackBoundary,{notFound:i,forbidden:d,unauthorized:p,children:(0,o.jsxs)(m.RedirectBoundary,{children:[(0,o.jsx)(C,{url:R,tree:e,params:_,cacheNode:P,segmentPath:D,debugNameContext:A,isActive:j&&u===I}),null]})})})}),null]}),children:[a,c,l]},u);H.push(N),U=U.next}while(null!==U)return H}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},91168,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=e.r(61909),a=e.r(48277),o=n._(e.r(30668)),c=e.r(45243);function u(){let e=(0,o.useContext)(c.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},66387,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},12318,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(66387).createRenderSearchParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},13972,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},4986,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(13972).createRenderParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},27731,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}},36380,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return l}});let n=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var u=o?Object.getOwnPropertyDescriptor(e,c):null;u&&(u.get||u.set)?Object.defineProperty(n,c,u):n[c]=e[c]}return n.default=e,t&&t.set(e,n),n}(e.r(30668));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}let o={current:null},c="function"==typeof n.cache?n.cache:e=>e,u=console.warn;function l(e){return function(...r){u(e(...r))}}c(e=>{try{u(o.current)}finally{o.current=null}})},20697,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return u},describeStringPropertyAccess:function(){return c},wellKnownProperties:function(){return l}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function c(e,r){return o.test(r)?`\`${e}.${r}\``:`\`${e}[${JSON.stringify(r)}]\``}function u(e,r){let t=JSON.stringify(r);return`\`Reflect.has(${e}, ${t})\`, \`${t} in ${e}\`, or similar`}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule"])},84642,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},55436,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(84642)},83602,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return s},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return u}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(16819),c=e.r(55436);function u(e,r){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,r){let t=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,r),e.invalidDynamicUsageError??=t,t}function s(){let e=c.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},9115,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return g},createSearchParamsFromClient:function(){return p},createServerSearchParamsForMetadata:function(){return h},createServerSearchParamsForServerPage:function(){return m},makeErroringSearchParamsForUseCache:function(){return v}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(27731),c=e.r(93869),u=e.r(63416),l=e.r(84524),s=e.r(64265),i=e.r(36380),d=e.r(20697),f=e.r(83602);function p(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}e.r(93501);let h=m;function m(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"prerender-runtime":var n,a;return n=e,a=t,(0,c.delayUntilRuntimeStage)(a,O(n));case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}function g(e){if(e.forceStatic)return Promise.resolve({});let r=u.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":return(0,s.makeHangingPromise)(r.renderSignal,e.route,"`searchParams`");case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,u.throwInvariantForMissingStore)()}function y(e,r){if(e.forceStatic)return Promise.resolve({});switch(r.type){case"prerender":case"prerender-client":var t=e,n=r;let a=P.get(n);if(a)return a;let u=(0,s.makeHangingPromise)(n.renderSignal,t.route,"`searchParams`"),l=new Proxy(u,{get(e,r,t){if(Object.hasOwn(u,r))return o.ReflectAdapter.get(e,r,t);switch(r){case"then":return(0,c.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),o.ReflectAdapter.get(e,r,t);case"status":return(0,c.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),o.ReflectAdapter.get(e,r,t);default:return o.ReflectAdapter.get(e,r,t)}}});return P.set(n,l),l;case"prerender-ppr":case"prerender-legacy":var i=e,d=r;let p=P.get(i);if(p)return p;let h=Promise.resolve({}),m=new Proxy(h,{get(e,r,t){if(Object.hasOwn(h,r))return o.ReflectAdapter.get(e,r,t);if("string"==typeof r&&"then"===r){let e="`await searchParams`, `searchParams.then`, or similar";i.dynamicShouldError?(0,f.throwWithStaticGenerationBailoutErrorWithDynamicError)(i.route,e):"prerender-ppr"===d.type?(0,c.postponeWithTracking)(i.route,e,d.dynamicTracking):(0,c.throwToInterruptStaticGeneration)(e,i,d)}return o.ReflectAdapter.get(e,r,t)}});return P.set(i,m),m;default:return r}}function b(e,r,t){return r.forceStatic?Promise.resolve({}):O(e)}let P=new WeakMap,_=new WeakMap;function v(e){let r=_.get(e);if(r)return r;let t=Promise.resolve({}),n=new Proxy(t,{get:function r(n,a,c){return Object.hasOwn(t,a)||"string"!=typeof a||"then"!==a&&d.wellKnownProperties.has(a)||(0,f.throwForSearchParamsAccessInUseCache)(e,r),o.ReflectAdapter.get(n,a,c)}});return _.set(e,n),n}function O(e){let r=P.get(e);if(r)return r;let t=Promise.resolve(e);return P.set(e,t),t}(0,i.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},6782,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},14190,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(6782)},69318,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createParamsFromClient:function(){return h},createPrerenderParamsForClientSegment:function(){return b},createServerParamsForMetadata:function(){return m},createServerParamsForRoute:function(){return g},createServerParamsForServerSegment:function(){return y}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(26628),c=e.r(27731),u=e.r(93869),l=e.r(63416),s=e.r(84524),i=e.r(20697),d=e.r(64265),f=e.r(36380),p=e.r(14190);function h(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}e.r(93501);let m=y;function g(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function y(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function b(e){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new s.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`")}break;case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function P(e,r,t){switch(t.type){case"prerender":case"prerender-client":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t){let n=v.get(e);if(n)return n;let a=new Proxy((0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`"),O);return v.set(e,a),a}(e,r,t)}break}case"prerender-ppr":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t,n){let a=v.get(e);if(a)return a;let o={...e},c=Promise.resolve(o);return v.set(e,c),Object.keys(e).forEach(e=>{i.wellKnownProperties.has(e)||r.has(e)&&Object.defineProperty(o,e,{get(){let r=(0,i.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,u.postponeWithTracking)(t.route,r,n.dynamicTracking):(0,u.throwToInterruptStaticGeneration)(r,t,n)},enumerable:!0})}),c}(e,n,r,t)}}}return S(e)}function _(e,r){return(0,u.delayUntilRuntimeStage)(r,S(e))}let v=new WeakMap,O={get:function(e,r,t){if("then"===r||"catch"===r||"finally"===r){let n=c.ReflectAdapter.get(e,r,t);return({[r]:(...r)=>{let t=p.dynamicAccessAsyncStorage.getStore();return t&&t.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,r),O)}})[r]}return c.ReflectAdapter.get(e,r,t)}};function S(e){let r=v.get(e);if(r)return r;let t=Promise.resolve(e);return v.set(e,t),t}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},73440,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return s}});let n=e.r(48277),a=e.r(84524),o=e.r(45243),c=e.r(30668),u=e.r(88617),l=e.r(69370);function s({Component:r,serverProvidedParams:t}){let s,i;if(null!==t)s=t.searchParams,i=t.params;else{let e=(0,c.use)(o.LayoutRouterContext);i=null!==e?e.parentParams:{},s=(0,u.urlSearchParamsToParsedUrlQuery)((0,c.use)(l.SearchParamsContext))}if("undefined"==typeof window){let t,o,{workAsyncStorage:c}=e.r(26628),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling searchParams in a client Page."),"__NEXT_ERROR_CODE",{value:"E564",enumerable:!1,configurable:!0});let{createSearchParamsFromClient:l}=e.r(9115);t=l(s,u);let{createParamsFromClient:d}=e.r(69318);return o=d(i,u),(0,n.jsx)(r,{params:o,searchParams:t})}{let{createRenderSearchParamsFromClient:t}=e.r(12318),a=t(s),{createRenderParamsFromClient:o}=e.r(4986),c=o(i);return(0,n.jsx)(r,{params:c,searchParams:a})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},34636,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return u}});let n=e.r(48277),a=e.r(84524),o=e.r(45243),c=e.r(30668);function u({Component:r,slots:t,serverProvidedParams:u}){let l;if(null!==u)l=u.params;else{let e=(0,c.use)(o.LayoutRouterContext);l=null!==e?e.parentParams:{}}if("undefined"==typeof window){let o,{workAsyncStorage:c}=e.r(26628),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling params in a client segment such as a Layout or Template."),"__NEXT_ERROR_CODE",{value:"E600",enumerable:!1,configurable:!0});let{createParamsFromClient:s}=e.r(69318);return o=s(l,u),(0,n.jsx)(r,{...t,params:o})}{let{createRenderParamsFromClient:a}=e.r(4986),o=a(l);return(0,n.jsx)(r,{...t,params:o})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},12843,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(48277),a=()=>"undefined"!=typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/d6d93a0a04227147.css b/src/hyperview/server/static/_next/static/chunks/d6d93a0a04227147.css deleted file mode 100644 index daf1c3b..0000000 --- a/src/hyperview/server/static/_next/static/chunks/d6d93a0a04227147.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:215 28% 7%;--foreground:213 27% 92%;--card:215 21% 11%;--card-foreground:213 27% 92%;--popover:215 21% 11%;--popover-foreground:213 27% 92%;--primary:212 100% 67%;--primary-foreground:215 28% 7%;--secondary:215 14% 17%;--secondary-foreground:213 27% 92%;--muted:215 14% 17%;--muted-foreground:213 12% 58%;--accent:215 14% 17%;--accent-foreground:213 27% 92%;--destructive:0 62% 50%;--destructive-foreground:0 0% 98%;--border:215 14% 22%;--input:215 14% 22%;--ring:212 100% 67%;--radius:.375rem;--surface:215 21% 11%;--surface-light:215 14% 17%;--surface-elevated:215 14% 22%;--border-subtle:215 14% 17%;--text:213 27% 92%;--text-muted:213 12% 58%;--text-subtle:215 10% 46%;--accent-cyan:176 60% 53%;--accent-orange:27 86% 59%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-1{bottom:.25rem}.left-1{left:.25rem}.right-1{right:.25rem}.top-1{top:.25rem}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.h-screen{height:100vh}.min-h-\[36px\]{min-height:36px}.min-h-\[40px\]{min-height:40px}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-36{width:9rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[3px\]{width:3px}.w-full{width:100%}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-t-transparent{border-top-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-border\/50{background-color:hsl(var(--border)/.5)}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card)/.8)}.bg-card\/85{background-color:hsl(var(--card)/.85)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:#0000}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[11px\]{font-size:11px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wide{letter-spacing:.025em}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-primary{--tw-ring-color:hsl(var(--primary))}.ring-primary\/50{--tw-ring-color:hsl(var(--primary)/.5)}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}.duration-150{animation-duration:.15s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--surface-elevated));border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--text-subtle))}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary\/50:hover{background-color:hsl(var(--primary)/.5)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:underline:hover{text-decoration-line:underline}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.data-\[orientation\=vertical\]\:h-\[3px\][data-orientation=vertical]{height:3px}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[state\=on\]\:border-primary[data-state=on]{border-color:hsl(var(--primary))}.data-\[state\=off\]\:bg-transparent[data-state=off]{background-color:#0000}.data-\[state\=on\]\:bg-background[data-state=on]{background-color:hsl(var(--background))}.data-\[state\=on\]\:bg-primary[data-state=on]{background-color:hsl(var(--primary))}.data-\[state\=off\]\:text-muted-foreground[data-state=off]{color:hsl(var(--muted-foreground))}.data-\[state\=on\]\:text-foreground[data-state=on]{color:hsl(var(--foreground))}.data-\[state\=on\]\:text-primary-foreground[data-state=on]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:shadow-sm[data-state=on]{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[orientation\=vertical\]\:after\:left-0[data-orientation=vertical]:after{content:var(--tw-content);left:0}.data-\[orientation\=vertical\]\:after\:h-2[data-orientation=vertical]:after{content:var(--tw-content);height:.5rem}.data-\[orientation\=vertical\]\:after\:w-full[data-orientation=vertical]:after{content:var(--tw-content);width:100%}.data-\[orientation\=vertical\]\:after\:-translate-y-1\/2[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:after\:translate-x-0[data-orientation=vertical]:after{content:var(--tw-content);--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@media (min-width:640px){.sm\:inline{display:inline}}.\[\&\[data-orientation\=vertical\]\>div\]\:rotate-90[data-orientation=vertical]>div{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} diff --git a/src/hyperview/server/static/_next/static/chunks/e7ae0fd4a43b4ae1.css b/src/hyperview/server/static/_next/static/chunks/e7ae0fd4a43b4ae1.css new file mode 100644 index 0000000..23ca574 --- /dev/null +++ b/src/hyperview/server/static/_next/static/chunks/e7ae0fd4a43b4ae1.css @@ -0,0 +1,3 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_c50830d4-module__9YwRda__className{font-family:Inter,Inter Fallback;font-style:normal} +.dv-scrollable{position:relative;overflow:hidden}.dv-scrollable .dv-scrollbar-horizontal{will-change:background-color,transform;backface-visibility:hidden;background-color:#0000;border-radius:2px;height:4px;transition:background-color 1s ease-in-out;position:absolute;bottom:0;left:0;transform:translate(0,0)}.dv-scrollable:hover .dv-scrollbar-horizontal,.dv-scrollable.dv-scrollable-resizing .dv-scrollbar-horizontal,.dv-scrollable.dv-scrollable-scrolling .dv-scrollbar-horizontal{background-color:var(--dv-scrollbar-background-color,#ffffff40)}.dv-svg{fill:currentColor;stroke:currentColor;stroke-width:0;line-height:1;display:inline-block}.dockview-theme-dark{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#1e1e1e;--dv-tabs-and-actions-container-background-color:#252526;--dv-activegroup-visiblepanel-tab-background-color:#1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color:#1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-tab-divider-color:#1e1e1e;--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:#969696;--dv-inactivegroup-visiblepanel-tab-color:#8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color:#626262;--dv-separator-border:#444;--dv-paneview-header-border-color:#ccc3}.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-light{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:white;--dv-tabs-and-actions-container-background-color:#f3f3f3;--dv-activegroup-visiblepanel-tab-background-color:white;--dv-activegroup-hiddenpanel-tab-background-color:#ececec;--dv-inactivegroup-visiblepanel-tab-background-color:white;--dv-inactivegroup-hiddenpanel-tab-background-color:#ececec;--dv-tab-divider-color:white;--dv-activegroup-visiblepanel-tab-color:#333;--dv-activegroup-hiddenpanel-tab-color:#333333b3;--dv-inactivegroup-visiblepanel-tab-color:#333333b3;--dv-inactivegroup-hiddenpanel-tab-color:#33333359;--dv-separator-border:#80808059;--dv-paneview-header-border-color:#333;--dv-scrollbar-background-color:#00000040}.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs{--dv-paneview-active-outline-color:dodgerblue;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#1e1e1e;--dv-tabs-and-actions-container-background-color:#2d2d30;--dv-activegroup-visiblepanel-tab-background-color:#007acc;--dv-activegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color:#3f3f46;--dv-inactivegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-tab-divider-color:#1e1e1e;--dv-activegroup-hiddenpanel-tab-color:white;--dv-inactivegroup-visiblepanel-tab-color:white;--dv-inactivegroup-hiddenpanel-tab-color:white;--dv-separator-border:#444;--dv-paneview-header-border-color:#ccc3;--dv-tabs-and-actions-container-height:20px;--dv-tabs-and-actions-container-font-size:11px;--dv-activegroup-visiblepanel-tab-color:white}.dockview-theme-vs .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-activegroup-hiddenpanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color)}.dockview-theme-abyss{--dv-paneview-active-outline-color:#596f99;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-color-abyss-dark:#000c18;--dv-color-abyss:#10192c;--dv-color-abyss-light:#1c1c2a;--dv-color-abyss-lighter:#2b2b4a;--dv-color-abyss-accent:#5b1ecf;--dv-color-abyss-primary-text:white;--dv-color-abyss-secondary-text:#9497a9;--dv-group-view-background-color:var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color:var(--dv-color-abyss-light);--dv-activegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-dark);--dv-activegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss);--dv-inactivegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-dark);--dv-inactivegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss);--dv-tab-divider-color:var(--dv-color-abyss-lighter);--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:#ffffff80;--dv-inactivegroup-visiblepanel-tab-color:#ffffff80;--dv-inactivegroup-hiddenpanel-tab-color:#ffffff40;--dv-separator-border:var(--dv-color-abyss-lighter);--dv-paneview-header-border-color:var(--dv-color-abyss-lighter)}.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula{--dv-paneview-active-outline-color:#6272a4;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#282a36;--dv-tabs-and-actions-container-background-color:#191a21;--dv-activegroup-visiblepanel-tab-background-color:#282a36;--dv-activegroup-hiddenpanel-tab-background-color:#21222c;--dv-inactivegroup-visiblepanel-tab-background-color:#282a36;--dv-inactivegroup-hiddenpanel-tab-background-color:#21222c;--dv-tab-divider-color:#191a21;--dv-activegroup-visiblepanel-tab-color:#f8f8f2;--dv-activegroup-hiddenpanel-tab-color:#6272a4;--dv-inactivegroup-visiblepanel-tab-color:#f8f8f280;--dv-inactivegroup-hiddenpanel-tab-color:#6272a480;--dv-separator-border:#bd93f9;--dv-paneview-header-border-color:#bd93f9}.dockview-theme-dracula .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{content:"";z-index:999;background-color:#94527e;width:100%;height:1px;position:absolute;top:0;left:0}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{content:"";z-index:999;background-color:#5e3d5a;width:100%;height:1px;position:absolute;bottom:0;left:0}.dockview-theme-replit{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:#cfd1d3;--dv-active-sash-color:#babbbb;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;box-sizing:border-box;--dv-group-view-background-color:#ebeced;--dv-tabs-and-actions-container-background-color:#fcfcfc;--dv-activegroup-visiblepanel-tab-background-color:#f0f1f2;--dv-activegroup-hiddenpanel-tab-background-color:#fcfcfc;--dv-inactivegroup-visiblepanel-tab-background-color:#f0f1f2;--dv-inactivegroup-hiddenpanel-tab-background-color:#fcfcfc;--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:#333;--dv-activegroup-hiddenpanel-tab-color:#333;--dv-inactivegroup-visiblepanel-tab-color:#333;--dv-inactivegroup-hiddenpanel-tab-color:#333;--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;background-color:#ebeced;padding:10px}.dockview-theme-replit .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-replit .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-replit .dv-resize-container{border:none;border-radius:10px!important}.dockview-theme-replit .dv-groupview{border-radius:10px;overflow:hidden}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container{border-bottom:1px solid #80808059}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab{border-radius:8px;margin:4px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover{background-color:#e4e5e6!important}.dockview-theme-replit .dv-groupview .dv-content-container{background-color:#fcfcfc}.dockview-theme-replit .dv-groupview.dv-active-group{border:1px solid #80808059}.dockview-theme-replit .dv-groupview.dv-inactive-group{border:1px solid #0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash{background-color:#0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):after{content:"";background-color:var(--dv-sash-color);border-radius:2px;width:40px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:#0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash{background-color:#0000}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):after{content:"";background-color:var(--dv-sash-color);border-radius:2px;width:4px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:#0000}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-abyss-spaced{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-drag-over-background-color:"";--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #00000080;--dv-overlay-z-index:999;--dv-tab-font-size:12px;--dv-tab-margin:.5rem .25rem;--dv-sash-color:transparent;--dv-active-sash-color:var(--dv-color-abyss-accent);--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-tabs-and-actions-container-height:44px;--dv-border-radius:20px;box-sizing:border-box;--dv-color-abyss-dark:#0b0611;--dv-color-abyss:#16121f;--dv-color-abyss-light:#201d2b;--dv-color-abyss-lighter:#2a2837;--dv-color-abyss-accent:#5b1ecf;--dv-color-abyss-primary-text:white;--dv-color-abyss-secondary-text:#9497a9;--dv-drag-over-border:2px solid var(--dv-color-abyss-accent);--dv-group-view-background-color:var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color:var(--dv-color-abyss);--dv-activegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-lighter);--dv-activegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss-light);--dv-inactivegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-lighter);--dv-inactivegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss-light);--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:var(--dv-color-abyss-primary-text);--dv-activegroup-hiddenpanel-tab-color:var(--dv-color-abyss-secondary-text);--dv-inactivegroup-visiblepanel-tab-color:var(--dv-color-abyss-primary-text);--dv-inactivegroup-hiddenpanel-tab-color:var(--dv-color-abyss-secondary-text);--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;background-color:var(--dv-color-abyss-dark);padding:10px}.dockview-theme-abyss-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-abyss-spaced .dv-sash{border-radius:4px}.dockview-theme-abyss-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius)/4)}.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-resize-container{border:none;border-radius:var(--dv-border-radius)!important}.dockview-theme-abyss-spaced .dv-tabs-overflow-container,.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-abyss-spaced .dv-tab{border-radius:8px}.dockview-theme-abyss-spaced .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-abyss-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius)/2)}.dockview-theme-abyss-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview{border:2px solid var(--dv-color-abyss-dark)}.dockview-theme-light-spaced{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-drag-over-background-color:"";--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #0000001a;--dv-overlay-z-index:999;--dv-tab-font-size:12px;--dv-tab-margin:.5rem .25rem;--dv-sash-color:transparent;--dv-active-sash-color:#5b1ecf;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-tabs-and-actions-container-height:44px;--dv-border-radius:20px;box-sizing:border-box;--dv-drag-over-border:2px solid #5b1ecf;--dv-group-view-background-color:#f6f5f9;--dv-tabs-and-actions-container-background-color:white;--dv-activegroup-visiblepanel-tab-background-color:#ededf0;--dv-activegroup-hiddenpanel-tab-background-color:#f9f9fa;--dv-inactivegroup-visiblepanel-tab-background-color:#ededf0;--dv-inactivegroup-hiddenpanel-tab-background-color:#f9f9fa;--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:#686b82;--dv-activegroup-hiddenpanel-tab-color:#9497a9;--dv-inactivegroup-visiblepanel-tab-color:#686b82;--dv-inactivegroup-hiddenpanel-tab-color:#9497a9;--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;--dv-scrollbar-background-color:#00000040;background-color:#f6f5f9;padding:10px}.dockview-theme-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-light-spaced .dv-sash{border-radius:4px}.dockview-theme-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius)/4)}.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-resize-container{border:none;border-radius:var(--dv-border-radius)!important}.dockview-theme-light-spaced .dv-tabs-overflow-container,.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-light-spaced .dv-tab{border-radius:8px}.dockview-theme-light-spaced .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius)/2)}.dockview-theme-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-light-spaced .dv-resize-container .dv-groupview{border:2px solid #ffffff1a}.dv-drop-target-container{z-index:9999;pointer-events:none;--dv-transition-duration:.3s;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.dv-drop-target-container .dv-drop-target-anchor{border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);opacity:1;will-change:transform,opacity;backface-visibility:hidden;contain:layout paint;transition:opacity var(--dv-transition-duration)ease-in,transform var(--dv-transition-duration)ease-out;position:relative;transform:translate(0,0)}.dv-drop-target{--dv-transition-duration:70ms;position:relative}.dv-drop-target>.dv-drop-target-dropzone{z-index:1000;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection{box-sizing:border-box;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);width:100%;height:100%;transition:top var(--dv-transition-duration)ease-out,left var(--dv-transition-duration)ease-out,width var(--dv-transition-duration)ease-out,height var(--dv-transition-duration)ease-out,opacity var(--dv-transition-duration)ease-out;will-change:transform;pointer-events:none;position:relative}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical{border-top:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical{border-bottom:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal{border-left:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal{border-right:1px solid var(--dv-drag-over-border-color)}.dv-dockview{background-color:var(--dv-group-view-background-color);contain:layout;position:relative}.dv-dockview .dv-watermark-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.dv-dockview .dv-overlay-render-container{position:relative}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-inactivegroup-visiblepanel-tab-background-color);color:var(--dv-inactivegroup-visiblepanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-inactivegroup-hiddenpanel-tab-background-color);color:var(--dv-inactivegroup-hiddenpanel-tab-color)}.dv-tab.dv-tab-dragging{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview{background-color:var(--dv-group-view-background-color);flex-direction:column;height:100%;display:flex;overflow:hidden}.dv-groupview:focus{outline:none}.dv-groupview>.dv-content-container{outline:none;flex-grow:1;min-height:0}.dv-root-wrapper,.dv-grid-view,.dv-branch-node{width:100%;height:100%}.dv-debug .dv-resize-container .dv-resize-handle-top{background-color:red}.dv-debug .dv-resize-container .dv-resize-handle-bottom{background-color:green}.dv-debug .dv-resize-container .dv-resize-handle-left{background-color:#ff0}.dv-debug .dv-resize-container .dv-resize-handle-right{background-color:#00f}.dv-debug .dv-resize-container .dv-resize-handle-topleft,.dv-debug .dv-resize-container .dv-resize-handle-topright,.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,.dv-debug .dv-resize-container .dv-resize-handle-bottomright{background-color:#0ff}.dv-resize-container{--dv-overlay-z-index:var(--dv-overlay-z-index,999);z-index:calc(var(--dv-overlay-z-index) - 2);border:1px solid var(--dv-tab-divider-color);box-shadow:var(--dv-floating-box-shadow);will-change:transform,opacity;backface-visibility:hidden;position:absolute;transform:translate(0,0)}.dv-resize-container.dv-hidden{display:none}.dv-resize-container.dv-resize-container-dragging{opacity:.5;will-change:transform,opacity}.dv-resize-container .dv-resize-handle-top{width:calc(100% - 8px);height:4px;z-index:var(--dv-overlay-z-index);cursor:ns-resize;position:absolute;top:-2px;left:4px}.dv-resize-container .dv-resize-handle-bottom{width:calc(100% - 8px);height:4px;z-index:var(--dv-overlay-z-index);cursor:ns-resize;position:absolute;bottom:-2px;left:4px}.dv-resize-container .dv-resize-handle-left{width:4px;height:calc(100% - 8px);z-index:var(--dv-overlay-z-index);cursor:ew-resize;position:absolute;top:4px;left:-2px}.dv-resize-container .dv-resize-handle-right{width:4px;height:calc(100% - 8px);z-index:var(--dv-overlay-z-index);cursor:ew-resize;position:absolute;top:4px;right:-2px}.dv-resize-container .dv-resize-handle-topleft{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:nw-resize;position:absolute;top:-2px;left:-2px}.dv-resize-container .dv-resize-handle-topright{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:ne-resize;position:absolute;top:-2px;right:-2px}.dv-resize-container .dv-resize-handle-bottomleft{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:sw-resize;position:absolute;bottom:-2px;left:-2px}.dv-resize-container .dv-resize-handle-bottomright{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:se-resize;position:absolute;bottom:-2px;right:-2px}.dv-render-overlay{--dv-overlay-z-index:var(--dv-overlay-z-index,999);z-index:1;contain:layout paint;isolation:isolate;will-change:transform;backface-visibility:hidden;width:100%;height:100%;position:absolute;transform:translate(0,0)}.dv-render-overlay.dv-render-overlay-float{z-index:calc(var(--dv-overlay-z-index) - 1)}.dv-debug .dv-render-overlay{outline-offset:-1;outline:1px solid red}.dv-pane-container{width:100%;height:100%}.dv-pane-container.dv-animated .dv-view{will-change:transform;backface-visibility:hidden;transition:transform .15s ease-out;transform:translate(0,0)}.dv-pane-container .dv-view{flex-direction:column;display:flex;overflow:hidden;padding:0!important}.dv-pane-container .dv-view:not(:first-child):before{background-color:#0000!important}.dv-pane-container .dv-view:not(:first-child) .dv-pane>.dv-pane-header{border-top:1px solid var(--dv-paneview-header-border-color)}.dv-pane-container .dv-view .dv-default-header{background-color:var(--dv-group-view-background-color);color:var(--dv-activegroup-visiblepanel-tab-color);cursor:pointer;padding:0 8px;display:flex}.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon{justify-content:center;align-items:center;display:flex}.dv-pane-container .dv-view .dv-default-header>span{flex-grow:1;padding-left:8px}.dv-pane-container:first-of-type>.dv-pane>.dv-pane-header{border-top:none!important}.dv-pane-container .dv-pane{flex-direction:column;height:100%;display:flex;overflow:hidden}.dv-pane-container .dv-pane .dv-pane-header{box-sizing:border-box;-webkit-user-select:none;user-select:none;outline:none;position:relative}.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable{cursor:pointer}.dv-pane-container .dv-pane .dv-pane-header:focus:before,.dv-pane-container .dv-pane .dv-pane-header:focus-within:before{z-index:5;content:"";pointer-events:none;outline-offset:-1px;outline:-1px solid;outline-color:var(--dv-paneview-active-outline-color);width:100%;height:100%;position:absolute;top:0;left:0}.dv-pane-container .dv-pane .dv-pane-body{outline:none;flex-grow:1;position:relative;overflow:hidden auto}.dv-pane-container .dv-pane .dv-pane-body:focus:before,.dv-pane-container .dv-pane .dv-pane-body:focus-within:before{z-index:5;content:"";pointer-events:none;outline-offset:-1px;outline:-1px solid;outline-color:var(--dv-paneview-active-outline-color);width:100%;height:100%;position:absolute;top:0;left:0}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled{background-color:#000}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled{background-color:orange}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum{background-color:green}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum{background-color:red}.dv-split-view-container{width:100%;height:100%;position:relative;overflow:hidden}.dv-split-view-container.dv-splitview-disabled>.dv-sash-container>.dv-sash{pointer-events:none}.dv-split-view-container.dv-animation .dv-view,.dv-split-view-container.dv-animation .dv-sash{will-change:transform;backface-visibility:hidden;transition:transform .15s ease-out;transform:translate(0,0)}.dv-split-view-container.dv-horizontal{height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{width:4px;height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled{cursor:ew-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-maximum{cursor:w-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-minimum{cursor:e-resize}.dv-split-view-container.dv-horizontal>.dv-view-container>.dv-view:not(:first-child):before{width:1px;height:100%}.dv-split-view-container.dv-vertical{width:100%}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{width:100%;height:4px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled{cursor:ns-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-maximum{cursor:n-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-minimum{cursor:s-resize}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view{width:100%}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view:not(:first-child):before{width:100%;height:1px}.dv-split-view-container .dv-sash-container{width:100%;height:100%;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash{z-index:99;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--dv-sash-color,transparent);outline:none;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active,.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover{background-color:var(--dv-active-sash-color,transparent);transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:var(--dv-active-sash-transition-duration,.1s);transition-delay:var(--dv-active-sash-transition-delay,.5s)}.dv-split-view-container .dv-view-container{width:100%;height:100%;position:relative}.dv-split-view-container .dv-view-container .dv-view{box-sizing:border-box;height:100%;position:absolute;overflow:auto}.dv-split-view-container.dv-separator-border .dv-view:not(:first-child):before{content:" ";z-index:5;pointer-events:none;background-color:var(--dv-separator-border);position:absolute;top:0;left:0}.dv-dragged{transform:translate(0,0)}.dv-tab{flex-shrink:0}.dv-tab:focus-within,.dv-tab:focus{position:relative}.dv-tab:focus-within:after,.dv-tab:focus:after{content:"";pointer-events:none;outline-offset:-1px;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0;outline:1px solid var(--dv-tab-divider-color)!important}.dv-tab.dv-tab-dragging .dv-default-tab-action{background-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action{visibility:visible}.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:hidden}.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action{visibility:visible}.dv-tab .dv-default-tab{white-space:nowrap;text-overflow:ellipsis;align-items:center;height:100%;display:flex;position:relative}.dv-tab .dv-default-tab .dv-default-tab-content{flex-grow:1;margin-right:4px}.dv-tab .dv-default-tab .dv-default-tab-action{box-sizing:border-box;justify-content:center;align-items:center;padding:4px;display:flex}.dv-tab .dv-default-tab .dv-default-tab-action:hover{background-color:var(--dv-icon-hover-background-color);border-radius:2px}.dv-tabs-overflow-dropdown-default{height:100%;color:var(--dv-activegroup-hiddenpanel-tab-color);margin:var(--dv-tab-margin);cursor:pointer;flex-shrink:0;align-items:center;padding:.25rem .5rem;display:flex}.dv-tabs-overflow-dropdown-default>span{padding-left:.25rem}.dv-tabs-overflow-dropdown-default>svg{transform:rotate(90deg)}.dv-tabs-container{scrollbar-width:thin;will-change:scroll-position;height:100%;display:flex;overflow:auto;transform:translate(0,0)}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{content:" ";z-index:5;pointer-events:none;background-color:var(--dv-tab-divider-color);width:1px;height:100%;position:absolute;top:0;left:0}.dv-tabs-container::-webkit-scrollbar{height:3px}.dv-tabs-container::-webkit-scrollbar-track{background:0 0}.dv-tabs-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color)}.dv-scrollable>.dv-tabs-container{overflow:hidden}.dv-tab{-webkit-user-drag:element;cursor:pointer;box-sizing:border-box;font-size:var(--dv-tab-font-size);margin:var(--dv-tab-margin);outline:none;padding:.25rem .5rem;position:relative}.dv-tabs-overflow-container{height:unset;border:1px solid var(--dv-tab-divider-color);background-color:var(--dv-group-view-background-color);flex-direction:column}.dv-tabs-overflow-container .dv-tab:not(:last-child){border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tabs-overflow-container .dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-tabs-and-actions-container{background-color:var(--dv-tabs-and-actions-container-background-color);box-sizing:border-box;height:var(--dv-tabs-and-actions-container-height);font-size:var(--dv-tabs-and-actions-container-font-size);flex-shrink:0;display:flex}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable,.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container{flex-grow:1}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{flex-grow:1;padding:0}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container{flex-grow:0}.dv-tabs-and-actions-container .dv-void-container{flex-grow:1;display:flex}.dv-tabs-and-actions-container .dv-void-container.dv-draggable{cursor:grab}.dv-tabs-and-actions-container .dv-right-actions-container{display:flex}.dv-watermark{height:100%;display:flex} +*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html,body{height:100%;margin:0;padding:0;overflow:hidden}:root{--background:215 28% 7%;--foreground:213 27% 92%;--card:215 21% 11%;--card-foreground:213 27% 92%;--popover:215 21% 11%;--popover-foreground:213 27% 92%;--primary:212 100% 67%;--primary-foreground:215 28% 7%;--secondary:215 14% 17%;--secondary-foreground:213 27% 92%;--muted:215 14% 17%;--muted-foreground:213 12% 58%;--accent:215 14% 17%;--accent-foreground:213 27% 92%;--destructive:0 62% 50%;--destructive-foreground:0 0% 98%;--border:215 14% 22%;--input:215 14% 22%;--ring:212 100% 67%;--radius:.375rem;--surface:215 21% 11%;--surface-light:215 14% 17%;--surface-elevated:215 14% 22%;--border-subtle:215 14% 17%;--text:213 27% 92%;--text-muted:213 12% 58%;--text-subtle:215 10% 46%;--accent-cyan:176 60% 53%;--accent-orange:27 86% 59%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));letter-spacing:-.15px;font-feature-settings:"liga" 1,"calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:12px;font-weight:500;line-height:16px}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-0\.5{bottom:.125rem}.left-0\.5{left:.125rem}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0\.5{right:.125rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0\.5{top:.125rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-ml-1{margin-left:-.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[10px\]{height:10px}.h-\[1px\]{height:1px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[300px\]{max-height:300px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:0}.min-h-\[24px\]{min-height:24px}.min-h-\[28px\]{min-height:28px}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[10px\]{width:10px}.w-\[1px\]{width:1px}.w-\[280px\]{width:280px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[200px\]{min-width:200px}.min-w-\[8rem\]{min-width:8rem}.max-w-\[400px\]{max-width:400px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1px*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\[3px\]{border-radius:3px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border)/.5)}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-l-transparent{border-left-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card)/.8)}.bg-card\/85{background-color:hsl(var(--card)/.85)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/25{background-color:hsl(var(--muted-foreground)/.25)}.bg-muted\/40{background-color:hsl(var(--muted)/.4)}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-muted\/60{background-color:hsl(var(--muted)/.6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary)/.3)}.bg-secondary\/50{background-color:hsl(var(--secondary)/.5)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-primary{fill:hsl(var(--primary))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[2px\]{padding:2px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal)var(--tw-slashed-zero)var(--tw-numeric-figure)var(--tw-numeric-spacing)var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-\[16px\]{line-height:16px}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-\[-0\.15px\]{letter-spacing:-.15px}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/20{color:hsl(var(--muted-foreground)/.2)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground)/.5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground)/.6)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-primary{--tw-ring-color:hsl(var(--primary))}.ring-primary\/50{--tw-ring-color:hsl(var(--primary)/.5)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-property:box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--muted-foreground)/.2);background-clip:padding-box;border:2px solid #0000;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground)/.35);background-clip:padding-box;border:2px solid #0000}*{scrollbar-width:thin;scrollbar-color:hsl(var(--muted-foreground)/.25)transparent}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.panel-scroll{scrollbar-gutter:stable}.hyperview-dockview{--dv-background-color:hsl(var(--background));--dv-group-view-background-color:hsl(var(--card));--dv-tabs-and-actions-container-background-color:hsl(var(--secondary));--dv-activegroup-visiblepanel-tab-background-color:hsl(var(--card));--dv-activegroup-hiddenpanel-tab-background-color:hsl(var(--secondary));--dv-inactivegroup-visiblepanel-tab-background-color:hsl(var(--secondary));--dv-inactivegroup-hiddenpanel-tab-background-color:hsl(var(--secondary));--dv-activegroup-visiblepanel-tab-color:hsl(var(--foreground));--dv-activegroup-hiddenpanel-tab-color:hsl(var(--muted-foreground));--dv-inactivegroup-visiblepanel-tab-color:hsl(var(--muted-foreground));--dv-inactivegroup-hiddenpanel-tab-color:hsl(var(--muted-foreground));--dv-tabs-and-actions-container-font-size:12px;--dv-tabs-and-actions-container-height:24px;--dv-tab-font-size:12px;--dv-tabs-container-scrollbar-color:hsl(var(--muted-foreground)/.25);--dv-scrollbar-background-color:hsl(var(--muted-foreground)/.25);--dv-tab-divider-color:hsl(var(--border));--dv-separator-border:transparent;--dv-paneview-header-border-color:hsl(var(--border));--dv-sash-color:hsl(var(--border));--dv-icon-hover-background-color:hsl(var(--accent));--dv-active-sash-color:hsl(var(--primary));--dv-drag-over-background-color:hsl(var(--primary)/.15);--dv-drag-over-border-color:hsl(var(--primary)/.6);--dv-tab-margin:0}.hyperview-dockview .dv-groupview{border:none}.hyperview-dockview .dv-tabs-and-actions-container{border-bottom:1px solid hsl(var(--border))}.hyperview-dockview .dv-tab{align-items:center;height:100%;padding:0 8px;line-height:16px;display:flex}.hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal{border-radius:3px;height:6px}.hyperview-dockview .dv-tabs-container{scrollbar-width:none}.hyperview-dockview .dv-tabs-container::-webkit-scrollbar{height:0}.hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal{display:none}.hyperview-dockview .dv-split-view-container>.dv-sash-container>.dv-sash{background-color:#0000!important}.hyperview-dockview .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash:after{content:"";background-color:hsl(var(--border));pointer-events:none;width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.hyperview-dockview .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled:hover:after{background-color:hsl(var(--primary))}.hyperview-dockview .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash:after{content:"";background-color:hsl(var(--border));pointer-events:none;height:1px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.hyperview-dockview .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled:hover:after{background-color:hsl(var(--primary))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground\/50::placeholder{color:hsl(var(--muted-foreground)/.5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted-foreground\/40:hover{background-color:hsl(var(--muted-foreground)/.4)}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted)/.3)}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted)/.4)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:border-ring:focus{border-color:hsl(var(--ring))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=on\]\:border-primary[data-state=on]{border-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=on\]\:bg-primary[data-state=on]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=on\]\:text-primary-foreground[data-state=on]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}@media (min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} diff --git a/src/hyperview/server/static/_next/static/chunks/118bac1f0e1f8b45.js b/src/hyperview/server/static/_next/static/chunks/f89d541331847b49.js similarity index 99% rename from src/hyperview/server/static/_next/static/chunks/118bac1f0e1f8b45.js rename to src/hyperview/server/static/_next/static/chunks/f89d541331847b49.js index 48c4158..780aa73 100644 --- a/src/hyperview/server/static/_next/static/chunks/118bac1f0e1f8b45.js +++ b/src/hyperview/server/static/_next/static/chunks/f89d541331847b49.js @@ -1,4 +1,4 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,84524,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},35856,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},19551,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return a},isBailoutToCSRError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="BAILOUT_TO_CLIENT_SIDE_RENDERING";class a extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}},64918,(e,t,r)=>{"use strict";var n=e.r(69941),o={stream:!0},u=Object.prototype.hasOwnProperty;function a(t){var r=e.r(t);return"function"!=typeof r.then||"fulfilled"===r.status?null:(r.then(function(e){r.status="fulfilled",r.value=e},function(e){r.status="rejected",r.reason=e}),r)}var i=new WeakSet,l=new WeakSet;function s(){}function c(t){for(var r=t[1],n=[],o=0;of||35===f||114===f||120===f?(p=f,f=3,s++):(p=0,f=3);continue;case 2:44===(b=l[s++])?f=4:h=h<<4|(96l.length&&(b=-1)}var g=l.byteOffset+s;if(-1{"use strict";t.exports=e.r(64918)},30545,(e,t,r)=>{"use strict";t.exports=e.r(14992)},88112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return i},getAccessFallbackErrorTypeByStatus:function(){return c},getAccessFallbackHTTPStatus:function(){return s},isHTTPAccessFallbackError:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},a=new Set(Object.values(u)),i="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===i&&a.has(Number(r))}function s(e){return Number(e.digest.split(";")[1])}function c(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91945,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84628,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return i},RedirectType:function(){return l},isRedirectError:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(91945),i="NEXT_REDIRECT";var l=((n={}).push="push",n.replace="replace",n);function s(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in a.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},31028,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(88112),o=e.r(84628);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69370,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return l},PathnameContext:function(){return i},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(30668),a=(0,u.createContext)(null),i=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null);function c(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},29037,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},2089,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return a},FLIGHT_HEADERS:function(){return h},NEXT_ACTION_NOT_FOUND_HEADER:function(){return E},NEXT_DID_POSTPONE_HEADER:function(){return b},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return c},NEXT_HTML_REQUEST_ID_HEADER:function(){return O},NEXT_IS_PRERENDER_HEADER:function(){return m},NEXT_REQUEST_ID_HEADER:function(){return R},NEXT_REWRITTEN_PATH_HEADER:function(){return g},NEXT_REWRITTEN_QUERY_HEADER:function(){return v},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return i},NEXT_RSC_UNION_QUERY:function(){return _},NEXT_URL:function(){return d},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",a="next-action",i="next-router-state-tree",l="next-router-prefetch",s="next-router-segment-prefetch",c="next-hmr-refresh",f="__next_hmr_refresh_hash__",d="next-url",p="text/x-component",h=[u,i,l,c,s],_="_rsc",y="x-nextjs-stale-time",b="x-nextjs-postponed",g="x-nextjs-rewritten-path",v="x-nextjs-rewritten-query",m="x-nextjs-prerender",E="x-nextjs-action-not-found",R="x-nextjs-request-id",O="x-nextjs-html-request-id";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63416,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return y},getDraftModeProviderForCacheScope:function(){return _},getHmrRefreshHash:function(){return d},getPrerenderResumeDataCache:function(){return c},getRenderResumeDataCache:function(){return f},getRuntimeStagePromise:function(){return b},getServerComponentsHmrCache:function(){return h},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return l},throwInvariantForMissingStore:function(){return s},workUnitAsyncStorage:function(){return u.workUnitAsyncStorageInstance}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(29037),a=e.r(2089),i=e.r(84524);function l(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function s(){throw Object.defineProperty(new i.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function c(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function f(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function d(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return t.hmrRefreshHash;case"request":var r;return null==(r=t.cookies.get(a.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:r.value}}function p(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.isHmrRefresh??!1}return!1}function h(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.serverComponentsHmrCache}}function _(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function y(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function b(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},83441,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(30668),o=e.r(69370);function u(){return!function(){if("undefined"==typeof window){let{workUnitAsyncStorage:t}=e.r(63416),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},80118,(e,t,r)=>{"use strict";function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61524,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return a},useNavFailureHandler:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(30668);let u=e.r(80118);function a(e){return!!e&&"undefined"!=typeof window&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function i(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},26470,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},62112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return i},getBotType:function(){return c},isBot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(26470),a=/Googlebot(?!-)|Googlebot$/i,i=u.HTML_LIMITED_BOT_UA_RE.source;function l(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return a.test(e)||l(e)}function c(e){return a.test(e)?"dom":l(e)?"html":void 0}},71202,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return h},ErrorBoundaryHandler:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(35856),a=e.r(48277),i=u._(e.r(30668)),l=e.r(83441),s=e.r(31028);e.r(61524);let c=e.r(86846),f=e.r(62112),d="undefined"!=typeof window&&(0,f.isBot)(window.navigator.userAgent);class p extends i.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,a.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function h({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,l.useUntrackedPathname)();return e?(0,a.jsx)(p,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98165,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={ACTION_HMR_REFRESH:function(){return c},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return a},ACTION_RESTORE:function(){return l},ACTION_SERVER_ACTION:function(){return f},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return d}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a="refresh",i="navigate",l="restore",s="server-patch",c="hmr-refresh",f="server-action";var d=((n={}).AUTO="auto",n.FULL="full",n.TEMPORARY="temporary",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61909,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=u?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}},65035,(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},53128,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return l},useActionQueue:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=e.r(65035),i=null;function l(e){if(null===i)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});i(e)}function s(e){let[t,r]=u.default.useState(e.state);i=t=>e.dispatch(t,r);let n=(0,u.useMemo)(()=>t,[t]);return(0,a.isThenable)(n)?(0,u.use)(n):n}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59295,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return a}});let n=e.r(30668),o=e.r(98165),u=e.r(53128);async function a(e,t){return new Promise((r,a)=>{(0,n.startTransition)(()=>{(0,u.dispatchAppRouterAction)({type:o.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:a})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},85045,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},96670,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},91395,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return c},addSearchParamsIfPageSegment:function(){return l},computeSelectedLayoutSegment:function(){return s},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let a;if(n)a=t[1][r];else{let e=t[1];a=e.children??Object.values(e)[0]}if(!a)return o;let i=u(a[0]);return!i||i.startsWith(c)?o:(o.push(i),e(a,r,!1,o))}},isGroupSegment:function(){return a},isParallelRouteSegment:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function a(e){return"("===e[0]&&e.endsWith(")")}function i(e){return e.startsWith("@")&&"@children"!==e}function l(e,t){if(e.includes(c)){let e=JSON.stringify(t);return"{}"!==e?c+"?"+e:c}return e}function s(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let c="__PAGE__",f="__DEFAULT__"},86511,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={normalizeAppPath:function(){return i},normalizeRscURL:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(96670),a=e.r(91395);function i(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function l(e){return e.replace(/\.rsc($|\?)/,"$1")}},50864,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return a},extractInterceptionRouteInformation:function(){return l},isInterceptionRouteAppPath:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(86511),a=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function l(e){let t,r,n;for(let o of e.split("/"))if(r=a.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=o.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},22039,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"matchSegment",{enumerable:!0,get:function(){return n}});let n=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69434,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return i},ROOT_SEGMENT_REQUEST_KEY:function(){return a},appendSegmentRequestKeyPart:function(){return s},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentRequestKeyPart:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a="",i="/_head";function l(e){if("string"==typeof e)return e.startsWith(u.PAGE_SEGMENT_KEY)?u.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0];return"$"+e[2]+"$"+f(t)}function s(e,t,r){return e+"/"+("children"===t?r:`@${f(t)}/${r}`)}let c=/^[a-zA-Z0-9\-_@]+$/;function f(e){return c.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return`__next${e.replace(/\//g,".")}.txt`}},88617,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return f},getCacheKeyForDynamicParam:function(){return d},getParamValueFromCacheKey:function(){return h},getRenderedPathname:function(){return s},getRenderedSearch:function(){return l},parseDynamicParamFromURLPart:function(){return c},urlSearchParamsToParsedUrlQuery:function(){return _},urlToUrlWithoutFlightMarker:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a=e.r(69434),i=e.r(2089);function l(e){let t=e.headers.get(i.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:p(new URL(e.url)).search}function s(e){return e.headers.get(i.NEXT_REWRITTEN_PATH_HEADER)??p(new URL(e.url)).pathname}function c(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}function f(e){return!(e===a.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(u.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==u.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function d(e,t){return"string"==typeof e?(0,u.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function p(e){let t=new URL(e);if(t.searchParams.delete(i.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function h(e,t){return"c"===t||"oc"===t?e.split("/"):e}function _(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94955,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return s},getFlightDataPartsFromPath:function(){return l},getNextFlightSegmentPath:function(){return c},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a=e.r(88617),i=e.r(80118);function l(e){let[t,r,n,o]=e.slice(-4),u=e.slice(0,-4);return{pathToSegment:u.slice(0,-1),segmentPath:u,segment:u[u.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:o,isRootRender:4===e.length}}function s(e,t){let r=(0,a.getRenderedPathname)(e),n=(0,a.getRenderedSearch)(e),o=(0,i.createHrefFromUrl)(new URL(location.href)),u=t.f[0],l=u[0];return{b:t.b,c:o.split("/"),q:n,i:t.i,f:[[function e(t,r,n,o){let u,i,l=t[0];if("string"==typeof l)u=l,i=(0,a.doesStaticSegmentAppearInURL)(l);else{let e=l[0],t=l[2],s=(0,a.parseDynamicParamFromURLPart)(t,n,o);u=[e,(0,a.getCacheKeyForDynamicParam)(s,r),t],i=!0}let s=i?o+1:o,c=t[1],f={};for(let t in c){let o=c[t];f[t]=e(o,r,n,s)}return[u,f,null,t[3],t[4]]}(l,n,r.split("/").filter(e=>""!==e),0),u[1],u[2],u[2]]],m:t.m,G:t.G,S:t.S}}function c(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>l(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){var r,n;let[o,a,i,l,s,c]=t,f="string"==typeof(r=o)&&r.startsWith(u.PAGE_SEGMENT_KEY+"?")?u.PAGE_SEGMENT_KEY:r,d={};for(let[t,r]of Object.entries(a))d[t]=e(r);let p=[f,d,null,(n=l)&&"refresh"!==n?l:null];return void 0!==s&&(p[4]=s),void 0!==c&&(p[5]=c),p}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70410,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getAppBuildId:function(){return i},setAppBuildId:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="";function a(e){u=e}function i(){return u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},83767,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return u},hexHash:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t=5381;for(let r=0;r>>0}function a(e){return u(e).toString(36).slice(0,5)}},62858,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return o}});let n=e.r(83767);function o(e,t,r,o){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===o?"":(0,n.hexHash)([e||"0",t||"0",r||"0",o||"0"].join(","))}},57283,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return i},setCacheBustingSearchParamWithHash:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(62858),a=e.r(2089),i=(e,t)=>{l(e,(0,u.computeCacheBustingSearchParam)(t[a.NEXT_ROUTER_PREFETCH_HEADER],t[a.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[a.NEXT_ROUTER_STATE_TREE_HEADER],t[a.NEXT_URL]))},l=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${a.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${a.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${a.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},20320,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var o={createFetch:function(){return m},createFromNextReadableStream:function(){return E},fetchServerResponse:function(){return v}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(30545),i=e.r(2089),l=e.r(59295),s=e.r(85045),c=e.r(98165),f=e.r(94955),d=e.r(70410),p=e.r(57283),h=e.r(88617),_=a.createFromReadableStream,y=a.createFromFetch;function b(e){return(0,h.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let g=!1;async function v(e,t){let{flightRouterState:r,nextUrl:n,prefetchKind:o}=t,u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,f.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};o===c.PrefetchKind.AUTO&&(u[i.NEXT_ROUTER_PREFETCH_HEADER]="1"),n&&(u[i.NEXT_URL]=n);let a=e;try{let t=o?o===c.PrefetchKind.TEMPORARY?"high":"low":"auto";(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let r=await m(e,u,t,!0),n=(0,h.urlToUrlWithoutFlightMarker)(new URL(r.url)),l=r.redirected?n:a,s=r.headers.get("content-type")||"",p=!!r.headers.get("vary")?.includes(i.NEXT_URL),_=!!r.headers.get(i.NEXT_DID_POSTPONE_HEADER),y=r.headers.get(i.NEXT_ROUTER_STALE_TIME_HEADER),g=null!==y?1e3*parseInt(y,10):-1,v=s.startsWith(i.RSC_CONTENT_TYPE_HEADER);if(v||(v=s.startsWith("text/plain")),!v||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),b(n.toString());let R=r.flightResponse;if(null===R){let e,t=_?(e=r.body.getReader(),new ReadableStream({async pull(t){for(;;){let{done:r,value:n}=await e.read();if(!r){t.enqueue(n);continue}return}}})):r.body;R=E(t,u)}let O=await R;if((0,d.getAppBuildId)()!==O.b)return b(r.url);let S=(0,f.normalizeFlightData)(O.f);if("string"==typeof S)return b(S);return{flightData:S,canonicalUrl:l,renderedSearch:(0,h.getRenderedSearch)(r),couldBeIntercepted:p,prerendered:O.S,postponed:_,staleTime:g,debugInfo:R._debugInfo??null}}catch(e){return g||console.error(`Failed to fetch RSC payload for ${a}. Falling back to browser navigation.`,e),a.toString()}}async function m(e,t,r,o,u){var a,c;let f=new URL(e);(0,p.setCacheBustingSearchParam)(f,t);let d=fetch(f,{credentials:"same-origin",headers:t,priority:r||void 0,signal:u}),h=o?(a=d,c=t,y(a,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(c)})):null,_=await d,b=_.redirected,g=new URL(_.url,f);return g.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:g.href,redirected:b,ok:_.ok,headers:_.headers,body:_.body,status:_.status,flightResponse:h}}function E(e,t){return _(e,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t)})}"undefined"!=typeof window&&(window.addEventListener("pagehide",()=>{g=!0}),window.addEventListener("pageshow",()=>{g=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},43317,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=e.r(91395);function o(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59162,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},45243,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return a},GlobalLayoutRouterContext:function(){return l},LayoutRouterContext:function(){return i},MissingSlotContext:function(){return c},TemplateContext:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(35856)._(e.r(30668)),a=u.default.createContext(null),i=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(null),c=u.default.createContext(new Set)},13058,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return a},useServerInsertedHTML:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=u.default.createContext(null);function i(e){let t=(0,u.useContext)(a);t&&t(e)}},40288,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function a(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39069,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},93988,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(39069)},44216,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return l},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return c},redirect:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91945),a=e.r(84628),i="undefined"==typeof window?e.r(93988).actionAsyncStorage:void 0;function l(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(a.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${a.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw l(e,t??=i?.getStore()?.isAction?a.RedirectType.push:a.RedirectType.replace,u.RedirectStatusCode.TemporaryRedirect)}function c(e,t=a.RedirectType.replace){throw l(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,a.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48918,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(88112),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92881,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(88112).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},24673,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(88112).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33517,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(19551),o=e.r(31028);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64265,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return u},makeDevtoolsIOAwarePromise:function(){return f},makeHangingPromise:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}let a="HANGING_PROMISE_REJECTION";class i extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=a}}let l=new WeakMap;function s(e,t,r){if(e.aborted)return Promise.reject(new i(t,r));{let n=new Promise((n,o)=>{let u=o.bind(null,new i(t,r)),a=l.get(e);if(a)a.push(u);else{let t=[u];l.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{t(e)},0)})}},67867,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},61541,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return a},isDynamicServerError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="DYNAMIC_SERVER_USAGE";class a extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},16819,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return a},isStaticGenBailoutError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="NEXT_STATIC_GEN_BAILOUT";class a extends Error{constructor(...e){super(...e),this.code=u}}function i(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66251,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return u},OUTLET_BOUNDARY_NAME:function(){return i},ROOT_LAYOUT_BOUNDARY_NAME:function(){return l},VIEWPORT_BOUNDARY_NAME:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="__next_metadata_boundary__",a="__next_viewport_boundary__",i="__next_outlet_boundary__",l="__next_root_layout_boundary__"},25992,(e,t,r)=>{"use strict";var n=e.i(39057);Object.defineProperty(r,"__esModule",{value:!0});var o={atLeastOneTask:function(){return l},scheduleImmediate:function(){return i},scheduleOnNextTick:function(){return a},waitAtLeastOneReactRenderTask:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},i=e=>{setImmediate(e)};function l(){return new Promise(e=>i(e))}function s(){return new Promise(e=>setImmediate(e))}},93501,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={RenderStage:function(){return l},StagedRenderingController:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(84524),i=e.r(59162);var l=((n={})[n.Static=1]="Static",n[n.Runtime=2]="Runtime",n[n.Dynamic=3]="Dynamic",n);class s{constructor(e=null){this.abortSignal=e,this.currentStage=1,this.runtimeStagePromise=(0,i.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,i.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<2&&(this.runtimeStagePromise.promise.catch(c),this.runtimeStagePromise.reject(t)),this.currentStage<3&&(this.dynamicStagePromise.promise.catch(c),this.dynamicStagePromise.reject(t))},{once:!0})}advanceStage(e){!(this.currentStage>=e)&&(this.currentStage=e,e>=2&&this.runtimeStagePromise.resolve(),e>=3&&this.dynamicStagePromise.resolve())}getStagePromise(e){switch(e){case 2:return this.runtimeStagePromise.promise;case 3:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new a.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,o,u;let a,i=(n=this.getStagePromise(e),o=t,u=r,a=new Promise((e,t)=>{n.then(e.bind(null,u),t)}),void 0!==o&&(a.displayName=o),a);return this.abortSignal&&i.catch(c),i}}function c(){}},93869,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,u={Postpone:function(){return A},PreludeState:function(){return J},abortAndThrowOnSynchronousRequestDataAccess:function(){return T},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return B},consumeDynamicAccess:function(){return L},createDynamicTrackingState:function(){return v},createDynamicValidationState:function(){return m},createHangingInputAbortSignal:function(){return H},createRenderInBrowserAbortSignal:function(){return F},delayUntilRuntimeStage:function(){return ee},formatDynamicAPIAccesses:function(){return $},getFirstDynamicReason:function(){return E},isDynamicPostpone:function(){return N},isPrerenderInterruptedError:function(){return U},logDisallowedDynamicError:function(){return Q},markCurrentScopeAsDynamic:function(){return R},postponeWithTracking:function(){return M},throwIfDisallowedDynamic:function(){return Z},throwToInterruptStaticGeneration:function(){return O},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return S},trackSynchronousPlatformIOAccessInDev:function(){return w},useDynamicRouteParams:function(){return X},useDynamicSearchParams:function(){return W}};for(var a in u)Object.defineProperty(r,a,{enumerable:!0,get:u[a]});let i=(n=e.r(30668))&&n.__esModule?n:{default:n},l=e.r(61541),s=e.r(16819),c=e.r(63416),f=e.r(26628),d=e.r(64265),p=e.r(66251),h=e.r(25992),_=e.r(19551),y=e.r(84524),b=e.r(93501),g="function"==typeof i.default.unstable_postpone;function v(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function m(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function E(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function R(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new s.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return M(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new l.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function O(e,t,r){let n=Object.defineProperty(new l.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function S(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function P(e,t,r){let n=k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let o=n.dynamicTracking;P(e,t,n),o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}function w(e){e.stagedRendering&&e.stagedRendering.advanceStage(b.RenderStage.Dynamic)}function T(e,t,r,n){if(!1===n.controller.signal.aborted){P(e,t,n);let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}throw k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function A({reason:e,route:t}){let r=c.workUnitAsyncStorage.getStore();M(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function M(e,t,r){(function(){if(!g)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),i.default.unstable_postpone(D(e,t))}function D(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function N(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&x(e.message)}function x(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===x(D("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let C="NEXT_PRERENDER_INTERRUPTED";function k(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=C,t}function U(e){return"object"==typeof e&&null!==e&&e.digest===C&&"name"in e&&"message"in e&&e instanceof Error}function I(e){return e.length>0}function L(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function $(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,84524,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},35856,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},19551,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return a},isBailoutToCSRError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="BAILOUT_TO_CLIENT_SIDE_RENDERING";class a extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}},64918,(e,t,r)=>{"use strict";var n=e.r(69941),o={stream:!0},u=Object.prototype.hasOwnProperty;function a(t){var r=e.r(t);return"function"!=typeof r.then||"fulfilled"===r.status?null:(r.then(function(e){r.status="fulfilled",r.value=e},function(e){r.status="rejected",r.reason=e}),r)}var i=new WeakSet,l=new WeakSet;function s(){}function c(t){for(var r=t[1],n=[],o=0;of||35===f||114===f||120===f?(p=f,f=3,s++):(p=0,f=3);continue;case 2:44===(b=l[s++])?f=4:h=h<<4|(96l.length&&(b=-1)}var g=l.byteOffset+s;if(-1{"use strict";t.exports=e.r(64918)},30545,(e,t,r)=>{"use strict";t.exports=e.r(14992)},88112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return i},getAccessFallbackErrorTypeByStatus:function(){return c},getAccessFallbackHTTPStatus:function(){return s},isHTTPAccessFallbackError:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},a=new Set(Object.values(u)),i="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===i&&a.has(Number(r))}function s(e){return Number(e.digest.split(";")[1])}function c(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91945,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84628,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return i},RedirectType:function(){return l},isRedirectError:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(91945),i="NEXT_REDIRECT";var l=((n={}).push="push",n.replace="replace",n);function s(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in a.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},31028,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(88112),o=e.r(84628);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69370,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return l},PathnameContext:function(){return i},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(30668),a=(0,u.createContext)(null),i=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null);function c(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},29037,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},2089,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return a},FLIGHT_HEADERS:function(){return h},NEXT_ACTION_NOT_FOUND_HEADER:function(){return E},NEXT_DID_POSTPONE_HEADER:function(){return b},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return c},NEXT_HTML_REQUEST_ID_HEADER:function(){return O},NEXT_IS_PRERENDER_HEADER:function(){return m},NEXT_REQUEST_ID_HEADER:function(){return R},NEXT_REWRITTEN_PATH_HEADER:function(){return g},NEXT_REWRITTEN_QUERY_HEADER:function(){return v},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return i},NEXT_RSC_UNION_QUERY:function(){return _},NEXT_URL:function(){return d},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",a="next-action",i="next-router-state-tree",l="next-router-prefetch",s="next-router-segment-prefetch",c="next-hmr-refresh",f="__next_hmr_refresh_hash__",d="next-url",p="text/x-component",h=[u,i,l,c,s],_="_rsc",y="x-nextjs-stale-time",b="x-nextjs-postponed",g="x-nextjs-rewritten-path",v="x-nextjs-rewritten-query",m="x-nextjs-prerender",E="x-nextjs-action-not-found",R="x-nextjs-request-id",O="x-nextjs-html-request-id";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63416,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return y},getDraftModeProviderForCacheScope:function(){return _},getHmrRefreshHash:function(){return d},getPrerenderResumeDataCache:function(){return c},getRenderResumeDataCache:function(){return f},getRuntimeStagePromise:function(){return b},getServerComponentsHmrCache:function(){return h},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return l},throwInvariantForMissingStore:function(){return s},workUnitAsyncStorage:function(){return u.workUnitAsyncStorageInstance}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(29037),a=e.r(2089),i=e.r(84524);function l(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function s(){throw Object.defineProperty(new i.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function c(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function f(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function d(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return t.hmrRefreshHash;case"request":var r;return null==(r=t.cookies.get(a.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:r.value}}function p(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.isHmrRefresh??!1}return!1}function h(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.serverComponentsHmrCache}}function _(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function y(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function b(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},83441,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(30668),o=e.r(69370);function u(){return!function(){if("undefined"==typeof window){let{workUnitAsyncStorage:t}=e.r(63416),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},80118,(e,t,r)=>{"use strict";function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61524,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return a},useNavFailureHandler:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(30668);let u=e.r(80118);function a(e){return!!e&&"undefined"!=typeof window&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function i(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},26470,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},62112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return i},getBotType:function(){return c},isBot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(26470),a=/Googlebot(?!-)|Googlebot$/i,i=u.HTML_LIMITED_BOT_UA_RE.source;function l(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return a.test(e)||l(e)}function c(e){return a.test(e)?"dom":l(e)?"html":void 0}},71202,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return h},ErrorBoundaryHandler:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(35856),a=e.r(48277),i=u._(e.r(30668)),l=e.r(83441),s=e.r(31028);e.r(61524);let c=e.r(86846),f=e.r(62112),d="undefined"!=typeof window&&(0,f.isBot)(window.navigator.userAgent);class p extends i.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,a.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function h({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,l.useUntrackedPathname)();return e?(0,a.jsx)(p,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98165,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={ACTION_HMR_REFRESH:function(){return c},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return a},ACTION_RESTORE:function(){return l},ACTION_SERVER_ACTION:function(){return f},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return d}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a="refresh",i="navigate",l="restore",s="server-patch",c="hmr-refresh",f="server-action";var d=((n={}).AUTO="auto",n.FULL="full",n.TEMPORARY="temporary",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61909,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=u?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}},65035,(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},53128,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return l},useActionQueue:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=e.r(65035),i=null;function l(e){if(null===i)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});i(e)}function s(e){let[t,r]=u.default.useState(e.state);i=t=>e.dispatch(t,r);let n=(0,u.useMemo)(()=>t,[t]);return(0,a.isThenable)(n)?(0,u.use)(n):n}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59295,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return a}});let n=e.r(30668),o=e.r(98165),u=e.r(53128);async function a(e,t){return new Promise((r,a)=>{(0,n.startTransition)(()=>{(0,u.dispatchAppRouterAction)({type:o.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:a})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},85045,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},96670,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},91395,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return c},addSearchParamsIfPageSegment:function(){return l},computeSelectedLayoutSegment:function(){return s},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let a;if(n)a=t[1][r];else{let e=t[1];a=e.children??Object.values(e)[0]}if(!a)return o;let i=u(a[0]);return!i||i.startsWith(c)?o:(o.push(i),e(a,r,!1,o))}},isGroupSegment:function(){return a},isParallelRouteSegment:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function a(e){return"("===e[0]&&e.endsWith(")")}function i(e){return e.startsWith("@")&&"@children"!==e}function l(e,t){if(e.includes(c)){let e=JSON.stringify(t);return"{}"!==e?c+"?"+e:c}return e}function s(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let c="__PAGE__",f="__DEFAULT__"},86511,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={normalizeAppPath:function(){return i},normalizeRscURL:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(96670),a=e.r(91395);function i(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function l(e){return e.replace(/\.rsc($|\?)/,"$1")}},50864,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return a},extractInterceptionRouteInformation:function(){return l},isInterceptionRouteAppPath:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(86511),a=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function l(e){let t,r,n;for(let o of e.split("/"))if(r=a.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=o.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},22039,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"matchSegment",{enumerable:!0,get:function(){return n}});let n=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69434,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return i},ROOT_SEGMENT_REQUEST_KEY:function(){return a},appendSegmentRequestKeyPart:function(){return s},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentRequestKeyPart:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a="",i="/_head";function l(e){if("string"==typeof e)return e.startsWith(u.PAGE_SEGMENT_KEY)?u.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0];return"$"+e[2]+"$"+f(t)}function s(e,t,r){return e+"/"+("children"===t?r:`@${f(t)}/${r}`)}let c=/^[a-zA-Z0-9\-_@]+$/;function f(e){return c.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return`__next${e.replace(/\//g,".")}.txt`}},88617,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return f},getCacheKeyForDynamicParam:function(){return d},getParamValueFromCacheKey:function(){return h},getRenderedPathname:function(){return s},getRenderedSearch:function(){return l},parseDynamicParamFromURLPart:function(){return c},urlSearchParamsToParsedUrlQuery:function(){return _},urlToUrlWithoutFlightMarker:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a=e.r(69434),i=e.r(2089);function l(e){let t=e.headers.get(i.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:p(new URL(e.url)).search}function s(e){return e.headers.get(i.NEXT_REWRITTEN_PATH_HEADER)??p(new URL(e.url)).pathname}function c(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}function f(e){return!(e===a.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(u.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==u.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function d(e,t){return"string"==typeof e?(0,u.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function p(e){let t=new URL(e);if(t.searchParams.delete(i.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function h(e,t){return"c"===t||"oc"===t?e.split("/"):e}function _(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94955,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return s},getFlightDataPartsFromPath:function(){return l},getNextFlightSegmentPath:function(){return c},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a=e.r(88617),i=e.r(80118);function l(e){let[t,r,n,o]=e.slice(-4),u=e.slice(0,-4);return{pathToSegment:u.slice(0,-1),segmentPath:u,segment:u[u.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:o,isRootRender:4===e.length}}function s(e,t){let r=(0,a.getRenderedPathname)(e),n=(0,a.getRenderedSearch)(e),o=(0,i.createHrefFromUrl)(new URL(location.href)),u=t.f[0],l=u[0];return{b:t.b,c:o.split("/"),q:n,i:t.i,f:[[function e(t,r,n,o){let u,i,l=t[0];if("string"==typeof l)u=l,i=(0,a.doesStaticSegmentAppearInURL)(l);else{let e=l[0],t=l[2],s=(0,a.parseDynamicParamFromURLPart)(t,n,o);u=[e,(0,a.getCacheKeyForDynamicParam)(s,r),t],i=!0}let s=i?o+1:o,c=t[1],f={};for(let t in c){let o=c[t];f[t]=e(o,r,n,s)}return[u,f,null,t[3],t[4]]}(l,n,r.split("/").filter(e=>""!==e),0),u[1],u[2],u[2]]],m:t.m,G:t.G,S:t.S}}function c(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>l(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){var r,n;let[o,a,i,l,s,c]=t,f="string"==typeof(r=o)&&r.startsWith(u.PAGE_SEGMENT_KEY+"?")?u.PAGE_SEGMENT_KEY:r,d={};for(let[t,r]of Object.entries(a))d[t]=e(r);let p=[f,d,null,(n=l)&&"refresh"!==n?l:null];return void 0!==s&&(p[4]=s),void 0!==c&&(p[5]=c),p}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70410,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getAppBuildId:function(){return i},setAppBuildId:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="";function a(e){u=e}function i(){return u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},83767,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return u},hexHash:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t=5381;for(let r=0;r>>0}function a(e){return u(e).toString(36).slice(0,5)}},62858,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return o}});let n=e.r(83767);function o(e,t,r,o){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===o?"":(0,n.hexHash)([e||"0",t||"0",r||"0",o||"0"].join(","))}},57283,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return i},setCacheBustingSearchParamWithHash:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(62858),a=e.r(2089),i=(e,t)=>{l(e,(0,u.computeCacheBustingSearchParam)(t[a.NEXT_ROUTER_PREFETCH_HEADER],t[a.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[a.NEXT_ROUTER_STATE_TREE_HEADER],t[a.NEXT_URL]))},l=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${a.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${a.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${a.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},20320,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var o={createFetch:function(){return m},createFromNextReadableStream:function(){return E},fetchServerResponse:function(){return v}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(30545),i=e.r(2089),l=e.r(59295),s=e.r(85045),c=e.r(98165),f=e.r(94955),d=e.r(70410),p=e.r(57283),h=e.r(88617),_=a.createFromReadableStream,y=a.createFromFetch;function b(e){return(0,h.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let g=!1;async function v(e,t){let{flightRouterState:r,nextUrl:n,prefetchKind:o}=t,u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,f.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};o===c.PrefetchKind.AUTO&&(u[i.NEXT_ROUTER_PREFETCH_HEADER]="1"),n&&(u[i.NEXT_URL]=n);let a=e;try{let t=o?o===c.PrefetchKind.TEMPORARY?"high":"low":"auto";(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let r=await m(e,u,t,!0),n=(0,h.urlToUrlWithoutFlightMarker)(new URL(r.url)),l=r.redirected?n:a,s=r.headers.get("content-type")||"",p=!!r.headers.get("vary")?.includes(i.NEXT_URL),_=!!r.headers.get(i.NEXT_DID_POSTPONE_HEADER),y=r.headers.get(i.NEXT_ROUTER_STALE_TIME_HEADER),g=null!==y?1e3*parseInt(y,10):-1,v=s.startsWith(i.RSC_CONTENT_TYPE_HEADER);if(v||(v=s.startsWith("text/plain")),!v||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),b(n.toString());let R=r.flightResponse;if(null===R){let e,t=_?(e=r.body.getReader(),new ReadableStream({async pull(t){for(;;){let{done:r,value:n}=await e.read();if(!r){t.enqueue(n);continue}return}}})):r.body;R=E(t,u)}let O=await R;if((0,d.getAppBuildId)()!==O.b)return b(r.url);let S=(0,f.normalizeFlightData)(O.f);if("string"==typeof S)return b(S);return{flightData:S,canonicalUrl:l,renderedSearch:(0,h.getRenderedSearch)(r),couldBeIntercepted:p,prerendered:O.S,postponed:_,staleTime:g,debugInfo:R._debugInfo??null}}catch(e){return g||console.error(`Failed to fetch RSC payload for ${a}. Falling back to browser navigation.`,e),a.toString()}}async function m(e,t,r,o,u){var a,c;let f=new URL(e);(0,p.setCacheBustingSearchParam)(f,t);let d=fetch(f,{credentials:"same-origin",headers:t,priority:r||void 0,signal:u}),h=o?(a=d,c=t,y(a,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(c)})):null,_=await d,b=_.redirected,g=new URL(_.url,f);return g.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:g.href,redirected:b,ok:_.ok,headers:_.headers,body:_.body,status:_.status,flightResponse:h}}function E(e,t){return _(e,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t)})}"undefined"!=typeof window&&(window.addEventListener("pagehide",()=>{g=!0}),window.addEventListener("pageshow",()=>{g=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91439,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=e.r(91395);function o(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59162,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},45243,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return a},GlobalLayoutRouterContext:function(){return l},LayoutRouterContext:function(){return i},MissingSlotContext:function(){return c},TemplateContext:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(35856)._(e.r(30668)),a=u.default.createContext(null),i=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(null),c=u.default.createContext(new Set)},13058,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return a},useServerInsertedHTML:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=u.default.createContext(null);function i(e){let t=(0,u.useContext)(a);t&&t(e)}},40288,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function a(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39069,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},93988,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(39069)},44216,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return l},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return c},redirect:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91945),a=e.r(84628),i="undefined"==typeof window?e.r(93988).actionAsyncStorage:void 0;function l(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(a.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${a.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw l(e,t??=i?.getStore()?.isAction?a.RedirectType.push:a.RedirectType.replace,u.RedirectStatusCode.TemporaryRedirect)}function c(e,t=a.RedirectType.replace){throw l(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,a.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48918,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(88112),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92881,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(88112).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},24673,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(88112).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33517,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(19551),o=e.r(31028);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64265,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return u},makeDevtoolsIOAwarePromise:function(){return f},makeHangingPromise:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}let a="HANGING_PROMISE_REJECTION";class i extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=a}}let l=new WeakMap;function s(e,t,r){if(e.aborted)return Promise.reject(new i(t,r));{let n=new Promise((n,o)=>{let u=o.bind(null,new i(t,r)),a=l.get(e);if(a)a.push(u);else{let t=[u];l.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{t(e)},0)})}},67867,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},61541,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return a},isDynamicServerError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="DYNAMIC_SERVER_USAGE";class a extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},16819,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return a},isStaticGenBailoutError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="NEXT_STATIC_GEN_BAILOUT";class a extends Error{constructor(...e){super(...e),this.code=u}}function i(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66251,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return u},OUTLET_BOUNDARY_NAME:function(){return i},ROOT_LAYOUT_BOUNDARY_NAME:function(){return l},VIEWPORT_BOUNDARY_NAME:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="__next_metadata_boundary__",a="__next_viewport_boundary__",i="__next_outlet_boundary__",l="__next_root_layout_boundary__"},25992,(e,t,r)=>{"use strict";var n=e.i(39057);Object.defineProperty(r,"__esModule",{value:!0});var o={atLeastOneTask:function(){return l},scheduleImmediate:function(){return i},scheduleOnNextTick:function(){return a},waitAtLeastOneReactRenderTask:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},i=e=>{setImmediate(e)};function l(){return new Promise(e=>i(e))}function s(){return new Promise(e=>setImmediate(e))}},93501,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={RenderStage:function(){return l},StagedRenderingController:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(84524),i=e.r(59162);var l=((n={})[n.Static=1]="Static",n[n.Runtime=2]="Runtime",n[n.Dynamic=3]="Dynamic",n);class s{constructor(e=null){this.abortSignal=e,this.currentStage=1,this.runtimeStagePromise=(0,i.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,i.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<2&&(this.runtimeStagePromise.promise.catch(c),this.runtimeStagePromise.reject(t)),this.currentStage<3&&(this.dynamicStagePromise.promise.catch(c),this.dynamicStagePromise.reject(t))},{once:!0})}advanceStage(e){!(this.currentStage>=e)&&(this.currentStage=e,e>=2&&this.runtimeStagePromise.resolve(),e>=3&&this.dynamicStagePromise.resolve())}getStagePromise(e){switch(e){case 2:return this.runtimeStagePromise.promise;case 3:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new a.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,o,u;let a,i=(n=this.getStagePromise(e),o=t,u=r,a=new Promise((e,t)=>{n.then(e.bind(null,u),t)}),void 0!==o&&(a.displayName=o),a);return this.abortSignal&&i.catch(c),i}}function c(){}},93869,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,u={Postpone:function(){return A},PreludeState:function(){return J},abortAndThrowOnSynchronousRequestDataAccess:function(){return T},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return B},consumeDynamicAccess:function(){return L},createDynamicTrackingState:function(){return v},createDynamicValidationState:function(){return m},createHangingInputAbortSignal:function(){return H},createRenderInBrowserAbortSignal:function(){return F},delayUntilRuntimeStage:function(){return ee},formatDynamicAPIAccesses:function(){return $},getFirstDynamicReason:function(){return E},isDynamicPostpone:function(){return N},isPrerenderInterruptedError:function(){return U},logDisallowedDynamicError:function(){return Q},markCurrentScopeAsDynamic:function(){return R},postponeWithTracking:function(){return M},throwIfDisallowedDynamic:function(){return Z},throwToInterruptStaticGeneration:function(){return O},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return S},trackSynchronousPlatformIOAccessInDev:function(){return w},useDynamicRouteParams:function(){return X},useDynamicSearchParams:function(){return W}};for(var a in u)Object.defineProperty(r,a,{enumerable:!0,get:u[a]});let i=(n=e.r(30668))&&n.__esModule?n:{default:n},l=e.r(61541),s=e.r(16819),c=e.r(63416),f=e.r(26628),d=e.r(64265),p=e.r(66251),h=e.r(25992),_=e.r(19551),y=e.r(84524),b=e.r(93501),g="function"==typeof i.default.unstable_postpone;function v(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function m(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function E(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function R(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new s.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return M(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new l.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function O(e,t,r){let n=Object.defineProperty(new l.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function S(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function P(e,t,r){let n=k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let o=n.dynamicTracking;P(e,t,n),o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}function w(e){e.stagedRendering&&e.stagedRendering.advanceStage(b.RenderStage.Dynamic)}function T(e,t,r,n){if(!1===n.controller.signal.aborted){P(e,t,n);let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}throw k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function A({reason:e,route:t}){let r=c.workUnitAsyncStorage.getStore();M(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function M(e,t,r){(function(){if(!g)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),i.default.unstable_postpone(D(e,t))}function D(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function N(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&x(e.message)}function x(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===x(D("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let C="NEXT_PRERENDER_INTERRUPTED";function k(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=C,t}function U(e){return"object"==typeof e&&null!==e&&e.digest===C&&"name"in e&&"message"in e&&e instanceof Error}function I(e){return e.length>0}function L(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function $(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: ${t}`))}function F(){let e=new AbortController;return e.abort(Object.defineProperty(new _.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function H(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,c.getRuntimeStagePromise)(e);r?r.then(()=>(0,h.scheduleOnNextTick)(()=>t.abort())):(0,h.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function B(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function X(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return M(t.route,e,r.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function W(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,c.throwForMissingRequestStore)(e),r.type){case"prerender-client":i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new _.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let G=/\n\s+at Suspense \(\)/,Y=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${p.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),q=RegExp(`\\n\\s+at ${p.METADATA_BOUNDARY_NAME}[\\n\\s]`),K=RegExp(`\\n\\s+at ${p.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),z=RegExp(`\\n\\s+at ${p.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function V(e,t,r,n){if(!z.test(t)){if(q.test(t)){r.hasDynamicMetadata=!0;return}if(K.test(t)){r.hasDynamicViewport=!0;return}if(Y.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(G.test(t)){r.hasAllowedDynamic=!0;return}else{var o,u;let a;if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let i=(o=`Route "${e.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,u=t,(a=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).stack=a.name+": "+o+u,a);return void r.dynamicErrors.push(i)}}}var J=((o={})[o.Full=0]="Full",o[o.Empty=1]="Empty",o[o.Errored=2]="Errored",o);function Q(e,t){console.error(t),e.dev||(e.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error. - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function Z(e,t,r,n){if(n.syncDynamicErrorWithStack)throw Q(e,n.syncDynamicErrorWithStack),new s.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;tt):t}},57617,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,u.isBailoutToCSRError)(t)||(0,l.isDynamicServerError)(t)||(0,i.isDynamicPostpone)(t)||(0,o.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,i.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(64265),o=e.r(67867),u=e.r(19551),a=e.r(31028),i=e.r(93869),l=e.r(61541);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},60516,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="undefined"==typeof window?e.r(57617).unstable_rethrow:e.r(33517).unstable_rethrow;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},8e3,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},forbidden:function(){return s.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return a.permanentRedirect},redirect:function(){return a.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return f.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13058),a=e.r(44216),i=e.r(84628),l=e.r(48918),s=e.r(92881),c=e.r(24673),f=e.r(60516);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},9187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return d.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return f.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return g},usePathname:function(){return y},useRouter:function(){return b},useSearchParams:function(){return _},useSelectedLayoutSegment:function(){return m},useSelectedLayoutSegments:function(){return v},useServerInsertedHTML:function(){return c.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=e.r(45243),i=e.r(69370),l=e.r(91395),s=e.r(13058),c=e.r(98680),f=e.r(40288),d=e.r(8e3),p="undefined"==typeof window?e.r(93869).useDynamicRouteParams:void 0,h="undefined"==typeof window?e.r(93869).useDynamicSearchParams:void 0;function _(){h?.("useSearchParams()");let e=(0,u.useContext)(i.SearchParamsContext);return(0,u.useMemo)(()=>e?new s.ReadonlyURLSearchParams(e):null,[e])}function y(){return p?.("usePathname()"),(0,u.useContext)(i.PathnameContext)}function b(){let e=(0,u.useContext)(a.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function g(){return p?.("useParams()"),(0,u.useContext)(i.PathParamsContext)}function v(e="children"){p?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(a.LayoutRouterContext);return t?(0,l.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function m(e="children"){p?.("useSelectedLayoutSegment()"),(0,u.useContext)(i.NavigationPromisesContext);let t=v(e);return(0,l.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},2188,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909),a=e.r(48277),i=u._(e.r(30668)),l=e.r(9187),s=e.r(44216),c=e.r(84628);function f({redirect:e,reset:t,redirectType:r}){let n=(0,l.useRouter)();return(0,i.useEffect)(()=>{i.default.startTransition(()=>{r===c.RedirectType.push?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends i.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,s.getURLFromRedirectError)(e),r=(0,s.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,a.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,l.useRouter)();return(0,a.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},83648,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64381,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return i},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(66251),a={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},i=a[u.METADATA_BOUNDARY_NAME.slice(0)],l=a[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=a[u.OUTLET_BOUNDARY_NAME.slice(0)],c=a[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},20017,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=e.r(50864);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/turbopack-ce3658797261f2db.js b/src/hyperview/server/static/_next/static/chunks/turbopack-904be3b11442f4b8.js similarity index 98% rename from src/hyperview/server/static/_next/static/chunks/turbopack-ce3658797261f2db.js rename to src/hyperview/server/static/_next/static/chunks/turbopack-904be3b11442f4b8.js index 517cdb1..01eff51 100644 --- a/src/hyperview/server/static/_next/static/chunks/turbopack-ce3658797261f2db.js +++ b/src/hyperview/server/static/_next/static/chunks/turbopack-904be3b11442f4b8.js @@ -1,3 +1,3 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/10c3a2ade180023c.js","static/chunks/5a5ec5690ca4254a.js","static/chunks/118bac1f0e1f8b45.js"],runtimeModuleIds:[24153]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),c(t,n),t}function d(e){let t=N(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return N(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C,U=((C=U||{})[C.Runtime=0]="Runtime",C[C.Parent=1]="Parent",C[C.Update=2]="Update",C);let k=new Map;o.M=k;let v=new Map,_=new Map;async function P(e,t,r){let n;if("string"==typeof r)return A(e,t,S(r));let o=r.included||[],l=o.map(e=>!!k.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=A(e,t,S(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=A(e,t,S(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)v.has(e)||v.set(e,n);await n}R.l=function(e){return P(1,this.m.id,e)};let $=Promise.resolve(void 0),T=new WeakMap;function A(t,r,n){let o=e.loadChunkCached(t,n),l=T.get(o);if(void 0===l){let e=T.set.bind(T,o,$);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),T.set(o,l)}return l}function S(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return A(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)}; +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/10c3a2ade180023c.js","static/chunks/b96ffc94b0d8fbba.js","static/chunks/f89d541331847b49.js"],runtimeModuleIds:[24153]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),c(t,n),t}function d(e){let t=N(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return N(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C,U=((C=U||{})[C.Runtime=0]="Runtime",C[C.Parent=1]="Parent",C[C.Update=2]="Update",C);let k=new Map;o.M=k;let v=new Map,_=new Map;async function P(e,t,r){let n;if("string"==typeof r)return A(e,t,S(r));let o=r.included||[],l=o.map(e=>!!k.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=A(e,t,S(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=A(e,t,S(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)v.has(e)||v.set(e,n);await n}R.l=function(e){return P(1,this.m.id,e)};let $=Promise.resolve(void 0),T=new WeakMap;function A(t,r,n){let o=e.loadChunkCached(t,n),l=T.get(o);if(void 0===l){let e=T.set.bind(T,o,$);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),T.set(o,l)}return l}function S(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return A(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)}; self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(S),null,2)}; importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let E=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function x(e){return K.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let M={};o.c=M;let N=(e,t)=>{let r=M[e];if(r){if(r.error)throw r.error;return r}return L(e,U.Parent,t.id)};function L(e,t,r){let o=k.get(e);if("function"!=typeof o)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;M[e]=l;let s=new n(l,i);try{o(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function q(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}e={async registerChunk(e,t){if(W(S(e)).resolve(),null!=t){for(let e of t.otherChunks)W(S("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>P(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=M[t];if(r){if(r.error)throw r.error;return}L(t,U.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=W(t);if(r.loadingStarted)return r.promise;if(e===U.Runtime)return r.loadingStarted=!0,x(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(x(t));else if(E.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(x(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(E.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(S(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(S(r));return await WebAssembly.compileStreaming(o)}};let I=globalThis.TURBOPACK;globalThis.TURBOPACK={push:q},I.forEach(q)})(); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/media/1bffadaabf893a1e-s.7cd81963.woff2 b/src/hyperview/server/static/_next/static/media/1bffadaabf893a1e-s.7cd81963.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..57da6f8d46e2e42d0fd7d8b1d69d39b3b5fda6d4 GIT binary patch literal 85272 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

uw6FG`p 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 literal 0 HcmV?d00001 diff --git a/src/hyperview/server/static/_next/static/media/2c55a0e60120577a-s.2a48534a.woff2 b/src/hyperview/server/static/_next/static/media/2c55a0e60120577a-s.2a48534a.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2cd45edf43e09cc2a636223245f0563655d0cc0d GIT binary patch literal 25844 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 P#+t~*HNku1{Iy>IQ=4P} literal 0 HcmV?d00001 diff --git a/src/hyperview/server/static/_next/static/media/5476f68d60460930-s.c995e352.woff2 b/src/hyperview/server/static/_next/static/media/5476f68d60460930-s.c995e352.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9c71603a56134495cb3ace105a0928e9cc29a860 GIT binary patch literal 19044 zcmV(~K+nH-Pew8T0RR9107_&46aWAK0Eb`z07>rv0RR9100000000000000000000 z0000Qf=3&t1{`ufNLE2ogF!z{RzXr;24Fu^R6$gMPA4V+f^;uz5eN#$XuMDhf+7Gg z_Gke%0we>3Km;HKhAsz+2^&IxHOg&A0p|h4`KQ9$YZL+-2PA}HaU>$xH~T5(>|@DEap{_;^noJW%58)LJ~T{soVht zndL=v8c~Esv4P2f?|YZCfCFd6U>iyJ@Sy{DA54pAT9hdr8j~0hfiguZjP{ePYL3W$ zUbM^i^;MMf*DTDZdSpMD{-R61J=%dy>0c)QCV567Ukl+9W_t;9IKH zoGSg6_WLB^MZE2c@n-FtRQ{@m3rM=L;~^8{^;i}OWD)cZ8ICx><_syQVCXv^ak;9|q!mW7Oicw9KFb2rPu?>2_ z45G&K)?&WB%N{P@3xq^qkW8hhtF;*2A;-IwKeOvINKCBC60c8y6BXb^mWY?8^3{<0 z;#H9VxNOTAg4gub;aRa$si*`lC5tTsNe%w{)_QMM_v|c(j!!J2`xJH&GAb$&w%?y0 z=HpobT3`uifo$v+JibenEP35!0iKqFmLMta0u=Q5TcGE10ri0^FH@gx+a1Bp7A|l& zO@Nc46mI*2g&`V3k%!M4ZA;w(X&%{#dW=`8~%79)8n`NpkLv~rlR02zP zE<2B%$FY=R#8lC72M9qS&O^{FOd7&$5Md-DVp1{+s?-3{1q_VLENs%!0VEyb4rI#C zTp;;@LPc2yq$1!)GZw>mY?JWRYBEEc1~QAOHF0UylR*mV9bhRmfUy8%bbvXbm!Gr& zO9L9u8Pq3#*mOJ^_yi(ag@aA|Un)RYq57f%=8qXS2XebA2-E-&bm@*iFot(1OnbiQ<58K)SYoA>z1FU^j+B;z_5}e&$hdTuC zu3Kk18IkEGs%Qb+(KI20IbptHF4X|MN?-&40CRSP7ytm!W`0m^6*O$+P(O)9U>HS& zwQH|`0O8^YV5T~5{!_AF>6A1^(MNM$6<+&1AvESmlXiYjHq+*g5PVNiD)QB>4Y7K-hdoWMMTx zUuiJf+R3o@^<3YJ@dbZJC#jxi^N)`Wr19%Il3=*Ocw1PzqIah^0WkN)5}EbJ#~r#S z0KTO*Blv}VI_^1o2`#?LhTtpUib;fSOInbf1%*dj-Gd(OrF7)>;a(Hz&iX&#+uSWHo0yR42fup_WR1ir3FS-gmq&Uh;eTS-$duEB=VHB+vVK zo55@5{?W6Y?bfqBx_HOM;Rb6B%^w{*_>OJ@qmp}{;0M$O-3IZOU94VMdj0Hq!+qdY zn9}cb@&n47emL7c(uRvr=&B($UX|iuQvk`B-V+OL$p2}BV*H@HJl_PXuO43m-*DD# zgXG=X#_tig6Sm)PRjq{0|Jka^nY$w+p%JeNVljl*`{_bZL1}5|uItl=#HtE;h8F-gASzzU z)0`$I2HAipd5#BF9e6}IWho@&g}j(oyawAYc#DQK07>bBhK6AY0Oe97P{}P7u!#d8 zQiUJ_X%hw@Q!s#}z`s=m5?UF7ixYIz7;*-L0IGO#R0DwKEj2ulf}}L{Sa!hks{qgr z&;)_%!6g1UMoJ^qRq?NhloS4NpO4ncf#0b@qB6j{-1B+A@l1anJc zQ&C6>_{s=3BaA`eHt^7lRD|V`q;Rt4=fyXrpG7ae4)tGGfjCxf^DD zr=c~gL{{;Pq&woCh?5sujlA=1M+&WhD|Xo=P2j zs)7-gq*SW3sY#hK=hJ!V)>NZH|D;N!LXc%#F2|W14msA*C*=FWlWFRi5>Jyi3k$N{ zZhz48ELtD=Vhug$cKmovU0eA#-9|yA2VDKCmzXb5xVBj{Wc?nLw1>`%R{R$%AK+SJ@x_})Z z&J4%_02lz!%inMMW$T)qmAi_+{PIBgfu9fZPL=#BJp01g&(6Ph;q@yYU$4BC*M9$@ zA0Kf$%Fb}kEx4Q!{5DeI#8K5jhG#}jt0HA4)(gY-N1Dkhi>=H?*8c3fA(3xNLuJ`YjIjm2T zze)a;8aRNNxPtqYl@C~ zlJ*l?a&An~7A!3}URSB+v9c`!qCqmvYqGK;0p5M4ESwej{`_bj%}4T^X@9z!W0{YI zqNd+-b8am*o{#1C()m1;<0?}o&y(}hWZ(tjN1g-uX4WvU1ITfYd3QYY7{J4}NcIq~ zZas_=H8Kgd%1SayS*i#GVU#H+l1r+Bf)35VqLR&U4kM(?A*^RFLiyIuhZG75!0el|Y+24ECO^MGODjAn9h zazO!*!4MS|(_VB0>1a#MG8s@pxqw&3GxjPI4a1nk4NT!HneN1^U#;3Buml+2YD26rO_<_Y1ZaaAf!bRCM~~Y#ftvs`|SI1cH9(1KxV&qWMvhq zEs7+|Fhvea9P2u^UZ2lbos>HVxrV_aq5~0cJeej!48@WJDq1}bC(m?KZ%-2m`(l#4 ze0TUb0CE%sScoFWl1uW+5?Qc|c0w59!CucbcT0y4^rN~8z*dB6fsACL1Y8u6qxpp6 zLIOqxLW98oV}%~;gy@^JF7L*EesV0>CMO6C_Pl(n7}Zs=$WafNe2A?Z{C6i+$p_5n zPMIWOM?s{By&wAxUEBYBVA9knhz!GW-(hhVAp*Jf+c(p^0XQ?eofZe zA9YgSA7d0bPWjJ$iC5ALT(|)TtLsKv|=CDnlsS2|ppJ*0fFAj*;FMdc+R$KJXb%qor3nlF7( zD#Ur`2}mfDQ%R+kMN7g+bB_)Z%WMW4-MX)d#CuIMjKR5+4tTXNJXnqAZS>XIAk8sK zb0ImJ7ze70K#Ei=NoBBYQQR>K!xDk*)-oKda!!CrPGkr3%SY;$AQnr47+OEgxQa`+ zea1G;)DJ;ajCHm45(`z#ITFTwnPox+4wml?ahIs2%h~z{oHVECc<#bvAyHjdHHTu& zaa8OBDIlk)PU*S^l`PTr6;l3oTwXiUE;?yoJd%bKdmekrX6l!q&NNL7%RkOZs$Oa8 zv2I00)E$F@aqK5o6ey*v@dA$n6;KQI<*4=Lu}6z|`|8KAjpCi6l3P2)5pN%{mfjwg|B&jO z(e@&7nO7pR_(A4r$p`6v&^SYm)V|#)&w4@AT_|+w&9oQ(Lq3E=r%_*L_6|yOstCEB zd&Frnzck{DU4|*S8{HuR%QAWnrG)|2)BU-nYZt_cwkfY~f z-}^4J%`*RJ=jf&D-MMAwE0eSeZChr|YT5q+y6fM}N$F(zz1%DXY~kxi-b*LHG8Fe< zYs}%vy%^>{I87Zs~hG(@R8^P5B2iPMk%Sgla7yxJVOlE3y(O= z>e+X-7v-nK=eG^Yn9QDGrc^sc;{|G&R<>+ta4QE&&Z~O!uTM99J2~Byf8(y@S>9ov zelE^>CyF)R*2x{rp%134h_-=b2~XKdld8MSc`u4u>V;;f-4U$TgG(cK1|kQ39_OBnJPE5xUvc_ygVe02B3~qUcX*pe#%)e{c4pt(Nqgvx8K>d{<}M(jGvn~C@tAQ7%N(s zd^T|`w`SAa(pgJsd(~^_9ejA+dE{hKUE<><%F*wlTMj-n9W(vAg{N0eubFv=xdq zpRk#$L`k#?40C>_B!SUnck#F8!}4R|E9XH+-@TP<%siRKp|%Lr>U%%y1wj|u{L4Q3 z)~766ZRGh*6Zy_oyG8lC6b`x}1itobY5kr}OqLUe^l4Ad$twS@n7u!9WQ*Uc$~WQ0 zr96FVQBl(+Jo9MEMT6OK6VIqL4^;DWv*MZ_XKiaMVz$MzSLR0t;_%%8v?ECwW&u{( zE7X@1o-AxICUN<>yoaXhroZ;jN_*S8qLiu|^{L#}f`*6E8uq=Jv(DZJRsRj;TLB}p zS{&RW$B|8I%3oqR9j8$3u?IweoOx)+?;EqedVv}bMs;<;`;XNg42S}cUe*Ni-v_UK zFUrmgNt1MbI+17m9pSg?n511VuYb098uxjz-uT>(H(R#Sj!ha_b+a0}aAQfelVAL{ zua&c|?`)cbwoG~oa0@CAVf$NG?Hg|6de7~+yMwc@m3!d2%6opt9ZKpxRW#?TT1Vxp zY;TgfP8Y4ZqxMh?vYe$wK;Lt%tqAXY-`N4{Uinkvzg)Y8^sH|FSN~MPwu+PQKim4& zZdtwZn-{x(pL`uKj^L^C>UR~+w6{I4y;0jgP8!=UEnaPu=y{(czpGz=+bjooia_PA6^Ji*_yf%JX3Rp) z7G8g#Q6isIvTyeJnKwsN5>bD1^HAy76*p#j4<`6lNff_wpJwx+COGJZ;IPMh?ODx0 zU_se=(QYzK-edHJmJfw|SU)&D-fw@n#WEy#0xNRH$`TJGmkWmwny;yMY?o*3Sbe>{ zrq007k9b_334iBx2EpMc!52fm}I7cJ+6br`BPu7ssaOrlE1w z_7B|NMfWl9hX?H2BLp&kZevveyS&A1|EWB>@5p`g=o(^qLDEOQ0z(cvz9C_=NV>V~ zg6^1iald=}lzf;)-|uiSW`;#F*@%#F*5#z{8(~3NR^JO;=cKGSL)IoZUKTjeFvKyJ z;P_bf4oMGBo>#&DwkaoG)Uo9fW2(S+aD#x8EH2V^Y`f3)J5LdG-qkHL#ffZNi@`i3 zVUwH!*N_EDUP-xUZ%r*^Zhu{DyXaA|Pi(uT?hBkKBeaRxl&=<+H3qkl%_y6EBzBAS zy${@;eH%UW7H-E@jJ#}O%o$jK`h$n&#OEMVU%GET;I~W*#W%;bS6Tx@TOB+q%@fqj{xw^d$R!Kbu;_`W!tx zlcUEjq$r5%C1sBsn(r)t{Uqf{J1x4<_$B+ubrpR}SL3##ozZm(oKvw|t6Oa{v!nOQ zMsaZPHrd|wlTUI`K|Q9XUGMf%?~EFtd~M2+jT|DP*t6L0|AVAU&Q55}O6fR>+tYlEhFw3K^r6qT z`Tx7B++*JR^|GcJ#tEpRe?%8t2 zd}P~^&i%|y2ql&($k@G^5)Kcz?{y%%`?-?ddm|lxy(``qnKbg$nj2AL&jno!^1iK_ zF(w!9CB%w#WycK@lKWlq(KUM?Nt939Z50=_3TDBv^~93*3WVd*-o;7ZvQ=yaixYb< zPF*rjUQRbtZco_FmylYWW6FonrZ0T|;mM&FetlRJc|Tz;VOPTfC3ViZj!7FAELGzE znRuStFgpgJ!a4uD2!z!2gH69!znl5vnnuFI#}U^h_9wa-&vmoGIDPEb`l*uFr;T>+ z^_d;K&sU$n`*4G4hW+zvHTuO)YnLKGWp>AM(_;i&ZvcUCVt;+b3$Il`#B3j<@a-Taq!=)Qc4msLqHG;jU0{0(acXS3GbNgKzqcX9?7j2S9MuD$6mbp2(Ofna40`6{4gn^F+)z@`I~vUr)hes5j4+B+?qK zPR>ML{hq}UfSB(XWHS{kR>j>VSo(l}oL`FnOE1CPJ61|e#CE$KGmiFea2y<3D{l#I zdG8bHc!I?)o)eSacby*k@ZGh3C=ku`KBKcdHt({1w8y*m(A$SiHQ$W+>NnL_!!fTx{yys((`L+^^IN;_f*!0K^)^+3+*J`M`Q=2^736y zflTfZ)a;T^^zQ_kEh6lgi5f)_q+g34-}jGbj-}<`0fBn|jr+4Vw{edciSBHiyrl_5mJmiyQ90 zg!mgC?fyn7W^p4+Ki#1thk~E*PO$8TK8?DvQ!{4?+(qKAx1C0}a#NY_EZjWGY>1;q z4cN4Go9x!}wmEU&Kz955i>%f0r>y^-((K#!_L%*j_ZE!kKO78PIU)D9Rqtp{Fjrsl zYUFa9HJ8i@%{4m)HsnyHCvQdHoYejH@}@nypF7kist=*DOI>nWks~WU>(+m~`*_-M zAbj^)v$*}v(fK^Zx~MrvG`|fr@jQ|{wvw9Mi34;Kk^$dIUuS@T}FSmOX)}%*7Q^NjC#%C9vn3&%n5EIW5&hK}lH4?5*m4uxm zd3nniWJ_KL-fe?gbY9z1&!_MvVy*M{ea2k1Csil%E;U1V>3rmOznc65K^vcgJj)5C zU_6e1>S2K$J$M2cTt9*cFGPz=BPfHh4*_39qiV@e6d#MP_i_1Ao`1xXcRkc}pZsLQ zV|V{lTVbZxAQRF2|6&Rgs(6%KfdtA)x28iw9h{Z5$G&=LKjwFz>?HO0Skh+i2k0DuPo zH6^ry9vZxp#OlbslmCuyvz7%P=P*Y3bf#uOH#Hm%qU#Sr>;3q#PI|x3o*h~NpU1bX za~h;0w#B(N{&3zinNqGpZB3G>}hxVgfzhD#mZFq96uj5O04!LUS z^GrijgwTO3l4(~+uGYFQ_&9LOqSPmHHg#s98S!d<%ewBNH%AR=vy1T0&{6Cb%marM zV}%P@UkHuA;$~&g_oK0I*(qd0IGB$3aB~eTiyvvm+m18`6+u@5K6(Y&&(45dxts9- zt+iHuHZ<4{0IBnNwn4$$U5StIS_B+p{Le9mqDRc4dD)|F6J5*=Mu)gqzx?&QZ@x zSeCFh;jNtAxs+y2;(dva<-U}=EB8`f^{SuqOLh0Geqwr&{+Agm)?S)<|GGmn`Sqts zXUZ`(uYYsa?peoX(Kq)|g2Y^Uo4k(L0ZRp)CL#MjEI_hrgzyPpI%nuF{ z!8IF0Cqla^kfen^`K?{o7b39%Zlu8b)tUEdYifE(Acx>fF2`gZ0i;L^#<;}1L`#=g z2ZoJut?hGfVEU9vr?!;?Lb1G5iys4aNpK_!v~3arf)SDo92pf(RZ1a@gjIzR!akUa zR}=wZlmfHe1QO()VR2z+97Ua})^bk1jJ8`o5WwVgb3Og0o;JUaoWT*LQY*Q0_8wdC z&J3B4NQ_?g4z+wF1MfZjx(FPWC{?DH>&aWbi7o=C!jVAMg9^1z6=ao>y&-3wy4DlX zpVbyF%9|i*u*<*mHKMS{I}dOnGJa9=Q=N2zsZ|qm6&ElIic+OU zt;4_y8I}?2rDT9l6*vY9nB{Of$o`3%%j?Vd>S3SN-Fz?(r@<`fD_YQDr%hes4DQZF zLJSm!^)Gjb=xe+7HE6Y=#=W7XV}w%4OJk%EoSzR-0Rw;j4zg~VP?knAW)Xo<$IJ`! z;Mf(uzD%da(?nYHb*-sX)UK}7k)kX!o_?I| zRdJ`P64D?2Y$Q4tq3Bl0Mt7a*8?4r(lNr=3xu_m1%HRz^$eBmOsSb{&2~OC z*as{p(9VIf4RTSLQL?lZLE0L3$mBEhEe+S`1*G-0x~ zuyEH;{&)HQvOhj8MImsfU_^!4?#DCg$^`-B;|>C&$7;WZm@>IyO?wFOSz~IEL{)$o zBs(?&$m8)Ysn46KX!mWBhQHssC@=E)yE~o=uM~uUuk~}=B*OVsFPm-Nwe2m@rp5+& z0Ov#q42LD127?-nxG-BOD7PeB!kCS;(1!%QHG2>+^S_bEhEf8?Cr(8Syop_?po24} z+E^>n7RF*0S5WMyF{s(8Y3^Y~{w1FD(bvD?n{)dD{)vIXzAloFIz9nnh_uz|>Y;!P zvZYjLHybM8dlACe!}tZ64U=eXvl{^e7h@i(Z{YE!AR#lo{058`-K1;~Xa&3JO%Yrp zXmA5=i;W4s|ebs@c44&jyY(a+V;bBLyVrvbAOs)N{|CNE<39;(3oa>jOa-RcrLZKPDgk zxmBQa`;#OkN3HVD{DsJo-2E*lO^ftx(2lOpnP69w|>5V@qgz%X}o4G=> zr2OTA6cYDD^3YB9j(Q7~0%t%aZ|L6bQV{Q3iU!_6$2m%`sux(B0(t}+N7 z;(>JWGRy6&%|!$v4g4sL`qaF;WUah zYYQ)TdBvr0DK??7qYCHiKw-h__i!PY1(ZNhTAWbUJDiY}t+#d-jEY;`CoaroKxp&S=zSmG`l@p zPEFZ3fy6mLAJ|Yyb=@8qmCO4pjkNhSgbCPB_PGbLjv&e3=N?ej~i5CYBebx^4iRHK3f=LtY8cX z2b5Trf*OT_w80Vplm&b<1{P)u_dHLj2fvIR5)Uk#TGU?z%}B2uz$Uc6YsEU;mQXdPs~ z!wGlQp9@~XgU2)o!_(Ww+0H2gc==Xo!61c$cgL56nAO%GREGk&s31Xb93OgHEIr`rVq<@?2PW3h(fDM z8Ac)zBvM$Bx6u6YY9g-QA&_ANXDZEZ&6|h*Y`y7BWkT7;#5k;~#?!{y6+VygOk^Wb zV4IDAgLdi7F_@huyfj!veKXmk#eq*ulBCvk5Fcz|tw=>m34z}Iai&Ku()yVQXytcI z4s31pIz?q_GL$!5ODzw{$nh@8{U8_!4TUl8i{);BLxQwVhl4`&;n>R=5rN?e{8rr8 z-I$AyK@LQr06#u9oPqj<{n}O8)Y1_1tarhoBQAm;L58ry)|tKLp`H+|w~&)5NcZ~Q zkh0s4gM{F0mLp>cj7uy|ax9D;^X*}0H8@m8R6w3CRf{rB$pG3JQ}t9a1&!6F3pTzU zoMpCy%j*%S4&@E1y&kyTm#RF1q_4B4=Q&AqR~7$C5IUEgG6%nCw{Zz@7xS`y6eNy# z2ynrKIpbL1+7*J9z0=Z?N#r@9&5dEf72{ZBaaldo7{@*mGhyrQ{1YnO6eLg>nx2Bav{Q%8AJm(MX4UfRZV9q z{3I|zs5J_PO9W!AMLB$vB-m*`he)2)HmGC6d3X6(s%D=hdv{?b#@xw|i)EG0H5rhyJ$e*G^Mw$wv9* z9cJ-qfa(-J75)%P(<(ag8m+@hBz+b_JPl*!9#2=kv4gt z?1dzf{09Y)MB`tQV}xyszh4Ki@TLfPNXkQotU+R8UKBx>iHS2GO#+Nl5(#kPj5gX9 zOL?ImDc|XSk^OU|^q&{u$MxS0zvvxj_HID*l68~v4AaT(YVVaP`XSJ@7PbJ|HxZ1t zK~1~?TvUvKv(Uz00a(c5I}pB4B%dg|``NABFb@8nMiz`lAj!FCd;K1q>R=3tOT3_} zxA4mH@(L!o`a~){UvivJ5L!VqCWdf8W94=-_A3X?U9_0-cofq_B5^Xon)d{zgim{I zktXW$EH#S5);H%fx5R+cBGl|w9^y>c?S;Oj6lfiHQCfwRj2JnnD;+WF4t&iqMv3ANYT>36las42pJH^(04f6=BJ)*+Tq1G zDpIISCltH)5^#wzyG%Ow$Pc9ek=Zso0#0g0LC$tGL1(*{rkf2RG^b~O-MK*?A?}VX z{rbR`>B7A8v8BWhiv4J(7Z$dK!C}o8i&+x>{n4k0!8ov4vG~Pit;fNPXZ5a(wQ&8u zC8KL>sO^x*|&UG&N^aWQANEj;p^Ccvtb3yz!)J| z8p%Q)1j5)4Zai+@m=DK~3Y4tlsxh$WcRaXL&n#(AJ^%-5uchQwJDR;F5S{7F_mGeF zb0p97<;H|PGi#S;3A77NJ4hr5N=1kmp%bwGl-C(m*f=D<3z{cTNJh7jM``(B$|(*g0Q(l?mavTf&IeS4@ox~@hJ@dE1Y~1nElTs zBy}msc(>~uJ7oqDMB25Qkwo6<_K9cyw>3U=T%z^}3z@5R`kG|3buC!WJShtKbq??( z=AT?#O#<2AvF+Sgm<8Do=V8QHuQN3lt7I%0WRa{)l~ZrBnAQ@HFlI06>lJE&u5C-{ zx>U&JnFupP?&TT>|L1eE6&mQ?EovIplLSQxX|t#k8vae!vB%P5#-CLN7aejm=(DXt zfYk>A)0pOyTWqou0UX>Q;-N4;)jx=BVu!vzrpD=N5Ch+0S`+V??a!oMM5+EeUY8z* zjbtL101$Z^6O_4*1$r!Wj19Kgi5ChxdaMKq77VTMCspCbhDW>i6frs^L_5kRejO9i zqTrTmJ+CXBk1lJNP;#xlB+mStQPRGgC!6*&`2Xl7xLPgLu-mzGLTU(aO7bp&coK=d z@ME^i#`cksv-NttYa0%Nv;UZ8C;L=F8RGYvc5U};ySiet=CApnmwMAjI2?L z_*3ljO$#!8kBIJtidpLja8@{1CBkvJQA$&WTQ9qI2oEQCmWzpQ$_Su19NM4Ez=`Y) zIr1z%XXGZ?OL~<;#M(POCvW=|@z3gGOb@6->qNVurEQqU>xSK8LI~xnQsj za&Ov=UZ+sc&=~R-*E_?zwD^e)*{FIqC|BgXlF;Z4xk54JKUcpZ|KobFSK!us)+5xo z-)|Pl54NxrISq4&w`Vr+SX>6V?mUlnVs^^Pji;364-Qb`VMm+RkjW+jXs`=Vlm#2M zSS7b}Sh`aXe{WdK+!T@KZd+Z1ez`vuab{xylOQoffQ92KvPwWnh~rI$4MdNEtMk(t zMkHoQfmnQtj9`UPgo8yJ#1!Fjs8ed=7(!4mW{8*<%<;2%_AzZRX_@SucC%=?OL`kt zgnyRHWs52*BD-&oSiy}Wi#)k*r_I__uk0KueC}XpEi*f=x!Mr062tA-d=|Vc$f4zW z3w7P)^P(2SgNK6xEy9!cW^QO5FuTJEQ%ROqP6Gj}j+r;t>3b{qx@UXfq8{(YgEe1a zLYG~9_ypTz3{Op|U{B}&vNDa_;(Ma1G{;VF@4lSO5k*e9D|&Hljm?rH9wY|-t*!0& zf0_mQMHCE$MP{P{QWA3VA9bsp)bKcs6pmf!M3zxP1Ua-=I&7AOMtXWgC!8Ca@8mAY z8CaTkzt~znO6!wbrGe>nB1N-|v@cln)ge`a&vX0D1W+K!$1tXA91$ewUM(%3BZ3zM z3u6h=n5w2BXG4>k+|d@VGD^8yfgoHMBPThI3UU$wE7YV`W9&e}xV&)PpuP}(JK|;V z0wi$g*+PUBR%LF!)8H{@Bum9E(Cdt*EPq3D2=k}zNqdV?g0-jTNv}&c0*;EVJ-VL? zWu9s89!Tcn79hpBrAu_3R+~x(z{_JG?XS-`9CPZ0Ah3N=Xm(6Ea0}IGM&PY)=B1z#hDpdMKch97$I$|v#1HBV7ll$o&~NCgDw7^o<6Z6$aU9M{Ybk9T$m4D zZjvk(5-TD(!xdl_Pjn8b`2D=BE@FG-7co&yuuYXi5h7A@_3DUkH!EiX0mS$VSS^rf zXg$<%A+0CK3?M&g1q$)1T@q+s-55^hQBk>2Y?2vGGB22Stvk11rB=#4SKMLd{<~#=D2t0CYBfV* zoTYr+)QuLdoo|nP^0KX93=OIR&tUV1?EwYIgOJhhFzmF7f=rP$=g6U{{3=MsKOVcr zR|i=;cH)njm$7uzk)4ow!l<|gEZ z(77vy!n%MT3j-KYAmYCmuI<}kjp!H~CI*mERs_^=*HtK8D#oc@uZDLTZh$ol%{3#Q z?%Oq;E$%`9_lL?=makC2wa<>U2oKo%0?zGvEXly)J6nK}TIxk5(}KfB9sDOaCA@^J zZ!y?as-L3KD3*|Aec&^yYiiOMeHIYiwoh9s)6xp&x(245kl9n_EF*b3=53__L5xuj z5XOPRnv_H!X+l33TdD~sjC%?TOTDCqHax{|x<)uHqA3yR!;Tf>oQfla2Ce;%Eg%5_ z*=%_&r{lH)}XH+>-X(M5D3)PHFq)kHE2R4g7+SK#j1`TCH`?N%jL?KN?0h( z&W;@Pg)qH}c-|&~SI}-Hi4Z3?6_5A-kD@*wZkF~`3+=)Naj+BM{jQ-A|1jthrZ6!3-l*+LumkAR0mLC2CN--0(uF%GEUI??*puNfGO2vSc z0^c=g{jxD@JHvhG7Rv!zvz?GDmigMxk8_C-u}IX13RS^?V(q$(KT#tLDyj1%h+9$- zhFap((H2W$u%Xo*3qqhvc%XJayJcAK(3DnrJZIy&4HBsPz1A*@)v*Wk2~SQ=4q{a> zKqXlwn2oYm8bEz4v_EaDN9OZZCmeNZQOaJLK`|qyzO$r<0%}4uc1L^7CuOE* zVty3@I1cmzy&8nVX;*M6n8HVH`4U1V3{V^g1iyF7tFzFhznGxFyo-^!9^cWddy}w2 zj1WfRUm5Yt3f=_5c%>Bz-8CmJw27N<&E$vsoO};}m}uJGRA{d7ELo9Q-%p{ju(p5t zu~CSyDALJXLx(T$?@=fhj`Ze)P(mF%i!`S7ZS=Ld18$q4R$Qa*YmSarHCwBkgXEZE zpzf)I=BqnO67lJ1aK=i5&DN3`Hx%z4)b5=rd#laX(b0g_Yh;4f)V&71tjT1X+dNmQ zpZCOdmnpNV8fw6jisxkb?|(cQ6j)A=pTvJ6t!g7q%roK>?lPX~9!4-2YV6%Yq{w7L z4d^N6mkIKi5P4X}*Q-a&8?7V9OkO0I)C;iiC4&vagC9-|OlxklRk+1wHr}PU5SoRq zM!(=$g3hlC)}gGT8XYyh76)E}q9@X_;=iHhgFY=c*02*gze;EML@k!P@O1vDzXvWH zaRL0H1)JM~8y~;$lQnfM-iI2Kdg{9&5Y)P?8re}=N1o9jw5F#Mm+DQ0T{n#-HFhFc z(AimEt!Ms+hy;ruzPJXfh&PMfO(2?CiKOKgRU)ypleC)usKG2j^l;k3HwjeKyjIju zE^iAB2Dlh`XfiOKL#;v@p)F#CndPRrPd@_ovd6})I?a#Dg`2p1Go`7ZA&%RyejOja+f?*K&-bh6`-x*Nv(q77_bgL`d(k>hXEI?o*Fudf+EhcNQf9S`BhT0vcRrH<4t84} z5KoxS$nFyh#+5q1)mqUL#ZTxQznv8Q|%Ya#^9X+D2h3rq->-2hEd(T8a*%2klhZr%}h@2FU8f1E7MvTigd}&qz zRt?;P$v<$g&0gEt%_z-Jkr`YPliLJ&kVTSe1I?l#L5{?%r_cSM zoPO)TfOYWBWq-C>!v@kKNs2aVNCJ*A?1)@4lq6?6;gS$+JA)lHRzhf3>xr?aN%7Ew z-Cl%Ah$(9&OlL7tO$|2KI?-DuE7w>Hd;%E}eiUSo0^Au!0rVO&C8;8UQcO258Y0;H zg2!AHdBKDU82l{{lc9p(xk*S^AvXo5d2uF>>({~Z;4bhZ2mDdiQgHUH;D1i{d5blRI#B>XJqoJw@)wBAEIH(hN{YSBeaa{azJrqOGED;X)6AN-P3xFaK z5f6xzc^}v8V~|f{N_7;l8H6xSCW~dV;(JN4_|{hwX%8%I>FH@%I{;cK<(7ng3`g^2 zI3l1UUqm2cRYKJXh6IMjsBUQ2gMisxHDYZQH7s#SheRr}Nam1Ogov9Y_IyiKOA1EF z2UTrjzU6`;i~za>R4Np>KE6d6EHqmr+;wm$SBdB+3QConxF2)0N}&&xZ1K!6nfDn4); zJsl~iyiZ*zXeh~}+dfC2cZ`!yG=3C%v8LynJzlCS+x8lOrff`k{-bW$y*Ft0zCLNR zJ;8GEL>W#CUzudw^W-N{dj`yAGhe$Um=fFZpED#~J+Qt4$1TclG3z|<%qgjcz}ES56?;rWoI%djS7oD@}d z>AFq0dK4`DEK|?QC+t0N(c}@LLovt|v@*<{JuMqYcr@Sx&vn_Vo-)2>^jQ5D6&aKL z1n|)~JgU)SY_rSXOjYDUNQ01JA1`JyHDu7>qX}k7ya@i-q@zytKSTrSF76{YYE7=I%93s>r_oJ^jPt8m;S)Y4c04VRNbtsRlBZ-U z3y)f?;DdRU)@xoF6THV(7tQImlw}(plMS2M&T6@VK{*1vUi}^l<~Y4x1R(Mu@9{I& z(7ko9?QMjVR8iZ4i{EPK8hZ3(3a&0hqA_t0t~h%VO%Bc#6FI4H@iy1R1Soj1;UQaK zPBELCV%^VHYx9FM6Js7C8P^MfC2xd)9==S$_%#QO5p%oz?1@LxxuQ;xMO|y>x;U2Q zsEg{748Kp~2ov-z8(|_ijlhW9+Vg0$WxT-kmuF+~vA~9>A2RkHS*^!IyQj8bI`ok? zXKX~?L^TQMN=FrmW4elJuvn;>W_0>T^LkxO&kAP&7S5a&iG{sX zBrXrvi+Q%-QtFU!VKUz=(q<{-C%?0`-P56s(_JoSYxeo*&e+;<0!(JKj?`+d?Nq9{ zA5=_%5-lWDm$wt>_yR-J$@44l+i$V z`B*0j?82#UH{*dW%a=*DJ-(d~$ixV_=N-e}f$QQGB|2uuw< ziMS|sz`o9O^`74Bayr6&_XP5_`ye(tP_w)d1eNlAS@DP}^SUuNBSj?$qAC8%qtn6E zJIbcF8!meRGz!c02o2XaKRjhHa&||kT~x;~?4kZn5f3%G{^%5k{6@uWrE7|r3?|~r zsh>BaHiHV&ylAdZh*9=$&c?AI;KD%-)!_B`EGHS=1KX8SdpY3LgS4qhXX_Cmy03VF zOBH0w9j-?e3uY|bj-|!9r;VMHCp=)cXK>yqOB3;wPQhMW==F_ax3U2c+2Se+sQ@FK z3@k1UZnY#|y3&Dj$Za*Dw(kC}iSy1|II0u_PdySk4JzFdnhzV}VeXQK0f}Tt1+Y;h zfFm32eQB8`R#j(%3~vK2l3b~zgQ(i=NK*z-xg0U{OfIc7-V(M zLNc(j5rTKFbi@rhWh@3^k&N!4J8LuV0u zw+y>6FG@#DyJB{HwLfZhO?qH`xqt}Fei85B7>3;SQ?v0NguzWcfo_YhBq&JjgFW1~*T38plslJ>f`%zSF1EWM}ll z(JuZr{DWb{2y9AzOiB06UN%orHbXFVlhfs-1z)a}C*7fdPE)M!0kHP0BRiNTv)SbGH;BS1UN(gu|HCWql;HZQvo^4 zr%$IV$GZ;;Fk5QD=r4M1@f=L*X=crb@r`%1bOvgv-9jLBB|eZ4tc}qt**Ao{u%%f0FwWOUvR#xR(u--0{{S* zfA;9;`n4Y~d=-1Nt^h#5Kq9vJcX!_itxm9jVeC;$B8?2AzHCjTj-%z0WCKPO* z<}0G_xn^9y(IzUmP?eVbxG~@6fdQbdA&ChoFE3D1zb&|Zg z&LNA4|4Tz#$>DRiczr7fvVeAP)vwatzh(-LI-DTC#g6)c@#bU+R@3Y4Ji8)Ks)83x zCXv(LoVzurW5$_jped;qlP{~NXDMq&gHq!J>qx9!iT8q?)VBY{&dqrH;17qFb|$8~ zc+9t%F94_sK(l|9!}sCoFbW0WX*A)=kj%WO;`Kt!k^lh}vErVZ9EK5LdN7Ph(&jKB zZ;cL<3@ay0DH09S49+W(QOyU_5CW0cA)Jfxd^nFvOE{mNoJYu$a#)w`osE9vILa(Q?zgxp6CoDNDW(P2^5l zB{yY#Fq-*CX@&LX+I6;knZ4-heZtDY!gR{7DVw)!q2;?GUQ(+l4udsMahYfNG@OMN zqMJ8o?aa1vSjfzmsyoFge_gzI%PCqbRio9pEOT;EE|ZBtp?V5yOV&)q5-;Cbte*@s zxpddPCQvsNO5Bu?b1m*L=uUz7a+B1-tfzy!b^|W-f2XDf6JhIcwvpg8kzB8t+Cpoi zGb%7y?1~&NuM)qSpq8+sTvho_gf zkFOsBA`+z6?4h8dp<`fTVdLQ9smCYK(0A^V`)k&sH3GkOLLy=kQZjN1N-Am^S~_|L z9gI4em|0la*f}`41oW$YZb8*1r3EIK>!&n!2UPuphAxIoV6)U_?4>zG6WTD94y=>C zhZM6(d-PgIxJqB-P#Q=)H+1JQV%%_?66jC2qtkGG&gC^B?#5Xkm z&{XYR{d)|y5eu>q{|ad^CDzbHM!hQF<=hicb9rPsU_2J2yY%Q}p04}?$v7^yB^^xE z^0Imbm8E?6+H_cGzuee9>M$2?kN%W{*^+)!DCE@8aJHy6kwmKbGjS~O+cUh==e>La z4TM?rrdE3Lr9u}k!6ju+I7BX9J=;lh6Gnf3Vd$tt9}EE(G)ol7^jHlYX4-KF>O bO{}N$rqeT^e7h7;dk{x{3ufM;)ITr$|tL}W$duF9x_5B7VJm)`iQwa^c3fdC0 zaR1$AtF%E-yr-wx`YZSqcojv`q_UpEnJ$m!DyaZ-bIrDcr6n$5O*Ow{2(*2nkq{Dx zFVS|4cf=72=gujxqF^aI+7y|?MFZsnJZ`ipQ6q7`AU9B}Qbf#{7Vu zYgugrpEip+v5?okK>VuU$>*|i(H*^e1;2M&c)->x@ZofE2_|c}yQH&$&iCJK5|tg` zgsQO>h~0xBbNwvf<;Xi~szO7b5!nPHMMqUWu&f;dMEtHH$Q36#W`+=xhEw$ZXw#t{PG>zB<}tYXepA3qgR}BuW3hnGnoQgn1RW+ z8DDER$by~nW&cq3x~CyOLiUtUkEP$w@_xLx&PYE*TvbSxyZ z5%K8Pz@b6Y*TA{ia`XwBNB?}GnQPtPF==_Qmd6*)I5;1d-r=TFwZ~dam4bw>I#q}?- zI#0v?RhOF|5@W8Ps1?C^12x4#sIW1EJsu0_gNm-(el6bQ^%^6Ul|B$3e+>&cf*%8V z_2cD>VRpb516~EN@WZRq%0HXrjcLe|#y!GCYqdJ{z&sme`AkUp@3Z7-p!3|QB>QsI zlxJ`EwWn+V3mC3Sv(g3f4IUR}ZcV{LZ97PjP4PYqdD)X1Pu*!ARwj>F!*6nqxTc#6&?>MF^wG~pFZ~3dxI`C zUD%hB#q~!NYe~5*IMWn_OVWU>jKqz<+uYCT#or$FC=m$UA7_B^npT1{4YfXM#jrsgQTjz3%c$s^dc^Vyd;UJ00iCm+G%xoQn6+Ttll7W z1cC{II2a+uJQ#t~0B3Lb!)MA^#`WvXr)d7Jd&9%F42J{+5fKtem?Xys!X+}TrL; z*CaKDCQQ)^a)261L=a+(^NA(3GLl$Hw-tXwS<~ra$TnWVPavV|=WX6C;Ere-F+@J0 zNj^nv-e|5M?K5A16C)6Wo|(}WZaTz??1teMsEPWq>{$RlXsw!+F3D49|G(AW| zU-l%7LkHsYZjm0{DyYH&BxSX>-+4Je(rt$#9H0s~O32z0%ewrab_LeJR!H7fB&ZS5 z9?Bk~o{=Y=aB#7GeZ!dT2t&aWvU5VOOFs|1z>gl+8i|S6>SM6kH>JHcM?$Jwa zx9fAa<&Dm-U;C;$hOhnGz{KY{@k#N-DAsQ(&%M362S!@XFVW$on>s~~*2D2bDfTM# zs^IFu%tofRw7OJZ>Ex+5e<2bdfT`Vmvd;&*Q$2C9mn$F4EZ`I7*q=+f}OFXQO9CZ@pi(vP&spbw&xro^5yo53wjSQ4j2F=U#4B0 zs78qkTQEU6Y{c~K{o5X62zi28g26g<>LFxNfAGnJ!ce-fvGO9+#0=CBv|s^iT2+if zn_vO!rob8wfdCf_7ZpU`4hunF0Wos^Yj5=8;Kw~8Zs5dX7e8bQ`qmog)SUkeR$iWL znSyI{hSn=lPXD;L;x{Eqz853rZW9NBjGfi94X~x4BhX=u982%?tX|YyqQN*GVvtmF zrWK&l zj*LC@OU)ak_qDy3 zllo(dZ~7qb%|NOA+Q(sIXx432i?(BYLv9NyqN;O!L$)g4aT_^T2=AnU2gN|`cWeZG z^CW|*)~kgjZ@n_6=8SPKNFd3=gj#y9wLnc5kF`umYb3UmMASQC7_WwjIHqyyu}{Wy zopAOs;z1N$00FM`$NGb_jdS1oK6s$zMkzb$BwWlNaYx-$Q{UISN3Rd&r;;A2u< zU@}IET2O^5zFfTtl`c*?5yI4ylHM}}&BHo>pt);i{sNgN51Qyz-Eut4(1(}+b{G#JQdPcgjiz9rT^?^WB6L@{yfRK z%uf{)o_CzBIjFWu^JCxqZnsI(uLxUk4LR$S>`h+CV6%jV;p!XXg~qTuRGSa7uG-vD z!N0s7N|lGZP}b~Y7Y?*Xb*nox?rh6rLY#zk_fKP#1QVfNQp`;xN8kW!h)~(#1>OiR;_0uH!DbSQLDa} z?1bW2nhbWf-Z9r7y{|SfQ9xh@HVkG>nDiJ7T9A5;SKcc~cJ7~tyFdD!wr8U}xICbUouOlMAYr+q!#U_@KXX2=sNw5bFwi?ecL zp~ed;)lN9`OTYIgJHqxAtPJpYw*h>H{$Bvv=5HaZ%Z$mE0yS!~ zG97Fiw~rY39T2E0g@Vo%k|^Y-W*jZtV2u`%WQo)d3uT1mYN%1Qw=ZI{6^74_(`JGK z5XmfgQ%}gCGlbJxW)!;TYZHOq?cqEFi0gcLYwLCE=$YMMT|b0)kCH^y?G+i=j{H}o z4A(gp&pr0t%vINopABn5x!Vnc5w^YKc&!GsfdHKx;0vdhRe05y1VPledt_e&lQlX^ zp9DzkeC!&PAIYk;V@bn0Ha3zA{De9EC+^|ZJyGA;`PhEUZYX-s3 zBuxMEOGWa~j5MV?#|&|WzUAcxQ~}hziO~%1L#C|Z93#|(J-YL3eF7uyyG@Q4{8}v( z@b43})T7^A|A6|AaEW}q<`eP?XX~TgR%pJtdQY(3gpfPON}@L8TcsHzx6KL59XHk! zrMe;EV92mYZQ?H-RwoU~Fhy*a1c$2vtQ+S(}8^Q!53iYAQxb+UlW#5+9k;7+f= z54AY#NpClT2}_}GuFQ1C7x(?|3*weUmyna_7_~_;ZnN7z4d%6J6_vAWd(UeJHXAGs zRaU|nmh6ucH?3ADS zmwuU!Dh+>oD$BEQ`enWn!rko^riq_Ovz z&3y8D!{`pm^<=|gU|U8{dOmSxX`Zv`tbB4@2b3B-e+4VHG5+LGv7+Oox;3 zS}H;#Q|$t8piZb7mpr|)TP(Z|DEyp)JX@@ZJ?r)gKXvd4=?k3~GIp0WJ>e6s)Zz;Q zCcoGCXoXE2K2ZCYZ;=RvZ0hyCVB>*IX8J$^U3_nThU9JS-*T(_33=ZCy-m{wm0ei8 z#X8-&r!a(Lj`td2CBfw)WXfwFmyCu0BcV6mh1ur`X&4*`CZVBQ46vUY{l*U^=xR&; zp^(SX-DV=<&e83-C?ZAmwQzMt$lpHEsj?zWMmvl9T9|8g>-qL9tf|yd-WVP?Uxp@+ zRkSwV@zhbs(xb|(<<@TM#JOBhLon!iUbmF~^Wtso3&9Yro(tIHl*u|`gj|C{P{@2D zSk$;a!fE4?UFZ3xESloa2F)1w&L*i9InE8P6CSh{XHoB(=(`{+4DphmT*R43dCkB` z$6gBq`7w!E(n=iV8VumB_4oayYRNCjiw^$x&9jOX+`F)Sb^B-ple>~MT{=1g{`Yn3 zGsgX)34XsOk)LLQRS3^qn>$!n#)5PXW`YfmFM2gM^l>E z=Z-kcv?;B!O^U4lkP7!8gxIy`7Zt{9)JnDiCRzVr^I(nvNLuCC06@FT2q0R#1bR> z*>ij0tD@<AtjzuyB*~&-r7*!JS+=ou)7BbvIs_4jjD&dvtMk`xirZ4T zU)TMVYkr5jWgF?^vmZqJ&snxL)5`*5CcyMG|LXK7rp#Y<8&5y%H z;=oT=DYh6*A;|Zukj~tozf_!JqjV&Znb4otgzRAH%aN_6K{&Tsa;l?}GTKZj$d8o- zJ>?Kcc`;4FXa=>kBqTk{KnyHkE&3EOB}_>8gim7Hk({w{p1<)?o^&eUcFLU!*3;Y% zfM%fYu*Fp;?1GrkRRMuR#nmZ<1azDb;DNG_g{m$F9H~zb2be8Hww`7@b}V$5gKtVQ zj|n=8p17bt%0Gr5^hjR=U?CW9%DosoKo(gb6Ex{;T?K#)p5so>RKNu7U^-Wq#oGgbzFe>n`JHHgqBx>1h) zvZ=L+#Wt;X{ultNbnei3jFt`dsa+#jx|+_5wOCqSIoeQF18y$b@RBgy83+!&cD0Hs zY}rjkBlsaL^(2fmXbzSNMh@-NiXyhXoF&LCQ5pl@p(hwx?WaKr#09>BT`(>@9S_l< z0Uv5XL)M%=IE0W!wFR!?v9b4RGIZHlMdlNN6cW@2#flcgmEp#IcAA5c)NI6+{(8~h zBPqh4?v@Nez4hCRkJ6Eo$0_&C(l=tN>Mu~St0eq%C4n1)5``d4FdJ>}`ze~Gcs9OI zf8iO=q;Cl_YL1!xBMAdE6+CqV$b5sXhvLhnF}=<0xl1bXlMViwkggBQLZuDc7#KdCpy zx|@{$*IfUFS0azmH?Q>}4(02fO(cbk{h&&~9stSQO%bxS?db8c=g#R)l>)o*o~Rjy zuLol+B^-xO0#oH;S*HZGtfIhEm&n3pBJqqund_$s>~*%>MD7SUaf|_3z|nm>cE?A2 z6jlbK)&wD9t?&sy%#xhJ14XJHlp}uYZ#`ZYiv#k|M;0kYGs#?o;4SvfO;Bu{8Wsfs z3&{BgThjA9rI^1N^`>rN}1zw7^ zc-?#*;yu#wM8&);7k3%nwY!G-T2pTNZ#=G?{|Yr4`i@K56t)*+mPH(hDY!}IMsVwLPDS1#l#j(n)o?an?lP+9~HS50V}AvcfFu z>iAs~ccf>TzfAMklhfG8$Zt{=spg(d-4&_NE84+f;b%9!Rp(-|kym58MR-Ee)^Ejo zG*xx{Z&QSiBQtq0RR{q2?uF$<#2_Lu94|i+uDAIYr@7}JcdH%!ME~9=ts|tiujm!X zAu5*xr}xGg%%-2^43F0~3_azT9-oe#xj9X$=b%J^k`@?81!t9v;KXlx-CG)@qoix@ zNLx?UBY>`8zN#@QM`dDb?~M=^g2@-_5|M$?HpL&*hl~IkF101ppFd`YHBGHHfXwi3%yJd19$$-H`!FIW+=!BJRfvLgG)g&{Z~PG zVc+Z++CGz=yTlaWjb7-WY!0^rx@CY39ak^P`;@I!V%@~91o?e4p4`_;ie%um{iz`( zK+R1-30jW#H&XEkWF1qw_2bL$`BHPpAaS+VwZ+=WTol)cWKm7P4X-cIgIYU#J?#^^ zag?e#&TtfvoaK{eKrPn3xGwQ)ju87`l1sn#NeJe{ zAliZw6#cKrjsw4C05km^kCuG&b1Ma9B<8goxKW#lnayS`;v0h%!p^L!xeHMz&@jQi zE$|yPz{8)5z)wI`edk5&nMt&zxBqyydX5CGnOnmG?ve8ZCC0cUjl22>B`MgT)IA!2 zl>fjQtu*_z{=m<1VfBhd4h7x8lUZuGz~{T+$*k4aJR<}CLirq54^t|%cjPGyP1Y(U zbap-f(m)yN3axIKtY_=AIWnTpWc~x*o9GVpM$XrPHfE zMuyQb?5Bxr9iI8x7WR7VQ`oySQ%I5X*{peDb@eA>y-0oftQ~D3HLP@<4zx7{zx;wn ze)YCmMtYz%j%~nGnZwHQeF8D+H-)Oj-+QXB6!(qkk&I!NFA4m@U;EpyF1crihZR6m zF+hq|?wC-5zYpes)7xyTyj}ubbsozkk6_5%F55l1G>(3z@<(<~JS?K=pLoetr3URq?b8>8Nc)u-Ex^6DfdG_8}=!vq` zoC%SdBWhQ@)#q(j&d=uRl3L&xZfq`4)_bkidvqU`tHsDzwc$~xN7|;;zsiY3{o!DM zn@>8{N5Wp-LON{NA5;ik`HzlP`ZP;M<+#X4VR%^&Y%OYbHu%Jx9}u?<$LL(2L|nPH zTD1z)Y#wT+`lF{dH=hUq_12CA!)8XQtiHrC1 zFe=g$Q8Df#!)n|^h{A0fy;BP+*`SCKJCW|i`ZB%-J5hG?HBEj%{g3Ji$nwDV} zWz-YuTVbwJG*~C3SEjd$IP`fk9U7rHQ9YVhB1Yrh*7Y}-aj{ZX6?y-3^|Q*hZb9BS zV6Z}2p+OLe4LW951lMFbB>1AUfOkVjMS5!QWdHQZJOD5s0e8A4x;QCaG@zMgf z;`s1+)st^!8rzy9ZB4qK4aR}I->lUQdve1A)kW{*xbOXSXo|aEKJs}qOzCpmER2t& z+gz-*Qte*}qM_;l9S%vwlR+RuqQd0(%VoOY&S0@PF?yR$STGoD2a7G3Oq&qmMcVgq z(f?_{4>`>l9v+$j2S@M|DU$! z35$HvB+eci#1Hgl8hbtT1RIZDN}PulAt}Dep8&f(Ux{ONk1BHe7VXgee52hDmp z4_f0H#e|R&!FiEDh*XFqnc|Bx)h3!CK5K7R?4@5pH`3YDc!dg%fBXQs39?gbY_+e zUr6h$bww}{O0;D};}SbSjz+!3=zu{Rwp0DA(&w`*i&I1OtM>Saj1M$RSzA zjSx!0nN*xeoQdg7YO{mZPSYvIxgTii<_ROI>R59L{!;<+-hRW6%o&7h*wJK7BbHpl zB6C+#cqsnV0SM9gAco>NB5)y53Kq^_Nh5G!L+#xkW7`f$5Fx`Y;|2CODWYcd8rOCo ziO*xn-|-gNn2tRI=8Rg^t!VtX5d9Ve$&qrXSUCg64e&jVj5z-L`Tg0!{}rXsj*u*3 zN~duxUNm+LQ7lLkc{= z(;_c(oTCdX5O_H7@1&s3an)F<*VJqxV zn&W;Ol&b4~?PJ?L9m|I6>2>q@cNFHui&f{O7%ARIyG9@Go9ul{*L{AY&dXR&aW#u_ z2LTeXakj?ecNnYRR^IxGvX}D>!TGML<(>9|JEYObHP&>gIh~4JjzOv-u7yWbC)e5w zNZF=F_Qgf%)xHPY;}7Ai>)-v3QHq|QARkd!C@fZ;0`%pPTloRYuJ5qDLaQ#Ol zpG*-sUk2a9z3edV881+ru7)?vPryE`s9R7TrnoGovF-kVOd^e!OGP9yxooj$CZ0uW zR4N>iL?V;QA+>6~;dDHm(pBC4F*&Q3uU|0e5sC5-oDfQYf&Vp5I2n>*qEfuSog*T> zxzW3{rXt)!PGzi7Ey?~)+Y2@g`;#>c`{JI9#aNgE4wXvU!PsC(BpQWRFu9z;P&6u+ zKq0F`)fEDsO+(3xQPt%fp*riSDn=X$F+oQ(&`97oSK?ZVA#@!@HKl~kSMzXD zseb#z2=`8yoNMJ`*16Rw=S~p4D;U9iB{S~8I6Ym_0i4PYRVq=HwC9-AR9h!30|OZg z0K{XYIOKOxdn|L*S4BHiR=m>EB(j?RA>AMq(Da`5QMO|y*{)mu%&M+ltBPK{Bxqm)33m!#roCti4`y9xE%M8ta zPrkg>bPo0eLykCZVRbn>Mm>I+EIWY^za)@^9D7KWnk&u|X$6C)%99u`3bHpBtT~+L zB1$}L(HrX$f;#<;3aqSWCk{lg#*zdj60jKrD+WP?Ub{EXPPAbMr@tWpHbISVCY5`sP%A-q25MNkAa#+Sm&i z^k3q$D>mpqa>pdPm05m)s5C1rM3m-kEV;12R1-~ZlxCW6u)=&3D(Q95M0m7;Rgf%5 zbFg#gY$3TuQ5dETZ#$B)Qyv=>Q##@VT4Q|PmUeEW;i4Q$8GT(3iv%Fd_Lt$P<_=3% zoubU{)=0`EhNRPl^erc=0{~ppxbG*u%mGO;dv@LV_UaP3f>H8TDVW6Z}Bd z=fg$pa3v4^$tML69BTENZGSiZxP_jz@zq=rr7ou#yD!;YX`jRRS5Yt$P+gxuK!!-7 zI~W>2UbOC(+j&Ox#2pnBbH73_IK1|zS36RPwL1xALVxbiI|R^o)-g#0w@9o>Qs0~=t z52ogvs6-jo7L;hk%q854za*paI+QwuI1{7LO2OII0*wxs$WRMpkjGLgF;k@L-hz#`iWksNMISG&!et(;dA>-K zPBE9`D(seZHmu``hP}eKZ)nyucD6Xg0&;fp6Oaq1aa2RWFdsECKhmZtlLX`8y+Tp! zAJ!^}@Nk^AvZAcSSqT&CutFjlzv_u^5~jM#pOQc;@dmx#Ca?hs+~w1(l;%dvi4ukpbpxSND>m@D~_m6{H<$u&VldQpf{I zi722bM&;B>Hudb>f*7^lEa4bNKrjjKRkZB#m(}^Qu zYcYojnZ$a1Lqb;3!1IS?eXmk{uT_4BU%e+UlzUU7Z{AC4z5`;z1fOFMVy?wrbhk`- zkHKwcjp!U}n6Y2ai=9chXXb+eDXd)+B9moin;)<=9iJ)x{H$180$OTZO{jJ6G*i_V z3I&nWwC|!6e~sEx`KQ0r%)1*zaUJ57O9(O$gYm2lk0J@(-2*^5r)D=?Gw3?zHQ+KD z7od=LZ;;M3t!pPlv23$gQq%wCZ}6gyT!yC4QmQ$87^kT!8dRnVZb%|3y{i>_o0NbE zs@MO7aSt`0^D+MjMa;`ErJy*%uOurC8Y@PS1;SlY5Qj03%>$=o+BAw6WODBDPh3({ z_p!*Z$ZNHvsA${$Bc-B}M6P5LJl}^L&Rr4Ki+vnfMg*5oF?<+CQE}?L7dJnC(99r` z5toU-X$lEp?y^?SD;7(pW@>6mA^`-DUs*{- zM3mBkla-N?p>ZpjB%TNYz^|gBA}nkxoJb<^fA0SyfhO?%KY{;}K>l|ShL7Qk%xNVnRVEY&?NhBip=aj5~tA^uw%MEk=?-^~kH%NXzE-(UFOjF5=cRlk(hJMMY9Q zZVe!gXBSTnoRAPu08+L3zYYKZL*TOD)s%5Ghwes@hzjzN@w%WFYFNKvDn*_xm8vv` zDGWTB$`kFSQbFz92Frv&`va3y4nWrF1+nVMEVSQ8$Y0PRzI(N*73nKv&lU-va8(IE7>dNaL;n6?;7OP3ulGm6;<5wD7aQy&$GvTqJ-jc0c<)|c;qp=Z zB;Z~qPb7o_iyKP>0vH(P0+4tb-&YWd0AOnxhd&qw@PkBxc!FZVudh{6Per=fZ6)J! z==JcqdLz_{7V1;ccdEOVxZ?T_8%9xf*k#tH;mITuS)tz~{gGR4t zFmE_)Nu^L}OwF`3y*5oV=c!*8cDSW}{VYTZ#y0zPVzn!O^+eRS5XFs=Tt90N5(XJk zo3T{psFaUIaT11P38n5H(@#)HMC>2NpwQ;;$gdqN)|po|VNB8&2dD-c6)xpBl0_mc zn~+5|4#~VGis1iGjgFg6DVwZAqrerRIe`P?&r6Gw7=ICl)|npNY+I`u3N zA@u3%?S?cB=)+@!t@lS~@8y_>|9r&UkMkyb?|J1PS@NwZ3$ofXPDEi&i0z!oWvv$F zPs^Lt8umID99NdUUC(%z-iZdTL4M$<7UD*@5p$U_b+=m`{GBlim~h5|U1^`cJnVk& zXm(-cwGCZH9rXXb)k2iNHc7y^)NR z_ulGd7D{wiAcJCF70(S>SPZ9G=uRLxWz5nrLoZT%`-eV*`vR-3?kcS5A8XcoDa?xe zRQ@i;R4baUFjA~6lNF&|Oa6hKKE>kAR7$BBq2CR+I@RUxVQb} zNn0>PuWe(#GC+}1b&;&*1mSXxPllqssyPs$^`Uo_t|Qnr@MSV!>Elq@v$N z)OGD3T!B2P!f{83uH&@ihsFJ@-h_tVY`NBjiZ3N%ruKbmU2q4*N32lYpp2nE^7UN0 z23_hm{A_HA_1liMFHG(^#Tz;so$Y9gnp5ao4Ca8#b+mmp17UszJO#Yja3~m5eprK% z6$;7P>+YOR61`uDSmS?<$sB@^$55((J=jn6?l`!MBYHKcx@XSOaC1$gh!BA!q$CQ= zX2NDghQ^h}C2xlWgBu)%UgfpWFap%HDmRf8yTVgh7O{h8?9sr(?prtS{0dX?9?=q$ ziy?|(h=M=#Wr&EOwLBYHUygIrHmI!6g+|4s%Ok_fVe>fPZzir%Jteam;q}KMRY)8q zxK6|dfJfOd1571Zi~_>*v+wD>eaIE;DvScHw1F{^{co23^IHP3ltzX%I2baafO{O@ zEV{wi8_SK-#g*g=JP}zwpAF@uxc|E@o#|1o+kfn$a@%KB|Cb%zc&?*z&$#ib`|dzYojiJv#;QN@StgQ4e>940_4gFg4 zd@aP;uG8a-&n-1OXO`!Bfq2slwflU03a+>IS%z(o=P#is&+$IW)pw@!Zt}0;hOgm_ zyqQnsLn+PI^lk3sNA~HO?a=7HDx2|+VT?%1uO zQ&KMM_0M~k9t@K%`#xPZYc^A5`iFyDFP^TD7GZC~OU!}6BBE2dA=|^^ucVNAmztOQ zo#k5Pe5GWKX_a`jY&U-=x?RUp&B5>J_fL0L=sy0l){xlqDPs)J#?Ru{XjgO$^)Ka~ z<-7B|vq)l*#0IWKa+BodJqESzq%YTHZl&XZ=k>>pul#j?AQrsr#ru1K96wELRh~z< zW=@Lz*ALLRO=c*A3C21N^pw;jXV`jgnq}-PQ-rUHL1yj*_BPRvLB(mZz$06<#f;olIMD(3UV-v9&w7C;VNv zxti$28lX6GHj|F-=YLI8-%y3-lHwaWB#7YQLcC%588h#H#orfXJz?}RbCcoZ{>lHLz>>spK{99^ceb`{3#d@2u@eYWeKB zl{nix_#U1E=M63xjVEI|3AJO5#z?)zpwbAJ^8+qGGEV&ub6264G_$%zuqWyP^=+N^ z1Gj#a3|01H*iYKFT<$XTa_zYEKkU=A8kckWr7WPktQ+r}GfVQVZK|46IZUc30VrWD zLl`0CvF*HRmef2h%}ULg{(IquXd_4K$j&;PAJdi;2PW6PP*c%zOM{XI|6kXv4RA7| ze=9qGEZ|fRsD90rKPfy|6e|D?RI;yB>ZY`%=~)7qXNBVqc$qMDINFWlR#G2tSxqJnT5$BggnUV@u`j}JrKHA!R z*$sxG`|0A_e=%st{Di-SVPU3u+F1!pkPjwo1}s<@ETO^VtQdBf4BZ++eK|c6 zc4-@ETwA@s)Iiui1H?3&99xDbX}OOlA#oS)&a0W_gVP)Huv(j~Nmm)+4PW0>uTCcq zl&;<%7)D`C7bnYG8WuA=tb|6>Dg2IJtwjk-{ZYtSb!oecg=5<;5kU|}R%1363FF-1 z(@jKo(v#fs>X|5?Qi$c4?p@3M^Vi!k}k4qYt zMG-MILBJ2`;alRt;M~JSMsgDlfx#v zrhExS-U>J$@vS@e##fpWmFcVa{)naRoHR6QfR?0dZH(YhEQxNK$!PpSsO-eq#V3$v!NxNo=(TDm5tV zFzQ)Gs#=%z|e@ zyHcCy_!zngjxfe(YI)7*w*}PgtidK)uY!LJ>c9GL8YwqPUsLSJry=9VLWOzYk(m#) z0^2r8i3m-%g%jYOtVn^ZH0M&TvVJHl+)uJ7MJ=$548s+>m;&Qj4rCvR|BMfdF{Bw} zD$R2%Wrk5qpz1{?xxYzU#b8q4R-(1{mBeK~5bd6riSAU)%YolL5vqLUUbXj7Z!1Gr z+uhlCz@1HixTt-+-pkpY!{`XeO;MzeAqC6(^0daA`Wm(?$CoI9=xQVb%6 zQ)!a7#=6%{Rce>R4tlkan5`^vJVfM4EU}NQ<1F*FIAU$_95bU3v^cF942w}=-N$~* z!O3G#1S3h4-_Ub`Wm|rDlNJuX8%u`*uw zrpN&Kid&J!*oIOI7uY%u@#21tuxBpCwsKTApTO2(y9r-594MSE$O;S_l-xi{fD-lF zofmdn+v63t{Ma4OQ=Hh&+an%tVXhU~RaG1E6GeEp;*I(4y)X#<`%qEBe*z_ynTf1*G4gNaSz_i4kp>f0?oc0E1~E?X+Rz)9vpWL#-41jQ*+1} z6BYO;C8vINBsatA?m5b8>S5X$3smJbh-XDWXd8VP>*D;v?^xcIcrxwT+<_EHp}>ZY zwQ%;#o#$+Gu9eT#Sf6>S96y@*sb%M z{J0yMx#5;Cn^HHye)U!&=Er}`(L&bau_;nQcDfLJ5o)5S!ZaU`DZG29a*sxdj=*F6 zc$0Y}roxN^xy2w_D2*iu0Z>9dH9+rnLYRy?Jym-&psx-cs;i|ADeYx0<6D->Z!UVi zfj7LqE{~_+Bo)i&twz&N5$LXr>9OL(>es#1m_i1sM*rw%erk`VRJEUAr`_KVHm2U5 z?hkEnKK!Q>A+kFg7b=I9p0t89Nd z=~SZj7`mlKEWJM{`*2HZU}Loxso$qL&oG?2^9uZn2jP_LH$OY`D*_=eBF{t{=;Knp zPLGov99i>-2U+Y=r7HZg#CLxvSgLF>J98Mw+Plt4xjGUee0T#3P|<@G3a2g~_E+T0c}g~qhWf{)g^Q25 z5AFYRG27kmsBrKuJhjrp(z)~J$S+73un%P7n;ww!Wbgi4kafZzc8~M*$`y>4X(eU= zLZ8|_uuw{_?wSU-MdRFHGz?PLWNI`J)a0zF0UI+A&2<@w@B_8UCfunfy8wS9`ZzBc z%Ic$8WxvxMyMF+WGxf~?*w#H8K%8fuJvE^6i#~s51W1syx>mLJ|3(}HXW1^%T9OfG zK1BBYZ>wv4#XiYlqy%Y9`ta50TQy!9?UMHVKT@#-z`UN+z4pd!+;+bH1)oa{t?&k)H3LjkEyjq%_~pW|(_>rh33%fXZGvb61`@ zS17^g6(r_yfJPpE zes<*SFV99kU%7GQ)_-{G*jnIby4gKmS?vwGzP}%YJ?8 zm|s>C*V6&D<(#zdL@(@n`_tOtOdpk3$y&f0b+M1yOL}$Rz=RX9Wt0;F(yUBYX2)GF z*pSwsTHnG=m(3}IdyjB7Ao8H<&~{hip8Zy)Ewx*8;hf=&Y{(~j)EE`L1HwMIowx1G zmYR^G63;a3b$v3KtWO`qS01rZY`bJ*@neH}L#g%FE(>lY} zl{F))V6J;sFRZQ@Yzu*S-M&0VfBz$32QRH39y#3pqD5;pJ7rQYercahK(xls^gaoF zXefAMHWxhmz&MpREYY+vk<9`DvZ1_w+laPPgFgD+10PP%#SMc0*+(uDbYGzE`l zaqokYsS~5knpP~zz!##b+lYhtI+fG&w6F)fz5Lv_Ip*c<`s>>`83o-izO)aOR>mMQ zh2|K>-uZ~}gW%SI2#fLDm`r||MtqWlWjlP zG=d6$-0i&j0EPK))Dk3Wg)y*w*Xy%7aMw+`an14iAA5*iot~#0SolxS7;OD{?zrAMv4Lr~3Z3F~;RHzp3 zERWZh<3e%q=@F^_tGg#PQ4)%K8TU-X+1KpjOnhadJsTqk7kuac(j$mXS=p)uf=q8r z@oVUZZYK4pUlG+$Njn}wg?xC;&p8uR6aE7q1fivM5hz-!?UI#f=ZJlSzxAVbczFv9 z8_|Ui2FDR_*-bvdke*aXC}jrhNiW)tEc;4_t6y%#M@n)c=}cufp1f}Y5g_d-nGQ`x zv>vEsB%i7IXtvuP%3+(MlX|inX#_p?^aRO8>?E)|iriKV#gLJ)akLy?@W@R*$=8x+ zw2+4nv$>o^hXT}OiipOoB)?jao!vmg>#^y$hzyy8?_H=a?`pZH+j9)2Lj4u>k06SlRo#KW#HwPfQza^slCFR-35n89)Ho2lOt~~#4W2!@hdIGK()XB>o&udiHQo^kN@lzPQ*4> zbDo^0WOrM0q7~S&dWlrpmPs+cIB`lKLnGP;^kk?Tr^0xF00Oebr;eU-SeM^sq?kHT zEF{MT5q|RVJt&95W!(drOZtVxvYeofG$Wo?4$rKcFgAU-I~2>WLKoCMF;u*rp49&L z)M6>9!sAkdch65(w3{xx<~8TbEF!{`t_;6mk>$u+3h;}?D#CP2CSaZIsnfe*T8(GK zsmms#a!e#%ZoRqqj;XGrlxf6~%;1wZ7sOykiM%)kR*(4&+K4pgrcUe({Tj@|ME&WvoXB~hBreZFR)ZPrWD-|68sm-va{so4k?I*|w$Cr@H z{FKM_OOW`>z30uT340H2k1X3Inp;W|yh@u-WCV^nU+*c}78YZ7M!dNY2d`9O*dM-3TNOgXE4CI|M*otOl>xvp1Ta zM{(#K{uprp2Hyeav^;;nBMhfMcF;+msagMR^wI{36tq0pW{Il%A~ z9azYgtT89@-v68Iht746MO!a{xTF%!2*Wu5L!ECVbZ7c7p$+QnzO!@~AR9N<^+O@%_fvJBV|<}Qd*yKB&1My#0Bcm`KGb_r!zfe zKi;j^bM-Miu5Q=i)SCC+e>ln`>hNC z(}Bf;D~sbiD-62~Fg;0n zi2kF;M|L@O_Xm6rPKmyEWeW@IqjfksNm&`s#%9`LjaXXSzN@Fo~CvipEK`p;Fk)))Nk%eXPENU&B zE43oNW38^4eV$cgxm}dMC^ytjE4}Q+j&&LM6JlM>>Sqd27INBe9aeo$^H5pYuNpRn zqyb{kBA_zBajtnJtC+JF!P4{qO`itaal~fwA&NR^{w&^|GtPVp5l!H}n6Q zx34S`G=|WsHY*M9w_7Sc{-~~ND5Xuv=}b#y9&h2NVAU|bC`^MAusYjB;I_Zi)BYdN z^;v(O7szz(`dnUhNh_xG)#S4sw=X?tT+)=3&OMNsYj9pPb0wOprM!dNnT|F2v_7%6 z`qJm}6X&zqkaRVJ!!dLaMPg%@W8g4o>JDVq3PYQSS5hdLLR~zIZFEc_z9VCm6^S6$ z*?1$Xa(=hw^1e(ujpiLz5id zvT>)Na0Oc$#TSKZ(8=uMts+rMtANufN@X6m@Ie=Be6_rve>QkudcIoJMKw@{Ml*fq zl~qxO(H3&8Uim6DgSNhteJ;O3XMS1cbX|J3=5v|fu@v#~;QTHF5UY(IG43K3rqjoR zb2k5YP>R^^Sk9+q>Cz^f+D-@y>z;-7kg*iMKxT?f*onoo18`U~J#kY^-u9_)+(z;izKq@d)Y zDwEODtQDYM_YeFYM1v8;sVoF9ID`pDL`eCC(U^cw;xAx>42hwectV&Z>^jd=6rW4x zw+pcmDnZ66|JSoIWHpY2Q&c9fg#$!WJ!Q3g@;K&7a^byrBK;)|+(y;-@fz> zf=-W?dIW-oqSIh4cS((Hbu-s&L@yI`T90UQ`Gpf0)^;|+j%Ouf{ZPI_9UqU(E{w*; z6@(FTY}qR|m73|RB2D#5cHV4>Hg8-K`&%i|J4d*a|A7A#UFMw)uoGE4tUnJQ98#)? z#(0Q1HXglZ=95jU(!80?k-jv7cdh`tX^5~?^9Npt2hiCnGFdlGJyXnyBOf)xoD?Cv z*=fV`>Z>4qpWs4aScF5>(N&{}Lpw9wa(C2Zl(heY+N=7<;G=y&FtGLH$6)I#AAbNg z?t52TSFTym28Abj<6m$bl;s1y_Uo_9l3zd3vcCM5rhohpUi;q1dG6i$d!OddH58~} zT2B$FWqYq#qBPIdq@9rCk5$GqJwnxp-hy zl(M2v2gXXF?p*mbL&>Jmgp6zY^0IZkdedYy7V8GDx0qUS>w&gn+j(7=U#h)#4_~F9 z>G!m(zPXgExc2}A;$1zq{^6FTz=7yF!1&|r8v}=wqvNA?onH@+4g=QzcMHQmzA)4} z1mac$0bf+(Am$pWX|< zCalD^ZRO>6%T7Pj0Su_qjXoOq^;*T0ulId5l>tv(yVZOJHV6*SuS2V>-bbxnGgIy+ z@aWrcO__aqQ0dk&>ICCcuCnbr?!?okfj4!ROk00cM-}43fvD53g>vNbld~%9&&kNqJJdvF6 za84vF>6{4Exe-B!MdJGiHyo^}<2A%GmF#qx^lT7kJ7asM-PiBhVEL3}z6=}J2lb?s zh}!+BQDv_3M2s>ecu2LwWMUJ|`t@0K59oEA~9AH55Ck_UMi4XHPy(j zUCOVlT+YwAR%0?U>`mXwk<($-3`S&4K7+$9sTwAumhqhfWPIUz&ei7aPf(uE5iZmR zdjyIBPR``_y{;##ww_g!SjyH8qf_rMG@gJ!5TybXFGyy??R}+HKCZ7*ZoJaMX-Xy|I-Ep^+~YRzt3(PbjZcU!mQrxmK4=6+$!NWI zerRC!TtH`+pO++6CX?jxNKxTrVx*7TAPOp$MJQvFViht1$`<-ILUZRwh%*`|$qtr} zgsxZ?+TR0r`L_GO&zyq^Y?Pln{)4}PCwwYs^5piHu=`;J*fzJif@A;dU$F-~EfGf$ zB*KSEE;O`vE!5_EIisT}(o|Mlw_@9(1>ghanY}UM+%347{do~2dS*gsxI95bt)SAf z;=_V@2rNDmerOmJq~vwSi8I>c896AdG=*)qb+NrNgN763_s4@m*mmQ%R0ZnU-RCy$ z-R*zU)z$y>&fUJv?m8;Dt-g`mLB)T{J=)MfZUyqJprCW-cdY%@*RKci0w*XjmKzdE zjtq_X)qT3KN3YVIs7Zr(GKFQy>3M29d_8!R&8Z2YCzA(qnVw;>3`7WwfTeK_+-Phf zET}d-kPnGC70*gFMN)YsNpacHcw*WcJKheqjGi@K17_(>nBcrM%$dz9|)j# z1p#ditsIU^3p^c;4G4^5P!bY(T+FToWs7Hw_GUfqz=dtE#r+Vf28Y$s=v1AV09x50 zii26qq%)>Y;aX>^kgAQNOYM-opQ6GeDd~FsP9JGB60gGG${3n~^Oou)E-xvb!9zlk zK2!L-ByF&B6AptIwX2pRfl7PAsT$Vg1UWEpmJ z;bH{iz}yd=+#Xmp;eXKEt`fuQ`;@PdMuT9EC?0gi}A*CC0Hao zIWd9815~45l^^G+)>jL<$7>o6+G^vhqxD<29k}wpO zf0S5C{{_U+Ba7lk4m2Q3$%m13M*~rqW#3yBrPN=@W#F3~!Qa~#1wiV7Umw)3ue3Dc zCida^r1WYwx{*z1V;UZLVo4Pn)i9|?H&%V$sHP_5V(93&JURuLho)l^b5WQN%090q zHgZGKE}4t6?Kb>qf!sL)0Y>T{*9g6K6x~0oZw+V#CbJg=@A_e}^8wQ#gO!k8%JfCK zwUgZ3PLM0C(%4FnY~i1ps8k#8c~=*ia^b7pYzOvsf2$!YfA)5^W7ledh?K<^v85aD zmFrUWfp4Tl*{-NHS_jG3zW46#DF(oOl3$~)S$Vp9dY(9Rez2MehA@^m@#P>1CNO78 zMeHoLh*Ypz&vp#C0IMOZfK=$vunMitH5Em8`M?*;VgXMhLCLTxB};#HJXgRjVsTLS;XHan!b9P0mrA-49v}#BoBSm3aRowaMKjaSazc>{R2$+l+O0MCV{Je z*4-^xhiYOuSnq8dDKh0&Xa3#b5PjGIE<-K>o7m-l-z3QwP2M~ch`rS%m-a5M&M{^E zt#t%{_$4$c5gTi7cL0PVJ{E&G*1C1b#El8Ga^XXNEqr7;l)1KU1~MEkq+A;6^Mt?Yy6P>x$6fO%#_g+-I93UWv;VYtW<> zMb8dAE?-KX+6lO5M80d(Hd;^;^L-}Xvh>LHC3IjbtF~B84aUOmWop}Nk05wB`O3ss zC-kq7erTn6{i`>3nNc)N*SBwdHaf=soSVZMzQdTcA83w10Du5HU|vZzE)TAU4A-KL zYw!$rqWo$Q-vLmqgBg4EJ1oZ4S3Li{@TnVj0eaOsssPg(+AmoMwn6^WLnwSVo@$5$ zGV;PEZz8`7$Baq&WyPJ)#2sKub)a1$G;AB(z#HSWeIr}a=HJBei;P3w^GjtpHw zk)sS8@XmBoSIxb;zqppqaSg2EPJT7l^C!8EAGh7WC3L}B>U`mp)QRHkU!Pd=v7<`9 zgfHZq8ot&KIl-d&q0BODEiO#~j`7F298{0YYXspaAZ5VgIk<*Mxf54#9UA#NTwoq$ z@qw6biO{GT;CLTahVi>%?fAgN;u9qhzR=8UV6K@7 zikVrS3hsbnu7}^b4te|?j>UW9eLMjDwjcRvZa@!bcJaaOven3uTRD(2ttC@(a19x; z9k?}R$Eea$Ljp3YHF%h~17f)j_S#yMrZR9$8G`YX$v{-=*!>%-2*In;+TZ*DWIJK= z7mFSDx*{MNJ>rnjo`CXV!*)VdV!M@8a5a~uDPc19bn2sZ1X${i1P7_66f0D^YU04I9G$O3 z<<@@(F}PmWKdt4hc|f#=JNfcz9e>(q(A~OqjFPRPU{Jm?>Ss4B-+<%@RUIHxRV%B3 z^CwHtlPpikd8NqMKDXEzQzk4{JHZ#W2cy+H!mD1{V>Ip=Cen63 zBV#rxiz@I`&QgU@DzX~Imb9DA-}9f0tCzI*j${NM@gGoTaO&^CKPGNPzkn^UcRLmX z9l)bOG7Z)|3h4$m&a3Ag8Z80FD!S=d@`!~o)t+?wSumy<(3pO2(u}W~+2Ju(k;Q7( z*xG9Zm8dm&cP@E#;h<4Q<%-{iJaOK6Qe@)1j?}l3-g6| z)dX=hULfTu0syBPnY1=ZdJQEOS`-6RiIWjL>9^1n&@c+IYL^j2Bn%GB74Zt(Ey!Hy zuQYs;PXj<=8Z#gh4yaY8$^x#2HLwTP!a-wyo|NGMJcx&|7!P9!9>Jq{3`_Aimf?v^ z`EjrnIuP$8;VEr7NHr$e4lSm_vWKue__FoTNtjw4I@PPwb<(q@6?|Z^0p7rU4?NW9 zktUBl@l>;C9ArH2umu>&`-y~k4FG+9-_8%#ob>2v@BPH-SgQNVkGo%I)l~Jvx!dn! zm&DGF$4A%R*a$lRogd?S!TNBaYWXj+4gkPQ%{_wL8m`uLS7?i;RcrEST3M4_3(6 z;}+qg(qVAq>NBJSoI^fDgs@V*PXXS?-}{n3Pjb& zODdx-GJe`nGHYy74s2EFl_4z)rW=lNQXs zH)I2-FJ3mC>}r33%;1$w3uxzx_V!f&=bNgT28gOvfKL4&f@W9+dUcyxvHuV7dHt)3 zU_Xkv9zQ`;JniBl5_{)Tt8FmfKd66Whe3*v`ch~MUX@t_JRvAQ2-u8$7U<5Cpsh=F z`ICq<)l4pcc9x|=aEV(e%jr4LRv_8#gyeKQ^&`Z2zq5*VfotlaSCc~}!Pgnpis&Pj zphHezd*#`nQz5;Zk|0Y8*6d(}_H{7~9GtM0ZqPwGo;H?+1oSHUU+7L->7|qgLVS8T zeMRSj_n|*RJM(ktg+0lY-c6N5AB(Ywz7Mmr)biPUcpET)bz~1Es?1sf5j=|rxtJT(C{2!FxO9?2PZ$twbt;l;j z(sq70CJx{M2lamp!Lq*Y2lNqk%;f%r#}-ks(*He;x$5T+H0WZ(^0^ti)vWOT!L9;3 z^IQs;AEiJ)X2bNTJi#}*g3>MUtlAlVskZ_E=H6aoNxmQE%enc`tOxYTWeGdZ;`QHV zXfO%$unHUTitWC&(+M=x(`ZuqdZSFuAcn2(#a+_vZS6oOd!WlY+I0i0w^A14pD(9z z+Gl?5Ps19ZO_qLTt;Axiw3WZKtA1rjW8~B@zyfml1zl;_SyD)^Ch7H?H39>xYm zm2+aSez0w@dvJ7!saKg79ee%QXU9$r^$(Mc9J&YE&U-iS#BjrK$8hf!$jq?DSO>G7 z$bT#UlL7<#NcQO`pFa8K$yoEBLx_&8c0dM1{TE0cXYOGn}iOJKT~pGtTTR zI?k=*wsP-t(>sxzgs11NI@`s2w2P51ZJg7%vT;M>tHs-kzbXE!_$dD(znS03&+JAE zK0#hnRnwM|_e#Dh`K#op;G(dwd0O-0=I={)m7WmR3)@5iQDMu}mdcjLT3%>*qijdn z_hq}vYDAaC@z&DTU&|jHl{p%%Y;1dJ+55|pYI*yj_Q%_QUw&};S(!_gBb(4Mt7An+ zRmYYUzpXg5;=DX0FYcV)xw!N3&O0L{@p6p7k`fb&LRc92eX7w6& z>#3e!*BVvtuf0Xk#^(z<)ME9f4cP8Z%_;4~fiE`JXfJ8owcXnE>5M%^I<3y7i|UF8 zXACYM+%TBh^v0%b!CSo$k_{<>=pbfDE2In351E84L+Oax{sQ=es2i*_#frdj9 zp=78KnhVuHYoSM>=b+Qj73c%QOZpF9quzJY_d}D&?}gdPAMG#lFZKV-9+TOQ)Ww#1;3l0lL1~Y>t!Rp}J z;IqNw!Iy&HxBp=OKiP(OhlGXTLqs73A^MQvko%6$9Dh6QLxVyUp-rKWoNt`pIR9|j zhV2PE92OiF7e)#bg%yMy3%l=j3Ri~TasTDPM=V8djSP#-jx@puFez*%$}P$-Dm%&) zbt5|v&WDdhJ4OdY4(Kf*R~yW-sA{NvzpQwf(7zRfw5csp>cV&&!^6(b|thzH?!;m_e8;lFilKRrK_L|QAOSr#CoK_gpu1@$TN;$Go9=Qu@bFyjD3Tzs&sh$$OrBvGTpj ze{Soefew%aD0l!u8~_rjRjy>iFTwU1M_PWMF_#`cHkp9Id~T7V1a@iscnS&0QJOf`jfcfb*x(=E9eSnT?+Yyn-pPj&}BX`#YoXYHP^;AO!hri)8z$JzuThB>d;3 zoUf=m3KfL?qkoQp-^7Rq|nA-o!HBLzrr4H+WJ$!1l{ef#ft;VDKGY+sSiRWW=v0lc|n99s5 zMxW$j1ZulTxdg5@ba`J<`>}DZ5g5}n<)pa|Xx{++xvGE)SZ!##2X$GqW{yM^)|Jf92}M#RbOtq9&r(g)I4JTwMVgSM2RB%a%LTP*S1}=>Og2IW zI`_(0qFH4Nm%jnmOTQucXwAVc#fFa2m0o!e6z^boOgJb&=zouvX{rHP0R1v8O^mw;|OgD83*Tm}a zEVb7Yo;4J~GBX?7OJ2dfl1DHnc@f7-2H+Vh?{8L%d-StKC8lN`?BT386D$qjfrW$} zEThh{jQU?{c4v$635eBEuG=7%AO7bFJ~uNeh;d77o@NR@{>hq`cek9d{u#ST zg^nKa_hvtCNN5)0|ITp+m!%WLnM zmFC{Nv2NdOU;=-ZPcKJ;eiEkp{FUfob`52M<_wW2O0ElFwH?<(?e$3v^PS^_2NI)J zj6GT~!$m-+P0Mh163r5rd_I~-OsAmA`YYNt3Aq^I1^iH8k9~SOoFv)fbL%b&?U$7cC!rIGdsMh5Bdu#4 z-2r{Q0Kt0@*aBOtK(#tv4=nozdfPu0y7>3Ewo)9?&ArKoV^_kEggAHG;aIp}3`Q*wJ(qWC(?8(lptEGdEO-GwsCdcQcfu7E`!Y$Oz zVSKQ>I=xVlKnNijDe|JK0H0@HS)Sk_jE76em6^#v$@Q`TFK^gf&#Q$_FRv%==jtFM zPoBlz9aR0*uM2-DdKH=wJ#=@ms15R3LF*0?R%6~hqP6bjQkV`i_9IlQH@&hW77Xya zG|sR5v4+=-h`O>c!1^TiXi32_=YRkngE1i#r~fIt z{<#|H^ztHlX@xIpH%D~;cg{=ewFZX*dw1z}Us>Cze3}A22d{9AO#- zH=ne)pp@(uY)e2uq)Y4VhUSJlP-bT1eo1{iAbAN}OCH4rlK1di$=`5Dz*HwSt}Q04 z<-k3^YeWPGuY9B#J8o6;qBF*39&8CuO*S@^C-cDZiV`2%r3Wto06)DuMP(P5iUA^$ zN}=uKb*_SUoruhw+4*k7N`7}|TrQ{1++l_PBG3(m2PDH#Gm=4F?vR;TGWWH53Do_i zK%QYY>ZvIsb!j?1GmZgH11-RYK)Y4ZTYFoIgvm}NCH?HliHW!qgS|b#3ACf}0kP*3 zC|)*B&vuTU$zG5R0b+g3yxz`~@l{V=IGg>ovfr#F+}iWikD$%?QcUS+ zi)%nn5V>K4#$WO~ce0}54pZDwNu*FCqNbAw*BtF@Ij3fIU|t^DL>CUcfhMiCLU;8F zI)-L&11f4Myhd#m4+CdEaTkT}iw!lZO{PKG8$Hvb%Llgj}C(g;=I8 zya+nE!)9=o0lDiZ>-OCR>)>SzL({{G$@0G1oIKR1=o{fu4{71uEm)nn>wwO<#e{4K z9?`*qEw9j~At7h}8&+gH=*e9q2r?Mv-Y2BIt)JlfZQ)2aQ2G{TPtA9)8@`j_zN3fmwXdK4((l2v3Byo87I}XMvo^UmXhuO0e=#pns*!Lo=2%`qdVU4!2d0@rf zTQvOVf!tUG@j=`A%9X|SOUb5qkJY@ET56@MN-YIXo$)l+_)ew!Q-XVKWlyP@t}Hvx71I0u6MoruV;C`J;=0P&js$ z!w55_YsTCynm}zz%SsWL4VXS-+!BGVa5>NXAv%*nhin*;ORUyUb@Et4Qim*DcRT$! z-a%E~Z%_dJjz04a{9y%L@V`zc4zw}C1*$eN5U?plLnOfPq&~p_pd1z)XG-|#Q$4PJ zUH?aOCedqlT8ta36$;qmV#q(kUI#SS5^L!jFPhBl2+*M8 zmkUP@8i6L2IXi2WiQL|%%%$?aswX6E+CuQmV8u$xw3`UN?A{tcVHg~Y1O&kK4nS;e z*&05wuK1-n^;=v(3n~3f38F^8+Zo!RIFCM)7WLrmixOg=KY#HH>Xw$2^N6kIxr}g- zgE|hjBFfL&tHA4}XH?@;_3!KeoYhX_ONf?;NG$e*v(GU=UtGlJ=r08iG(0QO7w4c> zZQg-fS}cSJ%${F8Q_}@zkyGa=R1X_=w{mn5i^3xTD<3xRRaIcZNOt+`RSG(pD~7SZ zjM?~kI3*Vm+$lcv=FN!wY||BjL6`lPg?k_&WsC$)wuTA`&Iy3M=))bF0Rmo~RJW1R zy{9V;lsj3jv!{sltEQOd2!Q0$7W>=F5-&e&#!$*b*BIs;^kMLt*_IztqnAL9f|0A+H2=J z@l=d1^|=#H9x@kFk1_hme0+M3$Xlmn{XY7~?24Z9&lyzoLA`@~p-qgS1wt}O-eSkgo6a@>| z&o3zPNS4DatyBj>6LOhZ5li22Q0z~P?p|mvI5A4^@Mlg)meFKaX3K(`48GLi^20$G zlgplIL1)BEMmrlIRBUGBet_UvuXfJZ?*6^jd>1+cjCLr)AH%Vlm<9)>Kg%#SkE=#Ho)vCBPvOCn+ zGtqutvl$-BgN3PMA0NK&1mj~9I}}m0F+1-5_J(mrn0o?Qw(cAYa|?$6uBWB;r1iqr z_k);sBoJiOdAt}s5?rg2`fA8!s#_g!O%fb~I4%mE@J?q$AZ_E(ZpcyCD$r-WYWT{Q zl&8MU?D76pFN~LLiB(h)&@LB}zPH+Au@pF!O)yKVRgZ{t3O@8_f^1#jUZza0l1bI# zLaL2ox#mBx6?=Grzj;;X)p%(gn@D9W5o~{#9_nbF_XqpP7n0uwc8Lm0xnSI*=VAjl z<1jnm2PlIlZJBD@y!(t^?+vCeNF%k6g;{a@68Ja0&bVc zN8_2ZO10}bFe|I&_&@*drH9n<46Gzdd)95d4f5*BA?lN3<&X&YrO`CgPm8=Zx850( z5(13pE;)GYsQlVo8p}YwU?R}AdUf8uAf&9fPF^eco!2kH@yg)$F|XNB29@oqsI;9{ zyo3)cmD}~pBnG(z`;rLLi-(|WL|g~!liogE(z%F<`u+gR;6;Db;3cb~QxG(TPjsqf zqOmU%KiIYI??Dvo#k@wX%IUURcc1-@+3ipoZW}u`&hW0z!3!DK$0~CZYvp zz(t$snAQ~y45r?%oVrhWVgmeo^NFS-VB@M1*4|w{T-S0dOoh1_bH7%vw1hrXyiG{T zEw-+jV_T*UnFXaeJm+Y+8cYyZB*p}AKIkTfB_|zA_`15fYN6C_;!}lPytcX=2?(@E z29$;gIt{+g;STwyysxj84FlK7?H{*gI(1g}OueV;9F*^D zm>ZsY{jCM33e~8CzHS8MLeUa;#C2@RAF)XCD!wPV7f-02V^*;HpnHq<++pUy8s`mj z@Ks?3NFV~a%7w4&?Dy(K=w;Jxf@7dxHpB!`U(YpRRbUN`uLiVq>HY~DeSSbuh-7Bv zD2x2uM6D^a8l6F+JNo%J0VHRp_%bwPM8Pk>rwNYvp*7`KogIY+b%CyUsY9*T{ny-R zsDe$Ee475|wkmeDPURDA{&hyh{TV5sN5_leezExf$;BrTQZw(Nym{a_&>`ykL0kUn zK2iDYquQDtYK@5=2*6)ZF4?3ZC2Kl2s`33 zwpa9|qbw~cZSE^SrIdsIoNY>4Hq)h|wl;lEh_4i6owoEog#XZuzNl&c*BUScNvLV|6@1xaPTbIQ`3}kPcDAH1 zR!IJfS;+zXM6wx=k<7;O02Y`WGo6)|E{lRqsb$IY7vRf@*j9FtWnE1&D8V>mse8HC z;~OZFNS(dzGvKaKT4k*;%D80O6T-pZPTv)Atx{E_2M>t2%O$**=7L??i+Yo4nkN>$ zD!4o5WkbOPo{H3wBTA+pABN94Cx^|r;b#a_0W-~`ra&P}lWHjFfBug6`fjbWUySSQ zR80-;ejJ>iI|=772B^wtUenU{Ra^Thw8y*J<%@6jG9=U8`da>Bda;CwkU6Xcbr3>& zEE!Dk@z7O|`$MdgfP+?1c&k=?S~A&fQ@6_ACLO>GcqwXqu<@;%qJk}n)OaY0A;AC^ zum;^NF3?7S8MIB5^hah%2Dliks8+`6M_IqI!Mw(A6=zhZ`6=ea~9B0;0L|FaL5i%2@M1{Fat(x zY{}UXsy1S-tMc#JhECDmp~d#3Ni2lU=)tonsQcwCefDWBy&e4Un!{(%n^5eByN7>9 zpFv#0VlDdKtJ|PNU?s0Vs~S^09K$LCD_3pSGS}Onfoe0vt=N(TTW)jIm#~74-kMLK z0OqVxySk}}c{M~gRwy^~JGy#DyzInjFd1|;L#JUAvr>$ni56m`1wSGo=~A!adGyCh-WGpDR1CBv{hg zPI8}#ldZjq1fr;7yj{@vTwcIE@jiBdvKE21ZitZe-3O_QabYXxIWxgB$=CReukk5xC^XBVHU- zcB{6pQTi?B>C6r#lI?zsM)zDUsP$&904l@I;AJ7kk5H&j!k&2cIIoXULIG`DoRmOb&UV7}Q|<`2Ve%lZf|cAVlN z0@_@yW8r!-!&bjP8edT}Y1@C{5}rQrvl4zMx2Nv%&!7@E>P&ADis5W@R@Wuq8g}X2 z8UvCq=(B&(IcR(dYu&C{eQZIc0Bzg|*arb4G`k9Ma%nj^y)TLW)@;7!l)Qw{divN> zbe|X>@K@q0iRRgAX2tLUm21it3=HR<<6LOC%u&`L4H(WY^3X#Wb(Qins~mqs*=JX9 z8U8PeH?f|Bv2;Xl$l?P%ahP)>qKf{V%R=vQG0#@dD9U zffpwvNLcq*e`Ca!?L21WSs=_dp0xYS0jU=r9jbj_vOTvS(dsp_SN%(4sxG=|xZz_n zgVQt7Lk`l9lsYUZv9u@2Y4R2pz^DOzJc7eLxid$oAbuevs;F#Zpwa9g<4C0*qCrlD zdO%$)brE)QDv*NOoNi)BvOIQELtluq?P7Scy*p3cB^ON;f}Suk9q7aKtW(osXj3qP z)7yyOR6DEQ=W-gqxwBF2ars0)tfup1X4h`S14#*e9F&G-GkPd5O@k^INTl-d6b-Wv zszw@jZ9>RLiPP8txiB8q$Mj95n&v8YU{cVXWGq9H!U^M9EW4_s`;2qi?LJB47<+fe zVYz<3jzyGl>WIn$W45}tbA(*jVZd48SIDBA^6_YXn<7+n*SF5w5vHOY9D8;<#8Z|n z^_eMOuJqPur~y&?2pGFDh$v?u#FSMOs9cZ)KTJU#nk>67&?OXzHLok>4aJwDwkK|p z&w0tr#<(N}KUmHU2g6a`4MW7bR8ln8^Hh31j++Dqut5RV-zZ}a#|M+%0Njt5lCJol z{tL_*V{I*+%I70vA_DrOafFsdY?PYYRH+6W;J!cp8`R0&ItIV!|MXLDOmhwBzfQ8i@;z`d z>h5>wc%duRW5-ge9{i#CZw>ygqMqx1%g!tF(GM=8Qc@BP<(Dcr{u^}S0*qxbZ89VD zSgpoR7~x_-ALBpDqpkdM`OTqOU+2f$BVytOI|YlKbDTm{7>~5z0!7>|;x9 zB6H_*<4s3s1ovXrH0{=?-l1>f5g|&Hz~ZTc&19aak?RPM0fQNVV#>{$5YkCw%|n#? z`fXl@-~Yb$G^6A1yOBq46OcgHU=To4-VFc?K9USmEuDRYW5=XF6zrqx(y9M7J6mTZ z8AaE^qQ9UP$nEw&ldM-9qltv~KO&S?&o-yBuk{$*etEwOug8)mR!P|(T0;O`CVmW(=<0|*I0BouaaX$)I?+!~?*pc&y8^YWy6nOwmzK_Cgs z&-L!G55m#v*1J*ne>nId&KP3ZuD|K-3Fo9c*~VdtTgbX}(q;ov{rDrDE*@xW{ zW2P_kGm$yk%xC3yAAsa^4joYTu2dz`;{oH;V`Q)VX9`)d-1OPO#R5DZywo2EWD!iC zCiH*B>$5I1H>^fmH4MvOV$`J7X(y*s+e& z*Bnsb;LOCjYxh>Un7$pwp4U&<4|_r(El(wzsuzXH3G0exz;s|>=DKD)1N2N} zN1UdkBDv8-lVY_?jjr(H5Q1s7z`ByRdtqhq7#4?4}}o2@&Wi}}^D0X0GBcg_WO0$IL6+22I- z(682QEDKUF-Mven0L)i+9wIwY-}SDR7nk390(7wRdYbn9QvgOd@>jJzl>M8V&n01} z73QJp`2cnt*9W{hjfm9GN1bLJ+x&o7G}*$Daka@U5cD4#3p%dHnyb}F6VciHwm=XV z?V*FPhYGc!^56_(oHQ-yS#&6Xz(N4y7%na%Tu`>6ejTTP_b@|EhB*;EQbbq z9n%;{@Hn;;YV|B}!BLV_w|mUo3_YZV$-TeCc8uOiio_wksnY&y9xz&ONcpFAX}VS> zXv}O!M=d`=pt*_X{_H@oZD0tgr-D(pd8#Z@?x!jwtV|6H?;fA1?&4 zF7F>`6Rz6SBgNrT`Td|!opX{oEjLroA6&0K_}A(J4fKX-qO1{g-N{o*+cg&(vtft9 zG?7^Se`r}~PWY-(69?Wn<@Do@Av?MvgC70>#`W_XbUJ1Tofh$5iX0Z_fDH+qc?a7= zd6H=YZ~p~rt1I=uk;jh>jU8=)MRXQ+2z}_mkI})PuJ1-Qp~od z&Ht&3aI{b71{68Q$0qwe5L|sAWRt-NApO7g{HOvf124bhISe*d6r6>506hOih?npo zL_#A{X!~Q-w^`H9Uq(DXpNv+fX=$rHDW5)Rp9qBA2=1B z?q0k>@gN0h%Fo@&?!a+oTsz#O1HT%Bp05%x!K&uah(0uSjAlr|++ZB_u2;M;^a{l= zhnDMfTt_reR%Vp5_UY(@AsuCyGEdXl+=s>Tto>RE9hF3ueB63sSfR9_Icn}yv zoglb-eAaftwKyDXstt5*;Ps z_hQ$%Tf4KYWPPy>(q!GNp>2w6PIw@6VsV|uV$rxCv>06vVWF%&B!KW7%=g-2=yZ2N zjeF#oH-msoa5|cYmUwJHw9&F#sKk>Pc5EHw*TIGD;`7^!>;*sS-`_a^H4fn1t~~^H zhchotLW91YabP{xg7OVk{h#u9b{VMuG#l_#j!%Lzguzl(gnbs=)@-rc=T7cES0k|EzTjHv>k zGvwTfa*!cwzcn}C4zPyLv#!SvJhSMVTk4BC^~-%_Ax=XleIfWR(4LpC)m5nHCvv?j z!G%#T2IIIVD%CXBY{9F1segcO`FDi87T#!U*{J^3<5wz-WZ0>#2f>j5eyunLky<_` z2;rWt)bb3hO`9f}Usbs2Xdr=oikAkXcoHMRzjB~M2PM+YlbQ|UL70m2zQtUU0ICa9 z9DLkvo}0~vWe^d>hZ|=vG`%b>#1}!cc)n7Vy+lD$(u>tX`KW!Y4N<~YC1g%dW-Rym z_+9oBD>OPW-T8)RVJn5!*i&GI$6zG5*xsn%m?kj0u4>+B(5uxl*s7yyi;`!JETvb1 z-~cWq&ck-sf?Eu`o6&k-rvu20GI>gFuXSZ^bSnge9KR8geey*@73{FE1`~V>eet%f zKT#j|W1*+7bN!nyz;g@xdLkYUCediQXHuwx!dgyaZfv_%TeltT*^LPc0b-Rw+n}J`_{j5WONb~JC+cT*m4j7J~yFV_*Rc{UrGvQjL_DtD(#P;2WI0I;UxN6 z>(Eeuhmr`_pn~P?HO4UsTi|nJ++9dy9ztbyyREKRA_5a!#I`{MNixu!AlfIm);>kV zBx!r-KphdD<+`>Y#zwiwVd?z(4yr(X&^%HscMEdJDJzG7b1PZTu?cT_t|-RJ}a6+-T7SMJ2<{QtzT!bVE8p~ymj z{bC5MSj`a$nvP^Rd0e!Tftd`Y$<+#x`eDN1<+12o1|sZGl`zf5uAq5TmB~q+hu(lk ziF0eF$@|`D#SJ!=cpP4_iJxok zDw_{wjiXeB^TbAjQe?~QPhD%aP0F~f(CYkt+hioG<+EbiYqQN>*)5Yf`yS~#AvF5` z|DQK9eZ$6bTua&!xea1U3{*XI(TWxhfm1KxhpcbWUdig+8+v5D%fN_AI?lm5P?*j= zAtLS`w>puac_rR9!U%S|VPchmq2(2-wohvo@Seb$y>naa6ZS67?mNGr!PjA?m1;PT z4$ugc1=5@OhuN4{>Y#gD(^Y_|G$KQ2rY6K~Zso`*7x??wpnuZsEeyrot{UV+g`pnZ z|P!Q-%8Ghz1$p6l}V|q6G>tr&S{vFDjj@O4@paCsG>fKKB zX>Iu_lSxr$xa$B*o#LzGIMsrGJ0ys|ngK#7Fz|wOXq^H;0m`lcJH-dCJ`WvW7R0vN z2#l#iUvHm=0DdQcv>{JADCivxz2NVO^_swTgm+VjmjVM++-AceqF9Zvq^1Q(KsmGe z09O1R=0Ii6I$5n(u`fF@0>de^FIG6YZsdT1hlkUv)q<`@Jq0hvX*HO-x%*&SEb+_) zIRoSS!*2a2Oo|n|W4)|n^3eqh)5urolkow#sZ3?BSy@MkJ~4c38|NNZJ#>-o zHI`g)?-o%Fr$P{S63&`; zII$M}4w_jBmj&k@%}-kowQ#t$?ZJf(am^E7+0jN9S$oxN(F6X0x8OTN*ghtn4f!ZZ zQ(LqOvHOzwUwoQpg(^RKqaN}TwURC&_wWsemarKGQ%B_U5u6q^Y^!Yf(b0A!CIJg= zFxz?TlQ6*-ewRaIVcg{Ss~WTP#KH7N^N#%1rw(bFKMi2I<;0M zCFV}Rk-crz%QB_Dk+vSPm*S+&irdVw#YJW|ohG0;bN%mWJ_FILI>M!<{&t5+MMK~R zl^tG?k4O;$a0XQ4opgZKXb(|BZ>1ouV7d|rX@4i}hmBI6!OX^9vNd;m5nNw(^?O4k zGa~laK6%pbvn<40jvr+%-eqBc!_lLnR!`>%i0X{*P%o*pgS{v#6v_>4f?N$dJm<6E zlK4Fz9|Gf{)ob5@b?XEG5M@yGUNUX|GRNNR`3ywvp|vPr+6{h5USGw_X3xrd9?LR! zzyO3VCm@{U`q75&EvreNV@{92l#N607`{h+Qi{>u3(x|m*dgwr52#7rB3~71W@nKAt2%}Bf+93+-DSw0`lXh#Xr}(^aK6{aCbX%16cZ|p z#b(<$aDt117$1>3QZf9cAqA{-(wO`9&rFyQWZUd{v~7O)YzDRXAr!HDBQ4J1n#5cV zlDT(r5;?8ktJyI3+A`hEWr*CRSSnvuP26Lv$P6o>TBmM}9~BM2)*jVXrtUbV{^d257~M+dLI>qiiOcO+N8JA~PuUOm25{E| zE3F(bF-c9whv#)$6KTWa_{zslFu`$-Ft4>;0<&S7LX|U+p$k9gcExu4!-!cq#?&)z zWI#yUNwhgfKm(upcCx#%tSDA{C07|EI1rrD(vmbfEP;;G4zvuqWeNe>(WOr~iRfI0 z;aC{?%a#Fm6=ybjJ}C3*MgBmu{dM5doiiwv(Gww5wEHHGIg$7YuvOUM`NXdOG_qdt z^*a|AX6x~Z867CMCm`v^jA2;3B|*s8S2f&0`@gJyaw#ft@n3zltjw3d@ya7wcXugqF0sk3w~Tv_du|I z%^_yyj=NdU$ZsR3?7BKtE(zNcPj^3nq-$!;S*U65<@6HC$^xV2`svL%n)Ho{1Mr%ayAWY1gz zn>l_4+NZ>GHNv5UhbiIA?og=&QU^$I@Br!D6#6 zb@0{`2MszyXu9xx0J;O#){VS0R0SR2_Z-xqF2nWv&Ym3}tuddn`-dwOKuMgQb?)3{ zgO%^hnJZF7SN?s~^A`C^!n85}n!ok6Mcoe=y(#<=GULkVU)6TC4TY7kkg{r+j1x@! zh&YNMey2ru`adg|)$5Unx))gxb4{0bY?W6%ayn8evcDZNUbRNtv!?bBlZ}GgD8%#I zpI?`H=D?=usW$J1LGbh!=~KVQuE4qv-7Wn6&~KwhU;8cf=mhCTmc!}DiWG5blRFR$ zxJ_zK#xfABjN>%MgVb;dg*LBMB=SU;p?DaN%K#&N^8%Mk3B%Aw0V}2JfV1-GF66dd z`KA|PV-Q+Z1Pnm!FeN1=0#IcE2PxA0{5kk^Ei%{QQS$Q_;;`{i{h@s>p}8Q(_HPR0 zGBJR}(Uv`+a5b6_0M8@dbbJB;QM~2D77H?i zAHok!p#UNTMPvQYN+ury3*cZUc6~;ntd4E+5s?7mZw)>fLn<{U*nj{Y#nSE52pG)> zzlO4ssz|v@0L$m9u6sbvo1>or*0osjWD3gN1?4r%&wE;{&ax^lH<=pPX(Boc8Zp=7 zTWA2kPedJXnUX7|($C_MdJ$|d80b(BXo!u@wZH}baFj?ieBMq%zcL)$o`Ni_5};-_ zboCfyK1x%{HM;Zx zWOImwE=~K$IQ}Xc){p5&LW^#5Q>9|+7?1~08#%f80#KVkID{0RGqyylIVnxcT8Mh}pVcv4HlY6raI>Nj|Nm6~LI2V}r?xqIr&oLZ|k0TmgsD z?u-(eLto6(S>I)tV-7lZq{p_XLV(L*!vR8y5QT|g!tH2Le- zHD_rUv4d{R?jM}s9wCPKGZz(@N%ljk0s`;?@$pf?S!T24t;(;#s3FIJ5qW2D@Vf?C zfa#t)`9|*nr_;-~`~f&wlr{WvIA&?`+v^iSU~vrF9Y*G9a%xYWo>|(QSViLdl5?b-!(X%| zPbCfwzJjRF%vtuYiA*8uM=%%tR@$aMjf--1c{VXJks#w9~{H^evc#Jo$miG4DX%ix$1YGyoeqi zHVi2j;4iGJSN@tTHheqUd+v_^-7ty+=G9l({R3;rhHu`C1Ie^wN*^Hy<;)XMNVF12 zD6Y#COp8aG|E5BtQAVY)VIFpb1fyB$?wNN-@QpL6d5=TuP+Y6kO9WU=hV!kd)tz_Z zg}tmS7E6P5SokrsM?K-PIwGap)<_JTJF`cwo-|d#=}g9vqn@qbC74Zf(Mc1XhCu?2 z0)#jh^(;G(8siry|GCn&Y;z8LXu>NwraP|!10mssWXVHpe~qewHD6hM@d5I@(DoMr zcNo3;959L1p-n)C(2t-6MPKUii9pX*M#91z+;Mm&EeEj4%FNE5qQj!OP?_djzLFVt z`p(sTa1vgEhfa{Eq0LQDE?#q}-K_*OgpUW`sktR8Y`LXzUbuGjo!w`TzIFlp8-y9P zTn4u^9Mdz8A?Jh3Bcs(&f+N6B(}$n64)NUB`XhhJlqGR{e_F5&0 zf+Ar|sH>r3h>@S6iUMd2HF+JI;dZKH*NFo|VoG5E&QMCHwwbB#+|g@TAr^B+xISvs zdV4CV1DP<-PC1_MX+Bh-31`Y>WDGH&Vc;v&`>4#eL@bzmnjT?)qgKZYj8h`-wNi=& z;vfN#eUUuhW{Z`}mVxGP2|`VhsndFB(~jga@kdkyJ`hL-aCLQ*HIhu8i2u$0Z;?m( z9d7hpERK?G-!6Ny^&t~a(b=r?AFZp$`FyJ)k=$T-ay2p!7Hsd1>`TPdMD_n*KEIs2 zEUctZ=$uzizu*TcV<7lGT_ORxB-oUK3Zew$b=F`>oTf<-5ZU2am)wW)=zV$~jjw`% ziZ{Xjfc+YULR7e3Bm`=R<4Q5M`vOQY(N9hnC9sc_+E|mu4`z%JJu`l7PMi-zuWiWbXg2H z;r@+M(bb<#rr?FWc!$-n+VBo*v4TE#nzoGg$t^l-p>b;o(#H`3S+L+=CXzAx5ke&+ zxP*c8x6xiZ=*(S%HGklG?a^eMDn?Mxy1B0MOm-h5Ji2rG)L-UEz~^xp zp|0`Y~p`%A)0m38f5*nx5TL6aS zU8o@gNe50`c20m<9VY~xPvc_$!3RRC0yA9?hvUQ;N;a?sK@jUjOWd|WAu6PR`aUR@ zNbn&y?y?ZBxX|1^m*^W7s3pBc>v1rbwGXRN5)6hMi@_jBg#UudKijC}TVc|z!}wtp zzMh?k9E8}hRE{jdp<=tPMPfkM>L~XtUa43k@*&Vy-{SkBq+>)ZfOmZNa{bZIUItN3P zDl3sc7wAYSOGp(`3!iIFfO6Y7e0U)ms~>5`d|FIhhbC<6s{?pR76`NlW3Vp-IJKTk z8@0L@?a>^jeg6qmUCIu(oU*%OsoOsSqi=J-ALt?*V8h#F9OPx^`AVfCj3D#X2=vz$ zOvoTyxoZI*k2Rc$tVY*pGnDxcuoS*&U0rD1<;ysvOQTZz2T>x%9XY(ikYxP6++cPa zW7+}B5AB_fy+JF6oAl<7r|b>MJM!D2H|QAA#w8R5_#MkyN8CE;q9G=Z0Fv9eeK*5=FTmw!rjJdR2gfqYsbla20DYm%b(qf&Re z*?rf3X>a2YsjH`YOYe7p(^Me7*7L{4mf6F*d?J<~Dkt`1t-kxZlv?Y#HcS)t6NCS&t z5z~47zaEizyFNA37?8GP{DUCuTX{UDDE1al zAxz|Z4X9C&bWMWjXQ+wDR#9kCDnv@)jW8>hy4|3r_se(tgj!@X+K3wO=N3lgV3vFpi@>QiTaRvYwk3gr=6tqDk402_V5b za5N`pSZyllZ|Z==0+e1P#ls&8KsNZY(x#D8gyDqg|3cfLa$e|5IL2B1AmQ?{vA$d^ z3?q?iq~Cf*bA49);T_)n_;Lf*5w;p)^97NCH!9=|;Yo~DFd=9u%g!rd@G%2LqXZTc zoYS_|(G+SpQPtaY42qKDNx=bw@i5Hh(4~4qc9HbU2G@`b&}^VJz3pVVsgwm`5T-=R$a&f!P&F1YSYi)Y{~sXi7)`z@8!jCY{Uy7wg@?+B!v*_c`tBf*x7>xFpufD zcDtpbZyVBcjk4tJx_)>;rOfUL&r_a!#7~Acr-Nv|0KP1{7o>d4*cb_b<@*sv=~jU} zdBRK-6*G~J#jr49Kgn@CpDnO#zLKVH8*Xj%1W#Ac65azDsklOAYm&{$gQE1p8JI2w zMGGRA1Z4}81H?)6Mta@p48{;VM*avI7kFcR3_){TGpF2>91TGq%hGF7h8&;={c-2A z%mdrn2EK2wShA=9@7O@V1)9_Kp_^hS&w5S;jJ8nd)9f2Gb-s;$jK5H_p9Qn?#Oz_0azeqULBc;b*QmQd zgEH;)cwzftjeLRB6XOtcB(%js@mupBqw zmhW3bJuD}T7rH>8P68pjUBbj2&MpawXE!Gha>6Kj z;w{7B>`$A(NRTY2#Zq5?L3Q?RkB4QCk!FFhAXyK1{zPS`hTv&<$_UjE%stu*CtT6`^SX|PGu6t?jncmjf1h=KQ`7cceqTJV>mXG#=@+| z$v?3(8Ll8l>FjGULz&xEGBElfq$!=QPL#js5-9P5IpB|@MQk@Dws!D2!f4u^6T zr>*Ja<_pbVFmBp_^J(Ae1U$NCg5OV(Pl8Y!oO+uUCoa zz6?b~=%rFVbyVVXE(xTnYF}vQZCz?_=OsUT(&L$06s61rN=8&9WpgMMFshl!xny3$ zMBVSB)(My+z-RR4VKJA3{twYvDGEhAn`|ob7>tCiEBkA8DLDRYsL&-EvP@1|54QN^ zE?2lQU}TV8(P+Fh&uqgBl3Y&GjJ^OfOUt7USSnRF2_GpP&|8pJOtsPIm?)uBiK0%i zO#w^MGBUMZ!3LZ~#ibs-kk9GiCS{(&lL{t%KP}f_b%gd%*$FP7be`9DhJ>6N?Nph4h_8voW&n_uQ-)GN69o7D_7`#ON#^uUB_{7l@Tfl$}48UbuQc!tWM`d1| z7VU3fEBM2O46+4|M(I8V>iH|fVQcN8y1Eb&-YqtfRS5-`eth2of2EKr6O1vUQJH06 zjL0dWS)9kRim2cR5>C_z%efoRTcZ z0m(JERk8y6Bsb#`$wfSNvEDBZACp{$4@oY+ut#}t^rHMlwipX9-Fxfg?w)@fOuO`7 z5bn$<5gQeM&D~4i;MT7@{feFd3~F%v;zMfKXmL?ZcY<5u zSAoZIJvmU6f{l1qm`nV4fC6^HS2@`qBWaR-QtoLTA8)GFM-!I^EJPdLw?H5N-;3Rq z6CjlKqnT|~U_g3^6JdSKlc0*KbDJ2Z6ikls=zg`uW&l`N)3qtPcXA~SL&Tt zuU2;_9XdgaS<>zg@hvPOK>CX`N)TA!pEm1<)(LR5pT%i*S3|}pGtITD zrY32ci*7E7a^OwjQkfByZQVTM9s^3CC~?!t0h;c@HA`c8F{Y)!%6cblxlK>Cu&DIn z=M0Ar2fBQ|czJW{Z2lljhi&N1H}yq(i#8ot49H^SDz7)!98fn?kM#yFHLCnDlr)wd z(k2}r_mnqFZPdO{PPb?@QRGvy)CQWg7a_Oh*MjoQTbNaamf&;M)M@PY;Gu{OH6kVu)W_zasv=TtYtsc; z09-zlq$KTmY^0``YOO%j>!>u+c{ z3cX-9J6BdVEq zrY1&-(RelLJ7~;Kk78)IVpuKQL_obEiknjTY&Gos2f!k~(kg>+vQ%|sXq2mI8S0R+ zC&2R5U@c4Vc2MX>AfGeIjUIsPkb;+-n!yzvgs0J>$bX+)#<$o=N&0*R)Y^(!xOY1nDLNcglRv_m!yJ)lU45v84Bs@FURZCkA@FvP2>K#vx#Sb&Q(m*j9c zK@OurOPoE@`qK`sR$4in>+fM>SaruwJ01p6CWRfYY2$DM5;-2Ow*02FPKSC_z-<$n|3~ z1&Xu$X@WoX`vj%rA0?1OpukC-D6@TDV$l5=2(5>|Z}~jBZ72rlK<}j9TK{`YpXH74 z)`GBr?2YOZfo3CMq|>=B@P)RQJ#fI0%Ebwk*J%XOk@p+cmb{W=h5nx~@N25zdKZ91 zV0t)K9Ed}lF?ZX-i-wd#ZfB!Bc_gW)km=hBNa#I}6_F^xWW_1;54jewQ}EU^E z@2CM;azdaabV}Kd4shk?9c8lRIkfIX4@NXW1y9;RKb)ARnUP>oGbf|62vQzX8^P;H z=|h$i{e!Gsyx_^3)5k+`PFJ^4XsnADyDmawU2Kf=zW>-Yum$Z38(8-G`U|)u$SN1C z$hDS*Vna!SXg6BOxz^e~P0kOaBqS)bU%0I(5XK8PRBV5AyO{vCIS=msuL`}#Y5*wc zk;%nG!gMWYn=?C)=^ZSR)UWplKL#QE$h9+#V;hc&{XFw00yO>=v?lOl>&w#Z+GrnR z$6-4>X{RbX<&>WK=<(W&=93OFM76l%qVAApp=#ap6gdjyIsXaE!qAIO<5yyOq@Gxe zUy!-DvNIn8lJ2<37WwPc1)-k@z=DQEqIHEMdgOBIw)$kyu_;6l^@^@9)Jo4i+jJ;L zamF}(I!udA%=&ygv+M0DQIFN@9fIV$0G8Co>cT4ciuHQs3Tt&@VZWc}Q%q$?0Bkw2&k zek5X`=Xj8~0)0kJU|#*O7%k)pRS=&d;K&JxjUA~Hs|qI+y|nwbijQ5*v2`gDIYk>! zQUZZR#CHKuDq~v8G_TG-h}O=#@8`WIEANV|x=)HN+^n{RW?yEv`!wy#_-7XN>z7d? zxpz;vuaQ5IL)!4PRvp!ZP-}Fjei2pyx|2iSR1b&I-YV+0zEmFDvYR?dnJqOEcZ1~yGi--0AFrc`Zh*U?#{ z;D#{p4-d|$NeM6!vvr2VVb;C8*PT|N;ks|}ci-N8vP~|4#S2vMnDngkXBD^avpoIY z|NV_=c?2cy{Mnov{K)Z^Tkc*1IeGll?qgTkrpg z8P;`|{{fx?DgpvpKR~0t!W$dc!0K_p?YodNGMb3%889rQerw#<=Y&l}RpYcQ?@d+D zsJ0I!9y4d{u>(kI;4>Lm>lRgI0%IC;=h8(A;ZHM01r z-6su)RLKMvf<~xugVcrqb6()Ts4|yff_9v+dCI8geJ%B37_wgOW)Ryr;d^NNTydk) zLg(izIYyP=DAso@f={@l*k?#rtwF`EF#_6FGGP(XYec$XoyO8b*6%A0`6bIytx#(1 z#EMh!)LQacM=Ts~s%f_KlmADj-n+0`L$P|;+7@H!BY&@|SSgZoIjsmFvLdO)Kl6Tx zd#?*Vp^5n^?k&aQRkEpJpYqmVq54xwbgX5p)*X@u9`y!=tco(LePn;TX6+Ctv#rW$ zzsqX%=Crr69$iD2Z8yAve_%JPg0rv(s zu$%4XtjzK;x8?ho#M$M?x9RE^g$;ly(B=fp)5wZSRMUqVYO;Y)()6axd@tTMzcvYl zE=N!@o|hFy{L^JuEtW)6L>raV6fsa#!WVcA*8&^h&c#vY-rLLS2K93yn-#1a{4>Y@ zc}Wwd@^(UG9i*)e0rj;>IU%N2nAJ8Uw`N(T$lTf}rFK}5#vP`1nN$v%P=1QaJ3vzP z5?B6`TJ6i=n?kBBOse*lbF->Ckbl6YT(FU*F*VA$#OH?-<1G`${IU~ANSeITQZ&k; zcei9EtJ0l~W(Tk9m0_Y^={PUS#^sh=~zLnWzPrr zz}g1z2-(hD62O;L#~66q=3&E!V-)L6s@#q+%LBIp7Xq6C=L3%c-))gf(hBJzt2(6( zz^~mwv=1NCmd&!;8EmT+nS8PS-#hgao)DA~Vu{3Jpj)h(nH6KtBbpGv-BI+-NR&;@ zgfyAW6pxCVY34ba8QyxES>~Rr(g>FiKm>_{Xm-ch+3Z0fr+GM$^f8_>6XZC z6WcrjC$ia_oTk}_hEQ zVofVeUAZjt_&0TSkXs^1=2l&)w7=zAm88|FnT^XVG9et2)HG8k+VvJ#C^dBSG96{% zIw#q5^ALKIt8a=Q`Epm6TW+3Y^XvL#sggqr^~Xnb3wl;sV7xs@Zlz%&Tjv64qGgLk ztIi)S3e8tibK@~`!;Q8;YHB*>O>*e*F;|_#D6Zuw&7rwSQ-$9bc64mBG1?~#S-ZV*2BYJwd#V$72v(rynu42nmn^Z}aw=jk;lx7Y$bBiBy_f(hN zQFld{Pjg1xUfb*g1rDi<0K(oJl}@X5%iOEzNkUg#6a!T1%~PW;IViqp zpKfsGa@jsfL;L-3btfhMbKAcuy zWy8h%^w(#|ml36;iAWGgj<4#tREKo(V~g zZ=y#sB9JCk`USY8gyU>+=_dd61(G8A%}kLQ=>>${=aJS}>xe9?tWIuu$;N-pU*bF+{NlJv2n`ajmcr%sdh1L0o1;UWNfRIc3D0U#P$;-B{aucE2u zT52sph<1#vqr@b}(nvImU3*KFE>m0WbzuENZl?FfkvZ#}&FQSG?s`-^PlQqBcQ;&5 zZ+-L`IK{GmSh?n+OMY>ZH5*D&ZQ5P%v)O-BuD=A1G}_+wwO=WJe)Muro_qz?JES;c zjoV^VCOX)pzcba}305?`Sn(1iOO?J9A^O+z`s-Yb;-oJPSx&B0`+Yb-W{JWjB-1FX zx}oWJq!1-pQ8nE#E!%NDTs(XNLLy=kQZjNlMaXg@6@r?EmX4l*k%^gwm5rT)lZ%^2 zmh_KUt?G7X*YLPDX;zf_xU5uZfNWujGDg`t9(vSMqS`quLn%Q<$zmI|Ko#U%s#0~7 z5)x#8Lh7?Dipo0*@V)0K>ng*YFs%2Y z^h5o5f^&lHsQFl@WT;;t*-9{C9r>?UZiN6aeEOAd~sq9UJatrh!SW+^UJflDg) zd`xTLe5}ngJF-ejRV>4uFt{FJq{t^oaQpW@#*fs2UBZ8##pU52pt3iQ59dJTD0E$Z zOQ`2XtP^v}O7`Z0J{x6^avEiytj&7kZ1a(n+SU7_3-2xMx(*?#T}&+x^7+cd*TIG| z5fv^<5q!35^f+iV&6r6=k zQjy#T)$yU%H>BjD6K&Jtwz6Oqb|(kln2&e$Dw;w28mglq_&M`E@n{Xk*Wml4s2qJh z${cVN9ILd}jw2L{DLR<<_>dye`o&^8g|*f9k4El8-dUS@`&QZJCmA2A$4aTJeO*NE z_Pmp~aTj2X2 z43^}<7665C|EI85(bPD2k4%80Il`KA3%cU-zKQQy#p|4KRRpyPzW<< z8~_CD6fgh)2LPaZ09wEwK!OT91r2hKP5p7>-i&d$KR@G?xW|*oi__VI@+%Eq2x8^P z8NyV4YPa6)8l(qAo_R$hpD4q-REdV@M0mOAo9>TU9BA*WF#S*0ER9+=E=sqYz;hmO zJ7%rm>2Z@+)NR>B{c_iV4h=-cJq%LEqKW$&RvfcxlGL>yj0PT-7|SM_LXbS>n_;!i zzp=V}^s-yi#kOLlOjuJsMgOUAX6>SG?7G(I8T(%3Wb(xJr@(u%Y^O2qv9J5tM9vYP z&!uPaDys0Lp}y3aH;9+y*iK@*3XVr%H|`DLS?l1>_Umx3v+A2z#(u)Hm#f;FNWqS( Tp~gD%=1~4;zp%;UV+#NP+I>lo literal 0 HcmV?d00001 diff --git a/src/hyperview/server/static/_next/static/media/9c72aa0f40e4eef8-s.18a48cbc.woff2 b/src/hyperview/server/static/_next/static/media/9c72aa0f40e4eef8-s.18a48cbc.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bc0e0ab261be55e60502e8f0ab104faeb84c3888 GIT binary patch literal 18744 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


v9OW5GIC=qo>qH$Tj1ceN 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 literal 0 HcmV?d00001 diff --git a/src/hyperview/server/static/_not-found/__next._full.txt b/src/hyperview/server/static/_not-found/__next._full.txt index 3c90da5..ede12e0 100644 --- a/src/hyperview/server/static/_not-found/__next._full.txt +++ b/src/hyperview/server/static/_not-found/__next._full.txt @@ -1,13 +1,13 @@ 1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] -3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] +2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +4:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] 5:"$Sreact.suspense" -7:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] -9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] -b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"8FqA-ERyePplcUaEYWohc","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +7:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] +9:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] +b:I[75115,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] +0:{"P":null,"b":"U-zHksGY4392lcZLjE49t","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/cb115cad1deddecd.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/_not-found/__next._head.txt b/src/hyperview/server/static/_not-found/__next._head.txt index 7feb987..60e4721 100644 --- a/src/hyperview/server/static/_not-found/__next._head.txt +++ b/src/hyperview/server/static/_not-found/__next._head.txt @@ -1,7 +1,7 @@ 1:"$Sreact.fragment" -2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] -4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] +2:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] +4:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] 5:"$Sreact.suspense" -0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} 3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/_not-found/__next._index.txt b/src/hyperview/server/static/_not-found/__next._index.txt index 9a2da05..9514a5c 100644 --- a/src/hyperview/server/static/_not-found/__next._index.txt +++ b/src/hyperview/server/static/_not-found/__next._index.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] -3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] +0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/cb115cad1deddecd.js","async":true}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt index 1b5253f..ef84f5f 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" -2:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] +2:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/src/hyperview/server/static/_not-found/__next._not-found.txt b/src/hyperview/server/static/_not-found/__next._not-found.txt index 1528054..86383ed 100644 --- a/src/hyperview/server/static/_not-found/__next._not-found.txt +++ b/src/hyperview/server/static/_not-found/__next._not-found.txt @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] -3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -0:{"buildId":"8FqA-ERyePplcUaEYWohc","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._tree.txt b/src/hyperview/server/static/_not-found/__next._tree.txt index 068e4b3..f8c0d17 100644 --- a/src/hyperview/server/static/_not-found/__next._tree.txt +++ b/src/hyperview/server/static/_not-found/__next._tree.txt @@ -1,2 +1,2 @@ -:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"buildId":"8FqA-ERyePplcUaEYWohc","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] +0:{"buildId":"U-zHksGY4392lcZLjE49t","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_not-found/index.html b/src/hyperview/server/static/_not-found/index.html index 7d84c46..1538a55 100644 --- a/src/hyperview/server/static/_not-found/index.html +++ b/src/hyperview/server/static/_not-found/index.html @@ -1 +1 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/index.txt b/src/hyperview/server/static/_not-found/index.txt index 3c90da5..ede12e0 100644 --- a/src/hyperview/server/static/_not-found/index.txt +++ b/src/hyperview/server/static/_not-found/index.txt @@ -1,13 +1,13 @@ 1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] -3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -4:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] +2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +4:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] 5:"$Sreact.suspense" -7:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] -9:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] -b:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"8FqA-ERyePplcUaEYWohc","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/48c5753aca325314.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],null]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +7:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] +9:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] +b:I[75115,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] +0:{"P":null,"b":"U-zHksGY4392lcZLjE49t","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/cb115cad1deddecd.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] 6:null diff --git a/src/hyperview/server/static/index.html b/src/hyperview/server/static/index.html index 73ff68f..d4b14f7 100644 --- a/src/hyperview/server/static/index.html +++ b/src/hyperview/server/static/index.html @@ -1 +1 @@ -HyperView

HyperView

Samples0 items
Click • ⌘+click multi • ⇧+click range
EmbeddingsLoading...
Loading embeddings...
⇧+drag lasso • scroll zoom • drag pan
\ No newline at end of file +HyperView
\ No newline at end of file diff --git a/src/hyperview/server/static/index.txt b/src/hyperview/server/static/index.txt index 119a8ae..e6a1c77 100644 --- a/src/hyperview/server/static/index.txt +++ b/src/hyperview/server/static/index.txt @@ -1,15 +1,16 @@ 1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/48c5753aca325314.js"],"default"] -3:I[91168,["/_next/static/chunks/48c5753aca325314.js"],"default"] -4:I[73440,["/_next/static/chunks/48c5753aca325314.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/a096ec8e6ed56d42.js"],"default"] -8:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"OutletBoundary"] +2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +4:I[73440,["/_next/static/chunks/cb115cad1deddecd.js"],"ClientPageRoot"] +5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/2eaa7c8c8b6f5b3b.js"],"default"] +8:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] 9:"$Sreact.suspense" -b:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"ViewportBoundary"] -d:I[64381,["/_next/static/chunks/48c5753aca325314.js"],"MetadataBoundary"] -f:I[75115,["/_next/static/chunks/48c5753aca325314.js"],"default"] -:HL["/_next/static/chunks/d6d93a0a04227147.css","style"] -0:{"P":null,"b":"8FqA-ERyePplcUaEYWohc","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/d6d93a0a04227147.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","children":["$","body",null,{"className":"antialiased","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/a096ec8e6ed56d42.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[]],"S":true} +b:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] +d:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] +f:I[75115,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] +:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] +:HL["/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +0:{"P":null,"b":"U-zHksGY4392lcZLjE49t","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/2eaa7c8c8b6f5b3b.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[]],"S":true} 6:{} 7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] From be64ffcc6c20eda7f5753ca1f788019ad4e2d57d Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:33:10 +0100 Subject: [PATCH 48/75] ci: auto-export frontend on push --- .github/workflows/require_frontend_export.yml | 53 ++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/.github/workflows/require_frontend_export.yml b/.github/workflows/require_frontend_export.yml index aed9466..97675fe 100644 --- a/.github/workflows/require_frontend_export.yml +++ b/.github/workflows/require_frontend_export.yml @@ -16,6 +16,9 @@ on: jobs: require-frontend-export: runs-on: ubuntu-latest + if: github.actor != 'github-actions[bot]' + permissions: + contents: write steps: - name: Checkout repository @@ -23,7 +26,8 @@ jobs: with: fetch-depth: 0 - - name: Verify static export updated when frontend changes + - name: Detect frontend and static changes + id: changes run: | set -euo pipefail @@ -58,6 +62,53 @@ jobs: static_changed="true" fi + needs_export="false" + if [[ "$frontend_changed" == "true" && "$static_changed" != "true" ]]; then + needs_export="true" + fi + + { + echo "frontend_changed=$frontend_changed" + echo "static_changed=$static_changed" + echo "needs_export=$needs_export" + } >> "$GITHUB_OUTPUT" + + - name: Set up Node + if: ${{ github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' }} + uses: actions/setup-node@v4 + with: + node-version: 20 + + - name: Export frontend + if: ${{ github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' }} + run: | + bash scripts/export_frontend.sh + + - name: Commit exported static assets + if: ${{ github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' }} + run: | + set -euo pipefail + + if [[ -z "$(git status --porcelain)" ]]; then + echo "No export changes to commit." + exit 0 + fi + + git status --short + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git add src/hyperview/server/static + git commit -m "chore: export frontend static assets" + git push + + - name: Verify static export updated when frontend changes + if: ${{ !(github.event_name == 'push' && steps.changes.outputs.needs_export == 'true') }} + run: | + set -euo pipefail + + frontend_changed="${{ steps.changes.outputs.frontend_changed }}" + static_changed="${{ steps.changes.outputs.static_changed }}" + if [[ "$frontend_changed" == "true" && "$static_changed" != "true" ]]; then echo "" echo "ERROR: frontend/ changed but src/hyperview/server/static/ was not updated." From ba5ddf93949e680ee66e74439e8992bc977b9a36 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:38:21 +0100 Subject: [PATCH 49/75] ci: use git-auto-commit-action, upgrade Next.js to 16.1.6 - Use stefanzweifel/git-auto-commit-action@v7 for robust auto-commit - Add [skip ci] to auto-commit message to prevent loops - Upgrade Next.js from 16.0.7 to 16.1.6 - Simplify workflow conditions --- .github/workflows/require_frontend_export.yml | 58 +++++-------- frontend/next-env.d.ts | 2 +- frontend/package-lock.json | 86 +++++++++---------- frontend/package.json | 3 +- pyproject.toml | 1 + 5 files changed, 68 insertions(+), 82 deletions(-) diff --git a/.github/workflows/require_frontend_export.yml b/.github/workflows/require_frontend_export.yml index 97675fe..f97688d 100644 --- a/.github/workflows/require_frontend_export.yml +++ b/.github/workflows/require_frontend_export.yml @@ -16,6 +16,7 @@ on: jobs: require-frontend-export: runs-on: ubuntu-latest + # Skip if the push was made by github-actions to avoid loops if: github.actor != 'github-actions[bot]' permissions: contents: write @@ -42,6 +43,7 @@ jobs: # Handle initial push (no previous commit) if [[ "$base_sha" == "0000000000000000000000000000000000000000" ]]; then echo "Initial push - skipping check" + echo "needs_export=false" >> "$GITHUB_OUTPUT" exit 0 fi fi @@ -74,47 +76,31 @@ jobs: } >> "$GITHUB_OUTPUT" - name: Set up Node - if: ${{ github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' }} + if: github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' uses: actions/setup-node@v4 with: node-version: 20 - name: Export frontend - if: ${{ github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' }} - run: | - bash scripts/export_frontend.sh - - - name: Commit exported static assets - if: ${{ github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' }} - run: | - set -euo pipefail + if: github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' + run: bash scripts/export_frontend.sh - if [[ -z "$(git status --porcelain)" ]]; then - echo "No export changes to commit." - exit 0 - fi - - git status --short - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git add src/hyperview/server/static - git commit -m "chore: export frontend static assets" - git push + - name: Commit and push exported static assets + if: github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' + uses: stefanzweifel/git-auto-commit-action@v7 + with: + commit_message: "chore: export frontend static assets [skip ci]" + file_pattern: "src/hyperview/server/static/**" - - name: Verify static export updated when frontend changes - if: ${{ !(github.event_name == 'push' && steps.changes.outputs.needs_export == 'true') }} + - name: Fail PR if frontend changed without static export + if: github.event_name == 'pull_request' && steps.changes.outputs.needs_export == 'true' run: | - set -euo pipefail - - frontend_changed="${{ steps.changes.outputs.frontend_changed }}" - static_changed="${{ steps.changes.outputs.static_changed }}" - - if [[ "$frontend_changed" == "true" && "$static_changed" != "true" ]]; then - echo "" - echo "ERROR: frontend/ changed but src/hyperview/server/static/ was not updated." - echo "Run: bash scripts/export_frontend.sh" - echo "Then commit the updated src/hyperview/server/static/ output." - exit 1 - fi - - echo "OK: export requirements satisfied." + echo "" + echo "ERROR: frontend/ changed but src/hyperview/server/static/ was not updated." + echo "" + echo "Run locally:" + echo " bash scripts/export_frontend.sh" + echo " git add src/hyperview/server/static" + echo " git commit -m 'chore: export frontend static assets'" + echo "" + exit 1 diff --git a/frontend/next-env.d.ts b/frontend/next-env.d.ts index c4b7818..9edff1c 100644 --- a/frontend/next-env.d.ts +++ b/frontend/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/dev/types/routes.d.ts"; +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/frontend/package-lock.json b/frontend/package-lock.json index c193d55..451ac55 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "hyperview-frontend", - "version": "0.1.0", + "version": "0.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "hyperview-frontend", - "version": "0.1.0", + "version": "0.1.1", "dependencies": { "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", @@ -27,7 +27,7 @@ "hyper-scatter": "^0.1.0", "justified-layout": "^4.1.0", "lucide-react": "^0.562.0", - "next": "^16.0.7", + "next": "^16.1.6", "react": "18.3.1", "react-dom": "18.3.1", "tailwind-merge": "^3.4.0", @@ -864,9 +864,9 @@ } }, "node_modules/@next/env": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.0.7.tgz", - "integrity": "sha512-gpaNgUh5nftFKRkRQGnVi5dpcYSKGcZZkQffZ172OrG/XkrnS7UBTQ648YY+8ME92cC4IojpI2LqTC8sTDhAaw==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.6.tgz", + "integrity": "sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -880,9 +880,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.0.7.tgz", - "integrity": "sha512-LlDtCYOEj/rfSnEn/Idi+j1QKHxY9BJFmxx7108A6D8K0SB+bNgfYQATPk/4LqOl4C0Wo3LACg2ie6s7xqMpJg==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.6.tgz", + "integrity": "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==", "cpu": [ "arm64" ], @@ -896,9 +896,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.0.7.tgz", - "integrity": "sha512-rtZ7BhnVvO1ICf3QzfW9H3aPz7GhBrnSIMZyr4Qy6boXF0b5E3QLs+cvJmg3PsTCG2M1PBoC+DANUi4wCOKXpA==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.6.tgz", + "integrity": "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==", "cpu": [ "x64" ], @@ -912,9 +912,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.0.7.tgz", - "integrity": "sha512-mloD5WcPIeIeeZqAIP5c2kdaTa6StwP4/2EGy1mUw8HiexSHGK/jcM7lFuS3u3i2zn+xH9+wXJs6njO7VrAqww==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.6.tgz", + "integrity": "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==", "cpu": [ "arm64" ], @@ -928,9 +928,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.0.7.tgz", - "integrity": "sha512-+ksWNrZrthisXuo9gd1XnjHRowCbMtl/YgMpbRvFeDEqEBd523YHPWpBuDjomod88U8Xliw5DHhekBC3EOOd9g==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.6.tgz", + "integrity": "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==", "cpu": [ "arm64" ], @@ -944,9 +944,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.0.7.tgz", - "integrity": "sha512-4WtJU5cRDxpEE44Ana2Xro1284hnyVpBb62lIpU5k85D8xXxatT+rXxBgPkc7C1XwkZMWpK5rXLXTh9PFipWsA==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.6.tgz", + "integrity": "sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==", "cpu": [ "x64" ], @@ -960,9 +960,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.0.7.tgz", - "integrity": "sha512-HYlhqIP6kBPXalW2dbMTSuB4+8fe+j9juyxwfMwCe9kQPPeiyFn7NMjNfoFOfJ2eXkeQsoUGXg+O2SE3m4Qg2w==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.6.tgz", + "integrity": "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==", "cpu": [ "x64" ], @@ -976,9 +976,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.0.7.tgz", - "integrity": "sha512-EviG+43iOoBRZg9deGauXExjRphhuYmIOJ12b9sAPy0eQ6iwcPxfED2asb/s2/yiLYOdm37kPaiZu8uXSYPs0Q==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.6.tgz", + "integrity": "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==", "cpu": [ "arm64" ], @@ -992,9 +992,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.0.7.tgz", - "integrity": "sha512-gniPjy55zp5Eg0896qSrf3yB1dw4F/3s8VK1ephdsZZ129j2n6e1WqCbE2YgcKhW9hPB9TVZENugquWJD5x0ug==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.6.tgz", + "integrity": "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==", "cpu": [ "x64" ], @@ -3062,7 +3062,6 @@ "version": "2.9.2", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.2.tgz", "integrity": "sha512-PxSsosKQjI38iXkmb3d0Y32efqyA0uW4s41u4IVBsLlWLhCiYNpH/AfNOVWRqCQBlD8TFJTz6OUWNd4DFJCnmw==", - "dev": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -5481,13 +5480,14 @@ "license": "MIT" }, "node_modules/next": { - "version": "16.0.7", - "resolved": "https://registry.npmjs.org/next/-/next-16.0.7.tgz", - "integrity": "sha512-3mBRJyPxT4LOxAJI6IsXeFtKfiJUbjCLgvXO02fV8Wy/lIhPvP94Fe7dGhUgHXcQy4sSuYwQNcOLhIfOm0rL0A==", + "version": "16.1.6", + "resolved": "https://registry.npmjs.org/next/-/next-16.1.6.tgz", + "integrity": "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==", "license": "MIT", "dependencies": { - "@next/env": "16.0.7", + "@next/env": "16.1.6", "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.8.3", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" @@ -5499,14 +5499,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.0.7", - "@next/swc-darwin-x64": "16.0.7", - "@next/swc-linux-arm64-gnu": "16.0.7", - "@next/swc-linux-arm64-musl": "16.0.7", - "@next/swc-linux-x64-gnu": "16.0.7", - "@next/swc-linux-x64-musl": "16.0.7", - "@next/swc-win32-arm64-msvc": "16.0.7", - "@next/swc-win32-x64-msvc": "16.0.7", + "@next/swc-darwin-arm64": "16.1.6", + "@next/swc-darwin-x64": "16.1.6", + "@next/swc-linux-arm64-gnu": "16.1.6", + "@next/swc-linux-arm64-musl": "16.1.6", + "@next/swc-linux-x64-gnu": "16.1.6", + "@next/swc-linux-x64-musl": "16.1.6", + "@next/swc-win32-arm64-msvc": "16.1.6", + "@next/swc-win32-x64-msvc": "16.1.6", "sharp": "^0.34.4" }, "peerDependencies": { diff --git a/frontend/package.json b/frontend/package.json index 2418e05..d257e0f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -29,7 +29,7 @@ "hyper-scatter": "^0.1.0", "justified-layout": "^4.1.0", "lucide-react": "^0.562.0", - "next": "^16.0.7", + "next": "^16.1.6", "react": "18.3.1", "react-dom": "18.3.1", "tailwind-merge": "^3.4.0", @@ -49,4 +49,3 @@ "typescript": "^5.6.3" } } - diff --git a/pyproject.toml b/pyproject.toml index c672ba7..f1b22f4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -57,6 +57,7 @@ hyperview = "hyperview.cli:main" Homepage = "https://github.com/Hyper3Labs/HyperView" Documentation = "https://github.com/Hyper3Labs/HyperView#readme" Repository = "https://github.com/Hyper3Labs/HyperView" +Issues = "https://github.com/Hyper3Labs/HyperView/issues" [build-system] requires = ["hatchling"] From 7d90321e5a17d15a701d82000fcfb0694614e836 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 17:38:07 +0100 Subject: [PATCH 50/75] Add PyPI release workflow with trusted publishing - Add .github/workflows/release.yml for automated releases - Build frontend in CI (remove committed static assets) - Use uv publish with OIDC trusted publishing - Smoke test wheel and sdist before publishing - Trigger on v* tags and workflow_dispatch --- .github/workflows/release.yml | 94 ++++++ .gitignore | 10 +- pyproject.toml | 12 +- src/hyperview/__init__.py | 16 +- src/hyperview/core/dataset.py | 4 +- src/hyperview/server/static/404.html | 1 - src/hyperview/server/static/404/index.html | 1 - .../server/static/__next.__PAGE__.txt | 9 - src/hyperview/server/static/__next._full.txt | 18 -- src/hyperview/server/static/__next._head.txt | 7 - src/hyperview/server/static/__next._index.txt | 5 - src/hyperview/server/static/__next._tree.txt | 3 - .../U-zHksGY4392lcZLjE49t/_buildManifest.js | 15 - .../_clientMiddlewareManifest.json | 1 - .../U-zHksGY4392lcZLjE49t/_ssgManifest.js | 1 - .../_next/static/chunks/10c3a2ade180023c.js | 1 - .../_next/static/chunks/2eaa7c8c8b6f5b3b.js | 13 - .../_next/static/chunks/3686d57edf1023fb.js | 301 ------------------ .../_next/static/chunks/a6dad97d9634a72d.js | 1 - .../_next/static/chunks/b3cfdd883c96563c.js | 1 - .../_next/static/chunks/b96ffc94b0d8fbba.js | 2 - .../_next/static/chunks/cb115cad1deddecd.js | 1 - .../_next/static/chunks/e7ae0fd4a43b4ae1.css | 3 - .../_next/static/chunks/f89d541331847b49.js | 4 - .../chunks/turbopack-904be3b11442f4b8.js | 3 - .../media/1bffadaabf893a1e-s.7cd81963.woff2 | Bin 85272 -> 0 bytes .../media/2bbe8d2671613f1f-s.76dcb0b2.woff2 | Bin 10280 -> 0 bytes .../media/2c55a0e60120577a-s.2a48534a.woff2 | Bin 25844 -> 0 bytes .../media/5476f68d60460930-s.c995e352.woff2 | Bin 19044 -> 0 bytes .../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2 | Bin 48432 -> 0 bytes .../media/9c72aa0f40e4eef8-s.18a48cbc.woff2 | Bin 18744 -> 0 bytes .../media/ad66f9afd8947f86-s.7a40eb73.woff2 | Bin 11272 -> 0 bytes .../server/static/_not-found/__next._full.txt | 13 - .../server/static/_not-found/__next._head.txt | 7 - .../static/_not-found/__next._index.txt | 5 - .../_not-found/__next._not-found.__PAGE__.txt | 5 - .../static/_not-found/__next._not-found.txt | 4 - .../server/static/_not-found/__next._tree.txt | 2 - .../server/static/_not-found/index.html | 1 - .../server/static/_not-found/index.txt | 13 - src/hyperview/server/static/index.html | 1 - src/hyperview/server/static/index.txt | 18 -- 42 files changed, 117 insertions(+), 479 deletions(-) create mode 100644 .github/workflows/release.yml delete mode 100644 src/hyperview/server/static/404.html delete mode 100644 src/hyperview/server/static/404/index.html delete mode 100644 src/hyperview/server/static/__next.__PAGE__.txt delete mode 100644 src/hyperview/server/static/__next._full.txt delete mode 100644 src/hyperview/server/static/__next._head.txt delete mode 100644 src/hyperview/server/static/__next._index.txt delete mode 100644 src/hyperview/server/static/__next._tree.txt delete mode 100644 src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_buildManifest.js delete mode 100644 src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_clientMiddlewareManifest.json delete mode 100644 src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_ssgManifest.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/10c3a2ade180023c.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/2eaa7c8c8b6f5b3b.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/3686d57edf1023fb.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/a6dad97d9634a72d.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/b3cfdd883c96563c.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/b96ffc94b0d8fbba.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/cb115cad1deddecd.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/e7ae0fd4a43b4ae1.css delete mode 100644 src/hyperview/server/static/_next/static/chunks/f89d541331847b49.js delete mode 100644 src/hyperview/server/static/_next/static/chunks/turbopack-904be3b11442f4b8.js delete mode 100644 src/hyperview/server/static/_next/static/media/1bffadaabf893a1e-s.7cd81963.woff2 delete mode 100644 src/hyperview/server/static/_next/static/media/2bbe8d2671613f1f-s.76dcb0b2.woff2 delete mode 100644 src/hyperview/server/static/_next/static/media/2c55a0e60120577a-s.2a48534a.woff2 delete mode 100644 src/hyperview/server/static/_next/static/media/5476f68d60460930-s.c995e352.woff2 delete mode 100644 src/hyperview/server/static/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2 delete mode 100644 src/hyperview/server/static/_next/static/media/9c72aa0f40e4eef8-s.18a48cbc.woff2 delete mode 100644 src/hyperview/server/static/_next/static/media/ad66f9afd8947f86-s.7a40eb73.woff2 delete mode 100644 src/hyperview/server/static/_not-found/__next._full.txt delete mode 100644 src/hyperview/server/static/_not-found/__next._head.txt delete mode 100644 src/hyperview/server/static/_not-found/__next._index.txt delete mode 100644 src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt delete mode 100644 src/hyperview/server/static/_not-found/__next._not-found.txt delete mode 100644 src/hyperview/server/static/_not-found/__next._tree.txt delete mode 100644 src/hyperview/server/static/_not-found/index.html delete mode 100644 src/hyperview/server/static/_not-found/index.txt delete mode 100644 src/hyperview/server/static/index.html delete mode 100644 src/hyperview/server/static/index.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a63397c --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,94 @@ +name: Release + +on: + push: + tags: + - "v*" # Publish on any tag starting with v, e.g., v0.1.0 + workflow_dispatch: + +jobs: + build: + name: Build distributions + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@v6 + with: + fetch-depth: 0 # Required for hatch-vcs + + - name: Set up Python + uses: actions/setup-python@v6 + with: + python-version: "3.12" + + - name: Install uv + uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + + # Build frontend + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + cache-dependency-path: frontend/package-lock.json + + - name: Build frontend + run: | + cd frontend + npm ci + npm run build + rm -rf ../src/hyperview/server/static + mkdir -p ../src/hyperview/server/static + cp -r out/* ../src/hyperview/server/static/ + + # Build Python package (includes frontend assets) + - name: Build + run: uv build --no-sources + + # Smoke test: verify the built package can be imported + - name: Smoke test (wheel) + run: | + uv run --isolated --no-project --with dist/*.whl \ + python -c "import hyperview; print(f'hyperview {hyperview.__version__}')" + + - name: Smoke test (sdist) + run: | + uv run --isolated --no-project --with dist/*.tar.gz \ + python -c "import hyperview; print(f'hyperview {hyperview.__version__}')" + + - name: Upload dist artifacts + uses: actions/upload-artifact@v5 + with: + name: python-package-distributions + path: dist/ + if-no-files-found: error + + pypi: + name: Publish to PyPI + needs: build + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/hyperview + permissions: + id-token: write + contents: read + steps: + - name: Download dist artifacts + uses: actions/download-artifact@v6 + with: + name: python-package-distributions + path: dist/ + + - name: Install uv + uses: astral-sh/setup-uv@v7 + with: + enable-cache: true + + - name: Publish to PyPI + run: uv publish diff --git a/.gitignore b/.gitignore index 5b94b3c..20670e4 100644 --- a/.gitignore +++ b/.gitignore @@ -31,9 +31,8 @@ frontend/node_modules/ frontend/.next/ frontend/out/ -# Bundled frontend in Python package (built with scripts/export_frontend.sh) -# Not ignored - needed for pip install from git / sdist -# src/hyperview/server/static/ +# Bundled frontend in Python package (built in CI during release) +src/hyperview/server/static/ # Python package build dist/ @@ -71,4 +70,7 @@ TESTS.md AGENTS.md **/AGENTS.md .github/agents/ -.specstory/ \ No newline at end of file +.specstory/ + +# Generated version file (hatch-vcs) +src/hyperview/_version.py diff --git a/pyproject.toml b/pyproject.toml index f1b22f4..58f80e7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,12 @@ [project] name = "hyperview" -version = "0.1.0" +dynamic = ["version"] description = "Open-source dataset curation with hyperbolic embeddings visualization" readme = "README.md" license = { text = "MIT" } requires-python = ">=3.10" authors = [ - { name = "HyperView Team" } + { name = "hyper3labs" } ] keywords = ["embeddings", "visualization", "hyperbolic", "dataset", "curation", "machine-learning"] classifiers = [ @@ -60,12 +60,18 @@ Repository = "https://github.com/Hyper3Labs/HyperView" Issues = "https://github.com/Hyper3Labs/HyperView/issues" [build-system] -requires = ["hatchling"] +requires = ["hatchling", "hatch-vcs"] build-backend = "hatchling.build" [tool.hatch.metadata] allow-direct-references = true +[tool.hatch.version] +source = "vcs" + +[tool.hatch.build.hooks.vcs] +version-file = "src/hyperview/_version.py" + [tool.hatch.build.targets.wheel] packages = ["src/hyperview"] # Include frontend static assets (pre-built before packaging) diff --git a/src/hyperview/__init__.py b/src/hyperview/__init__.py index f2b7743..d055599 100644 --- a/src/hyperview/__init__.py +++ b/src/hyperview/__init__.py @@ -1,18 +1,14 @@ """HyperView - Open-source dataset curation with hyperbolic embeddings visualization.""" -from hyperview.api import Dataset, launch -from hyperview.embeddings.engine import ( - EmbeddingSpec, - get_provider_info, - list_embedding_providers, -) +from . import _version as _version +from . import api as _api + +Dataset = _api.Dataset +launch = _api.launch +__version__ = _version.__version__ -__version__ = "0.1.0" __all__ = [ "Dataset", - "EmbeddingSpec", - "get_provider_info", "launch", - "list_embedding_providers", "__version__", ] diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 7704234..74429c7 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -369,7 +369,7 @@ def compute_embeddings( hyper-models name (e.g. 'hycoclip-vit-s') for hyperbolic embeddings. provider: Explicit provider identifier. If not specified, auto-detected: 'hyper-models' if model matches a hyper-models name, else 'embed-anything'. - Available providers: `hyperview.list_embedding_providers()`. + Available providers: `hyperview.embeddings.list_embedding_providers()`. checkpoint: Checkpoint path/URL (hf://... or local path) for weight-only models. batch_size: Batch size for processing. show_progress: Whether to show progress bar. @@ -384,7 +384,7 @@ def compute_embeddings( if not model: raise ValueError( "model is required. Examples: 'openai/clip-vit-base-patch32' (CLIP), " - "'hycoclip-vit-s' (hyperbolic). See hyperview.list_embedding_providers()." + "'hycoclip-vit-s' (hyperbolic). See hyperview.embeddings.list_embedding_providers()." ) from hyperview.embeddings.engine import EmbeddingSpec diff --git a/src/hyperview/server/static/404.html b/src/hyperview/server/static/404.html deleted file mode 100644 index 1538a55..0000000 --- a/src/hyperview/server/static/404.html +++ /dev/null @@ -1 +0,0 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/404/index.html b/src/hyperview/server/static/404/index.html deleted file mode 100644 index 1538a55..0000000 --- a/src/hyperview/server/static/404/index.html +++ /dev/null @@ -1 +0,0 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/__next.__PAGE__.txt b/src/hyperview/server/static/__next.__PAGE__.txt deleted file mode 100644 index 39d9166..0000000 --- a/src/hyperview/server/static/__next.__PAGE__.txt +++ /dev/null @@ -1,9 +0,0 @@ -1:"$Sreact.fragment" -2:I[73440,["/_next/static/chunks/cb115cad1deddecd.js"],"ClientPageRoot"] -3:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/2eaa7c8c8b6f5b3b.js"],"default"] -6:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] -7:"$Sreact.suspense" -0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/2eaa7c8c8b6f5b3b.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} -4:{} -5:"$0:rsc:props:children:0:props:serverProvidedParams:params" -8:null diff --git a/src/hyperview/server/static/__next._full.txt b/src/hyperview/server/static/__next._full.txt deleted file mode 100644 index e6a1c77..0000000 --- a/src/hyperview/server/static/__next._full.txt +++ /dev/null @@ -1,18 +0,0 @@ -1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -4:I[73440,["/_next/static/chunks/cb115cad1deddecd.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/2eaa7c8c8b6f5b3b.js"],"default"] -8:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] -9:"$Sreact.suspense" -b:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] -d:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] -f:I[75115,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] -:HL["/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}] -0:{"P":null,"b":"U-zHksGY4392lcZLjE49t","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/2eaa7c8c8b6f5b3b.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[]],"S":true} -6:{} -7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" -c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] -e:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] -a:null diff --git a/src/hyperview/server/static/__next._head.txt b/src/hyperview/server/static/__next._head.txt deleted file mode 100644 index f7a82b3..0000000 --- a/src/hyperview/server/static/__next._head.txt +++ /dev/null @@ -1,7 +0,0 @@ -1:"$Sreact.fragment" -2:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] -4:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] -5:"$Sreact.suspense" -0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} -3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] -6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/__next._index.txt b/src/hyperview/server/static/__next._index.txt deleted file mode 100644 index 95e24f1..0000000 --- a/src/hyperview/server/static/__next._index.txt +++ /dev/null @@ -1,5 +0,0 @@ -1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] -0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/__next._tree.txt b/src/hyperview/server/static/__next._tree.txt deleted file mode 100644 index 2b67d62..0000000 --- a/src/hyperview/server/static/__next._tree.txt +++ /dev/null @@ -1,3 +0,0 @@ -:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] -:HL["/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}] -0:{"buildId":"U-zHksGY4392lcZLjE49t","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_buildManifest.js b/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_buildManifest.js deleted file mode 100644 index 1af6a5b..0000000 --- a/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_buildManifest.js +++ /dev/null @@ -1,15 +0,0 @@ -self.__BUILD_MANIFEST = { - "__rewrites": { - "afterFiles": [ - { - "source": "/api/:path*" - } - ], - "beforeFiles": [], - "fallback": [] - }, - "sortedPages": [ - "/_app", - "/_error" - ] -};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_clientMiddlewareManifest.json b/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_clientMiddlewareManifest.json deleted file mode 100644 index 0637a08..0000000 --- a/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_clientMiddlewareManifest.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_ssgManifest.js b/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_ssgManifest.js deleted file mode 100644 index 5b3ff59..0000000 --- a/src/hyperview/server/static/_next/static/U-zHksGY4392lcZLjE49t/_ssgManifest.js +++ /dev/null @@ -1 +0,0 @@ -self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/10c3a2ade180023c.js b/src/hyperview/server/static/_next/static/chunks/10c3a2ade180023c.js deleted file mode 100644 index 90e79ab..0000000 --- a/src/hyperview/server/static/_next/static/chunks/10c3a2ade180023c.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,75115,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let n=e.r(48277),o=e.r(86846),i={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},u={fontSize:"14px",fontWeight:400,lineHeight:"28px",margin:"0 8px"},s=function({error:e}){let t=e?.digest;return(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{}),(0,n.jsxs)("body",{children:[(0,n.jsx)(o.HandleISRError,{error:e}),(0,n.jsx)("div",{style:i,children:(0,n.jsxs)("div",{children:[(0,n.jsxs)("h2",{style:u,children:["Application error: a ",t?"server":"client","-side exception has occurred while loading ",window.location.hostname," (see the"," ",t?"server logs":"browser console"," for more information)."]}),t?(0,n.jsx)("p",{style:u,children:`Digest: ${t}`}):null]})})]})]})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},90175,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function i(){throw Error("setTimeout has not been defined")}function u(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(e){r=u}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var c=[],a=!1,l=-1;function f(){a&&n&&(a=!1,n.length?c=n.concat(c):l=-1,c.length&&p())}function p(){if(!a){var e=s(f);a=!0;for(var t=c.length;t;){for(n=c,c=[];++l1)for(var r=1;r{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(90175)},14871,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},48277,(e,t,r)=>{"use strict";t.exports=e.r(14871)},24171,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return a},createAsyncLocalStorage:function(){return c},createSnapshot:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class u{disable(){throw i}getStore(){}run(){throw i}exit(){throw i}enterWith(){throw i}static bind(e){return e}}let s="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage;function c(){return s?new s:new u}function a(e){return s?s.bind(e):u.bind(e)}function l(){return s?s.snapshot():function(e,...t){return e(...t)}}},98616,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},26628,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(98616)},86846,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HandleISRError",{enumerable:!0,get:function(){return o}});let n="undefined"==typeof window?e.r(26628).workAsyncStorage:void 0;function o({error:e}){if(n){let t=n.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}return null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},42124,(e,t,r)=>{"use strict";var n=e.i(39057),o=Symbol.for("react.transitional.element"),i=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),l=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),g=Symbol.for("react.view_transition"),v=Symbol.iterator,_={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,b={};function S(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||_}function O(){}function E(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||_}S.prototype.isReactComponent={},S.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},S.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},O.prototype=S.prototype;var T=E.prototype=new O;T.constructor=E,m(T,S.prototype),T.isPureReactComponent=!0;var w=Array.isArray;function j(){}var R={H:null,A:null,T:null,S:null},x=Object.prototype.hasOwnProperty;function A(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function P(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var C=/\/+/g;function H(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function k(e,t,r){if(null==e)return e;var n=[],u=0;return!function e(t,r,n,u,s){var c,a,l,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var p=!1;if(null===t)p=!0;else switch(f){case"bigint":case"string":case"number":p=!0;break;case"object":switch(t.$$typeof){case o:case i:p=!0;break;case y:return e((p=t._init)(t._payload),r,n,u,s)}}if(p)return s=s(t),p=""===u?"."+H(t,0):u,w(s)?(n="",null!=p&&(n=p.replace(C,"$&/")+"/"),e(s,r,n,"",function(e){return e})):null!=s&&(P(s)&&(c=s,a=n+(null==s.key||t&&t.key===s.key?"":(""+s.key).replace(C,"$&/")+"/")+p,s=A(c.type,a,c.props)),r.push(s)),1;p=0;var d=""===u?".":u+":";if(w(t))for(var h=0;h{"use strict";t.exports=e.r(42124)},15501,(e,t,r)=>{"use strict";var n=e.r(30668);function o(e){var t="https://react.dev/errors/"+e;if(1{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(15501)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/2eaa7c8c8b6f5b3b.js b/src/hyperview/server/static/_next/static/chunks/2eaa7c8c8b6f5b3b.js deleted file mode 100644 index 035f551..0000000 --- a/src/hyperview/server/static/_next/static/chunks/2eaa7c8c8b6f5b3b.js +++ /dev/null @@ -1,13 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,9556,(e,t,i)=>{(t.exports=function(e){this.top=e.top,this.left=e.left,this.width=e.width,this.spacing=e.spacing,this.targetRowHeight=e.targetRowHeight,this.targetRowHeightTolerance=e.targetRowHeightTolerance,this.minAspectRatio=this.width/e.targetRowHeight*(1-e.targetRowHeightTolerance),this.maxAspectRatio=this.width/e.targetRowHeight*(1+e.targetRowHeightTolerance),this.edgeCaseMinRowHeight=e.edgeCaseMinRowHeight,this.edgeCaseMaxRowHeight=e.edgeCaseMaxRowHeight,this.widowLayoutStyle=e.widowLayoutStyle,this.isBreakoutRow=e.isBreakoutRow,this.items=[],this.height=0}).prototype={addItem:function(e){var t,i,n=this.items.concat(e),o=this.width-(n.length-1)*this.spacing,r=n.reduce(function(e,t){return e+t.aspectRatio},0),s=o/this.targetRowHeight;return this.isBreakoutRow&&0===this.items.length&&e.aspectRatio>=1?(this.items.push(e),this.completeLayout(o/e.aspectRatio,"justify"),!0):rthis.maxAspectRatio?0===this.items.length?(this.items.push(Object.assign({},e)),this.completeLayout(o/r,"justify"),!0):(t=this.width-(this.items.length-1)*this.spacing,Math.abs(r-s)>Math.abs((i=this.items.reduce(function(e,t){return e+t.aspectRatio},0))-t/this.targetRowHeight))?(this.completeLayout(t/i,"justify"),!1):(this.items.push(Object.assign({},e)),this.completeLayout(o/r,"justify"),!0):(this.items.push(Object.assign({},e)),this.completeLayout(o/r,"justify"),!0)},isLayoutComplete:function(){return this.height>0},completeLayout:function(e,t){var i,n,o,r,s,a,l=this.left,d=this.width-(this.items.length-1)*this.spacing;(void 0===t||0>["justify","center","left"].indexOf(t))&&(t="left"),n=Math.max(this.edgeCaseMinRowHeight,Math.min(e,this.edgeCaseMaxRowHeight)),e!==n?(this.height=n,i=d/n/(d/e)):(this.height=e,i=1),this.items.forEach(function(e){e.top=this.top,e.width=e.aspectRatio*this.height*i,e.height=this.height,e.left=l,l+=e.width+this.spacing},this),"justify"===t?(l-=this.spacing+this.left,o=(l-this.width)/this.items.length,r=this.items.map(function(e,t){return Math.round((t+1)*o)}),1===this.items.length?(s=this.items[0],s.width-=Math.round(o)):this.items.forEach(function(e,t){t>0?(e.left-=r[t-1],e.width-=r[t]-r[t-1]):e.width-=r[t]})):"center"===t&&(a=(this.width-l)/2,this.items.forEach(function(e){e.left+=a+this.spacing},this))},forceComplete:function(e,t){"number"==typeof t?this.completeLayout(t,this.widowLayoutStyle):this.completeLayout(this.targetRowHeight,this.widowLayoutStyle)},getItems:function(){return this.items}}},49279,(e,t,i)=>{"use strict";var n=e.r(9556);function o(e,t){var i;return!1!==e.fullWidthBreakoutRowCadence&&(t._rows.length+1)%e.fullWidthBreakoutRowCadence==0&&(i=!0),new n({top:t._containerHeight,left:e.containerPadding.left,width:e.containerWidth-e.containerPadding.left-e.containerPadding.right,spacing:e.boxSpacing.horizontal,targetRowHeight:e.targetRowHeight,targetRowHeightTolerance:e.targetRowHeightTolerance,edgeCaseMinRowHeight:.5*e.targetRowHeight,edgeCaseMaxRowHeight:2*e.targetRowHeight,rightToLeft:!1,isBreakoutRow:i,widowLayoutStyle:e.widowLayoutStyle})}function r(e,t,i){return t._rows.push(i),t._layoutItems=t._layoutItems.concat(i.getItems()),t._containerHeight+=i.height+e.boxSpacing.vertical,i.items}t.exports=function(e,t){var i,n,s,a,l,d,h={},u={},c={},p={};return c.top=isNaN(parseFloat((h=Object.assign({containerWidth:1060,containerPadding:10,boxSpacing:10,targetRowHeight:320,targetRowHeightTolerance:.25,maxNumRows:1/0,forceAspectRatio:!1,showWidows:!0,fullWidthBreakoutRowCadence:!1,widowLayoutStyle:"left"},t=t||{})).containerPadding.top))?h.containerPadding:h.containerPadding.top,c.right=isNaN(parseFloat(h.containerPadding.right))?h.containerPadding:h.containerPadding.right,c.bottom=isNaN(parseFloat(h.containerPadding.bottom))?h.containerPadding:h.containerPadding.bottom,c.left=isNaN(parseFloat(h.containerPadding.left))?h.containerPadding:h.containerPadding.left,p.horizontal=isNaN(parseFloat(h.boxSpacing.horizontal))?h.boxSpacing:h.boxSpacing.horizontal,p.vertical=isNaN(parseFloat(h.boxSpacing.vertical))?h.boxSpacing:h.boxSpacing.vertical,h.containerPadding=c,h.boxSpacing=p,u._layoutItems=[],u._awakeItems=[],u._inViewportItems=[],u._leadingOrphans=[],u._trailingOrphans=[],u._containerHeight=h.containerPadding.top,u._rows=[],u._orphans=[],h._widowCount=0,i=h,n=e.map(function(e){return e.width&&e.height?{aspectRatio:e.width/e.height}:{aspectRatio:e}}),d=[],i.forceAspectRatio&&n.forEach(function(e){e.forcedAspectRatio=!0,e.aspectRatio=i.forceAspectRatio}),n.some(function(e,t){if(isNaN(e.aspectRatio))throw Error("Item "+t+" has an invalid aspect ratio");if(a||(a=o(i,u)),s=a.addItem(e),a.isLayoutComplete()){if(d=d.concat(r(i,u,a)),u._rows.length>=i.maxNumRows)return a=null,!0;if(a=o(i,u),!s&&(s=a.addItem(e),a.isLayoutComplete())){if(d=d.concat(r(i,u,a)),u._rows.length>=i.maxNumRows)return a=null,!0;a=o(i,u)}}}),a&&a.getItems().length&&i.showWidows&&(u._rows.length?(l=u._rows[u._rows.length-1].isBreakoutRow?u._rows[u._rows.length-1].targetRowHeight:u._rows[u._rows.length-1].height,a.forceComplete(!1,l)):a.forceComplete(!1),d=d.concat(r(i,u,a)),i._widowCount=a.getItems().length),u._containerHeight=u._containerHeight-i.boxSpacing.vertical,u._containerHeight=u._containerHeight+i.containerPadding.bottom,{containerHeight:u._containerHeight,widowCount:i._widowCount,boxes:u._layoutItems}}},50912,e=>{"use strict";let t,i,n,o,r,s,a,l,d,h,u,c,p,m,f,g,v,w,b;var y,x,_,D,C,S,E,A,k,z,P,R,N,O,I,M,L,T,j,G,V=e.i(48277),W=e.i(30668),H=e.i(69941),F=e.i(39057);function B(e,t,i){let n,o=i.initialDeps??[];function r(){var r,s,a,l;let d,h;i.key&&(null==(r=i.debug)?void 0:r.call(i))&&(d=Date.now());let u=e();if(!(u.length!==o.length||u.some((e,t)=>o[t]!==e)))return n;if(o=u,i.key&&(null==(s=i.debug)?void 0:s.call(i))&&(h=Date.now()),n=t(...u),i.key&&(null==(a=i.debug)?void 0:a.call(i))){let e=Math.round((Date.now()-d)*100)/100,t=Math.round((Date.now()-h)*100)/100,n=t/16,o=(e,t)=>{for(e=String(e);e.length{o=e},r}function $(e,t){if(void 0!==e)return e;throw Error(`Unexpected undefined${t?`: ${t}`:""}`)}let U=e=>{let{offsetWidth:t,offsetHeight:i}=e;return{width:t,height:i}},K=e=>e,J=e=>{let t=Math.max(e.startIndex-e.overscan,0),i=Math.min(e.endIndex+e.overscan,e.count-1),n=[];for(let e=t;e<=i;e++)n.push(e);return n},Z=(e,t)=>{let i=e.scrollElement;if(!i)return;let n=e.targetWindow;if(!n)return;let o=e=>{let{width:i,height:n}=e;t({width:Math.round(i),height:Math.round(n)})};if(o(U(i)),!n.ResizeObserver)return()=>{};let r=new n.ResizeObserver(t=>{let n=()=>{let e=t[0];if(null==e?void 0:e.borderBoxSize){let t=e.borderBoxSize[0];if(t)return void o({width:t.inlineSize,height:t.blockSize})}o(U(i))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(n):n()});return r.observe(i,{box:"border-box"}),()=>{r.unobserve(i)}},X={passive:!0},q="undefined"==typeof window||"onscrollend"in window,Y=(e,t)=>{var i,n;let o,r=e.scrollElement;if(!r)return;let s=e.targetWindow;if(!s)return;let a=0,l=e.options.useScrollendEvent&&q?()=>void 0:(i=()=>{t(a,!1)},n=e.options.isScrollingResetDelay,function(...e){s.clearTimeout(o),o=s.setTimeout(()=>i.apply(this,e),n)}),d=i=>()=>{let{horizontal:n,isRtl:o}=e.options;a=n?r.scrollLeft*(o&&-1||1):r.scrollTop,l(),t(a,i)},h=d(!0),u=d(!1);u(),r.addEventListener("scroll",h,X);let c=e.options.useScrollendEvent&&q;return c&&r.addEventListener("scrollend",u,X),()=>{r.removeEventListener("scroll",h),c&&r.removeEventListener("scrollend",u)}},Q=(e,t,i)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[i.options.horizontal?"inlineSize":"blockSize"])}return e[i.options.horizontal?"offsetWidth":"offsetHeight"]},ee=(e,{adjustments:t=0,behavior:i},n)=>{var o,r;null==(r=null==(o=n.scrollElement)?void 0:o.scrollTo)||r.call(o,{[n.options.horizontal?"left":"top"]:e+t,behavior:i})};class et{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{this._measureElement(e.target,e)};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}):null);return{disconnect:()=>{var i;null==(i=t())||i.disconnect(),e=null},observe:e=>{var i;return null==(i=t())?void 0:i.observe(e,{box:"border-box"})},unobserve:e=>{var i;return null==(i=t())?void 0:i.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,i])=>{void 0===i&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:K,rangeExtractor:J,onChange:()=>{},measureElement:Q,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,...e}},this.notify=e=>{var t,i;null==(i=(t=this.options).onChange)||i.call(t,this,e)},this.maybeNotify=B(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t)return void this.maybeNotify();this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let i=new Map,n=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(i.has(t.lane))continue;let r=n.get(t.lane);if(null==r||t.end>r.end?n.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=B(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,i,n,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:i,getItemKey:n,enabled:o}),{key:!1}),this.getMeasurements=B(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:i,getItemKey:n,enabled:o},r)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let s=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let a=this.measurementsCache.slice(0,s);for(let o=s;othis.options.debug}),this.calculateRange=B(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,i,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:i,lanes:n}){let o=e.length-1;if(e.length<=n)return{startIndex:0,endIndex:o};let r=ei(0,o,t=>e[t].start,i),s=r;if(1===n)for(;s1){let a=Array(n).fill(0);for(;se=0&&l.some(e=>e>=i);){let t=e[r];l[t.lane]=t.start,r--}r=Math.max(0,r-r%n),s=Math.min(o,s+(n-1-s%n))}return{startIndex:r,endIndex:s}}({measurements:e,outerSize:t,scrollOffset:i,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=B(()=>{let e=null,t=null,i=this.calculateRange();return i&&(e=i.startIndex,t=i.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,i,n,o)=>null===n||null===o?[]:e({startIndex:n,endIndex:o,overscan:t,count:i}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,i=e.getAttribute(t);return i?parseInt(i,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let i=this.indexFromElement(e),n=this.measurementsCache[i];if(!n)return;let o=n.key,r=this.elementsCache.get(o);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(i,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let i=this.measurementsCache[e];if(!i)return;let n=t-(this.itemSizeCache.get(i.key)??i.size);0!==n&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(i,n,this):i.start{e?this._measureElement(e,void 0):this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))})},this.getVirtualItems=B(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let i=[];for(let n=0,o=e.length;nthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return $(t[ei(0,t.length-1,e=>$(t[e]).start,e)])},this.getOffsetForAlignment=(e,t,i=0)=>{let n=this.getSize(),o=this.getScrollOffset();return"auto"===t&&(t=e>=o+n?"end":"start"),"center"===t?e+=(i-n)/2:"end"===t&&(e-=n),Math.max(Math.min(this.getTotalSize()+this.options.scrollMargin-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let i=this.measurementsCache[e];if(!i)return;let n=this.getSize(),o=this.getScrollOffset();if("auto"===t)if(i.end>=o+n-this.options.scrollPaddingEnd)t="end";else{if(!(i.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}let r="end"===t?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(r,t,i.size),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.scrollToOffset=(e,{align:t="start",behavior:i}={})=>{"smooth"===i&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:i})},this.scrollToIndex=(e,{align:t="auto",behavior:i}={})=>{"smooth"===i&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),e=Math.max(0,Math.min(e,this.options.count-1));let n=0,o=t=>{if(!this.targetWindow)return;let n=this.getOffsetForIndex(e,t);if(!n)return void console.warn("Failed to get offset for index:",e);let[o,s]=n;this._scrollToOffset(o,{adjustments:void 0,behavior:i}),this.targetWindow.requestAnimationFrame(()=>{let t=this.getScrollOffset(),i=this.getOffsetForIndex(e,s);i?1.01>Math.abs(i[0]-t)||r(s):console.warn("Failed to get offset for index:",e)})},r=t=>{this.targetWindow&&(++n<10?this.targetWindow.requestAnimationFrame(()=>o(t)):console.warn(`Failed to scroll to index ${e} after 10 attempts.`))};o(t)},this.scrollBy=(e,{behavior:t}={})=>{"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t,i=this.getMeasurements();if(0===i.length)t=this.options.paddingStart;else if(1===this.options.lanes)t=(null==(e=i[i.length-1])?void 0:e.end)??0;else{let e=Array(this.options.lanes).fill(null),n=i.length-1;for(;n>=0&&e.some(e=>null===e);){let t=i[n];null===e[t.lane]&&(e[t.lane]=t.end),n--}t=Math.max(...e.filter(e=>null!==e))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:i})=>{this.options.scrollToFn(e,{behavior:i,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let ei=(e,t,i,n)=>{for(;e<=t;){let o=(e+t)/2|0,r=i(o);if(rn))return o;t=o-1}}return e>0?e-1:0},en="undefined"!=typeof document?W.useLayoutEffect:W.useEffect;var eo=e.i(49279);let er=e=>{let t,i=new Set,n=(e,n)=>{let o="function"==typeof e?e(t):e;if(!Object.is(o,t)){let e=t;t=(null!=n?n:"object"!=typeof o||null===o)?o:Object.assign({},t,o),i.forEach(i=>i(t,e))}},o=()=>t,r={setState:n,getState:o,getInitialState:()=>s,subscribe:e=>(i.add(e),()=>i.delete(e))},s=t=e(n,o,r);return r},es=e=>{let t=e?er(e):er,i=e=>(function(e,t=e=>e){let i=W.default.useSyncExternalStore(e.subscribe,W.default.useCallback(()=>t(e.getState()),[e,t]),W.default.useCallback(()=>t(e.getInitialState()),[e,t]));return W.default.useDebugValue(i),i})(t,e);return Object.assign(i,t),i},ea="undefined",el="#39d3cc",ed="#8b949e",eh=(Math.sqrt(5)-1)/2;function eu(e){return e<0?0:e>1?1:e}function ec(e,t){return e===ea&&t!==ea?1:t===ea&&e!==ea?-1:e.localeCompare(t)}function ep(e){let t=Array.from(new Set(e.map(e=>em(e)))).sort(ec),i={},n=new Set;for(let e of t){if(e===ea){i[e]=el,n.add(el.toLowerCase());continue}let t=0;for(;t<32;){let o=function(e,t,i){let n=eu(.85),o=eu(.5),r=(e%1+1)%1*6,s=Math.floor(r),a=r-s,l=o*(1-n),d=o*(1-n*a),h=o*(1-n*(1-a)),u=0,c=0,p=0;switch(s%6){case 0:u=o,c=h,p=l;break;case 1:u=d,c=o,p=l;break;case 2:u=l,c=o,p=h;break;case 3:u=l,c=d,p=o;break;case 4:u=h,c=l,p=o;break;case 5:u=o,c=l,p=d}let m=e=>Math.round(255*eu(e)).toString(16).padStart(2,"0");return`#${m(u)}${m(c)}${m(p)}`}((65535&function(e){let t=0x811c9dc5;for(let i=0;i>>0}(0===t?e:`${e}#${t}`))*eh%1,0,0),r=o.toLowerCase();if(!n.has(r)){i[e]=o,n.add(r);break}t++}i[e]||(i[e]=ed)}return i}function em(e){return e&&e.length>0?e:ea}function ef(e,t){let i=em(t),n=new Set;for(let t=0;t({leftPanelOpen:!1,rightPanelOpen:!1,bottomPanelOpen:!1,setLeftPanelOpen:t=>e({leftPanelOpen:t}),setRightPanelOpen:t=>e({rightPanelOpen:t}),setBottomPanelOpen:t=>e({bottomPanelOpen:t}),datasetInfo:null,setDatasetInfo:t=>e({datasetInfo:t}),samples:[],totalSamples:0,samplesLoaded:0,setSamples:(t,i)=>e({samples:t,totalSamples:i,samplesLoaded:t.length}),appendSamples:t=>e(e=>{let i=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!i.has(e.id)),o=e.samplesLoaded+t.length;return 0===n.length?{samplesLoaded:o}:{samples:[...e.samples,...n],samplesLoaded:o}}),addSamplesIfMissing:t=>e(e=>{let i=new Set(e.samples.map(e=>e.id)),n=t.filter(e=>!i.has(e.id));return 0===n.length?e:{samples:[...e.samples,...n]}}),embeddingsByLayoutKey:{},setEmbeddingsForLayout:(t,i)=>e(e=>{let n=e.labelFilter&&"label"===e.selectionSource&&e.activeLayoutKey===t?{selectedIds:ef(i,e.labelFilter),selectionSource:"label"}:{};return{embeddingsByLayoutKey:{...e.embeddingsByLayoutKey,[t]:i},...n}}),activeLayoutKey:null,setActiveLayoutKey:t=>e(e=>{if(!t)return{activeLayoutKey:null};if(!e.labelFilter||"label"!==e.selectionSource)return{activeLayoutKey:t};let i=e.embeddingsByLayoutKey[t];return i?{activeLayoutKey:t,selectedIds:ef(i,e.labelFilter),selectionSource:"label"}:{activeLayoutKey:t,selectedIds:new Set,selectionSource:"label"}}),labelFilter:null,setLabelFilter:t=>e(e=>{let i=t?em(t):null,n={labelFilter:i};if(i){let t=e.activeLayoutKey,o=t?e.embeddingsByLayoutKey[t]:null;n.selectedIds=o?ef(o,i):new Set,n.selectionSource="label",n.isLassoSelection=!1,n.lassoQuery=null,n.lassoSamples=[],n.lassoTotal=0,n.lassoIsLoading=!1}else"label"===e.selectionSource&&(n.selectedIds=new Set,n.selectionSource=null);return n}),selectedIds:new Set,isLassoSelection:!1,selectionSource:null,setSelectedIds:(t,i="grid")=>e({selectedIds:t,selectionSource:t.size>0?i:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),toggleSelection:t=>e(e=>{let i=new Set(e.selectedIds);return i.has(t)?i.delete(t):i.add(t),{selectedIds:i,selectionSource:i.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),addToSelection:t=>e(e=>{let i=new Set(e.selectedIds);return t.forEach(e=>i.add(e)),{selectedIds:i,selectionSource:i.size>0?"grid":null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}}),clearSelection:()=>e({selectedIds:new Set,selectionSource:null,isLassoSelection:!1,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1,beginLassoSelection:t=>e({isLassoSelection:!0,selectedIds:new Set,selectionSource:"lasso",lassoQuery:t,lassoSamples:[],lassoTotal:0,lassoIsLoading:!0}),setLassoResults:(t,i,n=!1)=>e(e=>({lassoSamples:n?[...e.lassoSamples,...t]:t,lassoTotal:i,lassoIsLoading:!1})),clearLassoSelection:()=>e({isLassoSelection:!1,selectionSource:null,lassoQuery:null,lassoSamples:[],lassoTotal:0,lassoIsLoading:!1}),hoveredId:null,setHoveredId:t=>e({hoveredId:t}),isLoading:!1,setIsLoading:t=>e({isLoading:t}),error:null,setError:t=>e({error:t})}))?es(t):es;function ev(){for(var e,t,i=0,n="",o=arguments.length;i({nextPart:e,validators:t,classGroupId:i}),eb=[],ey=(e,t,i)=>{if(0==e.length-t)return i.classGroupId;let n=e[t],o=i.nextPart.get(n);if(o){let i=ey(e,t+1,o);if(i)return i}let r=i.validators;if(null===r)return;let s=0===t?e.join("-"):e.slice(t).join("-"),a=r.length;for(let e=0;e{let i=ew();for(let n in e)e_(e[n],i,n,t);return i},e_=(e,t,i,n)=>{let o=e.length;for(let r=0;r{"string"==typeof e?eC(e,t,i):"function"==typeof e?eS(e,t,i,n):eE(e,t,i,n)},eC=(e,t,i)=>{(""===e?t:eA(t,e)).classGroupId=i},eS=(e,t,i,n)=>{ek(e)?e_(e(n),t,i,n):(null===t.validators&&(t.validators=[]),t.validators.push({classGroupId:i,validator:e}))},eE=(e,t,i,n)=>{let o=Object.entries(e),r=o.length;for(let e=0;e{let i=e,n=t.split("-"),o=n.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,ez=[],eP=(e,t,i,n,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:i,maybePostfixModifierPosition:n,isExternal:o}),eR=/\s+/,eN=e=>{let t;if("string"==typeof e)return e;let i="";for(let n=0;n{let t=t=>t[e]||eO;return t.isThemeGetter=!0,t},eM=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,eL=/^\((?:(\w[\w-]*):)?(.+)\)$/i,eT=/^\d+\/\d+$/,ej=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eG=/\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$/,eV=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eW=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,eH=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,eF=e=>eT.test(e),eB=e=>!!e&&!Number.isNaN(Number(e)),e$=e=>!!e&&Number.isInteger(Number(e)),eU=e=>e.endsWith("%")&&eB(e.slice(0,-1)),eK=e=>ej.test(e),eJ=()=>!0,eZ=e=>eG.test(e)&&!eV.test(e),eX=()=>!1,eq=e=>eW.test(e),eY=e=>eH.test(e),eQ=e=>!e1(e)&&!e6(e),e0=e=>to(e,tl,eX),e1=e=>eM.test(e),e2=e=>to(e,td,eZ),e5=e=>to(e,th,eB),e3=e=>to(e,ts,eX),e4=e=>to(e,ta,eY),e9=e=>to(e,tc,eq),e6=e=>eL.test(e),e8=e=>tr(e,td),e7=e=>tr(e,tu),te=e=>tr(e,ts),tt=e=>tr(e,tl),ti=e=>tr(e,ta),tn=e=>tr(e,tc,!0),to=(e,t,i)=>{let n=eM.exec(e);return!!n&&(n[1]?t(n[1]):i(n[2]))},tr=(e,t,i=!1)=>{let n=eL.exec(e);return!!n&&(n[1]?t(n[1]):i)},ts=e=>"position"===e||"percentage"===e,ta=e=>"image"===e||"url"===e,tl=e=>"length"===e||"size"===e||"bg-size"===e,td=e=>"length"===e,th=e=>"number"===e,tu=e=>"family-name"===e,tc=e=>"shadow"===e,tp=((e,...t)=>{let i,n,o,r,s=e=>{let t=n(e);if(t)return t;let r=((e,t)=>{let{parseClassName:i,getClassGroupId:n,getConflictingClassGroupIds:o,sortModifiers:r}=t,s=[],a=e.trim().split(eR),l="";for(let e=a.length-1;e>=0;e-=1){let t=a[e],{isExternal:d,modifiers:h,hasImportantModifier:u,baseClassName:c,maybePostfixModifierPosition:p}=i(t);if(d){l=t+(l.length>0?" "+l:l);continue}let m=!!p,f=n(m?c.substring(0,p):c);if(!f){if(!m||!(f=n(c))){l=t+(l.length>0?" "+l:l);continue}m=!1}let g=0===h.length?"":1===h.length?h[0]:r(h).join(":"),v=u?g+"!":g,w=v+f;if(s.indexOf(w)>-1)continue;s.push(w);let b=o(f,m);for(let e=0;e0?" "+l:l)}return l})(e,i);return o(e,r),r};return r=a=>{var l;let d;return n=(i={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,i=Object.create(null),n=Object.create(null),o=(o,r)=>{i[o]=r,++t>e&&(t=0,n=i,i=Object.create(null))};return{get(e){let t=i[e];return void 0!==t?t:void 0!==(t=n[e])?(o(e,t),t):void 0},set(e,t){e in i?i[e]=t:o(e,t)}}})((l=t.reduce((e,t)=>t(e),e())).cacheSize),parseClassName:(e=>{let{prefix:t,experimentalParseClassName:i}=e,n=e=>{let t,i=[],n=0,o=0,r=0,s=e.length;for(let a=0;ar?t-r:void 0)};if(t){let e=t+":",i=n;n=t=>t.startsWith(e)?i(t.slice(e.length)):eP(ez,!1,t,void 0,!0)}if(i){let e=n;n=t=>i({className:t,parseClassName:e})}return n})(l),sortModifiers:(d=new Map,l.orderSensitiveModifiers.forEach((e,t)=>{d.set(e,1e6+t)}),e=>{let t=[],i=[];for(let n=0;n0&&(i.sort(),t.push(...i),i=[]),t.push(o)):i.push(o)}return i.length>0&&(i.sort(),t.push(...i)),t}),...(e=>{let t=(e=>{let{theme:t,classGroups:i}=e;return ex(i,t)})(e),{conflictingClassGroups:i,conflictingClassGroupModifiers:n}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var i;let t,n,o;return -1===(i=e).slice(1,-1).indexOf(":")?void 0:(n=(t=i.slice(1,-1)).indexOf(":"),(o=t.slice(0,n))?"arbitrary.."+o:void 0)}let n=e.split("-"),o=+(""===n[0]&&n.length>1);return ey(n,o,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=n[e],o=i[e];if(t){if(o){let e=Array(o.length+t.length);for(let t=0;tr(((...e)=>{let t,i,n=0,o="";for(;n{let e=eI("color"),t=eI("font"),i=eI("text"),n=eI("font-weight"),o=eI("tracking"),r=eI("leading"),s=eI("breakpoint"),a=eI("container"),l=eI("spacing"),d=eI("radius"),h=eI("shadow"),u=eI("inset-shadow"),c=eI("text-shadow"),p=eI("drop-shadow"),m=eI("blur"),f=eI("perspective"),g=eI("aspect"),v=eI("ease"),w=eI("animate"),b=()=>["auto","avoid","all","avoid-page","page","left","right","column"],y=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],x=()=>[...y(),e6,e1],_=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],C=()=>[e6,e1,l],S=()=>[eF,"full","auto",...C()],E=()=>[e$,"none","subgrid",e6,e1],A=()=>["auto",{span:["full",e$,e6,e1]},e$,e6,e1],k=()=>[e$,"auto",e6,e1],z=()=>["auto","min","max","fr",e6,e1],P=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],R=()=>["start","end","center","stretch","center-safe","end-safe"],N=()=>["auto",...C()],O=()=>[eF,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],I=()=>[e,e6,e1],M=()=>[...y(),te,e3,{position:[e6,e1]}],L=()=>["no-repeat",{repeat:["","x","y","space","round"]}],T=()=>["auto","cover","contain",tt,e0,{size:[e6,e1]}],j=()=>[eU,e8,e2],G=()=>["","none","full",d,e6,e1],V=()=>["",eB,e8,e2],W=()=>["solid","dashed","dotted","double"],H=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],F=()=>[eB,eU,te,e3],B=()=>["","none",m,e6,e1],$=()=>["none",eB,e6,e1],U=()=>["none",eB,e6,e1],K=()=>[eB,e6,e1],J=()=>[eF,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[eK],breakpoint:[eK],color:[eJ],container:[eK],"drop-shadow":[eK],ease:["in","out","in-out"],font:[eQ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[eK],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[eK],shadow:[eK],spacing:["px",eB],text:[eK],"text-shadow":[eK],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",eF,e1,e6,g]}],container:["container"],columns:[{columns:[eB,e1,e6,a]}],"break-after":[{"break-after":b()}],"break-before":[{"break-before":b()}],"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:x()}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:S()}],"inset-x":[{"inset-x":S()}],"inset-y":[{"inset-y":S()}],start:[{start:S()}],end:[{end:S()}],top:[{top:S()}],right:[{right:S()}],bottom:[{bottom:S()}],left:[{left:S()}],visibility:["visible","invisible","collapse"],z:[{z:[e$,"auto",e6,e1]}],basis:[{basis:[eF,"full","auto",a,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[eB,eF,"auto","initial","none",e1]}],grow:[{grow:["",eB,e6,e1]}],shrink:[{shrink:["",eB,e6,e1]}],order:[{order:[e$,"first","last","none",e6,e1]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:A()}],"col-start":[{"col-start":k()}],"col-end":[{"col-end":k()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:A()}],"row-start":[{"row-start":k()}],"row-end":[{"row-end":k()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":z()}],"auto-rows":[{"auto-rows":z()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...P(),"normal"]}],"justify-items":[{"justify-items":[...R(),"normal"]}],"justify-self":[{"justify-self":["auto",...R()]}],"align-content":[{content:["normal",...P()]}],"align-items":[{items:[...R(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...R(),{baseline:["","last"]}]}],"place-content":[{"place-content":P()}],"place-items":[{"place-items":[...R(),"baseline"]}],"place-self":[{"place-self":["auto",...R()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:N()}],mx:[{mx:N()}],my:[{my:N()}],ms:[{ms:N()}],me:[{me:N()}],mt:[{mt:N()}],mr:[{mr:N()}],mb:[{mb:N()}],ml:[{ml:N()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],w:[{w:[a,"screen",...O()]}],"min-w":[{"min-w":[a,"screen","none",...O()]}],"max-w":[{"max-w":[a,"screen","none","prose",{screen:[s]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",i,e8,e2]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[n,e6,e5]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",eU,e1]}],"font-family":[{font:[e7,e1,t]}],"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:[o,e6,e1]}],"line-clamp":[{"line-clamp":[eB,"none",e6,e5]}],leading:[{leading:[r,...C()]}],"list-image":[{"list-image":["none",e6,e1]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",e6,e1]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...W(),"wavy"]}],"text-decoration-thickness":[{decoration:[eB,"from-font","auto",e6,e2]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[eB,"auto",e6,e1]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",e6,e1]}],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",e6,e1]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:M()}],"bg-repeat":[{bg:L()}],"bg-size":[{bg:T()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},e$,e6,e1],radial:["",e6,e1],conic:[e$,e6,e1]},ti,e4]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:j()}],"gradient-via-pos":[{via:j()}],"gradient-to-pos":[{to:j()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:G()}],"rounded-s":[{"rounded-s":G()}],"rounded-e":[{"rounded-e":G()}],"rounded-t":[{"rounded-t":G()}],"rounded-r":[{"rounded-r":G()}],"rounded-b":[{"rounded-b":G()}],"rounded-l":[{"rounded-l":G()}],"rounded-ss":[{"rounded-ss":G()}],"rounded-se":[{"rounded-se":G()}],"rounded-ee":[{"rounded-ee":G()}],"rounded-es":[{"rounded-es":G()}],"rounded-tl":[{"rounded-tl":G()}],"rounded-tr":[{"rounded-tr":G()}],"rounded-br":[{"rounded-br":G()}],"rounded-bl":[{"rounded-bl":G()}],"border-w":[{border:V()}],"border-w-x":[{"border-x":V()}],"border-w-y":[{"border-y":V()}],"border-w-s":[{"border-s":V()}],"border-w-e":[{"border-e":V()}],"border-w-t":[{"border-t":V()}],"border-w-r":[{"border-r":V()}],"border-w-b":[{"border-b":V()}],"border-w-l":[{"border-l":V()}],"divide-x":[{"divide-x":V()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":V()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...W(),"hidden","none"]}],"divide-style":[{divide:[...W(),"hidden","none"]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...W(),"none","hidden"]}],"outline-offset":[{"outline-offset":[eB,e6,e1]}],"outline-w":[{outline:["",eB,e8,e2]}],"outline-color":[{outline:I()}],shadow:[{shadow:["","none",h,tn,e9]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":["none",u,tn,e9]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[eB,e2]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":V()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":["none",c,tn,e9]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[eB,e6,e1]}],"mix-blend":[{"mix-blend":[...H(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":H()}],"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":[eB]}],"mask-image-linear-from-pos":[{"mask-linear-from":F()}],"mask-image-linear-to-pos":[{"mask-linear-to":F()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":F()}],"mask-image-t-to-pos":[{"mask-t-to":F()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":F()}],"mask-image-r-to-pos":[{"mask-r-to":F()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":F()}],"mask-image-b-to-pos":[{"mask-b-to":F()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":F()}],"mask-image-l-to-pos":[{"mask-l-to":F()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":F()}],"mask-image-x-to-pos":[{"mask-x-to":F()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":F()}],"mask-image-y-to-pos":[{"mask-y-to":F()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[e6,e1]}],"mask-image-radial-from-pos":[{"mask-radial-from":F()}],"mask-image-radial-to-pos":[{"mask-radial-to":F()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"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":y()}],"mask-image-conic-pos":[{"mask-conic":[eB]}],"mask-image-conic-from-pos":[{"mask-conic-from":F()}],"mask-image-conic-to-pos":[{"mask-conic-to":F()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:M()}],"mask-repeat":[{mask:L()}],"mask-size":[{mask:T()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",e6,e1]}],filter:[{filter:["","none",e6,e1]}],blur:[{blur:B()}],brightness:[{brightness:[eB,e6,e1]}],contrast:[{contrast:[eB,e6,e1]}],"drop-shadow":[{"drop-shadow":["","none",p,tn,e9]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:["",eB,e6,e1]}],"hue-rotate":[{"hue-rotate":[eB,e6,e1]}],invert:[{invert:["",eB,e6,e1]}],saturate:[{saturate:[eB,e6,e1]}],sepia:[{sepia:["",eB,e6,e1]}],"backdrop-filter":[{"backdrop-filter":["","none",e6,e1]}],"backdrop-blur":[{"backdrop-blur":B()}],"backdrop-brightness":[{"backdrop-brightness":[eB,e6,e1]}],"backdrop-contrast":[{"backdrop-contrast":[eB,e6,e1]}],"backdrop-grayscale":[{"backdrop-grayscale":["",eB,e6,e1]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[eB,e6,e1]}],"backdrop-invert":[{"backdrop-invert":["",eB,e6,e1]}],"backdrop-opacity":[{"backdrop-opacity":[eB,e6,e1]}],"backdrop-saturate":[{"backdrop-saturate":[eB,e6,e1]}],"backdrop-sepia":[{"backdrop-sepia":["",eB,e6,e1]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",e6,e1]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[eB,"initial",e6,e1]}],ease:[{ease:["linear","initial",v,e6,e1]}],delay:[{delay:[eB,e6,e1]}],animate:[{animate:["none",w,e6,e1]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,e6,e1]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:$()}],"rotate-x":[{"rotate-x":$()}],"rotate-y":[{"rotate-y":$()}],"rotate-z":[{"rotate-z":$()}],scale:[{scale:U()}],"scale-x":[{"scale-x":U()}],"scale-y":[{"scale-y":U()}],"scale-z":[{"scale-z":U()}],"scale-3d":["scale-3d"],skew:[{skew:K()}],"skew-x":[{"skew-x":K()}],"skew-y":[{"skew-y":K()}],transform:[{transform:[e6,e1,"","none","gpu","cpu"]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:J()}],"translate-x":[{"translate-x":J()}],"translate-y":[{"translate-y":J()}],"translate-z":[{"translate-z":J()}],"translate-none":["translate-none"],accent:[{accent:I()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:I()}],"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",e6,e1]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"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",e6,e1]}],fill:[{fill:["none",...I()]}],"stroke-w":[{stroke:[eB,e8,e2,e5]}],stroke:[{stroke:["none",...I()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["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-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["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-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}});function tm(...e){return tp(ev(e))}function tf({children:e,className:t}){return(0,V.jsx)("div",{className:tm("flex flex-col h-full bg-card overflow-hidden",t),children:e})}let tg=({className:e="w-5 h-5"})=>(0,V.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",className:e,children:[(0,V.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"1.5"}),(0,V.jsx)("circle",{cx:"12",cy:"12",r:"6",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.6"}),(0,V.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"currentColor"})]}),tv=()=>(0,V.jsx)("svg",{className:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,V.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})}),tw=({className:e="w-4 h-4"})=>(0,V.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:e,children:(0,V.jsx)("path",{d:"M19.27 5.33C17.94 4.71 16.5 4.26 15 4a.09.09 0 0 0-.07.03c-.18.33-.39.76-.53 1.09a16.09 16.09 0 0 0-4.8 0c-.14-.34-.35-.76-.54-1.09c-.01-.02-.04-.03-.07-.03c-1.5.26-2.93.71-4.27 1.33c-.01 0-.02.01-.03.02c-2.72 4.07-3.47 8.03-3.1 11.95c0 .02.01.04.03.05c1.8 1.32 3.53 2.12 5.24 2.65c.03.01.06 0 .07-.02c.4-.55.76-1.13 1.07-1.74c.02-.04 0-.08-.04-.09c-.57-.22-1.11-.48-1.64-.78c-.04-.02-.04-.08-.01-.11c.11-.08.22-.17.33-.25c.02-.02.05-.02.07-.01c3.44 1.57 7.15 1.57 10.55 0c.02-.01.05-.01.07.01c.11.09.22.17.33.26c.04.03.04.09-.01.11c-.52.31-1.07.56-1.64.78c-.04.01-.05.06-.04.09c.32.61.68 1.19 1.07 1.74c.03.01.06.02.09.01c1.72-.53 3.45-1.33 5.25-2.65c.02-.01.03-.03.03-.05c.44-4.53-.73-8.46-3.1-11.95c-.01-.01-.02-.02-.04-.02zM8.52 14.91c-1.03 0-1.89-.95-1.89-2.12s.84-2.12 1.89-2.12c1.06 0 1.9.96 1.89 2.12c0 1.17-.84 2.12-1.89 2.12zm6.97 0c-1.03 0-1.89-.95-1.89-2.12s.84-2.12 1.89-2.12c1.06 0 1.9.96 1.89 2.12c0 1.17-.83 2.12-1.89 2.12z"})});function tb(e){return e.width&&e.height&&e.height>0?e.width/e.height:1}function ty({samples:e,onLoadMore:t,hasMore:i}){let n=(0,W.useRef)(null),[o,r]=(0,W.useState)(0),{selectedIds:s,isLassoSelection:a,selectionSource:l,toggleSelection:d,addToSelection:h,setHoveredId:u,hoveredId:c,labelFilter:p}=eg();(0,W.useEffect)(()=>{let e=n.current;if(!e)return;let t=()=>{let t=e.clientWidth;t>0&&t!==o&&r(t)};t();let i=new ResizeObserver(()=>{requestAnimationFrame(t)});return i.observe(e),()=>i.disconnect()},[o]);let{boxes:m,containerHeight:f}=(0,W.useMemo)(()=>(function(e,t){if(0===e.length||t<=0)return{boxes:[],containerHeight:0};let i=e.map(tb),n=(0,eo.default)(i,{containerWidth:t,containerPadding:0,boxSpacing:2,targetRowHeight:180,targetRowHeightTolerance:.25,showWidows:!0});return{boxes:n.boxes,containerHeight:n.containerHeight}})(e,o),[e,o]),g=(0,W.useMemo)(()=>(function(e){if(0===e.length)return[];let t=[],i=e[0].top,n=0,o=e[0].height;for(let r=1;r1?(t.push({startIndex:n,endIndex:r,top:i,height:o}),n=r,i=s.top,o=s.height):o=Math.max(o,s.height)}return t.push({startIndex:n,endIndex:e.length,top:i,height:o}),t})(m),[m]),v=function(e){let t=W.useReducer(()=>({}),{})[1],i={...e,onChange:(i,n)=>{var o;n?(0,H.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,i,n)}},[n]=W.useState(()=>new et(i));return n.setOptions(i),en(()=>n._didMount(),[]),en(()=>n._willUpdate()),n}({observeElementRect:Z,observeElementOffset:Y,scrollToFn:ee,...{count:g.length,getScrollElement:()=>n.current,estimateSize:e=>g[e]?.height??180,overscan:3,getItemKey:t=>{let i=g[t];return i&&e.slice(i.startIndex,i.endIndex).map(e=>e.id).join("-")||`row-${t}`}}});(0,W.useEffect)(()=>{let e=n.current;if(!e||!t||!i)return;let o=()=>{let{scrollTop:i,scrollHeight:n,clientHeight:o}=e;n-i-o<500&&t()};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)},[t,i]),(0,W.useEffect)(()=>{n.current?.scrollTo({top:0})},[p]),(0,W.useEffect)(()=>{if(!a&&"scatter"===l&&0!==s.size)try{v.scrollToIndex(0,{align:"start"})}catch{n.current?.scrollTo({top:0})}},[a,s,l,v]);let w=(0,W.useCallback)((t,i)=>{if(i.metaKey||i.ctrlKey)d(t.id);else if(i.shiftKey&&s.size>0){let i=Array.from(s),n=i[i.length-1],o=e.findIndex(e=>e.id===n),r=e.findIndex(e=>e.id===t.id);if(-1!==o&&-1!==r){let t=Math.min(o,r),i=Math.max(o,r);h(e.slice(t,i+1).map(e=>e.id))}}else{let e=new Set;e.add(t.id),eg.getState().setSelectedIds(e,"grid")}},[e,s,d,h]),b=v.getVirtualItems();return(0,V.jsx)(tf,{children:(0,V.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden",children:(0,V.jsx)("div",{ref:n,className:"panel-scroll h-full min-h-0 overflow-auto",children:(0,V.jsx)("div",{style:{height:f||"100%",width:"100%",position:"relative"},children:b.map(t=>{let i=g[t.index];if(!i)return null;let n=e.slice(i.startIndex,i.endIndex),o=m.slice(i.startIndex,i.endIndex);return(0,V.jsx)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:i.height,transform:`translateY(${i.top}px)`},children:n.map((e,t)=>{let i=o[t];if(!i)return null;let n=!!a||s.has(e.id),r=c===e.id;return(0,V.jsxs)("div",{style:{position:"absolute",left:i.left,top:0,width:i.width,height:i.height},className:` - overflow-hidden cursor-pointer - transition-shadow duration-150 ease-out - ${n?"ring-2 ring-inset ring-primary":""} - ${r&&!n?"ring-2 ring-inset ring-primary/50":""} - `,onClick:t=>w(e,t),onMouseEnter:()=>u(e.id),onMouseLeave:()=>u(null),children:[e.thumbnail?(0,V.jsx)("img",{src:`data:image/jpeg;base64,${e.thumbnail}`,alt:e.filename,className:"w-full h-full object-cover",loading:"lazy"}):(0,V.jsx)("div",{className:"w-full h-full bg-muted flex items-center justify-center",children:(0,V.jsx)("span",{className:"text-muted-foreground text-xs",children:"No image"})}),e.label&&(0,V.jsx)("div",{className:"absolute bottom-0.5 left-0.5 right-0.5",children:(0,V.jsx)("span",{className:"inline-block px-1 py-0.5 text-[10px] leading-tight truncate max-w-full",style:{backgroundColor:"rgba(0,0,0,0.7)",color:"#fff"},children:e.label})}),n&&(0,V.jsx)("div",{className:"absolute top-0.5 right-0.5 w-4 h-4 rounded-full bg-primary flex items-center justify-center",children:(0,V.jsx)(tv,{})})]},e.id)})},t.key)})})})})})}function tx(e){return{shift:e.shiftKey,ctrl:e.ctrlKey,alt:e.altKey,meta:e.metaKey}}function t_(e){if(!e)return;let t=e.getContext("2d");t&&(t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,e.width,e.height))}function tD(e,t){if(!e)return;let i=e.getContext("2d");if(i&&(t_(e),!(t.length<6))){i.save(),i.lineWidth=2,i.strokeStyle="rgba(79,70,229,0.9)",i.fillStyle="rgba(79,70,229,0.15)",i.beginPath(),i.moveTo(t[0],t[1]);for(let e=2;e1?1:t)).toString(16).padStart(2,"0");return 7===e.length?`${e}${i}`:9===e.length?`${e.slice(0,7)}${i}`:e}function tS(e,t){let i=[],n=new Set,o=!1;for(let t of e.map(e=>em(e))){if("undefined"===t){o=!0;continue}n.has(t)||(n.add(t),i.push(t))}if(t){let e=new Set;for(let i of t){let t=em(i);if("undefined"===t){o=!0;continue}n.has(t)||e.add(t)}if(e.size>0)for(let t of Array.from(e).sort((e,t)=>e.localeCompare(t)))n.add(t),i.push(t)}return o&&i.push("undefined"),i}function tE({datasetInfo:e,embeddings:t,labelSearch:i="",labelFilter:n=null}){let o=(0,W.useMemo)(()=>(function(e){let t=new Map;if(!e)return t;for(let i of e.labels){let e=em(i);t.set(e,(t.get(e)??0)+1)}return t})(t),[t]),r=(0,W.useMemo)(()=>tS(e?.labels??[],t?.labels??null),[e?.labels,t?.labels]),s=(0,W.useMemo)(()=>{let e,t=(e=o.size,o.has("undefined")&&(e-=1),e);if(t>0)return t;let i=r.length;return r.includes("undefined")&&(i-=1),i},[o,r]),a=s>20,l=(0,W.useMemo)(()=>(function(e){let t,{datasetLabels:i,embeddings:n,distinctColoringDisabled:o,labelFilter:r=null,unselectedAlpha:s=.12}=e;if(!n)return null;let a=tS(i,n.labels);if(a.length>65535)return console.warn(`Too many labels (${a.length}) for uint16 categories; collapsing to a single color.`),{uniqueLabels:["undefined"],categories:new Uint16Array(n.labels.length),palette:[ed]};let l={};for(let e=0;e"undefined"===e?el:ed);else{let e=ep(a);t=a.map(t=>e[t]??ed)}let u=function(e){let{palette:t,labels:i,labelFilter:n,unselectedAlpha:o}=e;return n&&i.includes(n)?t.map((e,t)=>i[t]===n?e:tC(e,o)):t}({palette:t,labels:a,labelFilter:r,unselectedAlpha:s});return{uniqueLabels:a,categories:h,palette:u}})({datasetLabels:e?.labels??[],embeddings:t,distinctColoringDisabled:a,labelFilter:n}),[e?.labels,t,a,n]),d=(0,W.useMemo)(()=>(function(e){let{labelsInfo:t,labelUniverse:i,distinctColoringDisabled:n,labelFilter:o=null,unselectedAlpha:r=.12}=e,s={};if(t){for(let e=0;e(function(e){let{labelUniverse:t,labelCounts:i,query:n}=e,o=t.length>0?[...t]:Array.from(i.keys()),r=n.trim().toLowerCase(),s=r?o.filter(e=>e.toLowerCase().includes(r)):o,a=i.size>0;return s.sort((e,t)=>{if("undefined"===e&&"undefined"!==t)return 1;if("undefined"===t&&"undefined"!==e)return -1;if(a){let n=i.get(e)??0,o=i.get(t)??0;if(o!==n)return o-n}return e.localeCompare(t)})})({labelUniverse:r,labelCounts:o,query:i}),[r,o,i]);return{labelCounts:o,labelUniverse:r,distinctLabelCount:s,distinctColoringDisabled:a,labelsInfo:l,labelColorMap:d,legendLabels:h}}function tA(e,t){return e.find(e=>e.geometry===t)}async function tk(){let e=await fetch("/api/dataset");if(!e.ok)throw Error(`Failed to fetch dataset: ${e.statusText}`);return e.json()}async function tz(e=0,t=100,i){let n=new URLSearchParams({offset:e.toString(),limit:t.toString()});i&&n.set("label",i);let o=await fetch(`/api/samples?${n}`);if(!o.ok)throw Error(`Failed to fetch samples: ${o.statusText}`);return o.json()}async function tP(e){let t=new URLSearchParams;e&&t.set("layout_key",e);let i=t.toString(),n=await fetch(`/api/embeddings${i?`?${i}`:""}`);if(!n.ok)throw Error(`Failed to fetch embeddings: ${n.statusText}`);return n.json()}async function tR(e){let t=await fetch("/api/samples/batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sample_ids:e})});if(!t.ok)throw Error(`Failed to fetch samples batch: ${t.statusText}`);return(await t.json()).samples}async function tN(e){let t=await fetch("/api/selection/lasso",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({layout_key:e.layoutKey,polygon:Array.from(e.polygon),offset:e.offset??0,limit:e.limit??100,include_thumbnails:e.includeThumbnails??!0}),signal:e.signal});if(!t.ok)throw Error(`Failed to fetch lasso selection: ${t.statusText}`);return t.json()}function tO({className:t="",layoutKey:i,geometry:n}){let{datasetInfo:o,embeddingsByLayoutKey:r,setEmbeddingsForLayout:s,selectedIds:a,setSelectedIds:l,beginLassoSelection:d,hoveredId:h,setHoveredId:u,setActiveLayoutKey:c,labelFilter:p}=eg(),[m,f]=(0,W.useState)("euclidean"),g=(0,W.useMemo)(()=>(function(e){let t=new Set;for(let i of e)t.add(i.geometry);return Array.from(t)})(o?.layouts??[]),[o?.layouts]);(0,W.useEffect)(()=>{n||0!==g.length&&(g.includes(m)||f(g[0]))},[g,n,m]);let v=n??m,w=(0,W.useMemo)(()=>{if(!o)return i??null;if(i&&o.layouts.some(e=>e.layout_key===i))return i;let e=tA(o.layouts,v);return e?.layout_key??o.layouts[0]?.layout_key??null},[o,i,v]),b=w?r[w]??null:null;(0,W.useEffect)(()=>{w&&c(w)},[w,c]),(0,W.useEffect)(()=>{if(!w||r[w])return;let e=!1;return tP(w).then(t=>{e||s(w,t)}).catch(t=>{e||console.error("Failed to load embeddings:",t)}),()=>{e=!0}},[r,w,s]);let{labelsInfo:y}=tE({datasetInfo:o,embeddings:b,labelFilter:p}),{canvasRef:x,overlayCanvasRef:_,containerRef:D,handlePointerDown:C,handlePointerMove:S,handlePointerUp:E,handlePointerLeave:A,handleDoubleClick:k,rendererError:z}=function({embeddings:t,labelsInfo:i,selectedIds:n,hoveredId:o,setSelectedIds:r,beginLassoSelection:s,setHoveredId:a,hoverEnabled:l=!0}){let d=(0,W.useRef)(null),h=(0,W.useRef)(null),u=(0,W.useRef)(null),c=(0,W.useRef)(null),[p,m]=(0,W.useState)(null),f=(0,W.useRef)(!1),g=(0,W.useRef)(!1),v=(0,W.useRef)(!1),w=(0,W.useRef)(0),b=(0,W.useRef)(0),y=(0,W.useRef)(0),x=(0,W.useRef)(0),_=(0,W.useRef)([]),D=(0,W.useRef)(null),C=(0,W.useRef)(-1),S=(0,W.useMemo)(()=>{if(!t)return null;let e=new Map;for(let i=0;i{f.current||(f.current=!0,requestAnimationFrame(()=>{f.current=!1;let e=c.current;if(e){try{e.render()}catch(t){console.error("hyper-scatter renderer.render() failed:",t);try{e.destroy()}catch{}c.current=null,m("This browser can't render the scatter plot (WebGL2 is required). Please use Chrome/Edge/Firefox."),t_(h.current);return}v.current&&tD(h.current,_.current)}}))},[]),A=(0,W.useCallback)(e=>{let t=d.current;if(!t)return{x:0,y:0};let i=t.getBoundingClientRect();return{x:e.clientX-i.left,y:e.clientY-i.top}},[]),k=(0,W.useCallback)(()=>{if(!h.current)return;t_(h.current);let e=D.current;e&&e.length>=6&&tD(h.current,e)},[]),z=(0,W.useCallback)(()=>{D.current=null,t_(h.current)},[]),P=(0,W.useCallback)(()=>{(g.current=!1,v.current=!1,_.current=[],D.current)?k():t_(h.current)},[k]);(0,W.useEffect)(()=>{if(!t||!i||!d.current||!u.current)return;let n=!1;return(async()=>{if(m(null),!function(){try{if("undefined"==typeof document)return!1;return!!document.createElement("canvas").getContext("webgl2")}catch{return!1}}())return m("This browser doesn't support WebGL2, so the scatter plot can't be displayed. Please use Chrome/Edge/Firefox.");try{let o=await e.A(20606);if(n)return;let r=u.current,s=d.current;if(!r||!s)return;c.current&&(c.current.destroy(),c.current=null);let a=r.getBoundingClientRect(),l=Math.floor(a.width),p=Math.floor(a.height);h.current&&(h.current.width=Math.max(1,l),h.current.height=Math.max(1,p),h.current.style.width=`${l}px`,h.current.style.height=`${p}px`,k());let f=t.coords,g=new Float32Array(2*f.length);for(let e=0;e{n=!0,P(),c.current&&(c.current.destroy(),c.current=null)}},[t,i,k,E,P]),(0,W.useEffect)(()=>{let e=c.current;if(!e||!t||!S)return;let i=new Set;for(let e of n){let t=S.get(e);"number"==typeof t&&i.add(t)}if(e.setSelection(i),!l){e.setHovered(-1),C.current=-1,E();return}let r=o?S.get(o)??-1:-1;e.setHovered(r),C.current=r,E()},[t,o,l,S,E,n]),(0,W.useEffect)(()=>{let e=u.current;if(!e)return;let t=()=>{let t=e.getBoundingClientRect(),i=Math.floor(t.width),n=Math.floor(t.height);if(!(i>0)||!(n>0))return;h.current&&(h.current.width=Math.max(1,i),h.current.height=Math.max(1,n),h.current.style.width=`${i}px`,h.current.style.height=`${n}px`,k());let o=c.current;o&&(o.resize(i,n),E())};t();let i=new ResizeObserver(t);return i.observe(e),()=>i.disconnect()},[k,E]),(0,W.useEffect)(()=>{let e=d.current;if(!e)return;let t=e=>{let t=c.current;if(!t)return;e.preventDefault();let i=A(e),n=-e.deltaY/100;t.zoom(i.x,i.y,n,tx(e)),E()};return e.addEventListener("wheel",t,{passive:!1}),()=>e.removeEventListener("wheel",t)},[A,E]);let R=(0,W.useCallback)(e=>{if(!c.current||"number"==typeof e.button&&0!==e.button)return;let t=A(e);w.current=t.x,b.current=t.y,y.current=t.x,x.current=t.y,D.current&&z(),e.shiftKey?(v.current=!0,g.current=!1,_.current=[t.x,t.y],tD(h.current,_.current)):(g.current=!0,v.current=!1);try{e.currentTarget.setPointerCapture(e.pointerId)}catch{}e.preventDefault()},[z,A]),N=(0,W.useCallback)(e=>{let i=c.current;if(!i)return;let n=A(e);if(g.current){let t=n.x-y.current,o=n.y-x.current;y.current=n.x,x.current=n.y,i.pan(t,o,tx(e)),E();return}if(v.current){let e=_.current,t=e[e.length-2]??n.x,i=e[e.length-1]??n.y,o=n.x-t,r=n.y-i;o*o+r*r>=4&&(e.push(n.x,n.y),tD(h.current,e));return}if(!l){-1!==C.current&&(C.current=-1,i.setHovered(-1),E());return}let o=i.hitTest(n.x,n.y),r=o?o.index:-1;r===C.current||(C.current=r,i.setHovered(r),t&&(r>=0&&r{let i=c.current;if(!i||!t)return void P();if(v.current){let e=_.current.slice();if(D.current=e.length>=6?e:null,P(),k(),e.length>=6)try{let n=new Float32Array(e),o=i.lassoSelect(n),r=o.geometry?.coords;if(!r||r.length<6)return;i.setSelection(new Set);let a=function(e,t){let i=Math.floor(e.length/2);if(i<=512)return Array.from(e);let n=Array(1024);for(let t=0;t<512;t++){let o=Math.floor(t*i/512);n[2*t]=e[2*o],n[2*t+1]=e[2*o+1]}return n}(r,0);if(a.length<6)return;s({layoutKey:t.layout_key,polygon:a})}catch(e){console.error("Lasso selection failed:",e)}E();return}let o=A(e),a=o.x-w.current,l=o.y-b.current;if(a*a+l*l<=36){let s=i.hitTest(o.x,o.y),a=s?s.index:-1;if(a>=0&&a{let t=c.current;t&&(C.current=-1,a(null),t.setHovered(-1),E()),P()},[E,a,P]),handleDoubleClick:(0,W.useCallback)(e=>{let t=c.current;t&&(z(),P(),t.setSelection(new Set),r(new Set,"scatter"),E())},[z,E,r,P]),rendererError:p}}({embeddings:b,labelsInfo:y,selectedIds:a,hoveredId:h,setSelectedIds:l,beginLassoSelection:d,setHoveredId:u,hoverEnabled:!p}),P=(0,W.useCallback)(()=>{w&&c(w)},[w,c]),R=w?"Loading embeddings...":"No embeddings layout available";return(0,V.jsx)(tf,{className:t,children:(0,V.jsx)("div",{className:"flex-1 flex min-h-0",children:(0,V.jsxs)("div",{ref:D,className:"flex-1 relative min-w-0",children:[(0,V.jsx)("canvas",{ref:x,className:"absolute inset-0",style:{zIndex:1},onPointerDown:e=>{P(),C(e)},onPointerMove:S,onPointerUp:E,onPointerCancel:E,onPointerLeave:A,onDoubleClick:k,onPointerEnter:P}),(0,V.jsx)("canvas",{ref:_,className:"absolute inset-0 pointer-events-none",style:{zIndex:20}}),z?(0,V.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/85 z-10 p-6",children:(0,V.jsxs)("div",{className:"max-w-md text-center",children:[(0,V.jsx)("div",{className:"text-sm font-semibold text-foreground mb-2",children:"Browser not supported"}),(0,V.jsx)("div",{className:"text-sm text-muted-foreground",children:z})]})}):!b&&(0,V.jsx)("div",{className:"absolute inset-0 flex items-center justify-center bg-card/80 z-10",children:(0,V.jsx)("div",{className:"text-muted-foreground",children:R})})]})})})}class tI{}class tM extends tI{constructor(e,t,i){super(),this.viewId=e,this.groupId=t,this.panelId=i}}class tL extends tI{constructor(e,t){super(),this.viewId=e,this.paneId=t}}class tT{constructor(){}static getInstance(){return tT.INSTANCE}hasData(e){return e&&e===this.proto}clearData(e){this.hasData(e)&&(this.proto=void 0,this.data=void 0)}getData(e){if(this.hasData(e))return this.data}setData(e,t){t&&(this.data=e,this.proto=t)}}function tj(){let e=tT.getInstance();if(e.hasData(tM.prototype))return e.getData(tM.prototype)[0]}function tG(){let e=tT.getInstance();if(e.hasData(tL.prototype))return e.getData(tL.prototype)[0]}tT.INSTANCE=new tT,(N||(N={})).any=(...e)=>t=>{let i=e.map(e=>e(t));return{dispose:()=>{i.forEach(e=>{e.dispose()})}}};class tV{constructor(){this._defaultPrevented=!1}get defaultPrevented(){return this._defaultPrevented}preventDefault(){this._defaultPrevented=!0}}class tW{constructor(){this._isAccepted=!1}get isAccepted(){return this._isAccepted}accept(){this._isAccepted=!0}}class tH{static create(){var e;return new tH(null!=(e=Error().stack)?e:"")}constructor(e){this.value=e}print(){console.warn("dockview: stacktrace",this.value)}}class tF{constructor(e,t){this.callback=e,this.stacktrace=t}}class tB{static setLeakageMonitorEnabled(e){e!==tB.ENABLE_TRACKING&&tB.MEMORY_LEAK_WATCHER.clear(),tB.ENABLE_TRACKING=e}get value(){return this._last}constructor(e){this.options=e,this._listeners=[],this._disposed=!1}get event(){return!this._event&&(this._event=e=>{var t;(null==(t=this.options)?void 0:t.replay)&&void 0!==this._last&&e(this._last);let i=new tF(e,tB.ENABLE_TRACKING?tH.create():void 0);return this._listeners.push(i),{dispose:()=>{let e=this._listeners.indexOf(i);e>-1?this._listeners.splice(e,1):tB.ENABLE_TRACKING}}},tB.ENABLE_TRACKING&&tB.MEMORY_LEAK_WATCHER.add(this._event,tH.create())),this._event}fire(e){var t;for(let i of((null==(t=this.options)?void 0:t.replay)&&(this._last=e),this._listeners))i.callback(e)}dispose(){!this._disposed&&(this._disposed=!0,this._listeners.length>0&&(tB.ENABLE_TRACKING&&queueMicrotask(()=>{var e;for(let t of this._listeners)console.warn("dockview: stacktrace",null==(e=t.stacktrace)?void 0:e.print())}),this._listeners=[]),tB.ENABLE_TRACKING&&this._event&&tB.MEMORY_LEAK_WATCHER.delete(this._event))}}function t$(e,t,i,n){return e.addEventListener(t,i,n),{dispose:()=>{e.removeEventListener(t,i,n)}}}tB.ENABLE_TRACKING=!1,tB.MEMORY_LEAK_WATCHER=new class{constructor(){this.events=new Map}get size(){return this.events.size}add(e,t){this.events.set(e,t)}delete(e){this.events.delete(e)}clear(){this.events.clear()}};class tU{constructor(){this._onFired=new tB,this._currentFireCount=0,this._queued=!1,this.onEvent=e=>{let t=this._currentFireCount;return this._onFired.event(()=>{this._currentFireCount>t&&e()})}}fire(){this._currentFireCount++,this._queued||(this._queued=!0,queueMicrotask(()=>{this._queued=!1,this._onFired.fire()}))}dispose(){this._onFired.dispose()}}(y=O||(O={})).NONE={dispose:()=>{}},y.from=function(e){return{dispose:()=>{e()}}};class tK{get isDisposed(){return this._isDisposed}constructor(...e){this._isDisposed=!1,this._disposables=e}addDisposables(...e){e.forEach(e=>this._disposables.push(e))}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposables.forEach(e=>e.dispose()),this._disposables=[])}}class tJ{constructor(){this._disposable=O.NONE}set value(e){this._disposable&&this._disposable.dispose(),this._disposable=e}dispose(){this._disposable&&(this._disposable.dispose(),this._disposable=O.NONE)}}class tZ extends tK{constructor(e){super(),this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._value=null,this.addDisposables(this._onDidChange,tX(e,e=>{let t=e.target.scrollWidth>e.target.clientWidth,i=e.target.scrollHeight>e.target.clientHeight;this._value={hasScrollX:t,hasScrollY:i},this._onDidChange.fire(this._value)}))}}function tX(e,t){let i=new ResizeObserver(e=>{requestAnimationFrame(()=>{t(e[0])})});return i.observe(e),{dispose:()=>{i.unobserve(e),i.disconnect()}}}let tq=(e,...t)=>{for(let i of t)e.classList.contains(i)&&e.classList.remove(i)},tY=(e,...t)=>{for(let i of t)e.classList.contains(i)||e.classList.add(i)},tQ=(e,t,i)=>{let n=e.classList.contains(t);i&&!n&&e.classList.add(t),!i&&n&&e.classList.remove(t)};function t0(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}class t1 extends tK{constructor(e){super(),this._onDidFocus=new tB,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new tB,this.onDidBlur=this._onDidBlur.event,this.addDisposables(this._onDidFocus,this._onDidBlur);let t=t0(document.activeElement,e),i=!1;const n=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},o=()=>{t&&(i=!0,window.setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{t0(document.activeElement,e)!==t&&(t?o():n())},this.addDisposables(t$(e,"focus",n,!0)),this.addDisposables(t$(e,"blur",o,!0))}refreshState(){this._refreshStateHandler()}}let t2="dv-quasiPreventDefault";function t5(e){let{left:t,top:i,width:n,height:o}=e.getBoundingClientRect();return{left:t+window.scrollX,top:i+window.scrollY,width:n,height:o}}function t3(e=document){var t;let i,n=(t=["IFRAME","WEBVIEW"],i=[],!function e(n){if(n.nodeType===Node.ELEMENT_NODE)for(let o of(t.includes(n.tagName)&&i.push(n),n.shadowRoot&&e(n.shadowRoot),n.children))e(o)}(document.documentElement),i),o=new WeakMap;for(let e of n)o.set(e,e.style.pointerEvents),e.style.pointerEvents="none";return{release:()=>{var e;for(let t of n)t.style.pointerEvents=null!=(e=o.get(t))?e:"auto";n.splice(0,n.length)}}}class t4{constructor(e){this.element=e,this._classNames=[]}setClassNames(e){for(let e of this._classNames)tQ(this.element,e,!1);for(let t of(this._classNames=e.split(" ").filter(e=>e.trim().length>0),this._classNames))tQ(this.element,t,!0)}}function t9(e){if(0===e.length)throw Error("Invalid tail call");return[e.slice(0,e.length-1),e[e.length-1]]}function t6(e,t){if(e.length!==t.length)return!1;for(let i=0;i-1&&(e.splice(i,1),e.unshift(t))}function t7(e,t){let i=e.indexOf(t);i>-1&&(e.splice(i,1),e.push(t))}function ie(e,t){let i=e.findIndex(e=>e===t);return i>-1&&(e.splice(i,1),!0)}let it=(e,t,i)=>t>i?t:Math.min(i,Math.max(e,t)),ii=()=>{let e=1;return{next:()=>(e++).toString()}},io=(e,t)=>{let i=[];if("number"!=typeof t&&(t=e,e=0),e<=t)for(let n=e;nt;n--)i.push(n);return i};class ir{set size(e){this._size=e}get size(){return this._size}get cachedVisibleSize(){return this._cachedVisibleSize}get visible(){return void 0===this._cachedVisibleSize}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,i,n){this.container=e,this.view=t,this.disposable=n,this._cachedVisibleSize=void 0,"number"==typeof i?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}setVisible(e,t){var i;e!==this.visible&&(e?(this.size=it(null!=(i=this._cachedVisibleSize)?i:0,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize="number"==typeof t?t:this.size,this.size=0),this.container.classList.toggle("visible",e),this.view.setVisible&&this.view.setVisible(e))}dispose(){return this.disposable.dispose(),this.view}}(x=I||(I={})).HORIZONTAL="HORIZONTAL",x.VERTICAL="VERTICAL",(_=M||(M={}))[_.MAXIMUM=0]="MAXIMUM",_[_.MINIMUM=1]="MINIMUM",_[_.DISABLED=2]="DISABLED",_[_.ENABLED=3]="ENABLED",(D=L||(L={})).Low="low",D.High="high",D.Normal="normal",(C=T||(T={})).Distribute={type:"distribute"},C.Split=function(e){return{type:"split",index:e}},C.Invisible=function(e){return{type:"invisible",cachedVisibleSize:e}};class is{get contentSize(){return this._contentSize}get size(){return this._size}set size(e){this._size=e}get orthogonalSize(){return this._orthogonalSize}set orthogonalSize(e){this._orthogonalSize=e}get length(){return this.viewItems.length}get proportions(){return this._proportions?[...this._proportions]:void 0}get orientation(){return this._orientation}set orientation(e){this._orientation=e;let t=this.size;this.size=this.orthogonalSize,this.orthogonalSize=t,tq(this.element,"dv-horizontal","dv-vertical"),this.element.classList.add(this.orientation==I.HORIZONTAL?"dv-horizontal":"dv-vertical")}get minimumSize(){return this.viewItems.reduce((e,t)=>e+t.minimumSize,0)}get maximumSize(){return 0===this.length?1/0:this.viewItems.reduce((e,t)=>e+t.maximumSize,0)}get startSnappingEnabled(){return this._startSnappingEnabled}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}get endSnappingEnabled(){return this._endSnappingEnabled}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}get disabled(){return this._disabled}set disabled(e){this._disabled=e,tQ(this.element,"dv-splitview-disabled",e)}get margin(){return this._margin}set margin(e){this._margin=e,tQ(this.element,"dv-splitview-has-margin",0!==e)}constructor(e,t){var i,n;this.container=e,this.viewItems=[],this.sashes=[],this._size=0,this._orthogonalSize=0,this._contentSize=0,this._proportions=void 0,this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this._disabled=!1,this._margin=0,this._onDidSashEnd=new tB,this.onDidSashEnd=this._onDidSashEnd.event,this._onDidAddView=new tB,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new tB,this.onDidRemoveView=this._onDidRemoveView.event,this.resize=(e,t,i=this.viewItems.map(e=>e.size),n,o,r=-1/0,s=1/0,a,l)=>{if(e<0||e>this.viewItems.length)return 0;let d=io(e,-1),h=io(e+1,this.viewItems.length);if(o)for(let e of o)t8(d,e),t8(h,e);if(n)for(let e of n)t7(d,e),t7(h,e);let u=d.map(e=>this.viewItems[e]),c=d.map(e=>i[e]),p=h.map(e=>this.viewItems[e]),m=h.map(e=>i[e]),f=d.reduce((e,t)=>e+this.viewItems[t].minimumSize-i[t],0),g=d.reduce((e,t)=>e+this.viewItems[t].maximumSize-i[t],0),v=0===h.length?1/0:h.reduce((e,t)=>e+i[t]-this.viewItems[t].minimumSize,0),w=Math.max(f,0===h.length?-1/0:h.reduce((e,t)=>e+i[t]-this.viewItems[t].maximumSize,0)),b=Math.min(v,g),y=!1;if(a){let e=this.viewItems[a.index],i=t>=a.limitDelta;y=i!==e.visible,e.setVisible(i,a.size)}if(!y&&l){let e=this.viewItems[l.index],i=t{let i=void 0===e.visible||e.visible?e.size:{type:"invisible",cachedVisibleSize:e.size},n=e.view;this.addView(n,i,t,!0)}),this._contentSize=this.viewItems.reduce((e,t)=>e+t.size,0),this.saveProportions())}style(e){(null==e?void 0:e.separatorBorder)==="transparent"?(tq(this.element,"dv-separator-border"),this.element.style.removeProperty("--dv-separator-border")):(tY(this.element,"dv-separator-border"),(null==e?void 0:e.separatorBorder)&&this.element.style.setProperty("--dv-separator-border",e.separatorBorder))}isViewVisible(e){if(e<0||e>=this.viewItems.length)throw Error("Index out of bounds");return this.viewItems[e].visible}setViewVisible(e,t){if(e<0||e>=this.viewItems.length)throw Error("Index out of bounds");let i=this.viewItems[e];i.setVisible(t,i.size),this.distributeEmptySpace(e),this.layoutViews(),this.saveProportions()}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}resizeView(e,t){if(e<0||e>=this.viewItems.length)return;let i=io(this.viewItems.length).filter(t=>t!==e),n=[...i.filter(e=>this.viewItems[e].priority===L.Low),e],o=i.filter(e=>this.viewItems[e].priority===L.High),r=this.viewItems[e];t=it(t=Math.round(t),r.minimumSize,Math.min(r.maximumSize,this._size)),r.size=t,this.relayout(n,o)}getViews(){return this.viewItems.map(e=>e.view)}onDidChange(e,t){let i=this.viewItems.indexOf(e);if(i<0||i>=this.viewItems.length)return;t=it(t="number"==typeof t?t:e.size,e.minimumSize,e.maximumSize),e.size=t;let n=io(this.viewItems.length).filter(e=>e!==i),o=[...n.filter(e=>this.viewItems[e].priority===L.Low),i],r=n.filter(e=>this.viewItems[e].priority===L.High);this.relayout([...o,i],r)}addView(e,t={type:"distribute"},i=this.viewItems.length,n){let o,r=document.createElement("div");r.className="dv-view",r.appendChild(e.element),o="number"==typeof t?t:"split"===t.type?this.getViewSize(t.index)/2:"invisible"===t.type?{cachedVisibleSize:t.cachedVisibleSize}:e.minimumSize;let s=e.onDidChange(e=>this.onDidChange(a,e.size)),a=new ir(r,e,o,{dispose:()=>{s.dispose(),this.viewContainer.removeChild(r)}});if(i===this.viewItems.length?this.viewContainer.appendChild(r):this.viewContainer.insertBefore(r,this.viewContainer.children.item(i)),this.viewItems.splice(i,0,a),this.viewItems.length>1){let e=document.createElement("div");e.className="dv-sash";let t=t=>{let i,n;for(let e of this.viewItems)e.enabled=!1;let o=t3(),r=this._orientation===I.HORIZONTAL?t.clientX:t.clientY,s=function(e,t){for(let i=0;it.container===e),a=this.viewItems.map(e=>e.size),l=io(s,-1),d=io(s+1,this.viewItems.length),h=l.reduce((e,t)=>e+(this.viewItems[t].minimumSize-a[t]),0),u=l.reduce((e,t)=>e+(this.viewItems[t].viewMaximumSize-a[t]),0),c=0===d.length?1/0:d.reduce((e,t)=>e+(a[t]-this.viewItems[t].minimumSize),0),p=Math.max(h,0===d.length?-1/0:d.reduce((e,t)=>e+(a[t]-this.viewItems[t].viewMaximumSize),0)),m=Math.min(c,u),f=this.findFirstSnapIndex(l),g=this.findFirstSnapIndex(d);if("number"==typeof f){let e=this.viewItems[f],t=Math.floor(e.viewMinimumSize/2);i={index:f,limitDelta:e.visible?p-t:p+t,size:e.size}}if("number"==typeof g){let e=this.viewItems[g],t=Math.floor(e.viewMinimumSize/2);n={index:g,limitDelta:e.visible?m+t:m-t,size:e.size}}let v=e=>{let t=this._orientation===I.HORIZONTAL?e.clientX:e.clientY;this.resize(s,t-r,a,void 0,void 0,p,m,i,n),this.distributeEmptySpace(),this.layoutViews()},w=()=>{for(let e of this.viewItems)e.enabled=!0;o.release(),this.saveProportions(),document.removeEventListener("pointermove",v),document.removeEventListener("pointerup",w),document.removeEventListener("pointercancel",w),document.removeEventListener("contextmenu",w),this._onDidSashEnd.fire(void 0)};document.addEventListener("pointermove",v),document.addEventListener("pointerup",w),document.addEventListener("pointercancel",w),document.addEventListener("contextmenu",w)};e.addEventListener("pointerdown",t),this.sashContainer.appendChild(e),this.sashes.push({container:e,disposable:()=>{e.removeEventListener("pointerdown",t),this.sashContainer.removeChild(e)}})}n||this.relayout([i]),n||"number"==typeof t||"distribute"!==t.type||this.distributeViewSizes(),this._onDidAddView.fire(e)}distributeViewSizes(){let e=[],t=0;for(let i of this.viewItems)i.maximumSize-i.minimumSize>0&&(e.push(i),t+=i.size);let i=Math.floor(t/e.length);for(let t of e)t.size=it(i,t.minimumSize,t.maximumSize);let n=io(this.viewItems.length),o=n.filter(e=>this.viewItems[e].priority===L.Low),r=n.filter(e=>this.viewItems[e].priority===L.High);this.relayout(o,r)}removeView(e,t,i=!1){let n=this.viewItems.splice(e,1)[0];if(n.dispose(),this.viewItems.length>=1){let t=Math.max(e-1,0);this.sashes.splice(t,1)[0].disposable()}return i||this.relayout(),t&&"distribute"===t.type&&this.distributeViewSizes(),this._onDidRemoveView.fire(n.view),n.view}getViewCachedVisibleSize(e){if(e<0||e>=this.viewItems.length)throw Error("Index out of bounds");return this.viewItems[e].cachedVisibleSize}moveView(e,t){let i=this.getViewCachedVisibleSize(e),n=void 0===i?this.getViewSize(e):T.Invisible(i),o=this.removeView(e,void 0,!0);this.addView(o,n,t)}layout(e,t){let i=Math.max(this.size,this._contentSize);if(this.size=e,this.orthogonalSize=t,this.proportions){let t=0;for(let i=0;i0&&(n.size=it(Math.round(o*e/t),n.minimumSize,n.maximumSize))}}else{let t=io(this.viewItems.length),n=t.filter(e=>this.viewItems[e].priority===L.Low),o=t.filter(e=>this.viewItems[e].priority===L.High);this.resize(this.viewItems.length-1,e-i,void 0,n,o)}this.distributeEmptySpace(),this.layoutViews()}relayout(e,t){let i=this.viewItems.reduce((e,t)=>e+t.size,0);this.resize(this.viewItems.length-1,this._size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}distributeEmptySpace(e){let t=this.viewItems.reduce((e,t)=>e+t.size,0),i=this.size-t,n=io(this.viewItems.length-1,-1),o=n.filter(e=>this.viewItems[e].priority===L.Low);for(let e of n.filter(e=>this.viewItems[e].priority===L.High))t8(n,e);for(let e of o)t7(n,e);"number"==typeof e&&t7(n,e);for(let e=0;0!==i&&e0&&(this._proportions=this.viewItems.map(e=>e.visible?e.size/this._contentSize:void 0))}layoutViews(){if(this._contentSize=this.viewItems.reduce((e,t)=>e+t.size,0),this.updateSashEnablement(),0===this.viewItems.length)return;let e=this.viewItems.filter(e=>e.visible),t=Math.max(0,e.length-1),i=this.margin*t/Math.max(1,e.length),n=0,o=[],r=this.viewItems.reduce((e,t,i)=>{let n=+!!t.visible;return 0===i?e.push(n):e.push(e[i-1]+n),e},[]);this.viewItems.forEach((e,s)=>{n+=this.viewItems[s].size,o.push(n);let a=e.visible?e.size-i:0,l=Math.max(0,r[s]-1),d=0===s||0===l?0:o[s-1]+l/t*i;if(s0)break;if(!e.visible&&e.snap)return t}}updateSashEnablement(){let e=!1,t=this.viewItems.map(t=>e=t.size-t.minimumSize>0||e);e=!1;let i=this.viewItems.map(t=>e=t.maximumSize-t.size>0||e),n=[...this.viewItems].reverse();e=!1;let o=n.map(t=>e=t.size-t.minimumSize>0||e).reverse();e=!1;let r=n.map(t=>e=t.maximumSize-t.size>0||e).reverse(),s=0;for(let e=0;e0||this.startSnappingEnabled)?this.updateSash(n,M.MINIMUM):h&&t[e]&&(s{let t=new tK(e.onDidChangeExpansionState(()=>{this.setupAnimation(),this._onDidChange.fire(void 0)}));this.paneItems.push({pane:e,disposable:{dispose:()=>{t.dispose()}}}),e.orthogonalSize=this.splitview.orthogonalSize}),this.addDisposables(this._onDidChange,this.splitview.onDidSashEnd(()=>{this._onDidChange.fire(void 0)}),this.splitview.onDidAddView(()=>{this._onDidChange.fire()}),this.splitview.onDidRemoveView(()=>{this._onDidChange.fire()}))}setViewVisible(e,t){this.splitview.setViewVisible(e,t)}addPane(e,t,i=this.splitview.length,n=!1){let o=e.onDidChangeExpansionState(()=>{this.setupAnimation(),this._onDidChange.fire(void 0)});this.paneItems.splice(i,0,{pane:e,disposable:{dispose:()=>{o.dispose()}}}),e.orthogonalSize=this.splitview.orthogonalSize,this.splitview.addView(e,t,i,n)}getViewSize(e){return this.splitview.getViewSize(e)}getPanes(){return this.splitview.getViews()}removePane(e,t={skipDispose:!1}){let i=this.paneItems.splice(e,1)[0];return this.splitview.removeView(e),t.skipDispose||(i.disposable.dispose(),i.pane.dispose()),i}moveView(e,t){if(e===t)return;let i=this.removePane(e,{skipDispose:!0});this.skipAnimation=!0;try{this.addPane(i.pane,i.pane.size,t,!1)}finally{this.skipAnimation=!1}}layout(e,t){this.splitview.layout(e,t)}setupAnimation(){this.skipAnimation||(this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=void 0),tY(this.element,"dv-animated"),this.animationTimer=setTimeout(()=>{this.animationTimer=void 0,tq(this.element,"dv-animated")},200))}dispose(){super.dispose(),this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=void 0),this.paneItems.forEach(e=>{e.disposable.dispose(),e.pane.dispose()}),this.paneItems=[],this.splitview.dispose(),this.element.remove()}}class id{get minimumWidth(){return this.view.minimumWidth}get maximumWidth(){return this.view.maximumWidth}get minimumHeight(){return this.view.minimumHeight}get maximumHeight(){return this.view.maximumHeight}get priority(){return this.view.priority}get snap(){return this.view.snap}get minimumSize(){return this.orientation===I.HORIZONTAL?this.minimumHeight:this.minimumWidth}get maximumSize(){return this.orientation===I.HORIZONTAL?this.maximumHeight:this.maximumWidth}get minimumOrthogonalSize(){return this.orientation===I.HORIZONTAL?this.minimumWidth:this.minimumHeight}get maximumOrthogonalSize(){return this.orientation===I.HORIZONTAL?this.maximumWidth:this.maximumHeight}get orthogonalSize(){return this._orthogonalSize}get size(){return this._size}get element(){return this.view.element}get width(){return this.orientation===I.HORIZONTAL?this.orthogonalSize:this.size}get height(){return this.orientation===I.HORIZONTAL?this.size:this.orthogonalSize}constructor(e,t,i,n=0){this.view=e,this.orientation=t,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._orthogonalSize=i,this._size=n,this._disposable=this.view.onDidChange(e=>{e?this._onDidChange.fire({size:this.orientation===I.VERTICAL?e.width:e.height,orthogonalSize:this.orientation===I.VERTICAL?e.height:e.width}):this._onDidChange.fire({})})}setVisible(e){this.view.setVisible&&this.view.setVisible(e)}layout(e,t){this._size=e,this._orthogonalSize=t,this.view.layout(this.width,this.height)}dispose(){this._onDidChange.dispose(),this._disposable.dispose()}}class ih extends tK{get width(){return this.orientation===I.HORIZONTAL?this.size:this.orthogonalSize}get height(){return this.orientation===I.HORIZONTAL?this.orthogonalSize:this.size}get minimumSize(){return 0===this.children.length?0:Math.max(...this.children.map((e,t)=>this.splitview.isViewVisible(t)?e.minimumOrthogonalSize:0))}get maximumSize(){return Math.min(...this.children.map((e,t)=>this.splitview.isViewVisible(t)?e.maximumOrthogonalSize:1/0))}get minimumOrthogonalSize(){return this.splitview.minimumSize}get maximumOrthogonalSize(){return this.splitview.maximumSize}get orthogonalSize(){return this._orthogonalSize}get size(){return this._size}get minimumWidth(){return this.orientation===I.HORIZONTAL?this.minimumOrthogonalSize:this.minimumSize}get minimumHeight(){return this.orientation===I.HORIZONTAL?this.minimumSize:this.minimumOrthogonalSize}get maximumWidth(){return this.orientation===I.HORIZONTAL?this.maximumOrthogonalSize:this.maximumSize}get maximumHeight(){return this.orientation===I.HORIZONTAL?this.maximumSize:this.maximumOrthogonalSize}get priority(){if(0===this.children.length)return L.Normal;let e=this.children.map(e=>void 0===e.priority?L.Normal:e.priority);return e.some(e=>e===L.High)?L.High:e.some(e=>e===L.Low)?L.Low:L.Normal}get disabled(){return this.splitview.disabled}set disabled(e){this.splitview.disabled=e}get margin(){return this.splitview.margin}set margin(e){this.splitview.margin=e,this.children.forEach(t=>{t instanceof ih&&(t.margin=e)})}constructor(e,t,i,n,o,r,s,a){if(super(),this.orientation=e,this.proportionalLayout=t,this.styles=i,this._childrenDisposable=O.NONE,this.children=[],this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._onDidVisibilityChange=new tB,this.onDidVisibilityChange=this._onDidVisibilityChange.event,this._orthogonalSize=o,this._size=n,this.element=document.createElement("div"),this.element.className="dv-branch-node",a){const e={views:a.map(e=>({view:e.node,size:e.node.size,visible:!(e.node instanceof id)||void 0===e.visible||e.visible})),size:this.orthogonalSize};this.children=a.map(e=>e.node),this.splitview=new is(this.element,{orientation:this.orientation,descriptor:e,proportionalLayout:t,styles:i,margin:s})}else this.splitview=new is(this.element,{orientation:this.orientation,proportionalLayout:t,styles:i,margin:s}),this.splitview.layout(this.size,this.orthogonalSize);this.disabled=r,this.addDisposables(this._onDidChange,this._onDidVisibilityChange,this.splitview.onDidSashEnd(()=>{this._onDidChange.fire({})})),this.setupChildrenEvents()}setVisible(e){}isChildVisible(e){if(e<0||e>=this.children.length)throw Error("Invalid index");return this.splitview.isViewVisible(e)}setChildVisible(e,t){if(e<0||e>=this.children.length)throw Error("Invalid index");if(this.splitview.isViewVisible(e)===t)return;let i=0===this.splitview.contentSize;this.splitview.setViewVisible(e,t);let n=0===this.splitview.contentSize;(t&&i||!t&&n)&&this._onDidVisibilityChange.fire({visible:t})}moveChild(e,t){if(e===t)return;if(e<0||e>=this.children.length)throw Error("Invalid from index");e=this.children.length)throw Error("Invalid index");return this.splitview.getViewSize(e)}resizeChild(e,t){if(e<0||e>=this.children.length)throw Error("Invalid index");this.splitview.resizeView(e,t)}layout(e,t){this._size=t,this._orthogonalSize=e,this.splitview.layout(t,e)}addChild(e,t,i,n){if(i<0||i>this.children.length)throw Error("Invalid index");this.splitview.addView(e,t,i,n),this._addChild(e,i)}getChildCachedVisibleSize(e){if(e<0||e>=this.children.length)throw Error("Invalid index");return this.splitview.getViewCachedVisibleSize(e)}removeChild(e,t){if(e<0||e>=this.children.length)throw Error("Invalid index");return this.splitview.removeView(e,t),this._removeChild(e)}_addChild(e,t){this.children.splice(t,0,e),this.setupChildrenEvents()}_removeChild(e){let[t]=this.children.splice(e,1);return this.setupChildrenEvents(),t}setupChildrenEvents(){this._childrenDisposable.dispose(),this._childrenDisposable=new tK(N.any(...this.children.map(e=>e.onDidChange))(e=>{this._onDidChange.fire({size:e.orthogonalSize})}),...this.children.map((e,t)=>e instanceof ih?e.onDidVisibilityChange(({visible:e})=>{this.setChildVisible(t,e)}):O.NONE))}dispose(){this._childrenDisposable.dispose(),this.splitview.dispose(),this.children.forEach(e=>e.dispose()),super.dispose()}}function iu(e,t){if(e instanceof id)return e;if(e instanceof ih)return iu(e.children[t?e.children.length-1:0],t);throw Error("invalid node")}function ic(e,t,i){if(!(e instanceof ih))return new id(e.view,ig(e.orientation),i);{let n=new ih(ig(e.orientation),e.proportionalLayout,e.styles,t,i,e.disabled,e.margin),o=0;for(let r=e.children.length-1;r>=0;r--){let s=e.children[r],a=s instanceof ih?s.orthogonalSize:s.size,l=0===e.size?0:Math.round(t*a/e.size);o+=l,0===r&&(l+=t-o),n.addChild(ic(s,i,l),l,0,!0)}return n}}function ip(e){let t=e.parentElement;if(!t)throw Error("Invalid grid element");if(/\bdv-grid-view\b/.test(t.className))return[];let i=function(e){let t=e.parentElement;if(!t)throw Error("Invalid grid element");let i=t.firstElementChild,n=0;for(;i!==e&&i!==t.lastElementChild&&i;)i=i.nextElementSibling,n++;return n}(t);return[...ip(t.parentElement.parentElement.parentElement),i]}function im(e,t,i){var n,o;if(n=e,(t.length%2==0?ig(n):n)!==("top"===(o=i)||"bottom"===o?I.VERTICAL:I.HORIZONTAL))return[...t,+("right"===i||"bottom"===i)];{let[e,n]=t9(t),o=n;return("right"===i||"bottom"===i)&&(o+=1),[...e,o]}}let ig=e=>e===I.HORIZONTAL?I.VERTICAL:I.HORIZONTAL,iv=(e,t)=>{let i=t===I.VERTICAL?e.box.width:e.box.height;return e.children?{type:"branch",data:e.children.map(e=>iv(e,ig(t))),size:i}:"number"==typeof e.cachedVisibleSize?{type:"leaf",data:e.view.toJSON(),size:e.cachedVisibleSize,visible:!1}:{type:"leaf",data:e.view.toJSON(),size:i}};class iw{get length(){return this._root?this._root.children.length:0}get orientation(){return this.root.orientation}set orientation(e){if(this.root.orientation===e)return;let{size:t,orthogonalSize:i}=this.root;this.root=ic(this.root,i,t),this.root.layout(t,i)}get width(){return this.root.width}get height(){return this.root.height}get minimumWidth(){return this.root.minimumWidth}get minimumHeight(){return this.root.minimumHeight}get maximumWidth(){return this.root.maximumHeight}get maximumHeight(){return this.root.maximumHeight}get locked(){return this._locked}set locked(e){this._locked=e;let t=[this.root];for(;t.length>0;){let i=t.pop();i instanceof ih&&(i.disabled=e,t.push(...i.children))}}get margin(){return this._margin}set margin(e){this._margin=e,this.root.margin=e}maximizedView(){var e;return null==(e=this._maximizedNode)?void 0:e.leaf.view}hasMaximizedView(){return void 0!==this._maximizedNode}maximizeView(e){var t;let i=ip(e.element),[n,o]=this.getNode(i);if(!(o instanceof id)||(null==(t=this._maximizedNode)?void 0:t.leaf)===o)return;this.hasMaximizedView()&&this.exitMaximizedView(),iv(this.getView(),this.orientation);let r=[];!function e(t,i){for(let n=0;n=0;n--){let o=i.children[n];o instanceof id?e.includes(o)||i.setChildVisible(n,!0):t(o)}}(this.root);let t=this._maximizedNode.leaf;this._maximizedNode=void 0,this._onDidMaximizedNodeChange.fire({view:t.view,isMaximized:!1})}serialize(){let e,t=this.maximizedView();t&&(e=ip(t.element)),this.hasMaximizedView()&&this.exitMaximizedView();let i={root:iv(this.getView(),this.orientation),width:this.width,height:this.height,orientation:this.orientation};return e&&(i.maximizedNode={location:e}),t&&this.maximizeView(t),i}dispose(){this.disposable.dispose(),this._onDidChange.dispose(),this._onDidMaximizedNodeChange.dispose(),this._onDidViewVisibilityChange.dispose(),this.root.dispose(),this._maximizedNode=void 0,this.element.remove()}clear(){let e=this.root.orientation;this.root=new ih(e,this.proportionalLayout,this.styles,this.root.size,this.root.orthogonalSize,this.locked,this.margin)}deserialize(e,t){let i=e.orientation,n=i===I.VERTICAL?e.height:e.width;if(this._deserialize(e.root,i,t,n),this.layout(e.width,e.height),e.maximizedNode){let t=e.maximizedNode.location,[i,n]=this.getNode(t);if(!(n instanceof id))return;this.maximizeView(n.view)}}_deserialize(e,t,i,n){this.root=this._deserializeNode(e,t,i,n)}_deserializeNode(e,t,i,n){var o;let r;if("branch"===e.type){let o=e.data.map(n=>({node:this._deserializeNode(n,ig(t),i,e.size),visible:n.visible}));r=new ih(t,this.proportionalLayout,this.styles,e.size,n,this.locked,this.margin,o)}else{let s=i.fromJSON(e);"boolean"==typeof e.visible&&(null==(o=s.setVisible)||o.call(s,e.visible)),r=new id(s,t,n,e.size)}return r}get root(){return this._root}set root(e){let t=this._root;t&&(t.dispose(),this._maximizedNode=void 0,this.element.removeChild(t.element)),this._root=e,this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}normalize(){if(!this._root||1!==this._root.children.length)return;let e=this.root,t=e.children[0];if(t instanceof id)return;e.element.remove();let i=e.removeChild(0);e.dispose(),i.dispose(),this._root=function e(t,i,n){if(!(t instanceof ih))return new id(t.view,t.orientation,n);{let o=new ih(t.orientation,t.proportionalLayout,t.styles,i,n,t.disabled,t.margin);for(let i=t.children.length-1;i>=0;i--){let n=t.children[i];o.addChild(e(n,n.size,n.orthogonalSize),n.size,0,!0)}return o}}(t,t.size,t.orthogonalSize),this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}insertOrthogonalSplitviewAtRoot(){if(!this._root)return;let e=this.root;if(e.element.remove(),this._root=new ih(ig(e.orientation),this.proportionalLayout,this.styles,this.root.orthogonalSize,this.root.size,this.locked,this.margin),0===e.children.length);else if(1===e.children.length){let t=e.children[0];e.removeChild(0).dispose(),e.dispose(),this._root.addChild(ic(t,t.orthogonalSize,t.size),T.Distribute,0)}else this._root.addChild(e,T.Distribute,0);this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(e=>{this._onDidChange.fire(e)})}next(e){return this.progmaticSelect(e)}previous(e){return this.progmaticSelect(e,!0)}getView(e){let t=e?this.getNode(e)[1]:this.root;return this._getViews(t,this.orientation)}_getViews(e,t,i){let n={height:e.height,width:e.width};if(e instanceof id)return{box:n,view:e.view,cachedVisibleSize:i};let o=[];for(let i=0;i-1;n--){let o=i[n],r=e[n]||0;if(t?r-1>-1:r+1l.getChildSize(t));if(l.removeChild(h,t).dispose(),a instanceof ih){p.splice(h,1,...a.children.map(e=>e.size));for(let e=0;e0;)a.removeChild(0)}else{let e=new id(a.view,ig(a.orientation),a.size),t=c?a.orthogonalSize:T.Invisible(a.orthogonalSize);l.addChild(e,t,h)}a.dispose();for(let e=0;e=t.children.length)throw Error("Invalid location");let r=t.children[n];return i.push(t),this.getNode(o,r,i)}}let ib=["disableAutoResizing","proportionalLayout","orientation","hideBorders","className"];class iy extends tK{get element(){return this._element}get disableResizing(){return this._disableResizing}set disableResizing(e){this._disableResizing=e}constructor(e,t=!1){super(),this._disableResizing=t,this._element=e,this.addDisposables(tX(this._element,e=>{if(this.isDisposed||this.disableResizing||!this._element.offsetParent||!function(e){let t=e;for(;null==t?void 0:t.parentNode;)if(t.parentNode===document)return!0;else t=t.parentNode instanceof DocumentFragment?t.parentNode.host:t.parentNode;return!1}(this._element))return;let{width:t,height:i}=e.contentRect;this.layout(t,i)}))}}let ix=ii();function i_(e){switch(e){case"left":return"left";case"right":return"right";case"above":return"top";case"below":return"bottom";default:return"center"}}class iD extends iy{get id(){return this._id}get size(){return this._groups.size}get groups(){return Array.from(this._groups.values()).map(e=>e.value)}get width(){return this.gridview.width}get height(){return this.gridview.height}get minimumHeight(){return this.gridview.minimumHeight}get maximumHeight(){return this.gridview.maximumHeight}get minimumWidth(){return this.gridview.minimumWidth}get maximumWidth(){return this.gridview.maximumWidth}get activeGroup(){return this._activeGroup}get locked(){return this.gridview.locked}set locked(e){this.gridview.locked=e}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._id=ix.next(),this._groups=new Map,this._onDidRemove=new tB,this.onDidRemove=this._onDidRemove.event,this._onDidAdd=new tB,this.onDidAdd=this._onDidAdd.event,this._onDidMaximizedChange=new tB,this.onDidMaximizedChange=this._onDidMaximizedChange.event,this._onDidActiveChange=new tB,this.onDidActiveChange=this._onDidActiveChange.event,this._bufferOnDidLayoutChange=new tU,this.onDidLayoutChange=this._bufferOnDidLayoutChange.onEvent,this._onDidViewVisibilityChangeMicroTaskQueue=new tU,this.onDidViewVisibilityChangeMicroTaskQueue=this._onDidViewVisibilityChangeMicroTaskQueue.onEvent,this.element.style.height="100%",this.element.style.width="100%",this._classNames=new t4(this.element),this._classNames.setClassNames(null!=(i=t.className)?i:""),e.appendChild(this.element),this.gridview=new iw(!!t.proportionalLayout,t.styles,t.orientation,t.locked,t.margin),this.gridview.locked=!!t.locked,this.element.appendChild(this.gridview.element),this.layout(0,0,!0),this.addDisposables(this.gridview.onDidMaximizedNodeChange(e=>{this._onDidMaximizedChange.fire({panel:e.view,isMaximized:e.isMaximized})}),this.gridview.onDidViewVisibilityChange(()=>this._onDidViewVisibilityChangeMicroTaskQueue.fire()),this.onDidViewVisibilityChangeMicroTaskQueue(()=>{this.layout(this.width,this.height,!0)}),O.from(()=>{var e;null==(e=this.element.parentElement)||e.removeChild(this.element)}),this.gridview.onDidChange(()=>{this._bufferOnDidLayoutChange.fire()}),N.any(this.onDidAdd,this.onDidRemove,this.onDidActiveChange)(()=>{this._bufferOnDidLayoutChange.fire()}),this._onDidMaximizedChange,this._onDidViewVisibilityChangeMicroTaskQueue,this._bufferOnDidLayoutChange)}setVisible(e,t){this.gridview.setViewVisible(ip(e.element),t),this._bufferOnDidLayoutChange.fire()}isVisible(e){return this.gridview.isViewVisible(ip(e.element))}updateOptions(e){var t,i,n,o;e.proportionalLayout,e.orientation&&(this.gridview.orientation=e.orientation),"disableResizing"in e&&(this.disableResizing=null!=(t=e.disableAutoResizing)&&t),"locked"in e&&(this.locked=null!=(i=e.locked)&&i),"margin"in e&&(this.gridview.margin=null!=(n=e.margin)?n:0),"className"in e&&this._classNames.setClassNames(null!=(o=e.className)?o:"")}maximizeGroup(e){this.gridview.maximizeView(e),this.doSetGroupActive(e)}isMaximizedGroup(e){return this.gridview.maximizedView()===e}exitMaximizedGroup(){this.gridview.exitMaximizedView()}hasMaximizedGroup(){return this.gridview.hasMaximizedView()}doAddGroup(e,t=[0],i){this.gridview.addView(e,null!=i?i:T.Distribute,t),this._onDidAdd.fire(e)}doRemoveGroup(e,t){if(!this._groups.has(e.id))throw Error("invalid operation");let i=this._groups.get(e.id),n=this.gridview.remove(e,T.Distribute);if(!i||(null==t?void 0:t.skipDispose)||(i.disposable.dispose(),i.value.dispose(),this._groups.delete(e.id),this._onDidRemove.fire(e)),!(null==t?void 0:t.skipActive)&&this._activeGroup===e){let e=Array.from(this._groups.values());this.doSetGroupActive(e.length>0?e[0].value:void 0)}return n}getPanel(e){var t;return null==(t=this._groups.get(e))?void 0:t.value}doSetGroupActive(e){this._activeGroup!==e&&(this._activeGroup&&this._activeGroup.setActive(!1),e&&e.setActive(!0),this._activeGroup=e,this._onDidActiveChange.fire(e))}removeGroup(e){this.doRemoveGroup(e)}moveToNext(e){var t;if(e||(e={}),!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}let i=ip(e.group.element),n=null==(t=this.gridview.next(i))?void 0:t.view;this.doSetGroupActive(n)}moveToPrevious(e){var t;if(e||(e={}),!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}let i=ip(e.group.element),n=null==(t=this.gridview.previous(i))?void 0:t.view;this.doSetGroupActive(n)}layout(e,t,i){(i||e!==this.width||t!==this.height)&&(this.gridview.element.style.height=`${t}px`,this.gridview.element.style.width=`${e}px`,this.gridview.layout(e,t))}dispose(){for(let e of(this._onDidActiveChange.dispose(),this._onDidAdd.dispose(),this._onDidRemove.dispose(),this.groups))e.dispose();this.gridview.dispose(),super.dispose()}}class iC{get minimumSize(){return this.component.minimumSize}get maximumSize(){return this.component.maximumSize}get width(){return this.component.width}get height(){return this.component.height}get length(){return this.component.length}get orientation(){return this.component.orientation}get panels(){return this.component.panels}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidAddView(){return this.component.onDidAddView}get onDidRemoveView(){return this.component.onDidRemoveView}constructor(e){this.component=e}removePanel(e,t){this.component.removePanel(e,t)}focus(){this.component.focus()}getPanel(e){return this.component.getPanel(e)}layout(e,t){return this.component.layout(e,t)}addPanel(e){return this.component.addPanel(e)}movePanel(e,t){this.component.movePanel(e,t)}fromJSON(e){this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class iS{get minimumSize(){return this.component.minimumSize}get maximumSize(){return this.component.maximumSize}get width(){return this.component.width}get height(){return this.component.height}get panels(){return this.component.panels}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidAddView(){return this.component.onDidAddView}get onDidRemoveView(){return this.component.onDidRemoveView}get onDidDrop(){return this.component.onDidDrop}get onUnhandledDragOverEvent(){return this.component.onUnhandledDragOverEvent}constructor(e){this.component=e}removePanel(e){this.component.removePanel(e)}getPanel(e){return this.component.getPanel(e)}movePanel(e,t){this.component.movePanel(e,t)}focus(){this.component.focus()}layout(e,t){this.component.layout(e,t)}addPanel(e){return this.component.addPanel(e)}fromJSON(e){this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class iE{get width(){return this.component.width}get height(){return this.component.height}get minimumHeight(){return this.component.minimumHeight}get maximumHeight(){return this.component.maximumHeight}get minimumWidth(){return this.component.minimumWidth}get maximumWidth(){return this.component.maximumWidth}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidAddPanel(){return this.component.onDidAddGroup}get onDidRemovePanel(){return this.component.onDidRemoveGroup}get onDidActivePanelChange(){return this.component.onDidActiveGroupChange}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get panels(){return this.component.groups}get orientation(){return this.component.orientation}set orientation(e){this.component.updateOptions({orientation:e})}constructor(e){this.component=e}focus(){this.component.focus()}layout(e,t,i=!1){this.component.layout(e,t,i)}addPanel(e){return this.component.addPanel(e)}removePanel(e,t){this.component.removePanel(e,t)}movePanel(e,t){this.component.movePanel(e,t)}getPanel(e){return this.component.getPanel(e)}fromJSON(e){return this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class iA{get id(){return this.component.id}get width(){return this.component.width}get height(){return this.component.height}get minimumHeight(){return this.component.minimumHeight}get maximumHeight(){return this.component.maximumHeight}get minimumWidth(){return this.component.minimumWidth}get maximumWidth(){return this.component.maximumWidth}get size(){return this.component.size}get totalPanels(){return this.component.totalPanels}get onDidActiveGroupChange(){return this.component.onDidActiveGroupChange}get onDidAddGroup(){return this.component.onDidAddGroup}get onDidRemoveGroup(){return this.component.onDidRemoveGroup}get onDidActivePanelChange(){return this.component.onDidActivePanelChange}get onDidAddPanel(){return this.component.onDidAddPanel}get onDidRemovePanel(){return this.component.onDidRemovePanel}get onDidMovePanel(){return this.component.onDidMovePanel}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidDrop(){return this.component.onDidDrop}get onWillDrop(){return this.component.onWillDrop}get onWillShowOverlay(){return this.component.onWillShowOverlay}get onWillDragGroup(){return this.component.onWillDragGroup}get onWillDragPanel(){return this.component.onWillDragPanel}get onUnhandledDragOverEvent(){return this.component.onUnhandledDragOverEvent}get onDidPopoutGroupSizeChange(){return this.component.onDidPopoutGroupSizeChange}get onDidPopoutGroupPositionChange(){return this.component.onDidPopoutGroupPositionChange}get onDidOpenPopoutWindowFail(){return this.component.onDidOpenPopoutWindowFail}get panels(){return this.component.panels}get groups(){return this.component.groups}get activePanel(){return this.component.activePanel}get activeGroup(){return this.component.activeGroup}constructor(e){this.component=e}focus(){this.component.focus()}getPanel(e){return this.component.getGroupPanel(e)}layout(e,t,i=!1){this.component.layout(e,t,i)}addPanel(e){return this.component.addPanel(e)}removePanel(e){this.component.removePanel(e)}addGroup(e){return this.component.addGroup(e)}closeAllGroups(){return this.component.closeAllGroups()}removeGroup(e){this.component.removeGroup(e)}getGroup(e){return this.component.getPanel(e)}addFloatingGroup(e,t){return this.component.addFloatingGroup(e,t)}fromJSON(e,t){this.component.fromJSON(e,t)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}moveToNext(e){this.component.moveToNext(e)}moveToPrevious(e){this.component.moveToPrevious(e)}maximizeGroup(e){this.component.maximizeGroup(e.group)}hasMaximizedGroup(){return this.component.hasMaximizedGroup()}exitMaximizedGroup(){this.component.exitMaximizedGroup()}get onDidMaximizedGroupChange(){return this.component.onDidMaximizedGroupChange}addPopoutGroup(e,t){return this.component.addPopoutGroup(e,t)}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class ik extends tK{constructor(e,t){super(),this.el=e,this.disabled=t,this.dataDisposable=new tJ,this.pointerEventsDisposable=new tJ,this._onDragStart=new tB,this.onDragStart=this._onDragStart.event,this.addDisposables(this._onDragStart,this.dataDisposable,this.pointerEventsDisposable),this.configure()}setDisabled(e){this.disabled=e}isCancelled(e){return!1}configure(){this.addDisposables(this._onDragStart,t$(this.el,"dragstart",e=>{if(e.defaultPrevented||this.isCancelled(e)||this.disabled)return void e.preventDefault();let t=t3();this.pointerEventsDisposable.value={dispose:()=>{t.release()}},this.el.classList.add("dv-dragged"),setTimeout(()=>this.el.classList.remove("dv-dragged"),0),this.dataDisposable.value=this.getData(e),this._onDragStart.fire(e),e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.items.length>0||e.dataTransfer.setData("text/plain",""))}),t$(this.el,"dragend",()=>{this.pointerEventsDisposable.dispose(),setTimeout(()=>{this.dataDisposable.dispose()},0)}))}}class iz extends tK{constructor(e,t){super(),this.element=e,this.callbacks=t,this.target=null,this.registerListeners()}onDragEnter(e){this.target=e.target,this.callbacks.onDragEnter(e)}onDragOver(e){e.preventDefault(),this.callbacks.onDragOver&&this.callbacks.onDragOver(e)}onDragLeave(e){this.target===e.target&&(this.target=null,this.callbacks.onDragLeave(e))}onDragEnd(e){this.target=null,this.callbacks.onDragEnd(e)}onDrop(e){this.callbacks.onDrop(e)}registerListeners(){this.addDisposables(t$(this.element,"dragenter",e=>{this.onDragEnter(e)},!0)),this.addDisposables(t$(this.element,"dragover",e=>{this.onDragOver(e)},!0)),this.addDisposables(t$(this.element,"dragleave",e=>{this.onDragLeave(e)})),this.addDisposables(t$(this.element,"dragend",e=>{this.onDragEnd(e)})),this.addDisposables(t$(this.element,"drop",e=>{this.onDrop(e)}))}}class iP extends tV{get nativeEvent(){return this.options.nativeEvent}get position(){return this.options.position}constructor(e){super(),this.options=e}}function iR(e){switch(e){case"above":return"top";case"below":return"bottom";case"left":return"left";case"right":return"right";case"within":return"center";default:throw Error(`invalid direction '${e}'`)}}let iN={value:20,type:"percentage"},iO={value:50,type:"percentage"};class iI extends tK{get disabled(){return this._disabled}set disabled(e){this._disabled=e}get state(){return this._state}constructor(e,t){super(),this.element=e,this.options=t,this._onDrop=new tB,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._disabled=!1,this._acceptedTargetZonesSet=new Set(this.options.acceptedTargetZones),this.dnd=new iz(this.element,{onDragEnter:()=>{var e,t,i;null==(i=null==(t=(e=this.options).getOverrideTarget)?void 0:t.call(e))||i.getElements()},onDragOver:e=>{var t,i,n,o,r,s,a;iI.ACTUAL_TARGET=this;let l=null==(i=(t=this.options).getOverrideTarget)?void 0:i.call(t);if(0===this._acceptedTargetZonesSet.size){if(l)return;this.removeDropTarget();return}let d=null!=(r=null==(o=(n=this.options).getOverlayOutline)?void 0:o.call(n))?r:this.element,h=d.offsetWidth,u=d.offsetHeight;if(0===h||0===u)return;let c=e.currentTarget.getBoundingClientRect(),p=(null!=(s=e.clientX)?s:0)-c.left,m=(null!=(a=e.clientY)?a:0)-c.top,f=this.calculateQuadrant(this._acceptedTargetZonesSet,p,m,h,u);if(this.isAlreadyUsed(e)||null===f)return void this.removeDropTarget();if(!this.options.canDisplayOverlay(e,f)){if(l)return;this.removeDropTarget();return}let g=new iP({nativeEvent:e,position:f});(this._onWillShowOverlay.fire(g),g.defaultPrevented)?this.removeDropTarget():(this.markAsUsed(e),l||this.targetElement||(this.targetElement=document.createElement("div"),this.targetElement.className="dv-drop-target-dropzone",this.overlayElement=document.createElement("div"),this.overlayElement.className="dv-drop-target-selection",this._state="center",this.targetElement.appendChild(this.overlayElement),d.classList.add("dv-drop-target"),d.append(this.targetElement)),this.toggleClasses(f,h,u),this._state=f)},onDragLeave:()=>{var e,t;(null==(t=(e=this.options).getOverrideTarget)?void 0:t.call(e))||this.removeDropTarget()},onDragEnd:e=>{var t,i;let n=null==(i=(t=this.options).getOverrideTarget)?void 0:i.call(t);n&&iI.ACTUAL_TARGET===this&&this._state&&(e.stopPropagation(),this._onDrop.fire({position:this._state,nativeEvent:e})),this.removeDropTarget(),null==n||n.clear()},onDrop:e=>{var t,i,n;e.preventDefault();let o=this._state;this.removeDropTarget(),null==(n=null==(i=(t=this.options).getOverrideTarget)?void 0:i.call(t))||n.clear(),o&&(e.stopPropagation(),this._onDrop.fire({position:o,nativeEvent:e}))}}),this.addDisposables(this._onDrop,this._onWillShowOverlay,this.dnd)}setTargetZones(e){this._acceptedTargetZonesSet=new Set(e)}setOverlayModel(e){this.options.overlayModel=e}dispose(){this.removeDropTarget(),super.dispose()}markAsUsed(e){e[iI.USED_EVENT_ID]=!0}isAlreadyUsed(e){let t=e[iI.USED_EVENT_ID];return"boolean"==typeof t&&t}toggleClasses(e,t,i){var n,o,r,s,a,l,d;let h=null==(o=(n=this.options).getOverrideTarget)?void 0:o.call(n);if(!h&&!this.overlayElement)return;let u=t<100,c=i<100,p="left"===e,m="right"===e,f="top"===e,g="bottom"===e,v=!u&&m,w=!u&&p,b=!c&&f,y=!c&&g,x=1,_=null!=(s=null==(r=this.options.overlayModel)?void 0:r.size)?s:iO;if("percentage"===_.type?x=it(_.value,0,100)/100:((v||w)&&(x=it(0,_.value,t)/t),(b||y)&&(x=it(0,_.value,i)/i)),h){let n=null!=(d=null==(l=(a=this.options).getOverlayOutline)?void 0:l.call(a))?d:this.element,o=n.getBoundingClientRect(),r=h.getElements(void 0,n),s=r.root,c=r.overlay,_=s.getBoundingClientRect(),D=o.top-_.top,C=o.left-_.left,S={top:D,left:C,width:t,height:i};if(v?(S.left=C+t*(1-x),S.width=t*x):w?S.width=t*x:b?S.height=i*x:y&&(S.top=D+i*(1-x),S.height=i*x),u&&p&&(S.width=4),u&&m&&(S.left=C+t-4,S.width=4),!function(e,t){let{top:i,left:n,width:o,height:r}=t,s=`${Math.round(i)}px`,a=`${Math.round(n)}px`,l=`${Math.round(o)}px`,d=`${Math.round(r)}px`;return e.style.top!==s||e.style.left!==a||e.style.width!==l||e.style.height!==d}(c,S))return;!function(e,t){let{top:i,left:n,width:o,height:r}=t,s=`${Math.round(i)}px`,a=`${Math.round(n)}px`,l=`${Math.round(o)}px`,d=`${Math.round(r)}px`;e.style.top=s,e.style.left=a,e.style.width=l,e.style.height=d,e.style.visibility="visible",e.style.transform&&""!==e.style.transform||(e.style.transform="translate3d(0, 0, 0)")}(c,S),c.className=`dv-drop-target-anchor${this.options.className?` ${this.options.className}`:""}`,tQ(c,"dv-drop-target-left",p),tQ(c,"dv-drop-target-right",m),tQ(c,"dv-drop-target-top",f),tQ(c,"dv-drop-target-bottom",g),tQ(c,"dv-drop-target-center","center"===e),r.changed&&(tQ(c,"dv-drop-target-anchor-container-changed",!0),setTimeout(()=>{tQ(c,"dv-drop-target-anchor-container-changed",!1)},10));return}if(!this.overlayElement)return;let D={top:"0px",left:"0px",width:"100%",height:"100%"};v?(D.left=`${100*(1-x)}%`,D.width=`${100*x}%`):w?D.width=`${100*x}%`:b?D.height=`${100*x}%`:y&&(D.top=`${100*(1-x)}%`,D.height=`${100*x}%`),function(e,t){let{top:i,left:n,width:o,height:r}=t;e.style.top=i,e.style.left=n,e.style.width=o,e.style.height=r,e.style.visibility="visible",e.style.transform&&""!==e.style.transform||(e.style.transform="translate3d(0, 0, 0)")}(this.overlayElement,D),tQ(this.overlayElement,"dv-drop-target-small-vertical",c),tQ(this.overlayElement,"dv-drop-target-small-horizontal",u),tQ(this.overlayElement,"dv-drop-target-left",p),tQ(this.overlayElement,"dv-drop-target-right",m),tQ(this.overlayElement,"dv-drop-target-top",f),tQ(this.overlayElement,"dv-drop-target-bottom",g),tQ(this.overlayElement,"dv-drop-target-center","center"===e)}calculateQuadrant(e,t,i,n,o){var r,s,a,l,d,h,u,c,p,m,f,g,v,w;let b,y,x=null!=(s=null==(r=this.options.overlayModel)?void 0:r.activationSize)?s:iN;return"percentage"===x.type?(a=e,l=t,d=i,h=n,u=o,c=x.value,b=100*l/h,y=100*d/u,a.has("left")&&b100-c?"right":a.has("top")&&y100-c?"bottom":a.has("center")?"center":null):(p=e,m=t,f=i,g=n,v=o,w=x.value,p.has("left")&&mg-w?"right":p.has("top")&&fv-w?"bottom":p.has("center")?"center":null)}removeDropTarget(){var e;this.targetElement&&(this._state=void 0,null==(e=this.targetElement.parentElement)||e.classList.remove("dv-drop-target"),this.targetElement.remove(),this.targetElement=void 0,this.overlayElement=void 0)}}iI.USED_EVENT_ID="__dockview_droptarget_event_is_used__";let iM=["disableAutoResizing","disableDnd","className"];class iL extends tW{constructor(e,t,i,n){super(),this.nativeEvent=e,this.position=t,this.getData=i,this.panel=n}}class iT extends tV{constructor(){super()}}class ij extends tK{get isFocused(){return this._isFocused}get isActive(){return this._isActive}get isVisible(){return this._isVisible}get width(){return this._width}get height(){return this._height}constructor(e,t){super(),this.id=e,this.component=t,this._isFocused=!1,this._isActive=!1,this._isVisible=!0,this._width=0,this._height=0,this._parameters={},this.panelUpdatesDisposable=new tJ,this._onDidDimensionChange=new tB,this.onDidDimensionsChange=this._onDidDimensionChange.event,this._onDidChangeFocus=new tB,this.onDidFocusChange=this._onDidChangeFocus.event,this._onWillFocus=new tB,this.onWillFocus=this._onWillFocus.event,this._onDidVisibilityChange=new tB,this.onDidVisibilityChange=this._onDidVisibilityChange.event,this._onWillVisibilityChange=new tB,this.onWillVisibilityChange=this._onWillVisibilityChange.event,this._onDidActiveChange=new tB,this.onDidActiveChange=this._onDidActiveChange.event,this._onActiveChange=new tB,this.onActiveChange=this._onActiveChange.event,this._onDidParametersChange=new tB,this.onDidParametersChange=this._onDidParametersChange.event,this.addDisposables(this.onDidFocusChange(e=>{this._isFocused=e.isFocused}),this.onDidActiveChange(e=>{this._isActive=e.isActive}),this.onDidVisibilityChange(e=>{this._isVisible=e.isVisible}),this.onDidDimensionsChange(e=>{this._width=e.width,this._height=e.height}),this.panelUpdatesDisposable,this._onDidDimensionChange,this._onDidChangeFocus,this._onDidVisibilityChange,this._onDidActiveChange,this._onWillFocus,this._onActiveChange,this._onWillFocus,this._onWillVisibilityChange,this._onDidParametersChange)}getParameters(){return this._parameters}initialize(e){this.panelUpdatesDisposable.value=this._onDidParametersChange.event(t=>{this._parameters=t,e.update({params:t})})}setVisible(e){this._onWillVisibilityChange.fire({isVisible:e})}setActive(){this._onActiveChange.fire()}updateParameters(e){this._onDidParametersChange.fire(e)}}class iG extends ij{constructor(e,t){super(e,t),this._onDidConstraintsChangeInternal=new tB,this.onDidConstraintsChangeInternal=this._onDidConstraintsChangeInternal.event,this._onDidConstraintsChange=new tB({replay:!0}),this.onDidConstraintsChange=this._onDidConstraintsChange.event,this._onDidSizeChange=new tB,this.onDidSizeChange=this._onDidSizeChange.event,this.addDisposables(this._onDidConstraintsChangeInternal,this._onDidConstraintsChange,this._onDidSizeChange)}setConstraints(e){this._onDidConstraintsChangeInternal.fire(e)}setSize(e){this._onDidSizeChange.fire(e)}}class iV extends iG{set pane(e){this._pane=e}constructor(e,t){super(e,t),this._onDidExpansionChange=new tB({replay:!0}),this.onDidExpansionChange=this._onDidExpansionChange.event,this._onMouseEnter=new tB({}),this.onMouseEnter=this._onMouseEnter.event,this._onMouseLeave=new tB({}),this.onMouseLeave=this._onMouseLeave.event,this.addDisposables(this._onDidExpansionChange,this._onMouseEnter,this._onMouseLeave)}setExpanded(e){var t;null==(t=this._pane)||t.setExpanded(e)}get isExpanded(){var e;return!!(null==(e=this._pane)?void 0:e.isExpanded())}}class iW extends tK{get element(){return this._element}get width(){return this._width}get height(){return this._height}get params(){var e;return null==(e=this._params)?void 0:e.params}constructor(e,t,i){super(),this.id=e,this.component=t,this.api=i,this._height=0,this._width=0,this._element=document.createElement("div"),this._element.tabIndex=-1,this._element.style.outline="none",this._element.style.height="100%",this._element.style.width="100%",this._element.style.overflow="hidden";const n=new t1(this._element);this.addDisposables(this.api,n.onDidFocus(()=>{this.api._onDidChangeFocus.fire({isFocused:!0})}),n.onDidBlur(()=>{this.api._onDidChangeFocus.fire({isFocused:!1})}),n)}focus(){let e=new iT;this.api._onWillFocus.fire(e),e.defaultPrevented||this._element.focus()}layout(e,t){this._width=e,this._height=t,this.api._onDidDimensionChange.fire({width:e,height:t}),this.part&&this._params&&this.part.update(this._params.params)}init(e){this._params=e,this.part=this.getComponent()}update(e){var t,i;for(let i of(this._params=Object.assign(Object.assign({},this._params),{params:Object.assign(Object.assign({},null==(t=this._params)?void 0:t.params),e.params)}),Object.keys(e.params)))void 0===e.params[i]&&delete this._params.params[i];null==(i=this.part)||i.update({params:this._params.params})}toJSON(){var e,t;let i=null!=(t=null==(e=this._params)?void 0:e.params)?t:{};return{id:this.id,component:this.component,params:Object.keys(i).length>0?i:void 0}}dispose(){var e;this.api.dispose(),null==(e=this.part)||e.dispose(),super.dispose()}}class iH extends iW{set orientation(e){this._orientation=e}get orientation(){return this._orientation}get minimumSize(){return this.headerSize+(this.isExpanded()?this._minimumBodySize:0)}get maximumSize(){return this.headerSize+(this.isExpanded()?this._maximumBodySize:0)}get size(){return this._size}get orthogonalSize(){return this._orthogonalSize}set orthogonalSize(e){this._orthogonalSize=e}get minimumBodySize(){return this._minimumBodySize}set minimumBodySize(e){this._minimumBodySize="number"==typeof e?e:0}get maximumBodySize(){return this._maximumBodySize}set maximumBodySize(e){this._maximumBodySize="number"==typeof e?e:1/0}get headerVisible(){return this._headerVisible}set headerVisible(e){this._headerVisible=e,this.header.style.display=e?"":"none"}constructor(e){super(e.id,e.component,new iV(e.id,e.component)),this._onDidChangeExpansionState=new tB({replay:!0}),this.onDidChangeExpansionState=this._onDidChangeExpansionState.event,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._orthogonalSize=0,this._size=0,this._isExpanded=!1,this.api.pane=this,this.api.initialize(this),this.headerSize=e.headerSize,this.headerComponent=e.headerComponent,this._minimumBodySize=e.minimumBodySize,this._maximumBodySize=e.maximumBodySize,this._isExpanded=e.isExpanded,this._headerVisible=e.isHeaderVisible,this._onDidChangeExpansionState.fire(this.isExpanded()),this._orientation=e.orientation,this.element.classList.add("dv-pane"),this.addDisposables(this.api.onWillVisibilityChange(e=>{let{isVisible:t}=e,{accessor:i}=this._params;i.setVisible(this,t)}),this.api.onDidSizeChange(e=>{this._onDidChange.fire({size:e.size})}),t$(this.element,"mouseenter",e=>{this.api._onMouseEnter.fire(e)}),t$(this.element,"mouseleave",e=>{this.api._onMouseLeave.fire(e)})),this.addDisposables(this._onDidChangeExpansionState,this.onDidChangeExpansionState(e=>{this.api._onDidExpansionChange.fire({isExpanded:e})}),this.api.onDidFocusChange(e=>{this.header&&(e.isFocused?tY(this.header,"focused"):tq(this.header,"focused"))})),this.renderOnce()}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}isExpanded(){return this._isExpanded}setExpanded(e){this._isExpanded!==e&&(this._isExpanded=e,e?(this.animationTimer&&clearTimeout(this.animationTimer),this.body&&this.element.appendChild(this.body)):this.animationTimer=setTimeout(()=>{var e;null==(e=this.body)||e.remove()},200),this._onDidChange.fire(e?{size:this.width}:{}),this._onDidChangeExpansionState.fire(e))}layout(e,t){this._size=e,this._orthogonalSize=t;let[i,n]=this.orientation===I.HORIZONTAL?[e,t]:[t,e];super.layout(i,n)}init(e){var t,i;super.init(e),"number"==typeof e.minimumBodySize&&(this.minimumBodySize=e.minimumBodySize),"number"==typeof e.maximumBodySize&&(this.maximumBodySize=e.maximumBodySize),this.bodyPart=this.getBodyComponent(),this.headerPart=this.getHeaderComponent(),this.bodyPart.init(Object.assign(Object.assign({},e),{api:this.api})),this.headerPart.init(Object.assign(Object.assign({},e),{api:this.api})),null==(t=this.body)||t.append(this.bodyPart.element),null==(i=this.header)||i.append(this.headerPart.element),"boolean"==typeof e.isExpanded&&this.setExpanded(e.isExpanded)}toJSON(){let e=this._params;return Object.assign(Object.assign({},super.toJSON()),{headerComponent:this.headerComponent,title:e.title})}renderOnce(){this.header=document.createElement("div"),this.header.tabIndex=0,this.header.className="dv-pane-header",this.header.style.height=`${this.headerSize}px`,this.header.style.lineHeight=`${this.headerSize}px`,this.header.style.minHeight=`${this.headerSize}px`,this.header.style.maxHeight=`${this.headerSize}px`,this.element.appendChild(this.header),this.body=document.createElement("div"),this.body.className="dv-pane-body",this.element.appendChild(this.body)}getComponent(){return{update:e=>{var t,i;null==(t=this.bodyPart)||t.update({params:e}),null==(i=this.headerPart)||i.update({params:e})},dispose:()=>{var e,t;null==(e=this.bodyPart)||e.dispose(),null==(t=this.headerPart)||t.dispose()}}}}class iF extends iH{constructor(e){super({id:e.id,component:e.component,headerComponent:e.headerComponent,orientation:e.orientation,isExpanded:e.isExpanded,isHeaderVisible:!0,headerSize:e.headerSize,minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize}),this._onDidDrop=new tB,this.onDidDrop=this._onDidDrop.event,this._onUnhandledDragOverEvent=new tB,this.onUnhandledDragOverEvent=this._onUnhandledDragOverEvent.event,this.accessor=e.accessor,this.addDisposables(this._onDidDrop,this._onUnhandledDragOverEvent),e.disableDnd||this.initDragFeatures()}initDragFeatures(){if(!this.header)return;let e=this.id,t=this.accessor.id;this.header.draggable=!0,this.handler=new class extends ik{getData(){return tT.getInstance().setData([new tL(t,e)],tL.prototype),{dispose:()=>{tT.getInstance().clearData(tL.prototype)}}}}(this.header),this.target=new iI(this.element,{acceptedTargetZones:["top","bottom"],overlayModel:{activationSize:{type:"percentage",value:50}},canDisplayOverlay:(e,t)=>{let i=tG();if(i&&i.paneId!==this.id&&i.viewId===this.accessor.id)return!0;let n=new iL(e,t,tG,this);return this._onUnhandledDragOverEvent.fire(n),n.isAccepted}}),this.addDisposables(this._onDidDrop,this.handler,this.target,this.target.onDrop(e=>{this.onDrop(e)}))}onDrop(e){let t=tG();if(!t||t.viewId!==this.accessor.id)return void this._onDidDrop.fire(Object.assign(Object.assign({},e),{panel:this,api:new iS(this.accessor),getData:tG}));let i=this._params.containerApi,n=t.paneId,o=i.getPanel(n);if(!o)return void this._onDidDrop.fire(Object.assign(Object.assign({},e),{panel:this,getData:tG,api:new iS(this.accessor)}));let r=i.panels,s=r.indexOf(o),a=i.panels.indexOf(this);("left"===e.position||"top"===e.position)&&(a=Math.max(0,a-1)),("right"===e.position||"bottom"===e.position)&&(s>a&&a++,a=Math.min(r.length-1,a)),i.movePanel(s,a)}}class iB extends tK{get element(){return this._element}constructor(e,t){super(),this.accessor=e,this.group=t,this.disposable=new tJ,this._onDidFocus=new tB,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new tB,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement("div"),this._element.className="dv-content-container",this._element.tabIndex=-1,this.addDisposables(this._onDidFocus,this._onDidBlur);const i=t.dropTargetContainer;this.dropTarget=new iI(this.element,{getOverlayOutline:()=>{var t;return(null==(t=e.options.theme)?void 0:t.dndPanelOverlay)==="group"?this.element.parentElement:null},className:"dv-drop-target-content",acceptedTargetZones:["top","bottom","left","right","center"],canDisplayOverlay:(e,t)=>{if("no-drop-target"===this.group.locked||this.group.locked&&"center"===t)return!1;let i=tj();return(!!i||!e.shiftKey||"floating"===this.group.location.type)&&(!!i&&i.viewId===this.accessor.id||this.group.canDisplayOverlay(e,t,"content"))},getOverrideTarget:i?()=>i.model:void 0}),this.addDisposables(this.dropTarget)}show(){this.element.style.display=""}hide(){this.element.style.display="none"}renderPanel(e,t={asActive:!0}){let i,n=t.asActive||this.panel&&this.group.isPanelActive(this.panel);switch(this.panel&&this.panel.view.content.element.parentElement===this._element&&this._element.removeChild(this.panel.view.content.element),this.panel=e,e.api.renderer){case"onlyWhenVisible":this.group.renderContainer.detatch(e),this.panel&&n&&this._element.appendChild(this.panel.view.content.element),i=this._element;break;case"always":e.view.content.element.parentElement===this._element&&this._element.removeChild(e.view.content.element),i=this.group.renderContainer.attach({panel:e,referenceContainer:this});break;default:throw Error(`dockview: invalid renderer type '${e.api.renderer}'`)}if(n){let e=new t1(i);this.focusTracker=e;let t=new tK;t.addDisposables(e,e.onDidFocus(()=>this._onDidFocus.fire()),e.onDidBlur(()=>this._onDidBlur.fire())),this.disposable.value=t}}openPanel(e){this.panel!==e&&this.renderPanel(e)}layout(e,t){}closePanel(){var e;this.panel&&"onlyWhenVisible"===this.panel.api.renderer&&(null==(e=this.panel.view.content.element.parentElement)||e.removeChild(this.panel.view.content.element)),this.panel=void 0}dispose(){this.disposable.dispose(),super.dispose()}refreshFocusState(){var e;(null==(e=this.focusTracker)?void 0:e.refreshState)&&this.focusTracker.refreshState()}}function i$(e,t,i){var n,o;tY(t,"dv-dragged"),t.style.top="-9999px",document.body.appendChild(t),e.setDragImage(t,null!=(n=null==i?void 0:i.x)?n:0,null!=(o=null==i?void 0:i.y)?o:0),setTimeout(()=>{tq(t,"dv-dragged"),t.remove()},0)}class iU extends ik{constructor(e,t,i,n,o){super(e,o),this.accessor=t,this.group=i,this.panel=n,this.panelTransfer=tT.getInstance()}getData(e){return this.panelTransfer.setData([new tM(this.accessor.id,this.group.id,this.panel.id)],tM.prototype),{dispose:()=>{this.panelTransfer.clearData(tM.prototype)}}}}class iK extends tK{get element(){return this._element}constructor(e,t,i){super(),this.panel=e,this.accessor=t,this.group=i,this.content=void 0,this._onPointDown=new tB,this.onPointerDown=this._onPointDown.event,this._onDropped=new tB,this.onDrop=this._onDropped.event,this._onDragStart=new tB,this.onDragStart=this._onDragStart.event,this._element=document.createElement("div"),this._element.className="dv-tab",this._element.tabIndex=0,this._element.draggable=!this.accessor.options.disableDnd,tQ(this.element,"dv-inactive-tab",!0),this.dragHandler=new iU(this._element,this.accessor,this.group,this.panel,!!this.accessor.options.disableDnd),this.dropTarget=new iI(this._element,{acceptedTargetZones:["left","right"],overlayModel:{activationSize:{value:50,type:"percentage"}},canDisplayOverlay:(e,t)=>{if(this.group.locked)return!1;let i=tj();return!!i&&this.accessor.id===i.viewId||this.group.model.canDisplayOverlay(e,t,"tab")},getOverrideTarget:()=>{var e;return null==(e=i.model.dropTargetContainer)?void 0:e.model}}),this.onWillShowOverlay=this.dropTarget.onWillShowOverlay,this.addDisposables(this._onPointDown,this._onDropped,this._onDragStart,this.dragHandler.onDragStart(e=>{if(e.dataTransfer){let t=getComputedStyle(this.element),i=this.element.cloneNode(!0);Array.from(t).forEach(e=>i.style.setProperty(e,t.getPropertyValue(e),t.getPropertyPriority(e))),i.style.position="absolute",i$(e.dataTransfer,i,{y:-10,x:30})}this._onDragStart.fire(e)}),this.dragHandler,t$(this._element,"pointerdown",e=>{this._onPointDown.fire(e)}),this.dropTarget.onDrop(e=>{this._onDropped.fire(e)}),this.dropTarget)}setActive(e){tQ(this.element,"dv-active-tab",e),tQ(this.element,"dv-inactive-tab",!e)}setContent(e){this.content&&this._element.removeChild(this.content.element),this.content=e,this._element.appendChild(this.content.element)}updateDragAndDropState(){this._element.draggable=!this.accessor.options.disableDnd,this.dragHandler.setDisabled(!!this.accessor.options.disableDnd)}dispose(){super.dispose()}}class iJ{get kind(){return this.options.kind}get nativeEvent(){return this.event.nativeEvent}get position(){return this.event.position}get defaultPrevented(){return this.event.defaultPrevented}get panel(){return this.options.panel}get api(){return this.options.api}get group(){return this.options.group}preventDefault(){this.event.preventDefault()}getData(){return this.options.getData()}constructor(e,t){this.event=e,this.options=t}}class iZ extends ik{constructor(e,t,i,n){super(e,n),this.accessor=t,this.group=i,this.panelTransfer=tT.getInstance(),this.addDisposables(t$(e,"pointerdown",e=>{e.shiftKey&&(e[t2]=!0)},!0))}isCancelled(e){return"floating"===this.group.api.location.type&&!e.shiftKey}getData(e){let t=e.dataTransfer;this.panelTransfer.setData([new tM(this.accessor.id,this.group.id,null)],tM.prototype);let i=window.getComputedStyle(this.el),n=i.getPropertyValue("--dv-activegroup-visiblepanel-tab-background-color"),o=i.getPropertyValue("--dv-activegroup-visiblepanel-tab-color");if(t){let e=document.createElement("div");e.style.backgroundColor=n,e.style.color=o,e.style.padding="2px 8px",e.style.height="24px",e.style.fontSize="11px",e.style.lineHeight="20px",e.style.borderRadius="12px",e.style.position="absolute",e.style.pointerEvents="none",e.style.top="-9999px",e.textContent=`Multiple Panels (${this.group.size})`,i$(t,e,{y:-10,x:30})}return{dispose:()=>{this.panelTransfer.clearData(tM.prototype)}}}}class iX extends tK{get element(){return this._element}constructor(e,t){super(),this.accessor=e,this.group=t,this._onDrop=new tB,this.onDrop=this._onDrop.event,this._onDragStart=new tB,this.onDragStart=this._onDragStart.event,this._element=document.createElement("div"),this._element.className="dv-void-container",this._element.draggable=!this.accessor.options.disableDnd,tQ(this._element,"dv-draggable",!this.accessor.options.disableDnd),this.addDisposables(this._onDrop,this._onDragStart,t$(this._element,"pointerdown",()=>{this.accessor.doSetGroupActive(this.group)})),this.handler=new iZ(this._element,e,t,!!this.accessor.options.disableDnd),this.dropTarget=new iI(this._element,{acceptedTargetZones:["center"],canDisplayOverlay:(e,i)=>{let n=tj();return!!n&&this.accessor.id===n.viewId||t.model.canDisplayOverlay(e,i,"header_space")},getOverrideTarget:()=>{var e;return null==(e=t.model.dropTargetContainer)?void 0:e.model}}),this.onWillShowOverlay=this.dropTarget.onWillShowOverlay,this.addDisposables(this.handler,this.handler.onDragStart(e=>{this._onDragStart.fire(e)}),this.dropTarget.onDrop(e=>{this._onDrop.fire(e)}),this.dropTarget)}updateDragAndDropState(){this._element.draggable=!this.accessor.options.disableDnd,tQ(this._element,"dv-draggable",!this.accessor.options.disableDnd),this.handler.setDisabled(!!this.accessor.options.disableDnd)}}class iq extends tK{get element(){return this._element}constructor(e){super(),this.scrollableElement=e,this._scrollLeft=0,this._element=document.createElement("div"),this._element.className="dv-scrollable",this._horizontalScrollbar=document.createElement("div"),this._horizontalScrollbar.className="dv-scrollbar-horizontal",this.element.appendChild(e),this.element.appendChild(this._horizontalScrollbar),this.addDisposables(t$(this.element,"wheel",e=>{this._scrollLeft+=e.deltaY*iq.MouseWheelSpeed,this.calculateScrollbarStyles()}),t$(this._horizontalScrollbar,"pointerdown",e=>{e.preventDefault(),tQ(this.element,"dv-scrollable-scrolling",!0);let t=e.clientX,i=this._scrollLeft,n=e=>{let n=e.clientX-t,{clientWidth:o}=this.element,{scrollWidth:r}=this.scrollableElement;this._scrollLeft=i+n/(o/r),this.calculateScrollbarStyles()},o=()=>{tQ(this.element,"dv-scrollable-scrolling",!1),document.removeEventListener("pointermove",n),document.removeEventListener("pointerup",o),document.removeEventListener("pointercancel",o)};document.addEventListener("pointermove",n),document.addEventListener("pointerup",o),document.addEventListener("pointercancel",o)}),t$(this.element,"scroll",()=>{this.calculateScrollbarStyles()}),t$(this.scrollableElement,"scroll",()=>{this._scrollLeft=this.scrollableElement.scrollLeft,this.calculateScrollbarStyles()}),tX(this.element,()=>{tQ(this.element,"dv-scrollable-resizing",!0),this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(()=>{clearTimeout(this._animationTimer),tQ(this.element,"dv-scrollable-resizing",!1)},500),this.calculateScrollbarStyles()}))}calculateScrollbarStyles(){let{clientWidth:e}=this.element,{scrollWidth:t}=this.scrollableElement;if(t>e){let i=e/t*e;this._horizontalScrollbar.style.width=`${i}px`,this._scrollLeft=it(this._scrollLeft,0,this.scrollableElement.scrollWidth-e),this.scrollableElement.scrollLeft=this._scrollLeft;let n=this._scrollLeft/(t-e);this._horizontalScrollbar.style.left=`${(e-i)*n}px`}else this._horizontalScrollbar.style.width="0px",this._horizontalScrollbar.style.left="0px",this._scrollLeft=0}}iq.MouseWheelSpeed=1;class iY extends tK{get showTabsOverflowControl(){return this._showTabsOverflowControl}set showTabsOverflowControl(e){if(this._showTabsOverflowControl!=e&&(this._showTabsOverflowControl=e,e)){let e=new tZ(this._tabsList);this._observerDisposable.value=new tK(e,e.onDidChange(e=>{let t=e.hasScrollX||e.hasScrollY;this.toggleDropdown({reset:!t})}),t$(this._tabsList,"scroll",()=>{this.toggleDropdown({reset:!1})}))}}get element(){return this._element}get panels(){return this._tabs.map(e=>e.value.panel.id)}get size(){return this._tabs.length}get tabs(){return this._tabs.map(e=>e.value)}constructor(e,t,i){if(super(),this.group=e,this.accessor=t,this._observerDisposable=new tJ,this._tabs=[],this.selectedIndex=-1,this._showTabsOverflowControl=!1,this._onTabDragStart=new tB,this.onTabDragStart=this._onTabDragStart.event,this._onDrop=new tB,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onOverflowTabsChange=new tB,this.onOverflowTabsChange=this._onOverflowTabsChange.event,this._tabsList=document.createElement("div"),this._tabsList.className="dv-tabs-container dv-horizontal",this.showTabsOverflowControl=i.showTabsOverflowControl,"native"===t.options.scrollbars)this._element=this._tabsList;else{const e=new iq(this._tabsList);this._element=e.element,this.addDisposables(e)}this.addDisposables(this._onOverflowTabsChange,this._observerDisposable,this._onWillShowOverlay,this._onDrop,this._onTabDragStart,t$(this.element,"pointerdown",e=>{e.defaultPrevented||0===e.button&&this.accessor.doSetGroupActive(this.group)}),O.from(()=>{for(let{value:e,disposable:t}of this._tabs)t.dispose(),e.dispose();this._tabs=[]}))}indexOf(e){return this._tabs.findIndex(t=>t.value.panel.id===e)}isActive(e){return this.selectedIndex>-1&&this._tabs[this.selectedIndex].value===e}setActivePanel(e){let t=0;for(let i of this._tabs){let n=e.id===i.value.panel.id;if(i.value.setActive(n),n){let e=i.value.element,n=e.parentElement;(tn.scrollLeft+n.clientWidth)&&(n.scrollLeft=t)}t+=i.value.element.clientWidth}}openPanel(e,t=this._tabs.length){if(this._tabs.find(t=>t.value.panel.id===e.id))return;let i=new iK(e,this.accessor,this.group);i.setContent(e.view.tab);let n=new tK(i.onDragStart(t=>{this._onTabDragStart.fire({nativeEvent:t,panel:e})}),i.onPointerDown(t=>{if(t.defaultPrevented)return;let n=!this.accessor.options.disableFloatingGroups,o="floating"===this.group.api.location.type&&1===this.size;if(n&&!o&&t.shiftKey){t.preventDefault();let e=this.accessor.getGroupPanel(i.panel.id),{top:n,left:o}=i.element.getBoundingClientRect(),{top:r,left:s}=this.accessor.element.getBoundingClientRect();this.accessor.addFloatingGroup(e,{x:o-s,y:n-r,inDragMode:!0});return}0===t.button&&this.group.activePanel!==e&&this.group.model.openPanel(e)}),i.onDrop(e=>{this._onDrop.fire({event:e.nativeEvent,index:this._tabs.findIndex(e=>e.value===i)})}),i.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new iJ(e,{kind:"tab",panel:this.group.activePanel,api:this.accessor.api,group:this.group,getData:tj}))}));this.addTab({value:i,disposable:n},t)}delete(e){let t=this.indexOf(e),{value:i,disposable:n}=this._tabs.splice(t,1)[0];n.dispose(),i.dispose(),i.element.remove()}addTab(e,t=this._tabs.length){if(t<0||t>this._tabs.length)throw Error("invalid location");this._tabsList.insertBefore(e.value.element,this._tabsList.children[t]),this._tabs=[...this._tabs.slice(0,t),e,...this._tabs.slice(t)],this.selectedIndex<0&&(this.selectedIndex=t)}toggleDropdown(e){let t=e.reset?[]:this._tabs.filter(e=>{var t,i;let n,o;return t=e.value.element,i=this._tabsList,n=t5(t),o=t5(i),!!(n.lefto.left+o.width)}).map(e=>e.value.panel.id);this._onOverflowTabsChange.fire({tabs:t,reset:e.reset})}updateDragAndDropState(){for(let e of this._tabs)e.value.updateDragAndDropState()}}let iQ=e=>{let t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttributeNS(null,"height",e.height),t.setAttributeNS(null,"width",e.width),t.setAttributeNS(null,"viewBox",e.viewbox),t.setAttributeNS(null,"aria-hidden","false"),t.setAttributeNS(null,"focusable","false"),t.classList.add("dv-svg");let i=document.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttributeNS(null,"d",e.path),t.appendChild(i),t},i0=()=>iQ({width:"11",height:"11",viewbox:"0 0 15 25",path:"M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z"});class i1 extends tK{get onTabDragStart(){return this.tabs.onTabDragStart}get panels(){return this.tabs.panels}get size(){return this.tabs.size}get hidden(){return this._hidden}set hidden(e){this._hidden=e,this.element.style.display=e?"none":""}get element(){return this._element}constructor(e,t){super(),this.accessor=e,this.group=t,this._hidden=!1,this.dropdownPart=null,this._overflowTabs=[],this._dropdownDisposable=new tJ,this._onDrop=new tB,this.onDrop=this._onDrop.event,this._onGroupDragStart=new tB,this.onGroupDragStart=this._onGroupDragStart.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._element=document.createElement("div"),this._element.className="dv-tabs-and-actions-container",tQ(this._element,"dv-full-width-single-tab","fullwidth"===this.accessor.options.singleTabMode),this.rightActionsContainer=document.createElement("div"),this.rightActionsContainer.className="dv-right-actions-container",this.leftActionsContainer=document.createElement("div"),this.leftActionsContainer.className="dv-left-actions-container",this.preActionsContainer=document.createElement("div"),this.preActionsContainer.className="dv-pre-actions-container",this.tabs=new iY(t,e,{showTabsOverflowControl:!e.options.disableTabsOverflowList}),this.voidContainer=new iX(this.accessor,this.group),this._element.appendChild(this.preActionsContainer),this._element.appendChild(this.tabs.element),this._element.appendChild(this.leftActionsContainer),this._element.appendChild(this.voidContainer.element),this._element.appendChild(this.rightActionsContainer),this.addDisposables(this.tabs.onDrop(e=>this._onDrop.fire(e)),this.tabs.onWillShowOverlay(e=>this._onWillShowOverlay.fire(e)),e.onDidOptionsChange(()=>{this.tabs.showTabsOverflowControl=!e.options.disableTabsOverflowList}),this.tabs.onOverflowTabsChange(e=>{this.toggleDropdown(e)}),this.tabs,this._onWillShowOverlay,this._onDrop,this._onGroupDragStart,this.voidContainer,this.voidContainer.onDragStart(e=>{this._onGroupDragStart.fire({nativeEvent:e,group:this.group})}),this.voidContainer.onDrop(e=>{this._onDrop.fire({event:e.nativeEvent,index:this.tabs.size})}),this.voidContainer.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new iJ(e,{kind:"header_space",panel:this.group.activePanel,api:this.accessor.api,group:this.group,getData:tj}))}),t$(this.voidContainer.element,"pointerdown",e=>{if(!e.defaultPrevented&&!this.accessor.options.disableFloatingGroups&&e.shiftKey&&"floating"!==this.group.api.location.type){e.preventDefault();let{top:t,left:i}=this.element.getBoundingClientRect(),{top:n,left:o}=this.accessor.element.getBoundingClientRect();this.accessor.addFloatingGroup(this.group,{x:i-o+20,y:t-n+20,inDragMode:!0})}}))}show(){this.hidden||(this.element.style.display="")}hide(){this._element.style.display="none"}setRightActionsElement(e){this.rightActions!==e&&(this.rightActions&&(this.rightActions.remove(),this.rightActions=void 0),e&&(this.rightActionsContainer.appendChild(e),this.rightActions=e))}setLeftActionsElement(e){this.leftActions!==e&&(this.leftActions&&(this.leftActions.remove(),this.leftActions=void 0),e&&(this.leftActionsContainer.appendChild(e),this.leftActions=e))}setPrefixActionsElement(e){this.preActions!==e&&(this.preActions&&(this.preActions.remove(),this.preActions=void 0),e&&(this.preActionsContainer.appendChild(e),this.preActions=e))}isActive(e){return this.tabs.isActive(e)}indexOf(e){return this.tabs.indexOf(e)}setActive(e){}delete(e){this.tabs.delete(e),this.updateClassnames()}setActivePanel(e){this.tabs.setActivePanel(e)}openPanel(e,t=this.tabs.size){this.tabs.openPanel(e,t),this.updateClassnames()}closePanel(e){this.delete(e.id)}updateClassnames(){tQ(this._element,"dv-single-tab",1===this.size)}toggleDropdown(e){let t,i,n,o=e.reset?[]:e.tabs;if(this._overflowTabs=o,this._overflowTabs.length>0&&this.dropdownPart)return void this.dropdownPart.update({tabs:o.length});if(0===this._overflowTabs.length)return void this._dropdownDisposable.dispose();let r=document.createElement("div");r.className="dv-tabs-overflow-dropdown-root";let s=((t=document.createElement("div")).className="dv-tabs-overflow-dropdown-default",(i=document.createElement("span")).textContent="",n=i0(),t.appendChild(n),t.appendChild(i),{element:t,update:e=>{i.textContent=`${e.tabs}`}});s.update({tabs:o.length}),this.dropdownPart=s,r.appendChild(s.element),this.rightActionsContainer.prepend(r),this._dropdownDisposable.value=new tK(O.from(()=>{var e,t;r.remove(),null==(t=null==(e=this.dropdownPart)?void 0:e.dispose)||t.call(e),this.dropdownPart=null}),t$(r,"pointerdown",e=>{e.preventDefault()},{capture:!0}),t$(r,"click",e=>{let t=document.createElement("div");for(let e of(t.style.overflow="auto",t.className="dv-tabs-overflow-container",this.tabs.tabs.filter(e=>this._overflowTabs.includes(e.panel.id)))){let i=this.group.panels.find(t=>t===e.panel),n=i.view.createTabRenderer("headerOverflow").element,o=document.createElement("div");tQ(o,"dv-tab",!0),tQ(o,"dv-active-tab",i.api.isActive),tQ(o,"dv-inactive-tab",!i.api.isActive),o.addEventListener("click",t=>{this.accessor.popupService.close(),t.defaultPrevented||(e.element.scrollIntoView(),e.panel.api.setActive())}),o.appendChild(n),t.appendChild(o)}let i=function(e){let t=e;for(;t&&("auto"===t.style.zIndex||""===t.style.zIndex);)t=t.parentElement;return t}(r);this.accessor.popupService.openPopover(t,{x:e.clientX,y:e.clientY,zIndex:(null==i?void 0:i.style.zIndex)?`calc(${i.style.zIndex} * 2)`:void 0})}))}updateDragAndDropState(){this.tabs.updateDragAndDropState(),this.voidContainer.updateDragAndDropState()}}class i2 extends tW{constructor(e,t,i,n,o){super(),this.nativeEvent=e,this.target=t,this.position=i,this.getData=n,this.group=o}}let i5=["disableAutoResizing","hideBorders","singleTabMode","disableFloatingGroups","floatingGroupBounds","popoutUrl","defaultRenderer","debug","rootOverlayModel","locked","disableDnd","className","noPanelsOverlay","dndEdges","theme","disableTabsOverflowList","scrollbars"];class i3 extends tV{get nativeEvent(){return this.options.nativeEvent}get position(){return this.options.position}get panel(){return this.options.panel}get group(){return this.options.group}get api(){return this.options.api}constructor(e){super(),this.options=e}getData(){return this.options.getData()}}class i4 extends i3{get kind(){return this._kind}constructor(e){super(e),this._kind=e.kind}}class i9 extends tK{get element(){throw Error("dockview: not supported")}get activePanel(){return this._activePanel}get locked(){return this._locked}set locked(e){this._locked=e,tQ(this.container,"dv-locked-groupview","no-drop-target"===e||e)}get isActive(){return this._isGroupActive}get panels(){return this._panels}get size(){return this._panels.length}get isEmpty(){return 0===this._panels.length}get hasWatermark(){return!!(this.watermark&&this.container.contains(this.watermark.element))}get header(){return this.tabsContainer}get isContentFocused(){return!!document.activeElement&&t0(document.activeElement,this.contentContainer.element)}get location(){return this._location}set location(e){switch(this._location=e,tQ(this.container,"dv-groupview-floating",!1),tQ(this.container,"dv-groupview-popout",!1),e.type){case"grid":this.contentContainer.dropTarget.setTargetZones(["top","bottom","left","right","center"]);break;case"floating":this.contentContainer.dropTarget.setTargetZones(["center"]),this.contentContainer.dropTarget.setTargetZones(e?["center"]:["top","bottom","left","right","center"]),tQ(this.container,"dv-groupview-floating",!0);break;case"popout":this.contentContainer.dropTarget.setTargetZones(["center"]),tQ(this.container,"dv-groupview-popout",!0)}this.groupPanel.api._onDidLocationChange.fire({location:this.location})}constructor(e,t,i,n,o){var r;super(),this.container=e,this.accessor=t,this.id=i,this.options=n,this.groupPanel=o,this._isGroupActive=!1,this._locked=!1,this._location={type:"grid"},this.mostRecentlyUsed=[],this._overwriteRenderContainer=null,this._overwriteDropTargetContainer=null,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this._width=0,this._height=0,this._panels=[],this._panelDisposables=new Map,this._onMove=new tB,this.onMove=this._onMove.event,this._onDidDrop=new tB,this.onDidDrop=this._onDidDrop.event,this._onWillDrop=new tB,this.onWillDrop=this._onWillDrop.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onTabDragStart=new tB,this.onTabDragStart=this._onTabDragStart.event,this._onGroupDragStart=new tB,this.onGroupDragStart=this._onGroupDragStart.event,this._onDidAddPanel=new tB,this.onDidAddPanel=this._onDidAddPanel.event,this._onDidPanelTitleChange=new tB,this.onDidPanelTitleChange=this._onDidPanelTitleChange.event,this._onDidPanelParametersChange=new tB,this.onDidPanelParametersChange=this._onDidPanelParametersChange.event,this._onDidRemovePanel=new tB,this.onDidRemovePanel=this._onDidRemovePanel.event,this._onDidActivePanelChange=new tB,this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onUnhandledDragOverEvent=new tB,this.onUnhandledDragOverEvent=this._onUnhandledDragOverEvent.event,tQ(this.container,"dv-groupview",!0),this._api=new iA(this.accessor),this.tabsContainer=new i1(this.accessor,this.groupPanel),this.contentContainer=new iB(this.accessor,this),e.append(this.tabsContainer.element,this.contentContainer.element),this.header.hidden=!!n.hideHeader,this.locked=null!=(r=n.locked)&&r,this.addDisposables(this._onTabDragStart,this._onGroupDragStart,this._onWillShowOverlay,this.tabsContainer.onTabDragStart(e=>{this._onTabDragStart.fire(e)}),this.tabsContainer.onGroupDragStart(e=>{this._onGroupDragStart.fire(e)}),this.tabsContainer.onDrop(e=>{this.handleDropEvent("header",e.event,"center",e.index)}),this.contentContainer.onDidFocus(()=>{this.accessor.doSetGroupActive(this.groupPanel)}),this.contentContainer.onDidBlur(()=>{}),this.contentContainer.dropTarget.onDrop(e=>{this.handleDropEvent("content",e.nativeEvent,e.position)}),this.tabsContainer.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(e)}),this.contentContainer.dropTarget.onWillShowOverlay(e=>{this._onWillShowOverlay.fire(new iJ(e,{kind:"content",panel:this.activePanel,api:this._api,group:this.groupPanel,getData:tj}))}),this._onMove,this._onDidChange,this._onDidDrop,this._onWillDrop,this._onDidAddPanel,this._onDidRemovePanel,this._onDidActivePanelChange,this._onUnhandledDragOverEvent,this._onDidPanelTitleChange,this._onDidPanelParametersChange)}focusContent(){this.contentContainer.element.focus()}set renderContainer(e){this.panels.forEach(e=>{this.renderContainer.detatch(e)}),this._overwriteRenderContainer=e,this.panels.forEach(e=>{this.rerender(e)})}get renderContainer(){var e;return null!=(e=this._overwriteRenderContainer)?e:this.accessor.overlayRenderContainer}set dropTargetContainer(e){this._overwriteDropTargetContainer=e}get dropTargetContainer(){var e;return null!=(e=this._overwriteDropTargetContainer)?e:this.accessor.rootDropTargetContainer}initialize(){this.options.panels&&this.options.panels.forEach(e=>{this.doAddPanel(e)}),this.options.activePanel&&this.openPanel(this.options.activePanel),this.setActive(this.isActive,!0),this.updateContainer(),this.accessor.options.createRightHeaderActionComponent&&(this._rightHeaderActions=this.accessor.options.createRightHeaderActionComponent(this.groupPanel),this.addDisposables(this._rightHeaderActions),this._rightHeaderActions.init({containerApi:this._api,api:this.groupPanel.api,group:this.groupPanel}),this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element)),this.accessor.options.createLeftHeaderActionComponent&&(this._leftHeaderActions=this.accessor.options.createLeftHeaderActionComponent(this.groupPanel),this.addDisposables(this._leftHeaderActions),this._leftHeaderActions.init({containerApi:this._api,api:this.groupPanel.api,group:this.groupPanel}),this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element)),this.accessor.options.createPrefixHeaderActionComponent&&(this._prefixHeaderActions=this.accessor.options.createPrefixHeaderActionComponent(this.groupPanel),this.addDisposables(this._prefixHeaderActions),this._prefixHeaderActions.init({containerApi:this._api,api:this.groupPanel.api,group:this.groupPanel}),this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element))}rerender(e){this.contentContainer.renderPanel(e,{asActive:!1})}indexOf(e){return this.tabsContainer.indexOf(e.id)}toJSON(){var e;let t={views:this.tabsContainer.panels,activeView:null==(e=this._activePanel)?void 0:e.id,id:this.id};return!1!==this.locked&&(t.locked=this.locked),this.header.hidden&&(t.hideHeader=!0),t}moveToNext(e){let t;e||(e={}),e.panel||(e.panel=this.activePanel);let i=e.panel?this.panels.indexOf(e.panel):-1;if(i0)t=i-1;else{if(e.suppressRoll)return;t=this.panels.length-1}this.openPanel(this.panels[t])}containsPanel(e){return this.panels.includes(e)}init(e){}update(e){}focus(){var e;null==(e=this._activePanel)||e.focus()}openPanel(e,t={}){("number"!=typeof t.index||t.index>this.panels.length)&&(t.index=this.panels.length);let i=!!t.skipSetActive;(e.updateParentGroup(this.groupPanel,{skipSetActive:t.skipSetActive}),this.doAddPanel(e,t.index,{skipSetActive:i}),this._activePanel===e)?this.contentContainer.renderPanel(e,{asActive:!0}):(i||this.doSetActivePanel(e),t.skipSetGroupActive||this.accessor.doSetGroupActive(this.groupPanel),t.skipSetActive||this.updateContainer())}removePanel(e,t={skipSetActive:!1}){let i="string"==typeof e?e:e.id,n=this._panels.find(e=>e.id===i);if(!n)throw Error("invalid operation");return this._removePanel(n,t)}closeAllPanels(){if(this.panels.length>0)for(let e of[...this.panels])this.doClose(e);else this.accessor.removeGroup(this.groupPanel)}closePanel(e){this.doClose(e)}doClose(e){let t=1===this.panels.length&&1===this.accessor.groups.length;this.accessor.removePanel(e,t&&"emptyGroup"===this.accessor.options.noPanelsOverlay?{removeEmptyGroup:!1}:void 0)}isPanelActive(e){return this._activePanel===e}updateActions(e){this.tabsContainer.setRightActionsElement(e)}setActive(e,t=!1){(t||this.isActive!==e)&&(this._isGroupActive=e,tQ(this.container,"dv-active-group",e),tQ(this.container,"dv-inactive-group",!e),this.tabsContainer.setActive(this.isActive),!this._activePanel&&this.panels.length>0&&this.doSetActivePanel(this.panels[0]),this.updateContainer())}layout(e,t){var i;this._width=e,this._height=t,this.contentContainer.layout(this._width,this._height),(null==(i=this._activePanel)?void 0:i.layout)&&this._activePanel.layout(this._width,this._height)}_removePanel(e,t){let i=this._activePanel===e;if(this.doRemovePanel(e),i&&this.panels.length>0){let e=this.mostRecentlyUsed[0];this.openPanel(e,{skipSetActive:t.skipSetActive,skipSetGroupActive:t.skipSetActiveGroup})}return this._activePanel&&0===this.panels.length&&this.doSetActivePanel(void 0),t.skipSetActive||this.updateContainer(),e}doRemovePanel(e){let t=this.panels.indexOf(e);if(this._activePanel===e&&this.contentContainer.closePanel(),this.tabsContainer.delete(e.id),this._panels.splice(t,1),this.mostRecentlyUsed.includes(e)){let t=this.mostRecentlyUsed.indexOf(e);this.mostRecentlyUsed.splice(t,1)}let i=this._panelDisposables.get(e.id);i&&(i.dispose(),this._panelDisposables.delete(e.id)),this._onDidRemovePanel.fire({panel:e})}doAddPanel(e,t=this.panels.length,i={skipSetActive:!1}){let n=this._panels.indexOf(e);this.tabsContainer.show(),this.contentContainer.show(),this.tabsContainer.openPanel(e,t),i.skipSetActive||this.contentContainer.openPanel(e),n>-1||(this.updateMru(e),this.panels.splice(t,0,e),this._panelDisposables.set(e.id,new tK(e.api.onDidTitleChange(e=>this._onDidPanelTitleChange.fire(e)),e.api.onDidParametersChange(e=>this._onDidPanelParametersChange.fire(e)))),this._onDidAddPanel.fire({panel:e}))}doSetActivePanel(e){this._activePanel!==e&&(this._activePanel=e,e&&(this.tabsContainer.setActivePanel(e),this.contentContainer.openPanel(e),e.layout(this._width,this._height),this.updateMru(e),this.contentContainer.refreshFocusState(),this._onDidActivePanelChange.fire({panel:e})))}updateMru(e){this.mostRecentlyUsed.includes(e)&&this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(e),1),this.mostRecentlyUsed=[e,...this.mostRecentlyUsed]}updateContainer(){var e,t;if(this.panels.forEach(e=>e.runEvents()),this.isEmpty&&!this.watermark){let e=this.accessor.createWatermarkComponent();e.init({containerApi:this._api,group:this.groupPanel}),this.watermark=e,t$(this.watermark.element,"pointerdown",()=>{this.isActive||this.accessor.doSetGroupActive(this.groupPanel)}),this.contentContainer.element.appendChild(this.watermark.element)}!this.isEmpty&&this.watermark&&(this.watermark.element.remove(),null==(t=(e=this.watermark).dispose)||t.call(e),this.watermark=void 0)}canDisplayOverlay(e,t,i){let n=new i2(e,i,t,tj,this.accessor.getPanel(this.id));return this._onUnhandledDragOverEvent.fire(n),n.isAccepted}handleDropEvent(e,t,i,n){if("no-drop-target"===this.locked)return;let o="number"==typeof n?this.panels[n]:void 0,r=new i4({nativeEvent:t,position:i,panel:o,getData:()=>tj(),kind:function(){switch(e){case"header":return"number"==typeof n?"tab":"header_space";case"content":return"content"}}(),group:this.groupPanel,api:this._api});if(this._onWillDrop.fire(r),r.defaultPrevented)return;let s=tj();if(s&&s.viewId===this.accessor.id){if("content"===e&&s.groupId===this.id&&("center"===i||null===s.panelId)||"header"===e&&s.groupId===this.id&&null===s.panelId)return;if(null===s.panelId){let{groupId:e}=s;this._onMove.fire({target:i,groupId:e,index:n});return}if(-1!==this.tabsContainer.indexOf(s.panelId)&&1===this.tabsContainer.size)return;let{groupId:t,panelId:o}=s;if(this.id===t&&!i&&this.tabsContainer.indexOf(o)===n)return;this._onMove.fire({target:i,groupId:s.groupId,itemId:s.panelId,index:n})}else this._onDidDrop.fire(new i3({nativeEvent:t,position:i,panel:o,getData:()=>tj(),group:this.groupPanel,api:this._api}))}updateDragAndDropState(){this.tabsContainer.updateDragAndDropState()}dispose(){var e,t,i;for(let n of(super.dispose(),null==(e=this.watermark)||e.element.remove(),null==(i=null==(t=this.watermark)?void 0:t.dispose)||i.call(t),this.watermark=void 0,this.panels))n.dispose();this.tabsContainer.dispose(),this.contentContainer.dispose()}}class i6 extends ij{constructor(e,t,i){super(e,t),this._onDidConstraintsChangeInternal=new tB,this.onDidConstraintsChangeInternal=this._onDidConstraintsChangeInternal.event,this._onDidConstraintsChange=new tB,this.onDidConstraintsChange=this._onDidConstraintsChange.event,this._onDidSizeChange=new tB,this.onDidSizeChange=this._onDidSizeChange.event,this.addDisposables(this._onDidConstraintsChangeInternal,this._onDidConstraintsChange,this._onDidSizeChange),i&&this.initialize(i)}setConstraints(e){this._onDidConstraintsChangeInternal.fire(e)}setSize(e){this._onDidSizeChange.fire(e)}}class i8 extends iW{get priority(){return this._priority}get snap(){return this._snap}get minimumWidth(){return this.__minimumWidth()}get minimumHeight(){return this.__minimumHeight()}get maximumHeight(){return this.__maximumHeight()}get maximumWidth(){return this.__maximumWidth()}__minimumWidth(){let e="function"==typeof this._minimumWidth?this._minimumWidth():this._minimumWidth;return e!==this._evaluatedMinimumWidth&&(this._evaluatedMinimumWidth=e,this.updateConstraints()),e}__maximumWidth(){let e="function"==typeof this._maximumWidth?this._maximumWidth():this._maximumWidth;return e!==this._evaluatedMaximumWidth&&(this._evaluatedMaximumWidth=e,this.updateConstraints()),e}__minimumHeight(){let e="function"==typeof this._minimumHeight?this._minimumHeight():this._minimumHeight;return e!==this._evaluatedMinimumHeight&&(this._evaluatedMinimumHeight=e,this.updateConstraints()),e}__maximumHeight(){let e="function"==typeof this._maximumHeight?this._maximumHeight():this._maximumHeight;return e!==this._evaluatedMaximumHeight&&(this._evaluatedMaximumHeight=e,this.updateConstraints()),e}get isActive(){return this.api.isActive}get isVisible(){return this.api.isVisible}constructor(e,t,i,n){super(e,t,null!=n?n:new i6(e,t)),this._evaluatedMinimumWidth=0,this._evaluatedMaximumWidth=Number.MAX_SAFE_INTEGER,this._evaluatedMinimumHeight=0,this._evaluatedMaximumHeight=Number.MAX_SAFE_INTEGER,this._minimumWidth=0,this._minimumHeight=0,this._maximumWidth=Number.MAX_SAFE_INTEGER,this._maximumHeight=Number.MAX_SAFE_INTEGER,this._snap=!1,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,"number"==typeof(null==i?void 0:i.minimumWidth)&&(this._minimumWidth=i.minimumWidth),"number"==typeof(null==i?void 0:i.maximumWidth)&&(this._maximumWidth=i.maximumWidth),"number"==typeof(null==i?void 0:i.minimumHeight)&&(this._minimumHeight=i.minimumHeight),"number"==typeof(null==i?void 0:i.maximumHeight)&&(this._maximumHeight=i.maximumHeight),this.api.initialize(this),this.addDisposables(this.api.onWillVisibilityChange(e=>{let{isVisible:t}=e,{accessor:i}=this._params;i.setVisible(this,t)}),this.api.onActiveChange(()=>{let{accessor:e}=this._params;e.doSetGroupActive(this)}),this.api.onDidConstraintsChangeInternal(e=>{("number"==typeof e.minimumWidth||"function"==typeof e.minimumWidth)&&(this._minimumWidth=e.minimumWidth),("number"==typeof e.minimumHeight||"function"==typeof e.minimumHeight)&&(this._minimumHeight=e.minimumHeight),("number"==typeof e.maximumWidth||"function"==typeof e.maximumWidth)&&(this._maximumWidth=e.maximumWidth),("number"==typeof e.maximumHeight||"function"==typeof e.maximumHeight)&&(this._maximumHeight=e.maximumHeight)}),this.api.onDidSizeChange(e=>{this._onDidChange.fire({height:e.height,width:e.width})}),this._onDidChange)}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}init(e){e.maximumHeight&&(this._maximumHeight=e.maximumHeight),e.minimumHeight&&(this._minimumHeight=e.minimumHeight),e.maximumWidth&&(this._maximumWidth=e.maximumWidth),e.minimumWidth&&(this._minimumWidth=e.minimumWidth),this._priority=e.priority,this._snap=!!e.snap,super.init(e),"boolean"==typeof e.isVisible&&this.setVisible(e.isVisible)}updateConstraints(){this.api._onDidConstraintsChange.fire({minimumWidth:this._evaluatedMinimumWidth,maximumWidth:this._evaluatedMaximumWidth,minimumHeight:this._evaluatedMinimumHeight,maximumHeight:this._evaluatedMaximumHeight})}toJSON(){let e=super.toJSON(),t=e=>e===Number.MAX_SAFE_INTEGER?void 0:e,i=e=>e<=0?void 0:e;return Object.assign(Object.assign({},e),{minimumHeight:i(this.minimumHeight),maximumHeight:t(this.maximumHeight),minimumWidth:i(this.minimumWidth),maximumWidth:t(this.maximumWidth),snap:this.snap,priority:this.priority})}}let i7="dockview: DockviewGroupPanelApiImpl not initialized";class ne extends i6{get location(){if(!this._group)throw Error(i7);return this._group.model.location}constructor(e,t){super(e,"__dockviewgroup__"),this.accessor=t,this._onDidLocationChange=new tB,this.onDidLocationChange=this._onDidLocationChange.event,this._onDidActivePanelChange=new tB,this.onDidActivePanelChange=this._onDidActivePanelChange.event,this.addDisposables(this._onDidLocationChange,this._onDidActivePanelChange,this._onDidVisibilityChange.event(e=>{e.isVisible&&this._pendingSize&&(super.setSize(this._pendingSize),this._pendingSize=void 0)}))}setSize(e){this._pendingSize=Object.assign({},e),super.setSize(e)}close(){if(this._group)return this.accessor.removeGroup(this._group)}getWindow(){return"popout"===this.location.type?this.location.getWindow():window}moveTo(e){var t,i,n,o;if(!this._group)throw Error(i7);let r=null!=(t=e.group)?t:this.accessor.addGroup({direction:function(e){switch(e){case"top":return"above";case"bottom":return"below";case"left":return"left";case"right":return"right";case"center":return"within";default:throw Error(`invalid position '${e}'`)}}(null!=(i=e.position)?i:"right"),skipSetActive:null!=(n=e.skipSetActive)&&n});this.accessor.moveGroupOrPanel({from:{groupId:this._group.id},to:{group:r,position:e.group&&null!=(o=e.position)?o:"center",index:e.index},skipSetActive:e.skipSetActive})}maximize(){if(!this._group)throw Error(i7);"grid"===this.location.type&&this.accessor.maximizeGroup(this._group)}isMaximized(){if(!this._group)throw Error(i7);return this.accessor.isMaximizedGroup(this._group)}exitMaximized(){if(!this._group)throw Error(i7);this.isMaximized()&&this.accessor.exitMaximizedGroup()}initialize(e){this._group=e}}class nt extends i8{get minimumWidth(){var e;if("number"==typeof this._explicitConstraints.minimumWidth)return this._explicitConstraints.minimumWidth;let t=null==(e=this.activePanel)?void 0:e.minimumWidth;return"number"==typeof t?t:super.__minimumWidth()}get minimumHeight(){var e;if("number"==typeof this._explicitConstraints.minimumHeight)return this._explicitConstraints.minimumHeight;let t=null==(e=this.activePanel)?void 0:e.minimumHeight;return"number"==typeof t?t:super.__minimumHeight()}get maximumWidth(){var e;if("number"==typeof this._explicitConstraints.maximumWidth)return this._explicitConstraints.maximumWidth;let t=null==(e=this.activePanel)?void 0:e.maximumWidth;return"number"==typeof t?t:super.__maximumWidth()}get maximumHeight(){var e;if("number"==typeof this._explicitConstraints.maximumHeight)return this._explicitConstraints.maximumHeight;let t=null==(e=this.activePanel)?void 0:e.maximumHeight;return"number"==typeof t?t:super.__maximumHeight()}get panels(){return this._model.panels}get activePanel(){return this._model.activePanel}get size(){return this._model.size}get model(){return this._model}get locked(){return this._model.locked}set locked(e){this._model.locked=e}get header(){return this._model.header}constructor(e,t,i){var n,o,r,s,a,l;super(t,"groupview_default",{minimumHeight:null!=(o=null==(n=i.constraints)?void 0:n.minimumHeight)?o:100,minimumWidth:null!=(s=null==(r=i.constraints)?void 0:r.minimumWidth)?s:100,maximumHeight:null==(a=i.constraints)?void 0:a.maximumHeight,maximumWidth:null==(l=i.constraints)?void 0:l.maximumWidth},new ne(t,e)),this._explicitConstraints={},this.api.initialize(this),this._model=new i9(this.element,e,t,i,this),this.addDisposables(this.model.onDidActivePanelChange(e=>{this.api._onDidActivePanelChange.fire(e)}),this.api.onDidConstraintsChangeInternal(e=>{void 0!==e.minimumWidth&&(this._explicitConstraints.minimumWidth="function"==typeof e.minimumWidth?e.minimumWidth():e.minimumWidth),void 0!==e.minimumHeight&&(this._explicitConstraints.minimumHeight="function"==typeof e.minimumHeight?e.minimumHeight():e.minimumHeight),void 0!==e.maximumWidth&&(this._explicitConstraints.maximumWidth="function"==typeof e.maximumWidth?e.maximumWidth():e.maximumWidth),void 0!==e.maximumHeight&&(this._explicitConstraints.maximumHeight="function"==typeof e.maximumHeight?e.maximumHeight():e.maximumHeight)}))}focus(){this.api.isActive||this.api.setActive(),super.focus()}initialize(){this._model.initialize()}setActive(e){super.setActive(e),this.model.setActive(e)}layout(e,t){super.layout(e,t),this.model.layout(e,t)}getComponent(){return this._model}toJSON(){return this.model.toJSON()}}let ni={name:"abyss",className:"dockview-theme-abyss"};class nn extends i6{get location(){return this.group.api.location}get title(){return this.panel.title}get isGroupActive(){return this.group.isActive}get renderer(){return this.panel.renderer}set group(e){let t=this._group;this._group!==e&&(this._group=e,this._onDidGroupChange.fire({}),this.setupGroupEventListeners(t),this._onDidLocationChange.fire({location:this.group.api.location}))}get group(){return this._group}get tabComponent(){return this._tabComponent}constructor(e,t,i,n,o){super(e.id,n),this.panel=e,this.accessor=i,this._onDidTitleChange=new tB,this.onDidTitleChange=this._onDidTitleChange.event,this._onDidActiveGroupChange=new tB,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._onDidGroupChange=new tB,this.onDidGroupChange=this._onDidGroupChange.event,this._onDidRendererChange=new tB,this.onDidRendererChange=this._onDidRendererChange.event,this._onDidLocationChange=new tB,this.onDidLocationChange=this._onDidLocationChange.event,this.groupEventsDisposable=new tJ,this._tabComponent=o,this.initialize(e),this._group=t,this.setupGroupEventListeners(),this.addDisposables(this.groupEventsDisposable,this._onDidRendererChange,this._onDidTitleChange,this._onDidGroupChange,this._onDidActiveGroupChange,this._onDidLocationChange)}getWindow(){return this.group.api.getWindow()}moveTo(e){var t,i;this.accessor.moveGroupOrPanel({from:{groupId:this._group.id,panelId:this.panel.id},to:{group:null!=(t=e.group)?t:this._group,position:e.group&&null!=(i=e.position)?i:"center",index:e.index},skipSetActive:e.skipSetActive})}setTitle(e){this.panel.setTitle(e)}setRenderer(e){this.panel.setRenderer(e)}close(){this.group.model.closePanel(this.panel)}maximize(){this.group.api.maximize()}isMaximized(){return this.group.api.isMaximized()}exitMaximized(){this.group.api.exitMaximized()}setupGroupEventListeners(e){var t;let i=null!=(t=null==e?void 0:e.isActive)&&t;this.groupEventsDisposable.value=new tK(this.group.api.onDidVisibilityChange(e=>{let t=!e.isVisible&&this.isVisible,i=e.isVisible&&!this.isVisible,n=this.group.model.isPanelActive(this.panel);(t||i&&n)&&this._onDidVisibilityChange.fire(e)}),this.group.api.onDidLocationChange(e=>{this.group===this.panel.group&&this._onDidLocationChange.fire(e)}),this.group.api.onDidActiveChange(()=>{this.group===this.panel.group&&i!==this.isGroupActive&&(i=this.isGroupActive,this._onDidActiveGroupChange.fire({isActive:this.isGroupActive}))}))}}class no extends tK{get params(){return this._params}get title(){return this._title}get group(){return this._group}get renderer(){var e;return null!=(e=this._renderer)?e:this.accessor.renderer}get minimumWidth(){return this._minimumWidth}get minimumHeight(){return this._minimumHeight}get maximumWidth(){return this._maximumWidth}get maximumHeight(){return this._maximumHeight}constructor(e,t,i,n,o,r,s,a){super(),this.id=e,this.accessor=n,this.containerApi=o,this.view=s,this._renderer=a.renderer,this._group=r,this._minimumWidth=a.minimumWidth,this._minimumHeight=a.minimumHeight,this._maximumWidth=a.maximumWidth,this._maximumHeight=a.maximumHeight,this.api=new nn(this,this._group,n,t,i),this.addDisposables(this.api.onActiveChange(()=>{n.setActivePanel(this)}),this.api.onDidSizeChange(e=>{this.group.api.setSize(e)}),this.api.onDidRendererChange(()=>{this.group.model.rerender(this)}))}init(e){this._params=e.params,this.view.init(Object.assign(Object.assign({},e),{api:this.api,containerApi:this.containerApi})),this.setTitle(e.title)}focus(){let e=new iT;this.api._onWillFocus.fire(e),!e.defaultPrevented&&(this.api.isActive||this.api.setActive())}toJSON(){return{id:this.id,contentComponent:this.view.contentComponent,tabComponent:this.view.tabComponent,params:Object.keys(this._params||{}).length>0?this._params:void 0,title:this.title,renderer:this._renderer,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,minimumWidth:this._minimumWidth,maximumWidth:this._maximumWidth}}setTitle(e){e!==this.title&&(this._title=e,this.api._onDidTitleChange.fire({title:e}))}setRenderer(e){e!==this.renderer&&(this._renderer=e,this.api._onDidRendererChange.fire({renderer:e}))}update(e){var t;for(let i of(this._params=Object.assign(Object.assign({},null!=(t=this._params)?t:{}),e.params),Object.keys(e.params)))void 0===e.params[i]&&delete this._params[i];this.view.update({params:this._params})}updateFromStateModel(e){var t,i,n;this._maximumHeight=e.maximumHeight,this._minimumHeight=e.minimumHeight,this._maximumWidth=e.maximumWidth,this._minimumWidth=e.minimumWidth,this.update({params:null!=(t=e.params)?t:{}}),this.setTitle(null!=(i=e.title)?i:this.id),this.setRenderer(null!=(n=e.renderer)?n:this.accessor.renderer)}updateParentGroup(e,t){this._group=e,this.api.group=this._group;let i=this._group.model.isPanelActive(this),n=this.group.api.isActive&&i;(null==t?void 0:t.skipSetActive)||this.api.isActive===n||this.api._onDidActiveChange.fire({isActive:this.group.api.isActive&&i}),this.api.isVisible!==i&&this.api._onDidVisibilityChange.fire({isVisible:i})}runEvents(){let e=this._group.model.isPanelActive(this),t=this.group.api.isActive&&e;this.api.isActive!==t&&this.api._onDidActiveChange.fire({isActive:this.group.api.isActive&&e}),this.api.isVisible!==e&&this.api._onDidVisibilityChange.fire({isVisible:e})}layout(e,t){this.api._onDidDimensionChange.fire({width:e,height:t}),this.view.layout(e,t)}dispose(){this.api.dispose(),this.view.dispose()}}class nr extends tK{get element(){return this._element}constructor(){super(),this._element=document.createElement("div"),this._element.className="dv-default-tab",this._content=document.createElement("div"),this._content.className="dv-default-tab-content",this.action=document.createElement("div"),this.action.className="dv-default-tab-action",this.action.appendChild(iQ({width:"11",height:"11",viewbox:"0 0 28 28",path:"M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z"})),this._element.appendChild(this._content),this._element.appendChild(this.action),this.render()}init(e){this._title=e.title,this.addDisposables(e.api.onDidTitleChange(e=>{this._title=e.title,this.render()}),t$(this.action,"pointerdown",e=>{e.preventDefault()}),t$(this.action,"click",t=>{t.defaultPrevented||(t.preventDefault(),e.api.close())})),this.render()}render(){var e;this._content.textContent!==this._title&&(this._content.textContent=null!=(e=this._title)?e:"")}}class ns{get content(){return this._content}get tab(){return this._tab}constructor(e,t,i,n){this.accessor=e,this.id=t,this.contentComponent=i,this.tabComponent=n,this._content=this.createContentComponent(this.id,i),this._tab=this.createTabComponent(this.id,n)}createTabRenderer(e){var t;let i=this.createTabComponent(this.id,this.tabComponent);return this._params&&i.init(Object.assign(Object.assign({},this._params),{tabLocation:e})),this._updateEvent&&(null==(t=i.update)||t.call(i,this._updateEvent)),i}init(e){this._params=e,this.content.init(e),this.tab.init(Object.assign(Object.assign({},e),{tabLocation:"header"}))}layout(e,t){var i,n;null==(n=(i=this.content).layout)||n.call(i,e,t)}update(e){var t,i,n,o;this._updateEvent=e,null==(i=(t=this.content).update)||i.call(t,e),null==(o=(n=this.tab).update)||o.call(n,e)}dispose(){var e,t,i,n;null==(t=(e=this.content).dispose)||t.call(e),null==(n=(i=this.tab).dispose)||n.call(i)}createContentComponent(e,t){return this.accessor.options.createComponent({id:e,name:t})}createTabComponent(e,t){let i=null!=t?t:this.accessor.options.defaultTabComponent;if(i){if(this.accessor.options.createTabComponent){let t=this.accessor.options.createTabComponent({id:e,name:i});return t||new nr}console.warn(`dockview: tabComponent '${t}' was not found. falling back to the default tab.`)}return new nr}}class na{constructor(e){this.accessor=e}fromJSON(e,t){var i,n;let o=e.id,r=e.params,s=e.title,a=e.view,l=a?a.content.id:null!=(i=e.contentComponent)?i:"unknown",d=a?null==(n=a.tab)?void 0:n.id:e.tabComponent,h=new ns(this.accessor,o,l,d),u=new no(o,l,d,this.accessor,new iA(this.accessor),t,h,{renderer:e.renderer,minimumWidth:e.minimumWidth,minimumHeight:e.minimumHeight,maximumWidth:e.maximumWidth,maximumHeight:e.maximumHeight});return u.init({title:null!=s?s:o,params:null!=r?r:{}}),u}}class nl extends tK{get element(){return this._element}constructor(){super(),this._element=document.createElement("div"),this._element.className="dv-watermark"}init(e){}}let nd=new class{constructor(){this._orderedList=[]}push(e){this._orderedList=[...this._orderedList.filter(t=>t!==e),e],this.update()}destroy(e){this._orderedList=this._orderedList.filter(t=>t!==e),this.update()}update(){for(let e=0;e{let e=null,t=t3();i.value=new tK({dispose:()=>{t.release()}},t$(window,"pointermove",t=>{let i=this.options.container.getBoundingClientRect(),n=t.clientX-i.left,o=t.clientY-i.top;tQ(this._element,"dv-resize-container-dragging",!0);let r=this._element.getBoundingClientRect();null===e&&(e={x:t.clientX-r.left,y:t.clientY-r.top});let s=Math.max(0,this.getMinimumWidth(r.width)),a=Math.max(0,this.getMinimumHeight(r.height)),l=it(o-e.y,-a,Math.max(0,i.height-r.height+a)),d=it(e.y-o+i.height-r.height,-a,Math.max(0,i.height-r.height+a)),h=it(n-e.x,-s,Math.max(0,i.width-r.width+s)),u=it(e.x-n+i.width-r.width,-s,Math.max(0,i.width-r.width+s)),c={};l<=d?c.top=l:c.bottom=d,h<=u?c.left=h:c.right=u,this.setBounds(c)}),t$(window,"pointerup",()=>{tQ(this._element,"dv-resize-container-dragging",!1),i.dispose(),this._onDidChangeEnd.fire()}))};this.addDisposables(i,t$(e,"pointerdown",e=>{e.defaultPrevented?e.preventDefault():e[t2]||n()}),t$(this.options.content,"pointerdown",e=>{e.defaultPrevented||!e[t2]&&e.shiftKey&&n()}),t$(this.options.content,"pointerdown",()=>{nd.push(this._element)},!0)),t.inDragMode&&n()}setupResize(e){let t=document.createElement("div");t.className=`dv-resize-handle-${e}`,this._element.appendChild(t);let i=new tJ;this.addDisposables(i,t$(t,"pointerdown",t=>{t.preventDefault();let n=null,o=t3();i.value=new tK(t$(window,"pointermove",t=>{let i,o,r,s,a,l,d=this.options.container.getBoundingClientRect(),h=this._element.getBoundingClientRect(),u=t.clientY-d.top,c=t.clientX-d.left;null===n&&(n={originalY:u,originalHeight:h.height,originalX:c,originalWidth:h.width});let p=()=>{i=it(u,0,n.originalY+n.originalHeight>d.height?Math.max(0,d.height-nh.MINIMUM_HEIGHT):Math.max(0,n.originalY+n.originalHeight-nh.MINIMUM_HEIGHT)),r=n.originalY+n.originalHeight-i,o=d.height-i-r},m=()=>{let e=(i=n.originalY-n.originalHeight)<0&&"number"==typeof this.options.minimumInViewportHeight?-i+this.options.minimumInViewportHeight:nh.MINIMUM_HEIGHT,t=d.height-Math.max(0,i);r=it(u-i,e,t),o=d.height-i-r},f=()=>{s=it(c,0,n.originalX+n.originalWidth>d.width?Math.max(0,d.width-nh.MINIMUM_WIDTH):Math.max(0,n.originalX+n.originalWidth-nh.MINIMUM_WIDTH)),l=n.originalX+n.originalWidth-s,a=d.width-s-l},g=()=>{let e=(s=n.originalX-n.originalWidth)<0&&"number"==typeof this.options.minimumInViewportWidth?-s+this.options.minimumInViewportWidth:nh.MINIMUM_WIDTH,t=d.width-Math.max(0,s);l=it(c-s,e,t),a=d.width-s-l};switch(e){case"top":p();break;case"bottom":m();break;case"left":f();break;case"right":g();break;case"topleft":p(),f();break;case"topright":p(),g();break;case"bottomleft":m(),f();break;case"bottomright":m(),g()}let v={};i<=o?v.top=i:v.bottom=o,s<=a?v.left=s:v.right=a,v.height=r,v.width=l,this.setBounds(v)}),{dispose:()=>{o.release()}},t$(window,"pointerup",()=>{i.dispose(),this._onDidChangeEnd.fire()}))}))}getMinimumWidth(e){return"number"==typeof this.options.minimumInViewportWidth?e-this.options.minimumInViewportWidth:0}getMinimumHeight(e){return"number"==typeof this.options.minimumInViewportHeight?e-this.options.minimumInViewportHeight:0}dispose(){nd.destroy(this._element),this._element.remove(),super.dispose()}}nh.MINIMUM_HEIGHT=20,nh.MINIMUM_WIDTH=20;class nu extends tK{constructor(e,t){super(),this.group=e,this.overlay=t,this.addDisposables(t)}position(e){this.overlay.setBounds(e)}}class nc{constructor(){this.cache=new Map,this.currentFrameId=0,this.rafId=null}getPosition(e){let t=this.cache.get(e);if(t&&t.frameId===this.currentFrameId)return t.rect;this.scheduleFrameUpdate();let i=t5(e);return this.cache.set(e,{rect:i,frameId:this.currentFrameId}),i}invalidate(){this.currentFrameId++}scheduleFrameUpdate(){this.rafId||(this.rafId=requestAnimationFrame(()=>{this.currentFrameId++,this.rafId=null}))}}class np extends tK{constructor(e,t){super(),this.element=e,this.accessor=t,this.map={},this._disposed=!1,this.positionCache=new nc,this.pendingUpdates=new Set,this.addDisposables(O.from(()=>{for(let e of Object.values(this.map))e.disposable.dispose(),e.destroy.dispose();this._disposed=!0}))}updateAllPositions(){if(!this._disposed)for(let e of(this.positionCache.invalidate(),Object.values(this.map)))e.panel.api.isVisible&&e.resize&&e.resize()}detatch(e){if(this.map[e.api.id]){let{disposable:t,destroy:i}=this.map[e.api.id];return t.dispose(),i.dispose(),delete this.map[e.api.id],!0}return!1}attach(e){let{panel:t,referenceContainer:i}=e;if(!this.map[t.api.id]){let e,i=((e=document.createElement("div")).tabIndex=-1,e);i.className="dv-render-overlay",this.map[t.api.id]={panel:t,disposable:O.NONE,destroy:O.NONE,element:i}}let n=this.map[t.api.id].element;t.view.content.element.parentElement!==n&&n.appendChild(t.view.content.element),n.parentElement!==this.element&&this.element.appendChild(n);let o=()=>{let e=t.api.id;this.pendingUpdates.has(e)||(this.pendingUpdates.add(e),requestAnimationFrame(()=>{if(this.pendingUpdates.delete(e),this.isDisposed||!this.map[e])return;let o=this.positionCache.getPosition(i.element),r=this.positionCache.getPosition(this.element),s=o.left-r.left,a=o.top-r.top,l=o.width,d=o.height;n.style.left=`${s}px`,n.style.top=`${a}px`,n.style.width=`${l}px`,n.style.height=`${d}px`,tQ(n,"dv-render-overlay-float","floating"===t.group.api.location.type)}))},r=()=>{t.api.isVisible&&(this.positionCache.invalidate(),o()),n.style.display=t.api.isVisible?"":"none"},s=new tJ,a=()=>{"floating"===t.api.location.type?queueMicrotask(()=>{let e=this.accessor.floatingGroups.find(e=>e.group===t.api.group);if(!e)return;let i=e.overlay.element,o=()=>{let e=Number(i.getAttribute("aria-level"));n.style.zIndex=`calc(var(--dv-overlay-z-index, 999) + ${2*e+1})`},r=new MutationObserver(()=>{o()});s.value=O.from(()=>r.disconnect()),r.observe(i,{attributeFilter:["aria-level"],attributes:!0}),o()}):n.style.zIndex=""},l=new tK(s,new iz(n,{onDragEnd:e=>{i.dropTarget.dnd.onDragEnd(e)},onDragEnter:e=>{i.dropTarget.dnd.onDragEnter(e)},onDragLeave:e=>{i.dropTarget.dnd.onDragLeave(e)},onDrop:e=>{i.dropTarget.dnd.onDrop(e)},onDragOver:e=>{i.dropTarget.dnd.onDragOver(e)}}),t.api.onDidVisibilityChange(()=>{r()}),t.api.onDidDimensionsChange(()=>{t.api.isVisible&&o()}),t.api.onDidLocationChange(()=>{a()}));return this.map[t.api.id].destroy=O.from(()=>{var e;t.view.content.element.parentElement===n&&n.removeChild(t.view.content.element),null==(e=n.parentElement)||e.removeChild(n)}),a(),queueMicrotask(()=>{this.isDisposed||r()}),this.map[t.api.id].disposable.dispose(),this.map[t.api.id].disposable=l,this.map[t.api.id].resize=o,n}}class nm extends tK{get window(){var e,t;return null!=(t=null==(e=this._window)?void 0:e.value)?t:null}constructor(e,t,i){super(),this.target=e,this.className=t,this.options=i,this._onWillClose=new tB,this.onWillClose=this._onWillClose.event,this._onDidClose=new tB,this.onDidClose=this._onDidClose.event,this._window=null,this.addDisposables(this._onWillClose,this._onDidClose,{dispose:()=>{this.close()}})}dimensions(){if(!this._window)return null;let e=this._window.value.screenX,t=this._window.value.screenY;return{top:t,left:e,width:this._window.value.innerWidth,height:this._window.value.innerHeight}}close(){var e,t;this._window&&(this._onWillClose.fire(),null==(t=(e=this.options).onWillClose)||t.call(e,{id:this.target,window:this._window.value}),this._window.disposable.dispose(),this._window=null,this._onDidClose.fire())}open(){var e,t,i,n,o,r;return i=this,n=void 0,o=void 0,r=function*(){if(this._window)throw Error("instance of popout window is already open");let i=`${this.options.url}`,n=Object.entries({top:this.options.top,left:this.options.left,width:this.options.width,height:this.options.height}).map(([e,t])=>`${e}=${t}`).join(","),o=window.open(i,this.target,n);if(!o)return null;let r=new tK;this._window={value:o,disposable:r},r.addDisposables(O.from(()=>{o.close()}),t$(window,"beforeunload",()=>{this.close()}));let s=this.createPopoutWindowContainer();return this.className&&s.classList.add(this.className),null==(t=(e=this.options).onDidOpen)||t.call(e,{id:this.target,window:o}),new Promise((e,t)=>{o.addEventListener("unload",e=>{}),o.addEventListener("load",()=>{try{let t=o.document;t.title=document.title,t.body.appendChild(s),function(e,t){for(let i of Array.from(t)){if(i.href){let t=e.createElement("link");t.href=i.href,t.type=i.type,t.rel="stylesheet",e.head.appendChild(t)}let t=[];try{i.cssRules&&(t=Array.from(i.cssRules).map(e=>e.cssText))}catch(e){}for(let i of t){let t=e.createElement("style");t.appendChild(e.createTextNode(i)),e.head.appendChild(t)}}}(t,window.document.styleSheets),t$(o,"beforeunload",()=>{this.close()}),e(s)}catch(e){t(e)}})})},new(o||(o=Promise))(function(e,t){function s(e){try{l(r.next(e))}catch(e){t(e)}}function a(e){try{l(r.throw(e))}catch(e){t(e)}}function l(t){var i;t.done?e(t.value):((i=t.value)instanceof o?i:new o(function(e){e(i)})).then(s,a)}l((r=r.apply(i,n||[])).next())})}createPopoutWindowContainer(){let e=document.createElement("div");return e.classList.add("dv-popout-window"),e.id="dv-popout-window",e.style.position="absolute",e.style.width="100%",e.style.height="100%",e.style.top="0px",e.style.left="0px",e}}class nf extends tK{constructor(e){super(),this.accessor=e,this.init()}init(){let e=new Set,t=new Set;this.addDisposables(this.accessor.onDidAddPanel(t=>{if(e.has(t.api.id))throw Error(`dockview: Invalid event sequence. [onDidAddPanel] called for panel ${t.api.id} but panel already exists`);e.add(t.api.id)}),this.accessor.onDidRemovePanel(t=>{if(e.has(t.api.id))e.delete(t.api.id);else throw Error(`dockview: Invalid event sequence. [onDidRemovePanel] called for panel ${t.api.id} but panel does not exists`)}),this.accessor.onDidAddGroup(e=>{if(t.has(e.api.id))throw Error(`dockview: Invalid event sequence. [onDidAddGroup] called for group ${e.api.id} but group already exists`);t.add(e.api.id)}),this.accessor.onDidRemoveGroup(e=>{if(t.has(e.api.id))t.delete(e.api.id);else throw Error(`dockview: Invalid event sequence. [onDidRemoveGroup] called for group ${e.api.id} but group does not exists`)}))}}class ng extends tK{constructor(e){super(),this.root=e,this._active=null,this._activeDisposable=new tJ,this._element=document.createElement("div"),this._element.className="dv-popover-anchor",this._element.style.position="relative",this.root.prepend(this._element),this.addDisposables(O.from(()=>{this.close()}),this._activeDisposable)}openPopover(e,t){var i;this.close();let n=document.createElement("div");n.style.position="absolute",n.style.zIndex=null!=(i=t.zIndex)?i:"var(--dv-overlay-z-index)",n.appendChild(e);let o=this._element.getBoundingClientRect(),r=o.left,s=o.top;n.style.top=`${t.y-s}px`,n.style.left=`${t.x-r}px`,this._element.appendChild(n),this._active=n,this._activeDisposable.value=new tK(t$(window,"pointerdown",e=>{var t;let i=e.target;if(!(i instanceof HTMLElement))return;let o=i;for(;o&&o!==n;)o=null!=(t=null==o?void 0:o.parentElement)?t:null;o||this.close()})),requestAnimationFrame(()=>{!function(e,t,i={buffer:10}){let n=i.buffer,o=e.getBoundingClientRect(),r=t.getBoundingClientRect(),s=0,a=0,l=o.left-r.left,d=o.top-r.top,h=o.bottom-r.bottom,u=o.right-r.right;ln&&(s=-n-u),dn&&(a=-h-n),(0!==s||0!==a)&&(e.style.transform=`translate(${s}px, ${a}px)`)}(n,this.root)})}close(){this._active&&(this._active.remove(),this._activeDisposable.dispose(),this._active=null)}}class nv extends tK{get disabled(){return this._disabled}set disabled(e){var t;this.disabled!==e&&(this._disabled=e,e&&(null==(t=this.model)||t.clear()))}get model(){if(!this.disabled)return{clear:()=>{var e;this._model&&(null==(e=this._model.root.parentElement)||e.removeChild(this._model.root)),this._model=void 0},exists:()=>!!this._model,getElements:(e,t)=>{let i=this._outline!==t;if(this._outline=t,this._model)return this._model.changed=i,this._model;let n=this.createContainer(),o=this.createAnchor();if(this._model={root:n,overlay:o,changed:i},n.appendChild(o),this.element.appendChild(n),(null==e?void 0:e.target)instanceof HTMLElement){let t=e.target.getBoundingClientRect(),i=this.element.getBoundingClientRect();o.style.left=`${t.left-i.left}px`,o.style.top=`${t.top-i.top}px`}return this._model}}}constructor(e,t){super(),this.element=e,this._disabled=!1,this._disabled=t.disabled,this.addDisposables(O.from(()=>{var e;null==(e=this.model)||e.clear()}))}createContainer(){let e=document.createElement("div");return e.className="dv-drop-target-container",e}createAnchor(){let e=document.createElement("div");return e.className="dv-drop-target-anchor",e.style.visibility="hidden",e}}let nw={activationSize:{type:"pixels",value:10},size:{type:"pixels",value:20}};function nb(e){let t=e.from.activePanel;[...e.from.panels].map(t=>{let i=e.from.model.removePanel(t);return e.from.model.renderContainer.detatch(t),i}).forEach(i=>{e.to.model.openPanel(i,{skipSetActive:t!==i,skipSetGroupActive:!0})})}class ny extends iD{get orientation(){return this.gridview.orientation}get totalPanels(){return this.panels.length}get panels(){return this.groups.flatMap(e=>e.panels)}get options(){return this._options}get activePanel(){let e=this.activeGroup;if(e)return e.activePanel}get renderer(){var e;return null!=(e=this.options.defaultRenderer)?e:"onlyWhenVisible"}get api(){return this._api}get floatingGroups(){return this._floatingGroups}get popoutRestorationPromise(){return this._popoutRestorationPromise}constructor(e,t){var i,n,o;super(e,{proportionalLayout:!0,orientation:I.HORIZONTAL,styles:t.hideBorders?{separatorBorder:"transparent"}:void 0,disableAutoResizing:t.disableAutoResizing,locked:t.locked,margin:null!=(n=null==(i=t.theme)?void 0:i.gap)?n:0,className:t.className}),this.nextGroupId=ii(),this._deserializer=new na(this),this._watermark=null,this._onWillDragPanel=new tB,this.onWillDragPanel=this._onWillDragPanel.event,this._onWillDragGroup=new tB,this.onWillDragGroup=this._onWillDragGroup.event,this._onDidDrop=new tB,this.onDidDrop=this._onDidDrop.event,this._onWillDrop=new tB,this.onWillDrop=this._onWillDrop.event,this._onWillShowOverlay=new tB,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onUnhandledDragOverEvent=new tB,this.onUnhandledDragOverEvent=this._onUnhandledDragOverEvent.event,this._onDidRemovePanel=new tB,this.onDidRemovePanel=this._onDidRemovePanel.event,this._onDidAddPanel=new tB,this.onDidAddPanel=this._onDidAddPanel.event,this._onDidPopoutGroupSizeChange=new tB,this.onDidPopoutGroupSizeChange=this._onDidPopoutGroupSizeChange.event,this._onDidPopoutGroupPositionChange=new tB,this.onDidPopoutGroupPositionChange=this._onDidPopoutGroupPositionChange.event,this._onDidOpenPopoutWindowFail=new tB,this.onDidOpenPopoutWindowFail=this._onDidOpenPopoutWindowFail.event,this._onDidLayoutFromJSON=new tB,this.onDidLayoutFromJSON=this._onDidLayoutFromJSON.event,this._onDidActivePanelChange=new tB({replay:!0}),this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onDidMovePanel=new tB,this.onDidMovePanel=this._onDidMovePanel.event,this._onDidMaximizedGroupChange=new tB,this.onDidMaximizedGroupChange=this._onDidMaximizedGroupChange.event,this._floatingGroups=[],this._popoutGroups=[],this._popoutRestorationPromise=Promise.resolve(),this._onDidRemoveGroup=new tB,this.onDidRemoveGroup=this._onDidRemoveGroup.event,this._onDidAddGroup=new tB,this.onDidAddGroup=this._onDidAddGroup.event,this._onDidOptionsChange=new tB,this.onDidOptionsChange=this._onDidOptionsChange.event,this._onDidActiveGroupChange=new tB,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._moving=!1,this._options=t,this.popupService=new ng(this.element),this._themeClassnames=new t4(this.element),this._api=new iA(this),this.rootDropTargetContainer=new nv(this.element,{disabled:!0}),this.overlayRenderContainer=new np(this.gridview.element,this),this._rootDropTarget=new iI(this.element,{className:"dv-drop-target-edge",canDisplayOverlay:(e,t)=>{let i=tj();if(i)return i.viewId===this.id&&("center"!==t||0===this.gridview.length);if("center"===t&&0!==this.gridview.length)return!1;let n=new i2(e,"edge",t,tj);return this._onUnhandledDragOverEvent.fire(n),n.isAccepted},acceptedTargetZones:["top","bottom","left","right","center"],overlayModel:null!=(o=t.rootOverlayModel)?o:nw,getOverrideTarget:()=>{var e;return null==(e=this.rootDropTargetContainer)?void 0:e.model}}),this.updateDropTargetModel(t),tQ(this.gridview.element,"dv-dockview",!0),tQ(this.element,"dv-debug",!!t.debug),this.updateTheme(),this.updateWatermark(),t.debug&&this.addDisposables(new nf(this)),this.addDisposables(this.rootDropTargetContainer,this.overlayRenderContainer,this._onWillDragPanel,this._onWillDragGroup,this._onWillShowOverlay,this._onDidActivePanelChange,this._onDidAddPanel,this._onDidRemovePanel,this._onDidLayoutFromJSON,this._onDidDrop,this._onWillDrop,this._onDidMovePanel,this._onDidMovePanel.event(()=>{this.debouncedUpdateAllPositions()}),this._onDidAddGroup,this._onDidRemoveGroup,this._onDidActiveGroupChange,this._onUnhandledDragOverEvent,this._onDidMaximizedGroupChange,this._onDidOptionsChange,this._onDidPopoutGroupSizeChange,this._onDidPopoutGroupPositionChange,this._onDidOpenPopoutWindowFail,this.onDidViewVisibilityChangeMicroTaskQueue(()=>{this.updateWatermark()}),this.onDidAdd(e=>{this._moving||this._onDidAddGroup.fire(e)}),this.onDidRemove(e=>{this._moving||this._onDidRemoveGroup.fire(e)}),this.onDidActiveChange(e=>{this._moving||this._onDidActiveGroupChange.fire(e)}),this.onDidMaximizedChange(e=>{this._onDidMaximizedGroupChange.fire({group:e.panel,isMaximized:e.isMaximized})}),N.any(this.onDidAdd,this.onDidRemove)(()=>{this.updateWatermark()}),N.any(this.onDidAddPanel,this.onDidRemovePanel,this.onDidAddGroup,this.onDidRemove,this.onDidMovePanel,this.onDidActivePanelChange,this.onDidPopoutGroupPositionChange,this.onDidPopoutGroupSizeChange)(()=>{this._bufferOnDidLayoutChange.fire()}),O.from(()=>{for(let e of[...this._floatingGroups])e.dispose();for(let e of[...this._popoutGroups])e.disposable.dispose()}),this._rootDropTarget,this._rootDropTarget.onWillShowOverlay(e=>{this.gridview.length>0&&"center"===e.position||this._onWillShowOverlay.fire(new iJ(e,{kind:"edge",panel:void 0,api:this._api,group:void 0,getData:tj}))}),this._rootDropTarget.onDrop(e=>{var t;let i=new i4({nativeEvent:e.nativeEvent,position:e.position,panel:void 0,api:this._api,group:void 0,getData:tj,kind:"edge"});if(this._onWillDrop.fire(i),i.defaultPrevented)return;let n=tj();n?this.moveGroupOrPanel({from:{groupId:n.groupId,panelId:null!=(t=n.panelId)?t:void 0},to:{group:this.orthogonalize(e.position),position:"center"}}):this._onDidDrop.fire(new i3({nativeEvent:e.nativeEvent,position:e.position,panel:void 0,api:this._api,group:void 0,getData:tj}))}),this._rootDropTarget)}setVisible(e,t){switch(e.api.location.type){case"grid":super.setVisible(e,t);break;case"floating":{let i=this.floatingGroups.find(t=>t.group===e);i&&(i.overlay.setVisible(t),e.api._onDidVisibilityChange.fire({isVisible:t}));break}case"popout":console.warn("dockview: You cannot hide a group that is in a popout window")}}addPopoutGroup(e,t){var i,n,o,r,s;if(e instanceof no&&1===e.group.size)return this.addPopoutGroup(e.group,t);let a=function(e){let t,i=e;for(;null!==i&&"string"!=typeof(t=(function(e){let t=[];for(let i=0;ie.startsWith("dockview-theme-")));)i=i.parentElement;return t}(this.gridview.element),l=this.element,d=(null==t?void 0:t.position)?t.position:e instanceof nt?e.element.getBoundingClientRect():e.group?e.group.element.getBoundingClientRect():l.getBoundingClientRect(),h=null!=(n=null==(i=null==t?void 0:t.overridePopoutGroup)?void 0:i.id)?n:this.getNextGroupId(),u=new nm(`${this.id}-${h}`,null!=a?a:"",{url:null!=(s=null!=(o=null==t?void 0:t.popoutUrl)?o:null==(r=this.options)?void 0:r.popoutUrl)?s:"/popout.html",left:window.screenX+d.left,top:window.screenY+d.top,width:d.width,height:d.height,onDidOpen:null==t?void 0:t.onDidOpen,onWillClose:null==t?void 0:t.onWillClose}),c=new tK(u,u.onDidClose(()=>{c.dispose()}));return u.open().then(i=>{var n,o,r,s;let a,l,d,p,m,f,g,v,w;if(u.isDisposed)return!1;let b=(null==t?void 0:t.referenceGroup)?t.referenceGroup:e instanceof no?e.group:e,y=e.api.location.type,x=null!==b.element.parentElement;if(x?(null==t?void 0:t.overridePopoutGroup)?a=t.overridePopoutGroup:(a=this.createGroup({id:h}),i&&this._onDidAddGroup.fire(a)):a=b,null===i)return console.error("dockview: failed to create popout. perhaps you need to allow pop-ups for this website"),c.dispose(),this._onDidOpenPopoutWindowFail.fire(),this.movingLock(()=>nb({from:a,to:b})),b.api.isVisible||b.api.setVisible(!0),!1;let _=document.createElement("div");_.className="dv-overlay-render-container";let D=new np(_,this);if(a.model.renderContainer=D,a.layout(u.window.innerWidth,u.window.innerHeight),!(null==t?void 0:t.overridePopoutGroup)&&x)if(e instanceof no)this.movingLock(()=>{let t=b.model.removePanel(e);a.model.openPanel(t)});else switch(this.movingLock(()=>nb({from:b,to:a})),y){case"grid":b.api.setVisible(!1);break;case"floating":case"popout":l=null==(n=this._floatingGroups.find(t=>t.group.api.id===e.api.id))?void 0:n.overlay.toJSON(),this.removeGroup(b)}i.classList.add("dv-dockview"),i.style.overflow="hidden",i.appendChild(_),i.appendChild(a.element);let C=document.createElement("div"),S=new nv(C,{disabled:this.rootDropTargetContainer.disabled});i.appendChild(C),a.model.dropTargetContainer=S,a.model.location={type:"popout",getWindow:()=>u.window,popoutUrl:null==t?void 0:t.popoutUrl},x&&"grid"===e.api.location.type&&e.api.setVisible(!1),this.doSetGroupAndPanelActive(a),c.addDisposables(a.api.onDidActiveChange(e=>{var t;e.isActive&&(null==(t=u.window)||t.focus())}),a.api.onWillFocus(()=>{var e;null==(e=u.window)||e.focus()}));let E=x&&b&&this.getPanel(b.id),A={window:u,popoutGroup:a,referenceGroup:E?b.id:void 0,disposable:{dispose:()=>(c.dispose(),d)}},k=(o=u.window,m=new tB,f=o.screenX,g=o.screenY,(v=()=>{if(o.closed)return;let e=o.screenX,t=o.screenY;(e!==f||t!==g)&&(clearTimeout(p),p=setTimeout(()=>{m.fire()},100),f=e,g=t),requestAnimationFrame(v)})(),m);return c.addDisposables(k,(r=u.window,s=()=>{this._onDidPopoutGroupSizeChange.fire({width:u.window.innerWidth,height:u.window.innerHeight,group:a})},new tK(t$(r,"resize",()=>{clearTimeout(w),w=setTimeout(()=>{s()},100)}))),k.event(()=>{this._onDidPopoutGroupPositionChange.fire({screenX:u.window.screenX,screenY:u.window.screenX,group:a})}),t$(u.window,"resize",()=>{a.layout(u.window.innerWidth,u.window.innerHeight)}),D,O.from(()=>{if(!this.isDisposed){if(x&&this.getPanel(b.id))this.movingLock(()=>nb({from:a,to:b})),b.api.isVisible||b.api.setVisible(!0),this.getPanel(a.id)&&this.doRemoveGroup(a,{skipPopoutAssociated:!0});else if(this.getPanel(a.id)){if(a.model.renderContainer=this.overlayRenderContainer,a.model.dropTargetContainer=this.rootDropTargetContainer,d=a,!this._popoutGroups.find(e=>e.popoutGroup===a))return;l?this.addFloatingGroup(a,{height:l.height,width:l.width,position:l}):(this.doRemoveGroup(a,{skipDispose:!0,skipActive:!0,skipPopoutReturn:!0}),a.model.location={type:"grid"},this.movingLock(()=>{this.doAddGroup(a,[0])})),this.doSetGroupAndPanelActive(a)}}})),this._popoutGroups.push(A),this.updateWatermark(),!0}).catch(e=>(console.error("dockview: failed to create popout.",e),!1))}addFloatingGroup(e,t){var i,n,o,r,s;let a;if(e instanceof no)a=this.createGroup(),this._onDidAddGroup.fire(a),this.movingLock(()=>this.removePanel(e,{removeEmptyGroup:!0,skipDispose:!0,skipSetActiveGroup:!0})),this.movingLock(()=>a.model.openPanel(e,{skipSetGroupActive:!0}));else{a=e;let n=null==(i=this._popoutGroups.find(e=>e.popoutGroup===a))?void 0:i.referenceGroup,o=n?this.getPanel(n):void 0;"boolean"==typeof(null==t?void 0:t.skipRemoveGroup)&&t.skipRemoveGroup||(o?(this.movingLock(()=>nb({from:e,to:o})),this.doRemoveGroup(e,{skipPopoutReturn:!0,skipPopoutAssociated:!0}),this.doRemoveGroup(o,{skipDispose:!0}),a=o):this.doRemoveGroup(e,{skipDispose:!0,skipPopoutReturn:!0,skipPopoutAssociated:!1}))}let l=function(){if(null==t?void 0:t.position){let e={};return"left"in t.position?e.left=Math.max(t.position.left,0):"right"in t.position?e.right=Math.max(t.position.right,0):e.left=100,"top"in t.position?e.top=Math.max(t.position.top,0):"bottom"in t.position?e.bottom=Math.max(t.position.bottom,0):e.top=100,"number"==typeof t.width?e.width=Math.max(t.width,0):e.width=300,"number"==typeof t.height?e.height=Math.max(t.height,0):e.height=300,e}return{left:"number"==typeof(null==t?void 0:t.x)?Math.max(t.x,0):100,top:"number"==typeof(null==t?void 0:t.y)?Math.max(t.y,0):100,width:"number"==typeof(null==t?void 0:t.width)?Math.max(t.width,0):300,height:"number"==typeof(null==t?void 0:t.height)?Math.max(t.height,0):300}}(),d=new nh(Object.assign(Object.assign({container:this.gridview.element,content:a.element},l),{minimumInViewportWidth:"boundedWithinViewport"===this.options.floatingGroupBounds?void 0:null!=(o=null==(n=this.options.floatingGroupBounds)?void 0:n.minimumWidthWithinViewport)?o:100,minimumInViewportHeight:"boundedWithinViewport"===this.options.floatingGroupBounds?void 0:null!=(s=null==(r=this.options.floatingGroupBounds)?void 0:r.minimumHeightWithinViewport)?s:100})),h=a.element.querySelector(".dv-void-container");if(!h)throw Error("dockview: failed to find drag handle");d.setupDrag(h,{inDragMode:"boolean"==typeof(null==t?void 0:t.inDragMode)&&t.inDragMode});let u=new nu(a,d),c=new tK(a.api.onDidActiveChange(e=>{e.isActive&&d.bringToFront()}),tX(a.element,e=>{let{width:t,height:i}=e.contentRect;a.layout(t,i)}));u.addDisposables(d.onDidChange(()=>{a.layout(a.width,a.height)}),d.onDidChangeEnd(()=>{this._bufferOnDidLayoutChange.fire()}),a.onDidChange(e=>{d.setBounds({height:null==e?void 0:e.height,width:null==e?void 0:e.width})}),{dispose:()=>{c.dispose(),ie(this._floatingGroups,u),a.model.location={type:"grid"},this.updateWatermark()}}),this._floatingGroups.push(u),a.model.location={type:"floating"},(null==t?void 0:t.skipActiveGroup)||this.doSetGroupAndPanelActive(a),this.updateWatermark()}orthogonalize(e,t){switch(this.gridview.normalize(),e){case"top":case"bottom":this.gridview.orientation===I.HORIZONTAL&&this.gridview.insertOrthogonalSplitviewAtRoot();break;case"left":case"right":this.gridview.orientation===I.VERTICAL&&this.gridview.insertOrthogonalSplitviewAtRoot()}switch(e){case"top":case"left":case"center":return this.createGroupAtLocation([0],void 0,t);case"bottom":case"right":return this.createGroupAtLocation([this.gridview.length],void 0,t);default:throw Error(`dockview: unsupported position ${e}`)}}updateOptions(e){var t,i;if(super.updateOptions(e),"floatingGroupBounds"in e)for(let n of this._floatingGroups){switch(e.floatingGroupBounds){case"boundedWithinViewport":n.overlay.minimumInViewportHeight=void 0,n.overlay.minimumInViewportWidth=void 0;break;case void 0:n.overlay.minimumInViewportHeight=100,n.overlay.minimumInViewportWidth=100;break;default:n.overlay.minimumInViewportHeight=null==(t=e.floatingGroupBounds)?void 0:t.minimumHeightWithinViewport,n.overlay.minimumInViewportWidth=null==(i=e.floatingGroupBounds)?void 0:i.minimumWidthWithinViewport}n.overlay.setBounds()}this.updateDropTargetModel(e);let n=this.options.disableDnd;this._options=Object.assign(Object.assign({},this.options),e),n!==this.options.disableDnd&&this.updateDragAndDropState(),"theme"in e&&this.updateTheme(),this.layout(this.gridview.width,this.gridview.height,!0)}layout(e,t,i){if(super.layout(e,t,i),this._floatingGroups)for(let e of this._floatingGroups)e.overlay.setBounds()}updateDragAndDropState(){for(let e of this.groups)e.model.updateDragAndDropState()}focus(){var e;null==(e=this.activeGroup)||e.focus()}getGroupPanel(e){return this.panels.find(t=>t.id===e)}setActivePanel(e){e.group.model.openPanel(e),this.doSetGroupAndPanelActive(e.group)}moveToNext(e={}){var t;if(!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}if(e.includePanel&&e.group&&e.group.activePanel!==e.group.panels[e.group.panels.length-1])return void e.group.model.moveToNext({suppressRoll:!0});let i=ip(e.group.element),n=null==(t=this.gridview.next(i))?void 0:t.view;this.doSetGroupAndPanelActive(n)}moveToPrevious(e={}){var t;if(!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}if(e.includePanel&&e.group&&e.group.activePanel!==e.group.panels[0])return void e.group.model.moveToPrevious({suppressRoll:!0});let i=ip(e.group.element),n=null==(t=this.gridview.previous(i))?void 0:t.view;n&&this.doSetGroupAndPanelActive(n)}toJSON(){var e;let t=this.gridview.serialize(),i=this.panels.reduce((e,t)=>(e[t.id]=t.toJSON(),e),{}),n=this._floatingGroups.map(e=>({data:e.group.toJSON(),position:e.overlay.toJSON()})),o=this._popoutGroups.map(e=>({data:e.popoutGroup.toJSON(),gridReferenceGroup:e.referenceGroup,position:e.window.dimensions(),url:"popout"===e.popoutGroup.api.location.type?e.popoutGroup.api.location.popoutUrl:void 0})),r={grid:t,panels:i,activeGroup:null==(e=this.activeGroup)?void 0:e.id};return n.length>0&&(r.floatingGroups=n),o.length>0&&(r.popoutGroups=o),r}fromJSON(e,t){var i,n;let o,r=new Map;if(null==t?void 0:t.reuseExistingPanels){o=this.createGroup(),this._groups.delete(o.api.id);let t=Object.keys(e.panels);for(let e of this.panels)t.includes(e.api.id)&&r.set(e.api.id,e);this.movingLock(()=>{Array.from(r.values()).forEach(e=>{this.moveGroupOrPanel({from:{groupId:e.api.group.api.id,panelId:e.api.id},to:{group:o,position:"center"},keepEmptyGroups:!0})})})}if(this.clear(),"object"!=typeof e||null===e)throw Error("dockview: serialized layout must be a non-null object");let{grid:s,panels:a,activeGroup:l}=e;if("branch"!==s.root.type||!Array.isArray(s.root.data))throw Error("dockview: root must be of type branch");try{let t=this.width,d=this.height,h=e=>{let{id:t,locked:i,hideHeader:n,views:s,activeView:l}=e;if("string"!=typeof t)throw Error("dockview: group id must be of type string");let d=this.createGroup({id:t,locked:!!i,hideHeader:!!n});this._onDidAddGroup.fire(d);let h=[];for(let e of s){let t=r.get(e);if(o&&t)this.movingLock(()=>{o.model.removePanel(t)}),h.push(t),t.updateFromStateModel(a[e]);else{let t=this._deserializer.fromJSON(a[e],d);h.push(t)}}for(let e=0;e{d.model.openPanel(t,{skipSetActive:!i,skipSetGroupActive:!0})}):d.model.openPanel(t,{skipSetActive:!i,skipSetGroupActive:!0})}return!d.activePanel&&d.panels.length>0&&d.model.openPanel(d.panels[d.panels.length-1],{skipSetGroupActive:!0}),d};for(let n of(this.gridview.deserialize(s,{fromJSON:e=>h(e.data)}),this.layout(t,d,!0),null!=(i=e.floatingGroups)?i:[])){let{data:e,position:t}=n,i=h(e);this.addFloatingGroup(i,{position:t,width:t.width,height:t.height,skipRemoveGroup:!0,inDragMode:!1})}let u=null!=(n=e.popoutGroups)?n:[],c=[];for(let e of(u.forEach((e,t)=>{let{data:i,position:n,gridReferenceGroup:o,url:r}=e,s=h(i),a=new Promise(e=>{setTimeout(()=>{this.addPopoutGroup(s,{position:null!=n?n:void 0,overridePopoutGroup:o?s:void 0,referenceGroup:o?this.getPanel(o):void 0,popoutUrl:r}),e()},100*t)});c.push(a)}),this._popoutRestorationPromise=Promise.all(c).then(()=>void 0),this._floatingGroups))e.overlay.setBounds();if("string"==typeof l){let e=this.getPanel(l);e&&this.doSetGroupAndPanelActive(e)}}catch(e){for(let t of(console.error("dockview: failed to deserialize layout. Reverting changes",e),this.groups))for(let e of t.panels)this.removePanel(e,{removeEmptyGroup:!1,skipDispose:!1});for(let e of this.groups)e.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e);for(let e of[...this._floatingGroups])e.dispose();throw this.clear(),e}this.updateWatermark(),this.debouncedUpdateAllPositions(),this._onDidLayoutFromJSON.fire()}clear(){let e=Array.from(this._groups.values()).map(e=>e.value),t=!!this.activeGroup;for(let t of e)this.removeGroup(t,{skipActive:!0});t&&this.doSetGroupAndPanelActive(void 0),this.gridview.clear()}closeAllGroups(){for(let e of this._groups.entries()){let[t,i]=e;i.value.model.closeAllPanels()}}addPanel(e){var t,i;let n,o,r;if(this.panels.find(t=>t.id===e.id))throw Error(`dockview: panel with id ${e.id} already exists`);if(e.position&&e.floating)throw Error("dockview: you can only provide one of: position, floating as arguments to .addPanel(...)");let s={width:e.initialWidth,height:e.initialHeight};if(e.position)if(+!e.position.referencePanel){if(+!e.position.referenceGroup){let t=this.orthogonalize(iR(e.position.direction)),i=this.createPanel(e,t);return t.model.openPanel(i,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o}),e.inactive||this.doSetGroupAndPanelActive(t),t.api.setSize({height:null==s?void 0:s.height,width:null==s?void 0:s.width}),i}else if(n="string"==typeof e.position.referenceGroup?null==(t=this._groups.get(e.position.referenceGroup))?void 0:t.value:e.position.referenceGroup,o=e.position.index,!n)throw Error(`dockview: referenceGroup '${e.position.referenceGroup}' does not exist`)}else{let t="string"==typeof e.position.referencePanel?this.getGroupPanel(e.position.referencePanel):e.position.referencePanel;if(o=e.position.index,!t)throw Error(`dockview: referencePanel '${e.position.referencePanel}' does not exist`);n=this.findGroup(t)}else n=this.activeGroup;if(n){let t=i_((null==(i=e.position)?void 0:i.direction)||"within");if(e.floating){let t=this.createGroup();this._onDidAddGroup.fire(t);let i="object"==typeof e.floating&&null!==e.floating?e.floating:{};this.addFloatingGroup(t,Object.assign(Object.assign({},i),{inDragMode:!1,skipRemoveGroup:!0,skipActiveGroup:!0})),r=this.createPanel(e,t),t.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o})}else if("floating"===n.api.location.type||"center"===t)r=this.createPanel(e,n),n.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o}),n.api.setSize({width:null==s?void 0:s.width,height:null==s?void 0:s.height}),e.inactive||this.doSetGroupAndPanelActive(n);else{let i=ip(n.element),a=im(this.gridview.orientation,i,t),l=this.createGroupAtLocation(a,this.orientationAtLocation(a)===I.VERTICAL?null==s?void 0:s.height:null==s?void 0:s.width);r=this.createPanel(e,l),l.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o}),e.inactive||this.doSetGroupAndPanelActive(l)}}else if(e.floating){let t=this.createGroup();this._onDidAddGroup.fire(t);let i="object"==typeof e.floating&&null!==e.floating?e.floating:{};this.addFloatingGroup(t,Object.assign(Object.assign({},i),{inDragMode:!1,skipRemoveGroup:!0,skipActiveGroup:!0})),r=this.createPanel(e,t),t.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o})}else{let t=this.createGroupAtLocation([0],this.gridview.orientation===I.VERTICAL?null==s?void 0:s.height:null==s?void 0:s.width);r=this.createPanel(e,t),t.model.openPanel(r,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:o}),e.inactive||this.doSetGroupAndPanelActive(t)}return r}removePanel(e,t={removeEmptyGroup:!0}){let i=e.group;if(!i)throw Error(`dockview: cannot remove panel ${e.id}. it's missing a group.`);i.model.removePanel(e,{skipSetActiveGroup:t.skipSetActiveGroup}),t.skipDispose||(e.group.model.renderContainer.detatch(e),e.dispose()),0===i.size&&t.removeEmptyGroup&&this.removeGroup(i,{skipActive:t.skipSetActiveGroup})}createWatermarkComponent(){return this.options.createWatermarkComponent?this.options.createWatermarkComponent():new nl}updateWatermark(){var e,t;if(0===this.groups.filter(e=>"grid"===e.api.location.type&&e.api.isVisible).length){if(!this._watermark){this._watermark=this.createWatermarkComponent(),this._watermark.init({containerApi:new iA(this)});let e=document.createElement("div");e.className="dv-watermark-container",e.setAttribute("data-testid","watermark-component"),e.appendChild(this._watermark.element),this.gridview.element.appendChild(e)}}else this._watermark&&(this._watermark.element.parentElement.remove(),null==(t=(e=this._watermark).dispose)||t.call(e),this._watermark=null)}addGroup(e){var t;if(e){let i;if(+!e.referencePanel){if(+!e.referenceGroup){let t=this.orthogonalize(iR(e.direction),e);return e.skipSetActive||this.doSetGroupAndPanelActive(t),t}else if(!(i="string"==typeof e.referenceGroup?null==(t=this._groups.get(e.referenceGroup))?void 0:t.value:e.referenceGroup))throw Error(`dockview: reference group ${e.referenceGroup} does not exist`)}else{let t="string"==typeof e.referencePanel?this.panels.find(t=>t.id===e.referencePanel):e.referencePanel;if(!t)throw Error(`dockview: reference panel ${e.referencePanel} does not exist`);if(!(i=this.findGroup(t)))throw Error(`dockview: reference group for reference panel ${e.referencePanel} does not exist`)}let n=i_(e.direction||"within"),o=ip(i.element),r=im(this.gridview.orientation,o,n),s=this.createGroup(e),a=this.getLocationOrientation(r)===I.VERTICAL?e.initialHeight:e.initialWidth;return this.doAddGroup(s,r,a),e.skipSetActive||this.doSetGroupAndPanelActive(s),s}{let t=this.createGroup(e);return this.doAddGroup(t),this.doSetGroupAndPanelActive(t),t}}getLocationOrientation(e){return e.length%2==0&&this.gridview.orientation===I.HORIZONTAL?I.HORIZONTAL:I.VERTICAL}removeGroup(e,t){this.doRemoveGroup(e,t)}doRemoveGroup(e,t){var i;let n=[...e.panels];if(!(null==t?void 0:t.skipDispose))for(let e of n)this.removePanel(e,{removeEmptyGroup:!1,skipDispose:null!=(i=null==t?void 0:t.skipDispose)&&i});let o=this.activePanel;if("floating"===e.api.location.type){let i=this._floatingGroups.find(t=>t.group===e);if(i){if((null==t?void 0:t.skipDispose)||(i.group.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)),ie(this._floatingGroups,i),i.dispose(),!(null==t?void 0:t.skipActive)&&this._activeGroup===e){let e=Array.from(this._groups.values());this.doSetGroupAndPanelActive(e.length>0?e[0].value:void 0)}return i.group}throw Error("dockview: failed to find floating group")}if("popout"===e.api.location.type){let i=this._popoutGroups.find(t=>t.popoutGroup===e);if(i){if(!(null==t?void 0:t.skipDispose)){if(!(null==t?void 0:t.skipPopoutAssociated)){let e=i.referenceGroup?this.getPanel(i.referenceGroup):void 0;e&&0===e.panels.length&&this.removeGroup(e)}i.popoutGroup.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)}ie(this._popoutGroups,i);let n=i.disposable.dispose();if((null==t?void 0:t.skipPopoutReturn)||!n||(this.doAddGroup(n,[0]),this.doSetGroupAndPanelActive(n)),!(null==t?void 0:t.skipActive)&&this._activeGroup===e){let e=Array.from(this._groups.values());this.doSetGroupAndPanelActive(e.length>0?e[0].value:void 0)}return this.updateWatermark(),i.popoutGroup}throw Error("dockview: failed to find popout group")}let r=super.doRemoveGroup(e,t);return(null==t?void 0:t.skipActive)||this.activePanel===o||this._onDidActivePanelChange.fire(this.activePanel),r}debouncedUpdateAllPositions(){void 0!==this._updatePositionsFrameId&&cancelAnimationFrame(this._updatePositionsFrameId),this._updatePositionsFrameId=requestAnimationFrame(()=>{this._updatePositionsFrameId=void 0,this.overlayRenderContainer.updateAllPositions()})}movingLock(e){let t=this._moving;try{return this._moving=!0,e()}finally{this._moving=t}}moveGroupOrPanel(e){var t;let i=e.to.group,n=e.from.groupId,o=e.from.panelId,r=e.to.position,s=e.to.index,a=n?null==(t=this._groups.get(n))?void 0:t.value:void 0;if(!a)throw Error(`dockview: Failed to find group id ${n}`);if(void 0===o)return void this.moveGroup({from:{group:a},to:{group:i,position:r},skipSetActive:e.skipSetActive});if(r&&"center"!==r){let e=ip(i.element),t=im(this.gridview.orientation,e,r);if(a.size<2){let[e,n]=t9(t);if("grid"===a.api.location.type){let[t,i]=t9(ip(a.element));if(t6(t,e)){this.gridview.moveView(t,i,n),this._onDidMovePanel.fire({panel:this.getGroupPanel(o),from:a});return}}if("popout"===a.api.location.type){let e=this._popoutGroups.find(e=>e.popoutGroup===a),i=this.movingLock(()=>e.popoutGroup.model.removePanel(e.popoutGroup.panels[0],{skipSetActive:!0,skipSetActiveGroup:!0}));this.doRemoveGroup(a,{skipActive:!0});let n=this.createGroupAtLocation(t);this.movingLock(()=>n.model.openPanel(i,{skipSetActive:!0})),this.doSetGroupAndPanelActive(n),this._onDidMovePanel.fire({panel:this.getGroupPanel(o),from:a});return}let s=this.movingLock(()=>this.doRemoveGroup(a,{skipActive:!0,skipDispose:!0})),l=ip(i.element),d=im(this.gridview.orientation,l,r);this.movingLock(()=>this.doAddGroup(s,d)),this.doSetGroupAndPanelActive(s),this._onDidMovePanel.fire({panel:this.getGroupPanel(o),from:a})}else{let t=this.movingLock(()=>a.model.removePanel(o,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!t)throw Error(`dockview: No panel with id ${o}`);let i=im(this.gridview.orientation,e,r),n=this.createGroupAtLocation(i);this.movingLock(()=>n.model.openPanel(t,{skipSetGroupActive:!0})),this.doSetGroupAndPanelActive(n),this._onDidMovePanel.fire({panel:t,from:a})}}else{let t=this.movingLock(()=>a.model.removePanel(o,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!t)throw Error(`dockview: No panel with id ${o}`);e.keepEmptyGroups||0!==a.model.size||this.doRemoveGroup(a,{skipActive:!0});let n=0===i.model.size;this.movingLock(()=>{var o;return i.model.openPanel(t,{index:s,skipSetActive:null!=(o=e.skipSetActive)&&o&&!n,skipSetGroupActive:!0})}),e.skipSetActive||this.doSetGroupAndPanelActive(i),this._onDidMovePanel.fire({panel:t,from:a})}}moveGroup(e){let t=e.from.group,i=e.to.group,n=e.to.position;if("center"===n){let n=t.activePanel,o=this.movingLock(()=>[...t.panels].map(e=>t.model.removePanel(e.id,{skipSetActive:!0})));(null==t?void 0:t.model.size)===0&&this.doRemoveGroup(t,{skipActive:!0}),this.movingLock(()=>{for(let e of o)i.model.openPanel(e,{skipSetActive:e!==n,skipSetGroupActive:!0})}),!0!==e.skipSetActive?this.doSetGroupAndPanelActive(i):this.activePanel||this.doSetGroupAndPanelActive(i)}else{switch(t.api.location.type){case"grid":this.gridview.removeView(ip(t.element));break;case"floating":{let e=this._floatingGroups.find(e=>e.group===t);if(!e)throw Error("dockview: failed to find floating group");e.dispose();break}case"popout":{let e=this._popoutGroups.find(e=>e.popoutGroup===t);if(!e)throw Error("dockview: failed to find popout group");let n=this._popoutGroups.indexOf(e);if(n>=0&&this._popoutGroups.splice(n,1),e.referenceGroup){let t=this.getPanel(e.referenceGroup);t&&!t.api.isVisible&&this.doRemoveGroup(t,{skipActive:!0})}e.window.dispose(),"grid"===i.api.location.type?(t.model.renderContainer=this.overlayRenderContainer,t.model.dropTargetContainer=this.rootDropTargetContainer,t.model.location={type:"grid"}):"floating"===i.api.location.type&&(t.model.renderContainer=this.overlayRenderContainer,t.model.dropTargetContainer=this.rootDropTargetContainer,t.model.location={type:"floating"})}}if("grid"===i.api.location.type){let e,o=ip(i.element),r=im(this.gridview.orientation,o,n);switch(this.gridview.orientation){case I.VERTICAL:e=o.length%2==0?t.api.width:t.api.height;break;case I.HORIZONTAL:e=o.length%2==0?t.api.height:t.api.width}this.gridview.addView(t,e,r)}else if("floating"===i.api.location.type){let e=this._floatingGroups.find(e=>e.group===i);if(e){let i,n,o=e.overlay.toJSON();i="left"in o?o.left+50:"right"in o?Math.max(0,o.right-o.width-50):50,n="top"in o?o.top+50:"bottom"in o?Math.max(0,o.bottom-o.height-50):50,this.addFloatingGroup(t,{height:o.height,width:o.width,position:{left:i,top:n}})}}}if(t.panels.forEach(e=>{this._onDidMovePanel.fire({panel:e,from:t})}),this.debouncedUpdateAllPositions(),!1===e.skipSetActive){let e=null!=i?i:t;this.doSetGroupAndPanelActive(e)}}doSetGroupActive(e){super.doSetGroupActive(e);let t=this.activePanel;this._moving||t===this._onDidActivePanelChange.value||this._onDidActivePanelChange.fire(t)}doSetGroupAndPanelActive(e){super.doSetGroupActive(e);let t=this.activePanel;e&&this.hasMaximizedGroup()&&!this.isMaximizedGroup(e)&&this.exitMaximizedGroup(),this._moving||t===this._onDidActivePanelChange.value||this._onDidActivePanelChange.fire(t)}getNextGroupId(){let e=this.nextGroupId.next();for(;this._groups.has(e);)e=this.nextGroupId.next();return e}createGroup(e){e||(e={});let t=null==e?void 0:e.id;if(t&&this._groups.has(e.id)&&(console.warn(`dockview: Duplicate group id ${null==e?void 0:e.id}. reassigning group id to avoid errors`),t=void 0),!t)for(t=this.nextGroupId.next();this._groups.has(t);)t=this.nextGroupId.next();let i=new nt(this,t,e);if(i.init({params:{},accessor:this}),!this._groups.has(i.id)){let e=new tK(i.model.onTabDragStart(e=>{this._onWillDragPanel.fire(e)}),i.model.onGroupDragStart(e=>{this._onWillDragGroup.fire(e)}),i.model.onMove(e=>{let{groupId:t,itemId:n,target:o,index:r}=e;this.moveGroupOrPanel({from:{groupId:t,panelId:n},to:{group:i,position:o,index:r}})}),i.model.onDidDrop(e=>{this._onDidDrop.fire(e)}),i.model.onWillDrop(e=>{this._onWillDrop.fire(e)}),i.model.onWillShowOverlay(e=>{this.options.disableDnd?e.preventDefault():this._onWillShowOverlay.fire(e)}),i.model.onUnhandledDragOverEvent(e=>{this._onUnhandledDragOverEvent.fire(e)}),i.model.onDidAddPanel(e=>{this._moving||this._onDidAddPanel.fire(e.panel)}),i.model.onDidRemovePanel(e=>{this._moving||this._onDidRemovePanel.fire(e.panel)}),i.model.onDidActivePanelChange(e=>{this._moving||e.panel===this.activePanel&&this._onDidActivePanelChange.value!==e.panel&&this._onDidActivePanelChange.fire(e.panel)}),N.any(i.model.onDidPanelTitleChange,i.model.onDidPanelParametersChange)(()=>{this._bufferOnDidLayoutChange.fire()}));this._groups.set(i.id,{value:i,disposable:e})}return i.initialize(),i}createPanel(e,t){var i,n,o;let r=e.component,s=null!=(i=e.tabComponent)?i:this.options.defaultTabComponent,a=new ns(this,e.id,r,s),l=new no(e.id,r,s,this,this._api,t,a,{renderer:e.renderer,minimumWidth:e.minimumWidth,minimumHeight:e.minimumHeight,maximumWidth:e.maximumWidth,maximumHeight:e.maximumHeight});return l.init({title:null!=(n=e.title)?n:e.id,params:null!=(o=null==e?void 0:e.params)?o:{}}),l}createGroupAtLocation(e,t,i){let n=this.createGroup(i);return this.doAddGroup(n,e,t),n}findGroup(e){var t;return null==(t=Array.from(this._groups.values()).find(t=>t.value.model.containsPanel(e)))?void 0:t.value}orientationAtLocation(e){let t=this.gridview.orientation;return e.length%2==1?t:ig(t)}updateDropTargetModel(e){"dndEdges"in e&&(this._rootDropTarget.disabled="boolean"==typeof e.dndEdges&&!1===e.dndEdges,"object"==typeof e.dndEdges&&null!==e.dndEdges?this._rootDropTarget.setOverlayModel(e.dndEdges):this._rootDropTarget.setOverlayModel(nw)),"rootOverlayModel"in e&&this.updateDropTargetModel({dndEdges:e.dndEdges})}updateTheme(){var e,t;let i=null!=(e=this._options.theme)?e:ni;this._themeClassnames.setClassNames(i.className),this.gridview.margin=null!=(t=i.gap)?t:0,"absolute"===i.dndOverlayMounting?this.rootDropTargetContainer.disabled=!1:this.rootDropTargetContainer.disabled=!0}}class nx extends iD{get orientation(){return this.gridview.orientation}set orientation(e){this.gridview.orientation=e}get options(){return this._options}get deserializer(){return this._deserializer}set deserializer(e){this._deserializer=e}constructor(e,t){var i;super(e,{proportionalLayout:null==(i=t.proportionalLayout)||i,orientation:t.orientation,styles:t.hideBorders?{separatorBorder:"transparent"}:void 0,disableAutoResizing:t.disableAutoResizing,className:t.className}),this._onDidLayoutfromJSON=new tB,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidRemoveGroup=new tB,this.onDidRemoveGroup=this._onDidRemoveGroup.event,this._onDidAddGroup=new tB,this.onDidAddGroup=this._onDidAddGroup.event,this._onDidActiveGroupChange=new tB,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._options=t,this.addDisposables(this._onDidAddGroup,this._onDidRemoveGroup,this._onDidActiveGroupChange,this.onDidAdd(e=>{this._onDidAddGroup.fire(e)}),this.onDidRemove(e=>{this._onDidRemoveGroup.fire(e)}),this.onDidActiveChange(e=>{this._onDidActiveGroupChange.fire(e)}))}updateOptions(e){super.updateOptions(e);let t="string"==typeof e.orientation&&this.gridview.orientation!==e.orientation;this._options=Object.assign(Object.assign({},this.options),e),t&&(this.gridview.orientation=e.orientation),this.layout(this.gridview.width,this.gridview.height,!0)}removePanel(e){this.removeGroup(e)}toJSON(){var e;return{grid:this.gridview.serialize(),activePanel:null==(e=this.activeGroup)?void 0:e.id}}setVisible(e,t){this.gridview.setViewVisible(ip(e.element),t)}setActive(e){this._groups.forEach((t,i)=>{t.value.setActive(e===t.value)})}focus(){var e;null==(e=this.activeGroup)||e.focus()}fromJSON(e){this.clear();let{grid:t,activePanel:i}=e;try{let e=[],n=this.width,o=this.height;if(this.gridview.deserialize(t,{fromJSON:t=>{let{data:i}=t,n=this.options.createComponent({id:i.id,name:i.component});return e.push(()=>n.init({params:i.params,minimumWidth:i.minimumWidth,maximumWidth:i.maximumWidth,minimumHeight:i.minimumHeight,maximumHeight:i.maximumHeight,priority:i.priority,snap:!!i.snap,accessor:this,isVisible:t.visible})),this._onDidAddGroup.fire(n),this.registerPanel(n),n}}),this.layout(n,o,!0),e.forEach(e=>e()),"string"==typeof i){let e=this.getPanel(i);e&&this.doSetGroupActive(e)}}catch(e){for(let e of this.groups)e.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e);throw this.clear(),e}this._onDidLayoutfromJSON.fire()}clear(){let e=this.activeGroup;for(let e of Array.from(this._groups.values()))e.disposable.dispose(),this.doRemoveGroup(e.value,{skipActive:!0});e&&this.doSetGroupActive(void 0),this.gridview.clear()}movePanel(e,t){var i;let n,o=this.gridview.remove(e),r=null==(i=this._groups.get(t.reference))?void 0:i.value;if(!r)throw Error(`reference group ${t.reference} does not exist`);let s=i_(t.direction);if("center"===s)throw Error(`${s} not supported as an option`);{let e=ip(r.element);n=im(this.gridview.orientation,e,s)}this.doAddGroup(o,n,t.size)}addPanel(e){var t,i,n,o;let r=null!=(t=e.location)?t:[0];if(null==(i=e.position)?void 0:i.referencePanel){let t=null==(n=this._groups.get(e.position.referencePanel))?void 0:n.value;if(!t)throw Error(`reference group ${e.position.referencePanel} does not exist`);let i=i_(e.position.direction);if("center"===i)throw Error(`${i} not supported as an option`);{let e=ip(t.element);r=im(this.gridview.orientation,e,i)}}let s=this.options.createComponent({id:e.id,name:e.component});return s.init({params:null!=(o=e.params)?o:{},minimumWidth:e.minimumWidth,maximumWidth:e.maximumWidth,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,priority:e.priority,snap:!!e.snap,accessor:this,isVisible:!0}),this.doAddGroup(s,r,e.size),this.registerPanel(s),this.doSetGroupActive(s),s}registerPanel(e){let t=new tK(e.api.onDidFocusChange(t=>{t.isFocused&&this._groups.forEach(t=>{let i=t.value;i!==e?i.setActive(!1):i.setActive(!0)})}));this._groups.set(e.id,{value:e,disposable:t})}moveGroup(e,t,i){let n=this.getPanel(t);if(!n)throw Error("invalid operation");let o=ip(e.element),[r,s]=t9(im(this.gridview.orientation,o,i)),[a,l]=t9(ip(n.element));if(t6(a,r))return void this.gridview.moveView(a,l,s);let d=this.doRemoveGroup(n,{skipActive:!0,skipDispose:!0}),h=ip(e.element),u=im(this.gridview.orientation,h,i);this.doAddGroup(d,u)}removeGroup(e){super.removeGroup(e)}dispose(){super.dispose(),this._onDidLayoutfromJSON.dispose()}}class n_ extends iy{get panels(){return this.splitview.getViews()}get options(){return this._options}get length(){return this._panels.size}get orientation(){return this.splitview.orientation}get splitview(){return this._splitview}set splitview(e){this._splitview&&this._splitview.dispose(),this._splitview=e,this._splitviewChangeDisposable.value=new tK(this._splitview.onDidSashEnd(()=>{this._onDidLayoutChange.fire(void 0)}),this._splitview.onDidAddView(e=>this._onDidAddView.fire(e)),this._splitview.onDidRemoveView(e=>this._onDidRemoveView.fire(e)))}get minimumSize(){return this.splitview.minimumSize}get maximumSize(){return this.splitview.maximumSize}get height(){return this.splitview.orientation===I.HORIZONTAL?this.splitview.orthogonalSize:this.splitview.size}get width(){return this.splitview.orientation===I.HORIZONTAL?this.splitview.size:this.splitview.orthogonalSize}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._splitviewChangeDisposable=new tJ,this._panels=new Map,this._onDidLayoutfromJSON=new tB,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidAddView=new tB,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new tB,this.onDidRemoveView=this._onDidRemoveView.event,this._onDidLayoutChange=new tB,this.onDidLayoutChange=this._onDidLayoutChange.event,this.element.style.height="100%",this.element.style.width="100%",this._classNames=new t4(this.element),this._classNames.setClassNames(null!=(i=t.className)?i:""),e.appendChild(this.element),this._options=t,this.splitview=new is(this.element,t),this.addDisposables(this._onDidAddView,this._onDidLayoutfromJSON,this._onDidRemoveView,this._onDidLayoutChange)}updateOptions(e){var t,i;"className"in e&&this._classNames.setClassNames(null!=(t=e.className)?t:""),"disableResizing"in e&&(this.disableResizing=null!=(i=e.disableAutoResizing)&&i),"string"==typeof e.orientation&&(this.splitview.orientation=e.orientation),this._options=Object.assign(Object.assign({},this.options),e),this.splitview.layout(this.splitview.size,this.splitview.orthogonalSize)}focus(){var e;null==(e=this._activePanel)||e.focus()}movePanel(e,t){this.splitview.moveView(e,t)}setVisible(e,t){let i=this.panels.indexOf(e);this.splitview.setViewVisible(i,t)}setActive(e,t){this._activePanel=e,this.panels.filter(t=>t!==e).forEach(e=>{e.api._onDidActiveChange.fire({isActive:!1}),t||e.focus()}),e.api._onDidActiveChange.fire({isActive:!0}),t||e.focus()}removePanel(e,t){let i=this._panels.get(e.id);if(!i)throw Error(`unknown splitview panel ${e.id}`);i.dispose(),this._panels.delete(e.id);let n=this.panels.findIndex(t=>t===e);this.splitview.removeView(n,t).dispose();let o=this.panels;o.length>0&&this.setActive(o[o.length-1])}getPanel(e){return this.panels.find(t=>t.id===e)}addPanel(e){var t;if(this._panels.has(e.id))throw Error(`panel ${e.id} already exists`);let i=this.options.createComponent({id:e.id,name:e.component});i.orientation=this.splitview.orientation,i.init({params:null!=(t=e.params)?t:{},minimumSize:e.minimumSize,maximumSize:e.maximumSize,snap:e.snap,priority:e.priority,accessor:this});let n="number"==typeof e.size?e.size:T.Distribute,o="number"==typeof e.index?e.index:void 0;return this.splitview.addView(i,n,o),this.doAddView(i),this.setActive(i),i}layout(e,t){let[i,n]=this.splitview.orientation===I.HORIZONTAL?[e,t]:[t,e];this.splitview.layout(i,n)}doAddView(e){let t=e.api.onDidFocusChange(t=>{t.isFocused&&this.setActive(e,!0)});this._panels.set(e.id,t)}toJSON(){var e;return{views:this.splitview.getViews().map((e,t)=>({size:this.splitview.getViewSize(t),data:e.toJSON(),snap:!!e.snap,priority:e.priority})),activeView:null==(e=this._activePanel)?void 0:e.id,size:this.splitview.size,orientation:this.splitview.orientation}}fromJSON(e){this.clear();let{views:t,orientation:i,size:n,activeView:o}=e,r=[],s=this.width,a=this.height;if(this.splitview=new is(this.element,{orientation:i,proportionalLayout:this.options.proportionalLayout,descriptor:{size:n,views:t.map(e=>{let t=e.data;if(this._panels.has(t.id))throw Error(`panel ${t.id} already exists`);let n=this.options.createComponent({id:t.id,name:t.component});return r.push(()=>{var i;n.init({params:null!=(i=t.params)?i:{},minimumSize:t.minimumSize,maximumSize:t.maximumSize,snap:e.snap,priority:e.priority,accessor:this})}),n.orientation=i,this.doAddView(n),setTimeout(()=>{this._onDidAddView.fire(n)},0),{size:e.size,view:n}})}}),this.layout(s,a),r.forEach(e=>e()),"string"==typeof o){let e=this.getPanel(o);e&&this.setActive(e)}this._onDidLayoutfromJSON.fire()}clear(){for(let e of this._panels.values())e.dispose();for(this._panels.clear();this.splitview.length>0;)this.splitview.removeView(0,T.Distribute,!0).dispose()}dispose(){for(let e of this._panels.values())e.dispose();this._panels.clear();let e=this.splitview.getViews();for(let t of(this._splitviewChangeDisposable.dispose(),this.splitview.dispose(),e))t.dispose();this.element.remove(),super.dispose()}}class nD extends tK{get element(){return this._element}constructor(){super(),this._expandedIcon=iQ({width:"11",height:"11",viewbox:"0 0 24 15",path:"M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z"}),this._collapsedIcon=i0(),this.disposable=new tJ,this.apiRef={api:null},this._element=document.createElement("div"),this.element.className="dv-default-header",this._content=document.createElement("span"),this._expander=document.createElement("div"),this._expander.className="dv-pane-header-icon",this.element.appendChild(this._expander),this.element.appendChild(this._content),this.addDisposables(t$(this._element,"click",()=>{var e;null==(e=this.apiRef.api)||e.setExpanded(!this.apiRef.api.isExpanded)}))}init(e){this.apiRef.api=e.api,this._content.textContent=e.title,this.updateIcon(),this.disposable.value=e.api.onDidExpansionChange(()=>{this.updateIcon()})}updateIcon(){var e;let t=!!(null==(e=this.apiRef.api)?void 0:e.isExpanded);tQ(this._expander,"collapsed",!t),t?(this._expander.contains(this._collapsedIcon)&&this._collapsedIcon.remove(),this._expander.contains(this._expandedIcon)||this._expander.appendChild(this._expandedIcon)):(this._expander.contains(this._expandedIcon)&&this._expandedIcon.remove(),this._expander.contains(this._collapsedIcon)||this._expander.appendChild(this._collapsedIcon))}update(e){}dispose(){this.disposable.dispose(),super.dispose()}}let nC=ii(),nS=Number.MAX_SAFE_INTEGER;class nE extends iF{constructor(e){super({accessor:e.accessor,id:e.id,component:e.component,headerComponent:e.headerComponent,orientation:e.orientation,isExpanded:e.isExpanded,disableDnd:e.disableDnd,headerSize:e.headerSize,minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize}),this.options=e}getBodyComponent(){return this.options.body}getHeaderComponent(){return this.options.header}}class nA extends iy{get id(){return this._id}get panels(){return this.paneview.getPanes()}set paneview(e){this._paneview=e,this._disposable.value=new tK(this._paneview.onDidChange(()=>{this._onDidLayoutChange.fire(void 0)}),this._paneview.onDidAddView(e=>this._onDidAddView.fire(e)),this._paneview.onDidRemoveView(e=>this._onDidRemoveView.fire(e)))}get paneview(){return this._paneview}get minimumSize(){return this.paneview.minimumSize}get maximumSize(){return this.paneview.maximumSize}get height(){return this.paneview.orientation===I.HORIZONTAL?this.paneview.orthogonalSize:this.paneview.size}get width(){return this.paneview.orientation===I.HORIZONTAL?this.paneview.size:this.paneview.orthogonalSize}get options(){return this._options}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._id=nC.next(),this._disposable=new tJ,this._viewDisposables=new Map,this._onDidLayoutfromJSON=new tB,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidLayoutChange=new tB,this.onDidLayoutChange=this._onDidLayoutChange.event,this._onDidDrop=new tB,this.onDidDrop=this._onDidDrop.event,this._onDidAddView=new tB,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new tB,this.onDidRemoveView=this._onDidRemoveView.event,this._onUnhandledDragOverEvent=new tB,this.onUnhandledDragOverEvent=this._onUnhandledDragOverEvent.event,this.element.style.height="100%",this.element.style.width="100%",this.addDisposables(this._onDidLayoutChange,this._onDidLayoutfromJSON,this._onDidDrop,this._onDidAddView,this._onDidRemoveView,this._onUnhandledDragOverEvent),this._classNames=new t4(this.element),this._classNames.setClassNames(null!=(i=t.className)?i:""),e.appendChild(this.element),this._options=t,this.paneview=new il(this.element,{orientation:I.VERTICAL}),this.addDisposables(this._disposable)}setVisible(e,t){let i=this.panels.indexOf(e);this.paneview.setViewVisible(i,t)}focus(){}updateOptions(e){var t,i;"className"in e&&this._classNames.setClassNames(null!=(t=e.className)?t:""),"disableResizing"in e&&(this.disableResizing=null!=(i=e.disableAutoResizing)&&i),this._options=Object.assign(Object.assign({},this.options),e)}addPanel(e){var t,i;let n,o=this.options.createComponent({id:e.id,name:e.component});e.headerComponent&&this.options.createHeaderComponent&&(n=this.options.createHeaderComponent({id:e.id,name:e.headerComponent})),n||(n=new nD);let r=new nE({id:e.id,component:e.component,headerComponent:e.headerComponent,header:n,body:o,orientation:I.VERTICAL,isExpanded:!!e.isExpanded,disableDnd:!!this.options.disableDnd,accessor:this,headerSize:null!=(t=e.headerSize)?t:22,minimumBodySize:0,maximumBodySize:nS});this.doAddPanel(r);let s="number"==typeof e.size?e.size:T.Distribute,a="number"==typeof e.index?e.index:void 0;return r.init({params:null!=(i=e.params)?i:{},minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize,isExpanded:e.isExpanded,title:e.title,containerApi:new iS(this),accessor:this}),this.paneview.addPane(r,s,a),r.orientation=this.paneview.orientation,r}removePanel(e){let t=this.panels.findIndex(t=>t===e);this.paneview.removePane(t),this.doRemovePanel(e)}movePanel(e,t){this.paneview.moveView(e,t)}getPanel(e){return this.panels.find(t=>t.id===e)}layout(e,t){let[i,n]=this.paneview.orientation===I.HORIZONTAL?[e,t]:[t,e];this.paneview.layout(i,n)}toJSON(){return{views:this.paneview.getPanes().map((e,t)=>{let i,n;return{size:this.paneview.getViewSize(t),data:e.toJSON(),minimumSize:(i=e.minimumBodySize)<=0?void 0:i,maximumSize:(n=e.maximumBodySize)===Number.MAX_SAFE_INTEGER||n===1/0?void 0:n,headerSize:e.headerSize,expanded:e.isExpanded()}}),size:this.paneview.size}}fromJSON(e){this.clear();let{views:t,size:i}=e,n=[],o=this.width,r=this.height;this.paneview=new il(this.element,{orientation:I.VERTICAL,descriptor:{size:i,views:t.map(e=>{var t,i,o;let r,s=e.data,a=this.options.createComponent({id:s.id,name:s.component});s.headerComponent&&this.options.createHeaderComponent&&(r=this.options.createHeaderComponent({id:s.id,name:s.headerComponent})),r||(r=new nD);let l=new nE({id:s.id,component:s.component,headerComponent:s.headerComponent,header:r,body:a,orientation:I.VERTICAL,isExpanded:!!e.expanded,disableDnd:!!this.options.disableDnd,accessor:this,headerSize:null!=(t=e.headerSize)?t:22,minimumBodySize:null!=(i=e.minimumSize)?i:0,maximumBodySize:null!=(o=e.maximumSize)?o:nS});return this.doAddPanel(l),n.push(()=>{var t;l.init({params:null!=(t=s.params)?t:{},minimumBodySize:e.minimumSize,maximumBodySize:e.maximumSize,title:s.title,isExpanded:!!e.expanded,containerApi:new iS(this),accessor:this}),l.orientation=this.paneview.orientation}),setTimeout(()=>{this._onDidAddView.fire(l)},0),{size:e.size,view:l}})}}),this.layout(o,r),n.forEach(e=>e()),this._onDidLayoutfromJSON.fire()}clear(){for(let[e,t]of this._viewDisposables.entries())t.dispose();this._viewDisposables.clear(),this.paneview.dispose()}doAddPanel(e){let t=new tK(e.onDidDrop(e=>{this._onDidDrop.fire(e)}),e.onUnhandledDragOverEvent(e=>{this._onUnhandledDragOverEvent.fire(e)}));this._viewDisposables.set(e.id,t)}doRemovePanel(e){let t=this._viewDisposables.get(e.id);t&&(t.dispose(),this._viewDisposables.delete(e.id))}dispose(){for(let[e,t]of(super.dispose(),this._viewDisposables.entries()))t.dispose();this._viewDisposables.clear(),this.element.remove(),this.paneview.dispose()}}class nk extends iW{get priority(){return this._priority}set orientation(e){this._orientation=e}get orientation(){return this._orientation}get minimumSize(){let e="function"==typeof this._minimumSize?this._minimumSize():this._minimumSize;return e!==this._evaluatedMinimumSize&&(this._evaluatedMinimumSize=e,this.updateConstraints()),e}get maximumSize(){let e="function"==typeof this._maximumSize?this._maximumSize():this._maximumSize;return e!==this._evaluatedMaximumSize&&(this._evaluatedMaximumSize=e,this.updateConstraints()),e}get snap(){return this._snap}constructor(e,t){super(e,t,new iG(e,t)),this._evaluatedMinimumSize=0,this._evaluatedMaximumSize=1/0,this._minimumSize=0,this._maximumSize=1/0,this._snap=!1,this._onDidChange=new tB,this.onDidChange=this._onDidChange.event,this.api.initialize(this),this.addDisposables(this._onDidChange,this.api.onWillVisibilityChange(e=>{let{isVisible:t}=e,{accessor:i}=this._params;i.setVisible(this,t)}),this.api.onActiveChange(()=>{let{accessor:e}=this._params;e.setActive(this)}),this.api.onDidConstraintsChangeInternal(e=>{("number"==typeof e.minimumSize||"function"==typeof e.minimumSize)&&(this._minimumSize=e.minimumSize),("number"==typeof e.maximumSize||"function"==typeof e.maximumSize)&&(this._maximumSize=e.maximumSize),this.updateConstraints()}),this.api.onDidSizeChange(e=>{this._onDidChange.fire({size:e.size})}))}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}layout(e,t){let[i,n]=this.orientation===I.HORIZONTAL?[e,t]:[t,e];super.layout(i,n)}init(e){super.init(e),this._priority=e.priority,e.minimumSize&&(this._minimumSize=e.minimumSize),e.maximumSize&&(this._maximumSize=e.maximumSize),e.snap&&(this._snap=e.snap)}toJSON(){let e,t;return Object.assign(Object.assign({},super.toJSON()),{minimumSize:(e=this.minimumSize)<=0?void 0:e,maximumSize:(t=this.maximumSize)===Number.MAX_SAFE_INTEGER||t===1/0?void 0:t})}updateConstraints(){this.api._onDidConstraintsChange.fire({maximumSize:this._evaluatedMaximumSize,minimumSize:this._evaluatedMinimumSize})}}let nz=(e,t)=>{let[i,n]=W.default.useState(),o=W.default.useRef(e.componentProps);return W.default.useImperativeHandle(t,()=>({update:e=>{o.current=Object.assign(Object.assign({},o.current),e),n(Date.now())}}),[]),W.default.createElement(e.component,o.current)};nz.displayName="DockviewReactJsBridge";let nP=(i=1,{next:()=>`dockview_react_portal_key_${(i++).toString()}`}),nR=W.default.createContext({});class nN{constructor(e,t,i,n,o){this.parent=e,this.portalStore=t,this.component=i,this.parameters=n,this.context=o,this._initialProps={},this.disposed=!1,this.createPortal()}update(e){if(this.disposed)throw Error("invalid operation: resource is already disposed");this.componentInstance?this.componentInstance.update(e):this._initialProps=Object.assign(Object.assign({},this._initialProps),e)}createPortal(){var e;if(this.disposed)throw Error("invalid operation: resource is already disposed");if(!("function"==typeof(e=this.component)||(null==e?void 0:e.$$typeof)))throw Error("Dockview: Only React.memo(...), React.ForwardRef(...) and functional components are accepted as components");let t=W.default.createElement(W.default.forwardRef(nz),{component:this.component,componentProps:this.parameters,ref:e=>{this.componentInstance=e,Object.keys(this._initialProps).length>0&&(this.componentInstance.update(this._initialProps),this._initialProps={})}}),i=this.context?W.default.createElement(nR.Provider,{value:this.context},t):t,n=H.default.createPortal(i,this.parent,nP.next());this.ref={portal:n,disposable:this.portalStore.addPortal(n)}}dispose(){var e;null==(e=this.ref)||e.disposable.dispose(),this.disposed=!0}}let nO=()=>{let[e,t]=W.default.useState([]);return W.default.useDebugValue(`Portal count: ${e.length}`),[e,W.default.useCallback(e=>{t(t=>[...t,e]);let i=!1;return O.from(()=>{if(i)throw Error("invalid operation: resource already disposed");i=!0,t(t=>t.filter(t=>t!==e))})},[])]};class nI{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._onDidFocus=new tB,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new tB,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new nN(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi})}update(e){var t;null==(t=this.part)||t.update({params:e.params})}layout(e,t){}dispose(){var e;this._onDidFocus.dispose(),this._onDidBlur.dispose(),null==(e=this.part)||e.dispose()}}class nM{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new nN(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi,tabLocation:e.tabLocation})}update(e){var t;null==(t=this.part)||t.update({params:e.params})}layout(e,t){}dispose(){var e;null==(e=this.part)||e.dispose()}}class nL{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new nN(this.element,this.reactPortalStore,this.component,{group:e.group,containerApi:e.containerApi})}focus(){}update(e){var t,i,n;this.parameters&&(this.parameters.params=e.params),null==(t=this.part)||t.update({params:null!=(n=null==(i=this.parameters)?void 0:i.params)?n:{}})}layout(e,t){}dispose(){var e;null==(e=this.part)||e.dispose()}}class nT{get element(){return this._element}get part(){return this._part}constructor(e,t,i){this.component=e,this.reactPortalStore=t,this._group=i,this.mutableDisposable=new tJ,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.mutableDisposable.value=new tK(this._group.model.onDidAddPanel(()=>{this.updatePanels()}),this._group.model.onDidRemovePanel(()=>{this.updatePanels()}),this._group.model.onDidActivePanelChange(()=>{this.updateActivePanel()}),e.api.onDidActiveChange(()=>{this.updateGroupActive()})),this._part=new nN(this.element,this.reactPortalStore,this.component,{api:e.api,containerApi:e.containerApi,panels:this._group.model.panels,activePanel:this._group.model.activePanel,isGroupActive:this._group.api.isActive,group:this._group})}dispose(){var e;this.mutableDisposable.dispose(),null==(e=this._part)||e.dispose()}update(e){var t;null==(t=this._part)||t.update(e.params)}updatePanels(){this.update({params:{panels:this._group.model.panels}})}updateActivePanel(){this.update({params:{activePanel:this._group.model.activePanel}})}updateGroupActive(){this.update({params:{isGroupActive:this._group.api.isActive}})}}function nj(e,t){return e?i=>new nT(e,t,i):void 0}let nG="props.defaultTabComponent",nV=W.default.forwardRef((e,t)=>{let i=W.default.useRef(null),n=W.default.useRef(),[o,r]=nO();W.default.useImperativeHandle(t,()=>i.current,[]);let s=W.default.useRef({});return W.default.useEffect(()=>{let t={};i5.forEach(i=>{let n=e[i];i in e&&n!==s.current[i]&&(t[i]=n)}),n.current&&n.current.updateOptions(t),s.current=e},i5.map(t=>e[t])),W.default.useEffect(()=>{var t;if(!i.current)return;let o=null!=(t=e.tabComponents)?t:{};e.defaultTabComponent&&(o[nG]=e.defaultTabComponent);let s={createLeftHeaderActionComponent:nj(e.leftHeaderActionsComponent,{addPortal:r}),createRightHeaderActionComponent:nj(e.rightHeaderActionsComponent,{addPortal:r}),createPrefixHeaderActionComponent:nj(e.prefixHeaderActionsComponent,{addPortal:r}),createComponent:t=>new nI(t.id,e.components[t.name],{addPortal:r}),createTabComponent:e=>new nM(e.id,o[e.name],{addPortal:r}),createWatermarkComponent:e.watermarkComponent?()=>new nL("watermark",e.watermarkComponent,{addPortal:r}):void 0,defaultTabComponent:e.defaultTabComponent?nG:void 0},a=new ny(i.current,Object.assign(Object.assign({},i5.reduce((t,i)=>(i in e&&(t[i]=e[i]),t),{})),s)).api,{clientWidth:l,clientHeight:d}=i.current;return a.layout(l,d),e.onReady&&e.onReady({api:a}),n.current=a,()=>{n.current=void 0,a.dispose()}},[]),W.default.useEffect(()=>{if(!n.current)return()=>{};let t=n.current.onDidDrop(t=>{e.onDidDrop&&e.onDidDrop(t)});return()=>{t.dispose()}},[e.onDidDrop]),W.default.useEffect(()=>{if(!n.current)return()=>{};let t=n.current.onWillDrop(t=>{e.onWillDrop&&e.onWillDrop(t)});return()=>{t.dispose()}},[e.onWillDrop]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createComponent:t=>new nI(t.id,e.components[t.name],{addPortal:r})})},[e.components]),W.default.useEffect(()=>{var t;if(!n.current)return;let i=null!=(t=e.tabComponents)?t:{};e.defaultTabComponent&&(i[nG]=e.defaultTabComponent),n.current.updateOptions({defaultTabComponent:e.defaultTabComponent?nG:void 0,createTabComponent:e=>new nM(e.id,i[e.name],{addPortal:r})})},[e.tabComponents,e.defaultTabComponent]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createWatermarkComponent:e.watermarkComponent?()=>new nL("watermark",e.watermarkComponent,{addPortal:r}):void 0})},[e.watermarkComponent]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createRightHeaderActionComponent:nj(e.rightHeaderActionsComponent,{addPortal:r})})},[e.rightHeaderActionsComponent]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createLeftHeaderActionComponent:nj(e.leftHeaderActionsComponent,{addPortal:r})})},[e.leftHeaderActionsComponent]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createPrefixHeaderActionComponent:nj(e.prefixHeaderActionsComponent,{addPortal:r})})},[e.prefixHeaderActionsComponent]),W.default.createElement("div",{style:{height:"100%",width:"100%"},ref:i},o)});nV.displayName="DockviewComponent";class nW extends nk{constructor(e,t,i,n){super(e,t),this.reactComponent=i,this.reactPortalStore=n}getComponent(){var e,t;return new nN(this.element,this.reactPortalStore,this.reactComponent,{params:null!=(t=null==(e=this._params)?void 0:e.params)?t:{},api:this.api,containerApi:new iC(this._params.accessor)})}}W.default.forwardRef((e,t)=>{let i=W.default.useRef(null),n=W.default.useRef(),[o,r]=nO();W.default.useImperativeHandle(t,()=>i.current,[]);let s=W.default.useRef({});return W.default.useEffect(()=>{let t={};ia.forEach(i=>{let n=e[i];i in e&&n!==s.current[i]&&(t[i]=n)}),n.current&&n.current.updateOptions(t),s.current=e},ia.map(t=>e[t])),W.default.useEffect(()=>{if(!i.current)return()=>{};let t=new iC(new n_(i.current,Object.assign(Object.assign({},ia.reduce((t,i)=>(i in e&&(t[i]=e[i]),t),{})),{createComponent:t=>new nW(t.id,t.name,e.components[t.name],{addPortal:r})}))),{clientWidth:o,clientHeight:s}=i.current;return t.layout(o,s),e.onReady&&e.onReady({api:t}),n.current=t,()=>{n.current=void 0,t.dispose()}},[]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createComponent:t=>new nW(t.id,t.name,e.components[t.name],{addPortal:r})})},[e.components]),W.default.createElement("div",{style:{height:"100%",width:"100%"},ref:i},o)}).displayName="SplitviewComponent";class nH extends i8{constructor(e,t,i,n){super(e,t),this.reactComponent=i,this.reactPortalStore=n}getComponent(){var e,t;return new nN(this.element,this.reactPortalStore,this.reactComponent,{params:null!=(t=null==(e=this._params)?void 0:e.params)?t:{},api:this.api,containerApi:new iE(this._params.accessor)})}}W.default.forwardRef((e,t)=>{let i=W.default.useRef(null),n=W.default.useRef(),[o,r]=nO();W.default.useImperativeHandle(t,()=>i.current,[]);let s=W.default.useRef({});return W.default.useEffect(()=>{let t={};ib.forEach(i=>{let n=e[i];i in e&&n!==s.current[i]&&(t[i]=n)}),n.current&&n.current.updateOptions(t),s.current=e},ib.map(t=>e[t])),W.default.useEffect(()=>{if(!i.current)return()=>{};let t=new iE(new nx(i.current,Object.assign(Object.assign({},ib.reduce((t,i)=>(i in e&&(t[i]=e[i]),t),{})),{createComponent:t=>new nH(t.id,t.name,e.components[t.name],{addPortal:r})}))),{clientWidth:o,clientHeight:s}=i.current;return t.layout(o,s),e.onReady&&e.onReady({api:t}),n.current=t,()=>{n.current=void 0,t.dispose()}},[]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createComponent:t=>new nH(t.id,t.name,e.components[t.name],{addPortal:r})})},[e.components]),W.default.createElement("div",{style:{height:"100%",width:"100%"},ref:i},o)}).displayName="GridviewComponent";class nF{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new nN(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,title:e.title,containerApi:e.containerApi})}toJSON(){return{id:this.id}}update(e){var t;null==(t=this.part)||t.update(e.params)}dispose(){var e;null==(e=this.part)||e.dispose()}}W.default.forwardRef((e,t)=>{let i=W.default.useRef(null),n=W.default.useRef(),[o,r]=nO();W.default.useImperativeHandle(t,()=>i.current,[]);let s=W.default.useRef({});return W.default.useEffect(()=>{let t={};iM.forEach(i=>{let n=e[i];i in e&&n!==s.current[i]&&(t[i]=n)}),n.current&&n.current.updateOptions(t),s.current=e},iM.map(t=>e[t])),W.default.useEffect(()=>{var t;if(!i.current)return()=>{};let o=null!=(t=e.headerComponents)?t:{},s=new iS(new nA(i.current,Object.assign(Object.assign({},iM.reduce((t,i)=>(i in e&&(t[i]=e[i]),t),{})),{createComponent:t=>new nF(t.id,e.components[t.name],{addPortal:r}),createHeaderComponent:e=>new nF(e.id,o[e.name],{addPortal:r})}))),{clientWidth:a,clientHeight:l}=i.current;return s.layout(a,l),e.onReady&&e.onReady({api:s}),n.current=s,()=>{n.current=void 0,s.dispose()}},[]),W.default.useEffect(()=>{n.current&&n.current.updateOptions({createComponent:t=>new nF(t.id,e.components[t.name],{addPortal:r})})},[e.components]),W.default.useEffect(()=>{var t;if(!n.current)return;let i=null!=(t=e.headerComponents)?t:{};n.current.updateOptions({createHeaderComponent:e=>new nF(e.id,i[e.name],{addPortal:r})})},[e.headerComponents]),W.default.useEffect(()=>{if(!n.current)return()=>{};let t=n.current.onDidDrop(t=>{e.onDidDrop&&e.onDidDrop(t)});return()=>{t.dispose()}},[e.onDidDrop]),W.default.createElement("div",{style:{height:"100%",width:"100%"},ref:i},o)}).displayName="PaneviewComponent";let nB=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,i)=>i?i.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)},n$=(...e)=>e.filter((e,t,i)=>!!e&&""!==e.trim()&&i.indexOf(e)===t).join(" ").trim();var nU={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let nK=(0,W.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:i=2,absoluteStrokeWidth:n,className:o="",children:r,iconNode:s,...a},l)=>(0,W.createElement)("svg",{ref:l,...nU,width:t,height:t,stroke:e,strokeWidth:n?24*Number(i)/Number(t):i,className:n$("lucide",o),...!r&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0})(a)&&{"aria-hidden":"true"},...a},[...s.map(([e,t])=>(0,W.createElement)(e,t)),...Array.isArray(r)?r:[r]])),nJ=(e,t)=>{let i=(0,W.forwardRef)(({className:i,...n},o)=>(0,W.createElement)(nK,{ref:o,iconNode:t,className:n$(`lucide-${nB(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,i),...n}));return i.displayName=nB(e),i},nZ=nJ("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]),nX=nJ("disc",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]),nq=nJ("grid-3x3",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]]);function nY({icon:e,title:t,subtitle:i,children:n,className:o}){return(0,V.jsxs)("div",{className:tm("h-6 min-h-[24px] flex items-center justify-between px-3 border-b border-border bg-secondary select-none",o),children:[(0,V.jsxs)("div",{className:"flex items-center gap-1 min-w-0",children:[e&&(0,V.jsx)("span",{className:"flex-shrink-0 w-3.5 h-3.5 text-muted-foreground",children:e}),(0,V.jsx)("span",{className:"text-[12px] leading-[16px] font-medium tracking-[-0.15px] text-foreground truncate",children:t}),i&&(0,V.jsx)("span",{className:"text-[11px] leading-4 text-muted-foreground truncate",children:i})]}),n&&(0,V.jsx)("div",{className:"flex items-center gap-1",children:n})]})}let nQ=nJ("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]),n0=nJ("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),n1=nJ("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),n2=nJ("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);function n5({className:e}){let{datasetInfo:t,embeddingsByLayoutKey:i,activeLayoutKey:n,labelFilter:o,setLabelFilter:r}=eg(),[s,a]=W.default.useState(""),[l,d]=W.default.useState(!1),[h,u]=W.default.useState(!0),c=W.default.useRef(null),p=n??t?.layouts?.[0]?.layout_key??null,{labelCounts:m,labelUniverse:f,distinctLabelCount:g,distinctColoringDisabled:v,labelColorMap:w,legendLabels:b}=tE({datasetInfo:t,embeddings:p?i[p]??null:null,labelSearch:s,labelFilter:o}),y=m.size>0,x=f.length>0?f.filter(e=>"undefined"!==e).length:g,_=s.trim().length>0?b.length:x,D=o?em(o):null;return W.default.useEffect(()=>{l&&c.current&&c.current.focus()},[l]),(0,V.jsxs)(tf,{className:tm("h-full flex flex-col",e),children:[(0,V.jsx)(nY,{title:"Explorer"}),(0,V.jsx)("div",{className:"flex-1 min-h-0 overflow-auto panel-scroll",children:(0,V.jsxs)("div",{className:"border-b border-border",children:[(0,V.jsxs)("div",{className:"flex items-center h-6 px-2 bg-secondary/50",children:[(0,V.jsxs)("button",{onClick:()=>u(!h),className:"flex items-center gap-1.5 flex-1 min-w-0 text-left hover:bg-muted/30 rounded px-1 -ml-1",children:[h?(0,V.jsx)(n1,{className:"h-3 w-3 flex-shrink-0 text-muted-foreground"}):(0,V.jsx)(n2,{className:"h-3 w-3 flex-shrink-0 text-muted-foreground"}),(0,V.jsx)(nQ,{className:"h-3 w-3 flex-shrink-0 text-muted-foreground"}),(0,V.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:"Labels"}),(0,V.jsx)("span",{className:"ml-auto text-xs text-muted-foreground/50 tabular-nums",children:_})]}),(0,V.jsx)("button",{onClick:()=>{d(!l),l&&a("")},className:tm("h-5 w-5 flex items-center justify-center rounded text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/50 transition-colors ml-1",l&&"text-muted-foreground bg-muted/50"),title:"Search labels",children:(0,V.jsx)(n0,{className:"h-3 w-3"})})]}),l&&(0,V.jsx)("div",{className:"px-2 py-1.5 bg-secondary/30 border-b border-border/50",children:(0,V.jsx)("input",{ref:c,value:s,onChange:e=>a(e.target.value),placeholder:"Filter labels...",className:"w-full h-6 px-2 rounded bg-background border border-border text-[12px] leading-[16px] text-foreground placeholder:text-muted-foreground/50 outline-none focus:ring-1 focus:ring-ring focus:border-ring"})}),h&&(0,V.jsxs)("div",{className:"py-1",children:[v&&(0,V.jsxs)("div",{className:"px-3 py-1 text-[10px] text-muted-foreground/60",children:["Too many labels (",g,") to color distinctly; using one color."]}),0===b.length?(0,V.jsx)("div",{className:"px-3 py-2 text-[11px] text-muted-foreground/50",children:"No labels available"}):(0,V.jsx)("div",{className:"space-y-px",children:b.map(e=>{let t="undefined"===e?el:w[e]??ed,i=em(e),n=D===i;return(0,V.jsxs)("button",{type:"button",onClick:()=>r(n?null:i),className:tm("flex items-center gap-2 w-full h-6 px-3 text-[12px] leading-[16px] text-left text-muted-foreground hover:text-foreground","hover:bg-muted/40 transition-colors",n&&"bg-muted/60 text-foreground",D&&!n&&"opacity-40"),children:[(0,V.jsx)("span",{className:"w-2 h-2 rounded-full flex-shrink-0",style:{backgroundColor:t}}),(0,V.jsx)("span",{className:"truncate flex-1",title:e,children:e}),y&&(0,V.jsx)("span",{className:"text-[10px] text-muted-foreground/50 font-mono tabular-nums flex-shrink-0",children:m.get(e)??0})]},e)})})]})]})})]})}let n3=nJ("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function n4({className:e,onClose:t}){return(0,V.jsxs)(tf,{className:tm("h-full w-full relative",e),children:[t&&(0,V.jsx)("button",{onClick:t,className:"absolute top-3 right-3 p-1.5 rounded-md text-muted-foreground/60 hover:text-muted-foreground hover:bg-muted/60 transition-colors z-10","aria-label":"Close panel",children:(0,V.jsx)(n3,{className:"h-4 w-4"})}),(0,V.jsx)("div",{className:"flex-1 flex items-center justify-center",children:(0,V.jsx)("div",{className:"text-muted-foreground/20",children:(0,V.jsx)(tg,{className:"w-12 h-12"})})})]})}let n9="hyperview:dockview-layout:v4",n6="explorer",n8="grid",n7="scatter-euclidean",oe="scatter-poincare",ot="scatter-default",oi="right-placeholder",on="bottom-placeholder",oo=[n8,n7,oe,ot],or=[{id:n8,label:"Samples",icon:nq},{id:n7,label:"Euclidean",icon:nZ},{id:oe,label:"Hyperbolic",icon:nX}],os=new Set([n6,oi,on]),oa=new Set([n6]),ol=e=>e?.width??window.innerWidth,od=e=>Math.round(Math.min(.35*e,200));function oh(e){return{direction:"bottom"===e?"below":e}}let ou=(0,W.createContext)(null);function oc(){let e=(0,W.useContext)(ou);if(!e)throw Error("useDockviewContext must be used within DockviewProvider");return e}let op=W.default.memo(function(e){let t=e.params??{};return(0,V.jsx)(tO,{className:"h-full",layoutKey:t.layoutKey,geometry:t.geometry})}),om=W.default.memo(function({api:e,icon:t}){return(0,V.jsxs)("div",{className:"flex items-center gap-1 text-[12px] leading-[16px] font-medium tracking-[-0.15px]",children:[(0,V.jsx)("span",{className:"flex-shrink-0",children:t}),(0,V.jsx)("span",{className:"truncate",children:e.title})]})}),of=W.default.memo(function(e){return(0,V.jsx)(om,{...e,icon:(0,V.jsx)(nZ,{className:"h-3.5 w-3.5"})})}),og=W.default.memo(function(e){return(0,V.jsx)(om,{...e,icon:(0,V.jsx)(nX,{className:"h-3.5 w-3.5"})})}),ov=W.default.memo(function(e){return(0,V.jsx)(om,{...e,icon:(0,V.jsx)(nq,{className:"h-3.5 w-3.5"})})}),ow=W.default.memo(function(){let e=oc();return(0,V.jsx)(ty,{samples:e.samples,onLoadMore:e.onLoadMore,hasMore:e.hasMore})}),ob=W.default.memo(function(){return(0,V.jsx)(n5,{})}),oy=W.default.memo(function(e){let t=W.default.useCallback(()=>{e.api.close()},[e.api]);return(0,V.jsx)(n4,{onClose:t})}),ox=W.default.memo(function(e){return(0,V.jsx)("div",{className:"flex items-center justify-center h-full w-full",children:(0,V.jsx)("div",{className:"text-muted-foreground/20",children:(0,V.jsx)(tg,{className:"w-16 h-16"})})})}),o_={grid:ow,scatter:op,explorer:ob,placeholder:oy},oD={euclideanTab:of,hyperbolicTab:og,samplesTab:ov};function oC({children:e,samples:t,onLoadMore:i,hasMore:n}){let[o,r]=(0,W.useState)(null),s=(0,W.useMemo)(()=>({api:o,setApi:r,samples:t,onLoadMore:i,hasMore:n}),[o,t,i,n]);return(0,V.jsx)(ou.Provider,{value:s,children:e})}function oS(){let e=oc(),t=eg(e=>e.datasetInfo),{setLeftPanelOpen:i,setRightPanelOpen:n,setBottomPanelOpen:o}=eg(),r=(0,W.useCallback)(e=>{let r=t?.layouts??[],s=tA(r,"euclidean"),a=tA(r,"poincare"),l=s||a?null:r[0],d=r.length>0,h=e.getPanel(n8)??e.addPanel({id:n8,component:"grid",title:"Samples",tabComponent:"samplesTab",renderer:"always"}),u=null;if(d&&s&&(u=e.getPanel(n7)??e.addPanel({id:n7,component:"scatter",title:"Euclidean",tabComponent:"euclideanTab",params:{layoutKey:s.layout_key,geometry:"euclidean"},position:{referencePanel:h.id,direction:"right"},renderer:"always"})),d&&a){let t=u?{referencePanel:u.id,direction:"within"}:{referencePanel:h.id,direction:"right"},i=e.getPanel(oe)??e.addPanel({id:oe,component:"scatter",title:"Hyperbolic",tabComponent:"hyperbolicTab",params:{layoutKey:a.layout_key,geometry:"poincare"},position:t,renderer:"always"});u||(u=i)}if(!d){let t=e.getPanel(n7)??e.addPanel({id:n7,component:"scatter",title:"Euclidean",tabComponent:"euclideanTab",params:{geometry:"euclidean"},position:{referencePanel:h.id,direction:"right"},renderer:"always"});e.getPanel(oe)??e.addPanel({id:oe,component:"scatter",title:"Hyperbolic",tabComponent:"hyperbolicTab",params:{geometry:"poincare"},position:{referencePanel:t.id,direction:"within"},renderer:"always"}),u=t}l&&!u&&(e.getPanel(ot)??e.addPanel({id:ot,component:"scatter",title:"Embeddings",params:{layoutKey:l.layout_key},position:{referencePanel:h.id,direction:"right"},renderer:"always"}));let c=ol(e),p=e.getPanel(n6)??e.addPanel({id:n6,component:"explorer",title:"Explorer",position:oh("left"),initialWidth:od(c),minimumWidth:120,maximumWidth:od(c),inactive:!0});p&&(p.group.locked=!0,p.group.header.hidden=!0),i(!!p),n(!1),o(!1)},[t,i,n,o]),s=(0,W.useCallback)(t=>{e.setApi(t.api);let s=localStorage.getItem(n9);if(s)try{var a;let e,l,d;t.api.fromJSON(JSON.parse(s)),0===t.api.totalPanels&&(localStorage.removeItem(n9),r(t.api)),(e=(a=t.api).getPanel(n6))&&(e.group.locked=!0,e.group.header.hidden=!0),(l=a.getPanel(oi))&&(l.group.header.hidden=!0),(d=a.getPanel(on))&&(d.group.header.hidden=!0),i(!!t.api.getPanel(n6)),n(!!t.api.getPanel(oi)),o(!!t.api.getPanel(on));return}catch(e){console.warn("Failed to restore dock layout, resetting.",e),localStorage.removeItem(n9)}0===t.api.totalPanels&&r(t.api)},[r,e,i,n,o]);return(0,W.useEffect)(()=>{let t=e.api;if(!t)return;let i=t.onDidLayoutChange(()=>{if(0===t.totalPanels)return;let e=t.toJSON();localStorage.setItem(n9,JSON.stringify(e))});return()=>i.dispose()},[e.api]),(0,W.useEffect)(()=>{let t=e.api;if(!t)return;let r=t.onDidRemovePanel(e=>{e.id===n6&&i(!1),e.id===oi&&n(!1),e.id===on&&o(!1)});return()=>r.dispose()},[e.api,i,n,o]),(0,W.useEffect)(()=>{let t=e.api;if(!t)return;let i=t.onDidAddPanel(e=>{if(e.id===oi||e.id===on)return;let i=e.group;if(!i)return;let n=t.getPanel(oi),o=t.getPanel(on);n&&n.group?.id===i.id&&n.api.close(),o&&o.group?.id===i.id&&o.api.close()});return()=>i.dispose()},[e.api]),(0,W.useEffect)(()=>{let t=e.api;if(!t)return;let i=t.onWillDragPanel(e=>{oa.has(e.panel.id)&&e.nativeEvent.preventDefault()});return()=>i.dispose()},[e.api]),(0,W.useEffect)(()=>{!e.api||!t||e.api.getPanel(n7)||e.api.getPanel(oe)||e.api.getPanel(ot)||r(e.api)},[r,t,e.api]),(0,V.jsx)("div",{className:"h-full w-full",children:(0,V.jsx)(nV,{className:"dockview-theme-abyss hyperview-dockview",components:o_,tabComponents:oD,onReady:s,theme:ni,defaultRenderer:"always",scrollbars:"native",watermarkComponent:ox})})}function oE(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function oA(...e){return t=>{let i=!1,n=e.map(e=>{let n=oE(e,t);return i||"function"!=typeof n||(i=!0),n});if(i)return()=>{for(let t=0;t{let{children:i,...n}=e;if(oR(i)&&"function"==typeof oP&&(i=oP(i._payload)),W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName="Slot.SlotClone",n=f,(o=W.forwardRef((e,t)=>{let{children:i,...o}=e;oR(i)&&"function"==typeof oP&&(i=oP(i._payload));let r=W.Children.toArray(i),s=r.find(oI);if(s){let e=s.props.children,i=r.map(t=>t!==s?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(n,{...o,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(n,{...o,ref:t,children:i})})).displayName="Slot.Slot",o),oO=Symbol("radix.slottable");function oI(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===oO}let oM=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,oL=(r="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",s={variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}},e=>{var t;if((null==s?void 0:s.variants)==null)return ev(r,null==e?void 0:e.class,null==e?void 0:e.className);let{variants:i,defaultVariants:n}=s,o=Object.keys(i).map(t=>{let o=null==e?void 0:e[t],r=null==n?void 0:n[t];if(null===o)return null;let s=oM(o)||oM(r);return i[t][s]}),a=e&&Object.entries(e).reduce((e,t)=>{let[i,n]=t;return void 0===n||(e[i]=n),e},{});return ev(r,o,null==s||null==(t=s.compoundVariants)?void 0:t.reduce((e,t)=>{let{class:i,className:o,...r}=t;return Object.entries(r).every(e=>{let[t,i]=e;return Array.isArray(i)?i.includes({...n,...a}[t]):({...n,...a})[t]===i})?[...e,i,o]:e},[]),null==e?void 0:e.class,null==e?void 0:e.className)}),oT=W.forwardRef(({className:e,variant:t,size:i,asChild:n=!1,...o},r)=>(0,V.jsx)(n?oN:"button",{className:tm(oL({variant:t,size:i,className:e})),ref:r,...o}));function oj(e,t,{checkForDefaultPrevented:i=!0}={}){return function(n){if(e?.(n),!1===i||!n.defaultPrevented)return t?.(n)}}function oG(e,t=[]){let i=[],n=()=>{let t=i.map(e=>W.createContext(e));return function(i){let n=i?.[e]||t;return W.useMemo(()=>({[`__scope${e}`]:{...i,[e]:n}}),[i,n])}};return n.scopeName=e,[function(t,n){let o=W.createContext(n),r=i.length;i=[...i,n];let s=t=>{let{scope:i,children:n,...s}=t,a=i?.[e]?.[r]||o,l=W.useMemo(()=>s,Object.values(s));return(0,V.jsx)(a.Provider,{value:l,children:n})};return s.displayName=t+"Provider",[s,function(i,s){let a=s?.[e]?.[r]||o,l=W.useContext(a);if(l)return l;if(void 0!==n)return n;throw Error(`\`${i}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let i=()=>{let i=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let n=i.reduce((t,{useScope:i,scopeName:n})=>{let o=i(e)[`__scope${n}`];return{...t,...o}},{});return W.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return i.scopeName=t.scopeName,i}(n,...t)]}oT.displayName="Button","undefined"!=typeof window&&window.document&&window.document.createElement;var oV=globalThis?.document?W.useLayoutEffect:()=>{};W[" useEffectEvent ".trim().toString()],W[" useInsertionEffect ".trim().toString()];var oW=W[" useInsertionEffect ".trim().toString()]||oV;function oH({prop:e,defaultProp:t,onChange:i=()=>{},caller:n}){let[o,r,s]=function({defaultProp:e,onChange:t}){let[i,n]=W.useState(e),o=W.useRef(i),r=W.useRef(t);return oW(()=>{r.current=t},[t]),W.useEffect(()=>{o.current!==i&&(r.current?.(i),o.current=i)},[i,o]),[i,n,r]}({defaultProp:t,onChange:i}),a=void 0!==e,l=a?e:o;{let t=W.useRef(void 0!==e);W.useEffect(()=>{let e=t.current;if(e!==a){let t=a?"controlled":"uncontrolled";console.warn(`${n} is changing from ${e?"controlled":"uncontrolled"} to ${t}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`)}t.current=a},[a,n])}return[l,W.useCallback(t=>{if(a){let i="function"==typeof t?t(e):t;i!==e&&s.current?.(i)}else r(t)},[a,e,r,s])]}Symbol("RADIX:SYNC_STATE");var oF=Symbol("radix.slottable");function oB(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===oF}var o$=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{var i,n;let o,r,s,a=(n=i=`Primitive.${t}`,(o=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName=`${n}.SlotClone`,r=o,(s=W.forwardRef((e,t)=>{let{children:i,...n}=e,o=W.Children.toArray(i),s=o.find(oB);if(s){let e=s.props.children,i=o.map(t=>t!==s?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(r,{...n,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(r,{...n,ref:t,children:i})})).displayName=`${i}.Slot`,s),l=W.forwardRef((e,i)=>{let{asChild:n,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,V.jsx)(n?a:t,{...o,ref:i})});return l.displayName=`Primitive.${t}`,{...e,[t]:l}},{});function oU(e,t){e&&H.flushSync(()=>e.dispatchEvent(t))}function oK(e){var t;let i,n=(t=e,(i=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName=`${t}.SlotClone`,i),o=W.forwardRef((e,t)=>{let{children:i,...o}=e,r=W.Children.toArray(i),s=r.find(oZ);if(s){let e=s.props.children,i=r.map(t=>t!==s?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(n,{...o,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(n,{...o,ref:t,children:i})});return o.displayName=`${e}.Slot`,o}var oJ=Symbol("radix.slottable");function oZ(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===oJ}function oX(e){let t=e+"CollectionProvider",[i,n]=oG(t),[o,r]=i(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:i}=e,n=W.default.useRef(null),r=W.default.useRef(new Map).current;return(0,V.jsx)(o,{scope:t,itemMap:r,collectionRef:n,children:i})};s.displayName=t;let a=e+"CollectionSlot",l=oK(a),d=W.default.forwardRef((e,t)=>{let{scope:i,children:n}=e,o=ok(t,r(a,i).collectionRef);return(0,V.jsx)(l,{ref:o,children:n})});d.displayName=a;let h=e+"CollectionItemSlot",u="data-radix-collection-item",c=oK(h),p=W.default.forwardRef((e,t)=>{let{scope:i,children:n,...o}=e,s=W.default.useRef(null),a=ok(t,s),l=r(h,i);return W.default.useEffect(()=>(l.itemMap.set(s,{ref:s,...o}),()=>void l.itemMap.delete(s))),(0,V.jsx)(c,{...{[u]:""},ref:a,children:n})});return p.displayName=h,[{Provider:s,Slot:d,ItemSlot:p},function(t){let i=r(e+"CollectionConsumer",t);return W.default.useCallback(()=>{let e=i.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(i.itemMap.values()).sort((e,i)=>t.indexOf(e.ref.current)-t.indexOf(i.ref.current))},[i.collectionRef,i.itemMap])},n]}var oq=new WeakMap;function oY(e,t){var i,n;let o,r,s;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let a=(i=e,n=t,o=i.length,(s=(r=oQ(n))>=0?r:o+r)<0||s>=o?-1:s);return -1===a?void 0:e[a]}function oQ(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],oq.set(this,!0)}set(e,t){return oq.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,i){let n,o=this.has(t),r=this.#e.length,s=oQ(e),a=s>=0?s:r+s,l=a<0||a>=r?-1:a;if(l===this.size||o&&l===this.size-1||-1===l)return this.set(t,i),this;let d=this.size+ +!o;s<0&&a++;let h=[...this.#e],u=!1;for(let e=a;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let i=this.indexOf(e);if(-1===i)return;let n=i+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let i=0;for(let n of this){if(Reflect.apply(e,t,[n,i,this]))return n;i++}}findIndex(e,t){let i=0;for(let n of this){if(Reflect.apply(e,t,[n,i,this]))return i;i++}return -1}filter(t,i){let n=[],o=0;for(let e of this)Reflect.apply(t,i,[e,o,this])&&n.push(e),o++;return new e(n)}map(t,i){let n=[],o=0;for(let e of this)n.push([e[0],Reflect.apply(t,i,[e,o,this])]),o++;return new e(n)}reduce(...e){let[t,i]=e,n=0,o=i??this.at(0);for(let i of this)o=0===n&&1===e.length?i:Reflect.apply(t,this,[o,i,n,this]),n++;return o}reduceRight(...e){let[t,i]=e,n=i??this.at(-1);for(let i=this.size-1;i>=0;i--){let o=this.at(i);n=i===this.size-1&&1===e.length?o:Reflect.apply(t,this,[n,o,i,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let i=this.keyAt(e),n=this.get(i);t.set(i,n)}return t}toSpliced(...t){let i=[...this.entries()];return i.splice(...t),new e(i)}slice(t,i){let n=new e,o=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==i&&i>0&&(o=i-1);for(let e=t;e<=o;e++){let t=this.keyAt(e),i=this.get(t);n.set(t,i)}return n}every(e,t){let i=0;for(let n of this){if(!Reflect.apply(e,t,[n,i,this]))return!1;i++}return!0}some(e,t){let i=0;for(let n of this){if(Reflect.apply(e,t,[n,i,this]))return!0;i++}return!1}});var o0=W.createContext(void 0);function o1(e){let t=W.useContext(o0);return e||t||"ltr"}function o2(e){let t=W.useRef(e);return W.useEffect(()=>{t.current=e}),W.useMemo(()=>(...e)=>t.current?.(...e),[])}var o5="dismissableLayer.update",o3=W.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),o4=W.forwardRef((e,t)=>{let{disableOutsidePointerEvents:i=!1,onEscapeKeyDown:n,onPointerDownOutside:o,onFocusOutside:r,onInteractOutside:s,onDismiss:a,...l}=e,d=W.useContext(o3),[h,u]=W.useState(null),c=h?.ownerDocument??globalThis?.document,[,p]=W.useState({}),m=ok(t,e=>u(e)),f=Array.from(d.layers),[g]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),v=f.indexOf(g),w=h?f.indexOf(h):-1,b=d.layersWithOutsidePointerEventsDisabled.size>0,y=w>=v,x=function(e,t=globalThis?.document){let i=o2(e),n=W.useRef(!1),o=W.useRef(()=>{});return W.useEffect(()=>{let e=e=>{if(e.target&&!n.current){let n=function(){o6("dismissableLayer.pointerDownOutside",i,r,{discrete:!0})},r={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",o.current),o.current=n,t.addEventListener("click",o.current,{once:!0})):n()}else t.removeEventListener("click",o.current);n.current=!1},r=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(r),t.removeEventListener("pointerdown",e),t.removeEventListener("click",o.current)}},[t,i]),{onPointerDownCapture:()=>n.current=!0}}(e=>{let t=e.target,i=[...d.branches].some(e=>e.contains(t));y&&!i&&(o?.(e),s?.(e),e.defaultPrevented||a?.())},c),_=function(e,t=globalThis?.document){let i=o2(e),n=W.useRef(!1);return W.useEffect(()=>{let e=e=>{e.target&&!n.current&&o6("dismissableLayer.focusOutside",i,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,i]),{onFocusCapture:()=>n.current=!0,onBlurCapture:()=>n.current=!1}}(e=>{let t=e.target;![...d.branches].some(e=>e.contains(t))&&(r?.(e),s?.(e),e.defaultPrevented||a?.())},c);return!function(e,t=globalThis?.document){let i=o2(e);W.useEffect(()=>{let e=e=>{"Escape"===e.key&&i(e)};return t.addEventListener("keydown",e,{capture:!0}),()=>t.removeEventListener("keydown",e,{capture:!0})},[i,t])}(e=>{w===d.layers.size-1&&(n?.(e),!e.defaultPrevented&&a&&(e.preventDefault(),a()))},c),W.useEffect(()=>{if(h)return i&&(0===d.layersWithOutsidePointerEventsDisabled.size&&(j=c.body.style.pointerEvents,c.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(h)),d.layers.add(h),o9(),()=>{i&&1===d.layersWithOutsidePointerEventsDisabled.size&&(c.body.style.pointerEvents=j)}},[h,c,i,d]),W.useEffect(()=>()=>{h&&(d.layers.delete(h),d.layersWithOutsidePointerEventsDisabled.delete(h),o9())},[h,d]),W.useEffect(()=>{let e=()=>p({});return document.addEventListener(o5,e),()=>document.removeEventListener(o5,e)},[]),(0,V.jsx)(o$.div,{...l,ref:m,style:{pointerEvents:b?y?"auto":"none":void 0,...e.style},onFocusCapture:oj(e.onFocusCapture,_.onFocusCapture),onBlurCapture:oj(e.onBlurCapture,_.onBlurCapture),onPointerDownCapture:oj(e.onPointerDownCapture,x.onPointerDownCapture)})});function o9(){let e=new CustomEvent(o5);document.dispatchEvent(e)}function o6(e,t,i,{discrete:n}){let o=i.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:i});t&&o.addEventListener(e,t,{once:!0}),n?oU(o,r):o.dispatchEvent(r)}o4.displayName="DismissableLayer",W.forwardRef((e,t)=>{let i=W.useContext(o3),n=W.useRef(null),o=ok(t,n);return W.useEffect(()=>{let e=n.current;if(e)return i.branches.add(e),()=>{i.branches.delete(e)}},[i.branches]),(0,V.jsx)(o$.div,{...e,ref:o})}).displayName="DismissableLayerBranch";var o8=0;function o7(){W.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??re()),document.body.insertAdjacentElement("beforeend",e[1]??re()),o8++,()=>{1===o8&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),o8--}},[])}function re(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var rt="focusScope.autoFocusOnMount",ri="focusScope.autoFocusOnUnmount",rn={bubbles:!1,cancelable:!0},ro=W.forwardRef((e,t)=>{let{loop:i=!1,trapped:n=!1,onMountAutoFocus:o,onUnmountAutoFocus:r,...s}=e,[a,l]=W.useState(null),d=o2(o),h=o2(r),u=W.useRef(null),c=ok(t,e=>l(e)),p=W.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;W.useEffect(()=>{if(n){let e=function(e){if(p.paused||!a)return;let t=e.target;a.contains(t)?u.current=t:ra(u.current,{select:!0})},t=function(e){if(p.paused||!a)return;let t=e.relatedTarget;null!==t&&(a.contains(t)||ra(u.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let i=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&ra(a)});return a&&i.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),i.disconnect()}}},[n,a,p.paused]),W.useEffect(()=>{if(a){rl.add(p);let e=document.activeElement;if(!a.contains(e)){let t=new CustomEvent(rt,rn);a.addEventListener(rt,d),a.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let i=document.activeElement;for(let n of e)if(ra(n,{select:t}),document.activeElement!==i)return}(rr(a).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&ra(a))}return()=>{a.removeEventListener(rt,d),setTimeout(()=>{let t=new CustomEvent(ri,rn);a.addEventListener(ri,h),a.dispatchEvent(t),t.defaultPrevented||ra(e??document.body,{select:!0}),a.removeEventListener(ri,h),rl.remove(p)},0)}}},[a,d,h,p]);let m=W.useCallback(e=>{if(!i&&!n||p.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,o=document.activeElement;if(t&&o){var r;let t,n=e.currentTarget,[s,a]=[rs(t=rr(r=n),r),rs(t.reverse(),r)];s&&a?e.shiftKey||o!==a?e.shiftKey&&o===s&&(e.preventDefault(),i&&ra(a,{select:!0})):(e.preventDefault(),i&&ra(s,{select:!0})):o===n&&e.preventDefault()}},[i,n,p.paused]);return(0,V.jsx)(o$.div,{tabIndex:-1,...s,ref:c,onKeyDown:m})});function rr(e){let t=[],i=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;i.nextNode();)t.push(i.currentNode);return t}function rs(e,t){for(let i of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(i,{upTo:t}))return i}function ra(e,{select:t=!1}={}){if(e&&e.focus){var i;let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&(i=e)instanceof HTMLInputElement&&"select"in i&&t&&e.select()}}ro.displayName="FocusScope";var rl=(g=[],{add(e){let t=g[0];e!==t&&t?.pause(),(g=rd(g,e)).unshift(e)},remove(e){g=rd(g,e),g[0]?.resume()}});function rd(e,t){let i=[...e],n=i.indexOf(t);return -1!==n&&i.splice(n,1),i}var rh=W[" useId ".trim().toString()]||(()=>void 0),ru=0;function rc(e){let[t,i]=W.useState(rh());return oV(()=>{e||i(e=>e??String(ru++))},[e]),e||(t?`radix-${t}`:"")}let rp=["top","right","bottom","left"],rm=Math.min,rf=Math.max,rg=Math.round,rv=Math.floor,rw=e=>({x:e,y:e}),rb={left:"right",right:"left",bottom:"top",top:"bottom"},ry={start:"end",end:"start"};function rx(e,t){return"function"==typeof e?e(t):e}function r_(e){return e.split("-")[0]}function rD(e){return e.split("-")[1]}function rC(e){return"x"===e?"y":"x"}function rS(e){return"y"===e?"height":"width"}let rE=new Set(["top","bottom"]);function rA(e){return rE.has(r_(e))?"y":"x"}function rk(e){return e.replace(/start|end/g,e=>ry[e])}let rz=["left","right"],rP=["right","left"],rR=["top","bottom"],rN=["bottom","top"];function rO(e){return e.replace(/left|right|bottom|top/g,e=>rb[e])}function rI(e){return"number"!=typeof e?{top:0,right:0,bottom:0,left:0,...e}:{top:e,right:e,bottom:e,left:e}}function rM(e){let{x:t,y:i,width:n,height:o}=e;return{width:n,height:o,top:i,left:t,right:t+n,bottom:i+o,x:t,y:i}}function rL(e,t,i){let n,{reference:o,floating:r}=e,s=rA(t),a=rC(rA(t)),l=rS(a),d=r_(t),h="y"===s,u=o.x+o.width/2-r.width/2,c=o.y+o.height/2-r.height/2,p=o[l]/2-r[l]/2;switch(d){case"top":n={x:u,y:o.y-r.height};break;case"bottom":n={x:u,y:o.y+o.height};break;case"right":n={x:o.x+o.width,y:c};break;case"left":n={x:o.x-r.width,y:c};break;default:n={x:o.x,y:o.y}}switch(rD(t)){case"start":n[a]-=p*(i&&h?-1:1);break;case"end":n[a]+=p*(i&&h?-1:1)}return n}let rT=async(e,t,i)=>{let{placement:n="bottom",strategy:o="absolute",middleware:r=[],platform:s}=i,a=r.filter(Boolean),l=await (null==s.isRTL?void 0:s.isRTL(t)),d=await s.getElementRects({reference:e,floating:t,strategy:o}),{x:h,y:u}=rL(d,n,l),c=n,p={},m=0;for(let i=0;ie[t]>=0)}let rW=new Set(["left","top"]);async function rH(e,t){let{placement:i,platform:n,elements:o}=e,r=await (null==n.isRTL?void 0:n.isRTL(o.floating)),s=r_(i),a=rD(i),l="y"===rA(i),d=rW.has(s)?-1:1,h=r&&l?-1:1,u=rx(t,e),{mainAxis:c,crossAxis:p,alignmentAxis:m}="number"==typeof u?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return a&&"number"==typeof m&&(p="end"===a?-1*m:m),l?{x:p*h,y:c*d}:{x:c*d,y:p*h}}function rF(){return"undefined"!=typeof window}function rB(e){return rK(e)?(e.nodeName||"").toLowerCase():"#document"}function r$(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function rU(e){var t;return null==(t=(rK(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function rK(e){return!!rF()&&(e instanceof Node||e instanceof r$(e).Node)}function rJ(e){return!!rF()&&(e instanceof Element||e instanceof r$(e).Element)}function rZ(e){return!!rF()&&(e instanceof HTMLElement||e instanceof r$(e).HTMLElement)}function rX(e){return!!rF()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof r$(e).ShadowRoot)}let rq=new Set(["inline","contents"]);function rY(e){let{overflow:t,overflowX:i,overflowY:n,display:o}=r7(e);return/auto|scroll|overlay|hidden|clip/.test(t+n+i)&&!rq.has(o)}let rQ=new Set(["table","td","th"]),r0=[":popover-open",":modal"];function r1(e){return r0.some(t=>{try{return e.matches(t)}catch(e){return!1}})}let r2=["transform","translate","scale","rotate","perspective"],r5=["transform","translate","scale","rotate","perspective","filter"],r3=["paint","layout","strict","content"];function r4(e){let t=r9(),i=rJ(e)?r7(e):e;return r2.some(e=>!!i[e]&&"none"!==i[e])||!!i.containerType&&"normal"!==i.containerType||!t&&!!i.backdropFilter&&"none"!==i.backdropFilter||!t&&!!i.filter&&"none"!==i.filter||r5.some(e=>(i.willChange||"").includes(e))||r3.some(e=>(i.contain||"").includes(e))}function r9(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}let r6=new Set(["html","body","#document"]);function r8(e){return r6.has(rB(e))}function r7(e){return r$(e).getComputedStyle(e)}function se(e){return rJ(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function st(e){if("html"===rB(e))return e;let t=e.assignedSlot||e.parentNode||rX(e)&&e.host||rU(e);return rX(t)?t.host:t}function si(e,t,i){var n;void 0===t&&(t=[]),void 0===i&&(i=!0);let o=function e(t){let i=st(t);return r8(i)?t.ownerDocument?t.ownerDocument.body:t.body:rZ(i)&&rY(i)?i:e(i)}(e),r=o===(null==(n=e.ownerDocument)?void 0:n.body),s=r$(o);if(r){let e=sn(s);return t.concat(s,s.visualViewport||[],rY(o)?o:[],e&&i?si(e):[])}return t.concat(o,si(o,[],i))}function sn(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function so(e){let t=r7(e),i=parseFloat(t.width)||0,n=parseFloat(t.height)||0,o=rZ(e),r=o?e.offsetWidth:i,s=o?e.offsetHeight:n,a=rg(i)!==r||rg(n)!==s;return a&&(i=r,n=s),{width:i,height:n,$:a}}function sr(e){return rJ(e)?e:e.contextElement}function ss(e){let t=sr(e);if(!rZ(t))return rw(1);let i=t.getBoundingClientRect(),{width:n,height:o,$:r}=so(t),s=(r?rg(i.width):i.width)/n,a=(r?rg(i.height):i.height)/o;return s&&Number.isFinite(s)||(s=1),a&&Number.isFinite(a)||(a=1),{x:s,y:a}}let sa=rw(0);function sl(e){let t=r$(e);return r9()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:sa}function sd(e,t,i,n){var o;void 0===t&&(t=!1),void 0===i&&(i=!1);let r=e.getBoundingClientRect(),s=sr(e),a=rw(1);t&&(n?rJ(n)&&(a=ss(n)):a=ss(e));let l=(void 0===(o=i)&&(o=!1),n&&(!o||n===r$(s))&&o)?sl(s):rw(0),d=(r.left+l.x)/a.x,h=(r.top+l.y)/a.y,u=r.width/a.x,c=r.height/a.y;if(s){let e=r$(s),t=n&&rJ(n)?r$(n):n,i=e,o=sn(i);for(;o&&n&&t!==i;){let e=ss(o),t=o.getBoundingClientRect(),n=r7(o),r=t.left+(o.clientLeft+parseFloat(n.paddingLeft))*e.x,s=t.top+(o.clientTop+parseFloat(n.paddingTop))*e.y;d*=e.x,h*=e.y,u*=e.x,c*=e.y,d+=r,h+=s,o=sn(i=r$(o))}}return rM({width:u,height:c,x:d,y:h})}function sh(e,t){let i=se(e).scrollLeft;return t?t.left+i:sd(rU(e)).left+i}function su(e,t){let i=e.getBoundingClientRect();return{x:i.left+t.scrollLeft-sh(e,i),y:i.top+t.scrollTop}}let sc=new Set(["absolute","fixed"]);function sp(e,t,i){var n;let o;if("viewport"===t)o=function(e,t){let i=r$(e),n=rU(e),o=i.visualViewport,r=n.clientWidth,s=n.clientHeight,a=0,l=0;if(o){r=o.width,s=o.height;let e=r9();(!e||e&&"fixed"===t)&&(a=o.offsetLeft,l=o.offsetTop)}let d=sh(n);if(d<=0){let e=n.ownerDocument,t=e.body,i=getComputedStyle(t),o="CSS1Compat"===e.compatMode&&parseFloat(i.marginLeft)+parseFloat(i.marginRight)||0,s=Math.abs(n.clientWidth-t.clientWidth-o);s<=25&&(r-=s)}else d<=25&&(r+=d);return{width:r,height:s,x:a,y:l}}(e,i);else if("document"===t){let t,i,r,s,a,l,d;n=rU(e),t=rU(n),i=se(n),r=n.ownerDocument.body,s=rf(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=rf(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),l=-i.scrollLeft+sh(n),d=-i.scrollTop,"rtl"===r7(r).direction&&(l+=rf(t.clientWidth,r.clientWidth)-s),o={width:s,height:a,x:l,y:d}}else if(rJ(t)){let e,n,r,s,a,l;n=(e=sd(t,!0,"fixed"===i)).top+t.clientTop,r=e.left+t.clientLeft,s=rZ(t)?ss(t):rw(1),a=t.clientWidth*s.x,l=t.clientHeight*s.y,o={width:a,height:l,x:r*s.x,y:n*s.y}}else{let i=sl(e);o={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return rM(o)}function sm(e){return"static"===r7(e).position}function sf(e,t){if(!rZ(e)||"fixed"===r7(e).position)return null;if(t)return t(e);let i=e.offsetParent;return rU(e)===i&&(i=i.ownerDocument.body),i}function sg(e,t){var i;let n=r$(e);if(r1(e))return n;if(!rZ(e)){let t=st(e);for(;t&&!r8(t);){if(rJ(t)&&!sm(t))return t;t=st(t)}return n}let o=sf(e,t);for(;o&&(i=o,rQ.has(rB(i)))&&sm(o);)o=sf(o,t);return o&&r8(o)&&sm(o)&&!r4(o)?n:o||function(e){let t=st(e);for(;rZ(t)&&!r8(t);){if(r4(t))return t;if(r1(t))break;t=st(t)}return null}(e)||n}let sv=async function(e){let t=this.getOffsetParent||sg,i=this.getDimensions,n=await i(e.floating);return{reference:function(e,t,i){let n=rZ(t),o=rU(t),r="fixed"===i,s=sd(e,!0,r,t),a={scrollLeft:0,scrollTop:0},l=rw(0);if(n||!n&&!r)if(("body"!==rB(t)||rY(o))&&(a=se(t)),n){let e=sd(t,!0,r,t);l.x=e.x+t.clientLeft,l.y=e.y+t.clientTop}else o&&(l.x=sh(o));r&&!n&&o&&(l.x=sh(o));let d=!o||n||r?rw(0):su(o,a);return{x:s.left+a.scrollLeft-l.x-d.x,y:s.top+a.scrollTop-l.y-d.y,width:s.width,height:s.height}}(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}},sw={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:i,offsetParent:n,strategy:o}=e,r="fixed"===o,s=rU(n),a=!!t&&r1(t.floating);if(n===s||a&&r)return i;let l={scrollLeft:0,scrollTop:0},d=rw(1),h=rw(0),u=rZ(n);if((u||!u&&!r)&&(("body"!==rB(n)||rY(s))&&(l=se(n)),rZ(n))){let e=sd(n);d=ss(n),h.x=e.x+n.clientLeft,h.y=e.y+n.clientTop}let c=!s||u||r?rw(0):su(s,l);return{width:i.width*d.x,height:i.height*d.y,x:i.x*d.x-l.scrollLeft*d.x+h.x+c.x,y:i.y*d.y-l.scrollTop*d.y+h.y+c.y}},getDocumentElement:rU,getClippingRect:function(e){let{element:t,boundary:i,rootBoundary:n,strategy:o}=e,r=[..."clippingAncestors"===i?r1(t)?[]:function(e,t){let i=t.get(e);if(i)return i;let n=si(e,[],!1).filter(e=>rJ(e)&&"body"!==rB(e)),o=null,r="fixed"===r7(e).position,s=r?st(e):e;for(;rJ(s)&&!r8(s);){let t=r7(s),i=r4(s);i||"fixed"!==t.position||(o=null),(r?!i&&!o:!i&&"static"===t.position&&!!o&&sc.has(o.position)||rY(s)&&!i&&function e(t,i){let n=st(t);return!(n===i||!rJ(n)||r8(n))&&("fixed"===r7(n).position||e(n,i))}(e,s))?n=n.filter(e=>e!==s):o=t,s=st(s)}return t.set(e,n),n}(t,this._c):[].concat(i),n],s=r[0],a=r.reduce((e,i)=>{let n=sp(t,i,o);return e.top=rf(n.top,e.top),e.right=rm(n.right,e.right),e.bottom=rm(n.bottom,e.bottom),e.left=rf(n.left,e.left),e},sp(t,s,o));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:sg,getElementRects:sv,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:i}=so(e);return{width:t,height:i}},getScale:ss,isElement:rJ,isRTL:function(e){return"rtl"===r7(e).direction}};function sb(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}let sy=e=>({name:"arrow",options:e,async fn(t){let{x:i,y:n,placement:o,rects:r,platform:s,elements:a,middlewareData:l}=t,{element:d,padding:h=0}=rx(e,t)||{};if(null==d)return{};let u=rI(h),c={x:i,y:n},p=rC(rA(o)),m=rS(p),f=await s.getDimensions(d),g="y"===p,v=g?"clientHeight":"clientWidth",w=r.reference[m]+r.reference[p]-c[p]-r.floating[m],b=c[p]-r.reference[p],y=await (null==s.getOffsetParent?void 0:s.getOffsetParent(d)),x=y?y[v]:0;x&&await (null==s.isElement?void 0:s.isElement(y))||(x=a.floating[v]||r.floating[m]);let _=x/2-f[m]/2-1,D=rm(u[g?"top":"left"],_),C=rm(u[g?"bottom":"right"],_),S=x-f[m]-C,E=x/2-f[m]/2+(w/2-b/2),A=rf(D,rm(E,S)),k=!l.arrow&&null!=rD(o)&&E!==A&&r.reference[m]/2-(E{t.current=e}),t}var sE=W.forwardRef((e,t)=>{let{children:i,width:n=10,height:o=5,...r}=e;return(0,V.jsx)(o$.svg,{...r,ref:t,width:n,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?i:(0,V.jsx)("polygon",{points:"0,0 30,0 15,10"})})});sE.displayName="Arrow";var sA="Popper",[sk,sz]=oG(sA),[sP,sR]=sk(sA),sN=e=>{let{__scopePopper:t,children:i}=e,[n,o]=W.useState(null);return(0,V.jsx)(sP,{scope:t,anchor:n,onAnchorChange:o,children:i})};sN.displayName=sA;var sO="PopperAnchor",sI=W.forwardRef((e,t)=>{let{__scopePopper:i,virtualRef:n,...o}=e,r=sR(sO,i),s=W.useRef(null),a=ok(t,s),l=W.useRef(null);return W.useEffect(()=>{let e=l.current;l.current=n?.current||s.current,e!==l.current&&r.onAnchorChange(l.current)}),n?null:(0,V.jsx)(o$.div,{...o,ref:a})});sI.displayName=sO;var sM="PopperContent",[sL,sT]=sk(sM),sj=W.forwardRef((e,t)=>{var i,n,o,r,s,a,l,d,h,u,c,p,m,f,g,v,w,b,y,x,_;let{__scopePopper:D,side:C="bottom",sideOffset:S=0,align:E="center",alignOffset:A=0,arrowPadding:k=0,avoidCollisions:z=!0,collisionBoundary:P=[],collisionPadding:R=0,sticky:N="partial",hideWhenDetached:O=!1,updatePositionStrategy:I="optimized",onPlaced:M,...L}=e,T=sR(sM,D),[j,G]=W.useState(null),F=ok(t,e=>G(e)),[B,$]=W.useState(null),U=function(e){let[t,i]=W.useState(void 0);return oV(()=>{if(e){i({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,o;if(!Array.isArray(t)||!t.length)return;let r=t[0];if("borderBoxSize"in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,o=t.blockSize}else n=e.offsetWidth,o=e.offsetHeight;i({width:n,height:o})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}i(void 0)},[e]),t}(B),K=U?.width??0,J=U?.height??0,Z="number"==typeof R?R:{top:0,right:0,bottom:0,left:0,...R},X=Array.isArray(P)?P:[P],q=X.length>0,Y={padding:Z,boundary:X.filter(sH),altBoundary:q},{refs:Q,floatingStyles:ee,placement:et,isPositioned:ei,middlewareData:en}=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:i="absolute",middleware:n=[],platform:o,elements:{reference:r,floating:s}={},transform:a=!0,whileElementsMounted:l,open:d}=e,[h,u]=W.useState({x:0,y:0,strategy:i,placement:t,middlewareData:{},isPositioned:!1}),[c,p]=W.useState(n);s_(c,n)||p(n);let[m,f]=W.useState(null),[g,v]=W.useState(null),w=W.useCallback(e=>{e!==_.current&&(_.current=e,f(e))},[]),b=W.useCallback(e=>{e!==D.current&&(D.current=e,v(e))},[]),y=r||m,x=s||g,_=W.useRef(null),D=W.useRef(null),C=W.useRef(h),S=null!=l,E=sS(l),A=sS(o),k=sS(d),z=W.useCallback(()=>{var e,n;let o,r,s;if(!_.current||!D.current)return;let a={placement:t,strategy:i,middleware:c};A.current&&(a.platform=A.current),(e=_.current,n=D.current,o=new Map,s={...(r={platform:sw,...a}).platform,_c:o},rT(e,n,{...r,platform:s})).then(e=>{let t={...e,isPositioned:!1!==k.current};P.current&&!s_(C.current,t)&&(C.current=t,H.flushSync(()=>{u(t)}))})},[c,t,i,A,k]);sx(()=>{!1===d&&C.current.isPositioned&&(C.current.isPositioned=!1,u(e=>({...e,isPositioned:!1})))},[d]);let P=W.useRef(!1);sx(()=>(P.current=!0,()=>{P.current=!1}),[]),sx(()=>{if(y&&(_.current=y),x&&(D.current=x),y&&x){if(E.current)return E.current(y,x,z);z()}},[y,x,z,E,S]);let R=W.useMemo(()=>({reference:_,floating:D,setReference:w,setFloating:b}),[w,b]),N=W.useMemo(()=>({reference:y,floating:x}),[y,x]),O=W.useMemo(()=>{let e={position:i,left:0,top:0};if(!N.floating)return e;let t=sC(N.floating,h.x),n=sC(N.floating,h.y);return a?{...e,transform:"translate("+t+"px, "+n+"px)",...sD(N.floating)>=1.5&&{willChange:"transform"}}:{position:i,left:t,top:n}},[i,a,N.floating,h.x,h.y]);return W.useMemo(()=>({...h,update:z,refs:R,elements:N,floatingStyles:O}),[h,z,R,N,O])}({strategy:"fixed",placement:C+("center"!==E?"-"+E:""),whileElementsMounted:(...e)=>(function(e,t,i,n){let o;void 0===n&&(n={});let{ancestorScroll:r=!0,ancestorResize:s=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:d=!1}=n,h=sr(e),u=r||s?[...h?si(h):[],...si(t)]:[];u.forEach(e=>{r&&e.addEventListener("scroll",i,{passive:!0}),s&&e.addEventListener("resize",i)});let c=h&&l?function(e,t){let i,n=null,o=rU(e);function r(){var e;clearTimeout(i),null==(e=n)||e.disconnect(),n=null}return!function s(a,l){void 0===a&&(a=!1),void 0===l&&(l=1),r();let d=e.getBoundingClientRect(),{left:h,top:u,width:c,height:p}=d;if(a||t(),!c||!p)return;let m={rootMargin:-rv(u)+"px "+-rv(o.clientWidth-(h+c))+"px "+-rv(o.clientHeight-(u+p))+"px "+-rv(h)+"px",threshold:rf(0,rm(1,l))||1},f=!0;function g(t){let n=t[0].intersectionRatio;if(n!==l){if(!f)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}1!==n||sb(d,e.getBoundingClientRect())||s(),f=!1}try{n=new IntersectionObserver(g,{...m,root:o.ownerDocument})}catch(e){n=new IntersectionObserver(g,m)}n.observe(e)}(!0),r}(h,i):null,p=-1,m=null;a&&(m=new ResizeObserver(e=>{let[n]=e;n&&n.target===h&&m&&(m.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var e;null==(e=m)||e.observe(t)})),i()}),h&&!d&&m.observe(h),m.observe(t));let f=d?sd(e):null;return d&&function t(){let n=sd(e);f&&!sb(f,n)&&i(),f=n,o=requestAnimationFrame(t)}(),i(),()=>{var e;u.forEach(e=>{r&&e.removeEventListener("scroll",i),s&&e.removeEventListener("resize",i)}),null==c||c(),null==(e=m)||e.disconnect(),m=null,d&&cancelAnimationFrame(o)}})(...e,{animationFrame:"always"===I}),elements:{reference:T.anchor},middleware:[{...{name:"offset",options:o=i={mainAxis:S+J,alignmentAxis:A},async fn(e){var t,i;let{x:n,y:r,placement:s,middlewareData:a}=e,l=await rH(e,o);return s===(null==(t=a.offset)?void 0:t.placement)&&null!=(i=a.arrow)&&i.alignmentOffset?{}:{x:n+l.x,y:r+l.y,data:{...l,placement:s}}}},options:[i,n]},z&&{...{name:"shift",options:h=l={mainAxis:!0,crossAxis:!1,limiter:"partial"===N?{...(void 0===(a=r)&&(a={}),{options:a,fn(e){let{x:t,y:i,placement:n,rects:o,middlewareData:r}=e,{offset:s=0,mainAxis:l=!0,crossAxis:d=!0}=rx(a,e),h={x:t,y:i},u=rA(n),c=rC(u),p=h[c],m=h[u],f=rx(s,e),g="number"==typeof f?{mainAxis:f,crossAxis:0}:{mainAxis:0,crossAxis:0,...f};if(l){let e="y"===c?"height":"width",t=o.reference[c]-o.floating[e]+g.mainAxis,i=o.reference[c]+o.reference[e]-g.mainAxis;pi&&(p=i)}if(d){var v,w;let e="y"===c?"width":"height",t=rW.has(r_(n)),i=o.reference[u]-o.floating[e]+(t&&(null==(v=r.offset)?void 0:v[u])||0)+(t?0:g.crossAxis),s=o.reference[u]+o.reference[e]+(t?0:(null==(w=r.offset)?void 0:w[u])||0)-(t?g.crossAxis:0);ms&&(m=s)}return{[c]:p,[u]:m}}}),options:[r,s]}:void 0,...Y},async fn(e){let{x:t,y:i,placement:n}=e,{mainAxis:o=!0,crossAxis:r=!1,limiter:s={fn:e=>{let{x:t,y:i}=e;return{x:t,y:i}}},...a}=rx(h,e),l={x:t,y:i},d=await rj(e,a),u=rA(r_(n)),c=rC(u),p=l[c],m=l[u];if(o){let e="y"===c?"top":"left",t="y"===c?"bottom":"right",i=p+d[e],n=p-d[t];p=rf(i,rm(p,n))}if(r){let e="y"===u?"top":"left",t="y"===u?"bottom":"right",i=m+d[e],n=m-d[t];m=rf(i,rm(m,n))}let f=s.fn({...e,[c]:p,[u]:m});return{...f,data:{x:f.x-t,y:f.y-i,enabled:{[c]:o,[u]:r}}}}},options:[l,d]},z&&{...{name:"flip",options:p=u={...Y},async fn(e){var t,i,n,o,r,s,a,l;let d,h,u,{placement:c,middlewareData:m,rects:f,initialPlacement:g,platform:v,elements:w}=e,{mainAxis:b=!0,crossAxis:y=!0,fallbackPlacements:x,fallbackStrategy:_="bestFit",fallbackAxisSideDirection:D="none",flipAlignment:C=!0,...S}=rx(p,e);if(null!=(t=m.arrow)&&t.alignmentOffset)return{};let E=r_(c),A=rA(g),k=r_(g)===g,z=await (null==v.isRTL?void 0:v.isRTL(w.floating)),P=x||(k||!C?[rO(g)]:(d=rO(g),[rk(g),d,rk(d)])),R="none"!==D;!x&&R&&P.push(...(h=rD(g),u=function(e,t,i){switch(e){case"top":case"bottom":if(i)return t?rP:rz;return t?rz:rP;case"left":case"right":return t?rR:rN;default:return[]}}(r_(g),"start"===D,z),h&&(u=u.map(e=>e+"-"+h),C&&(u=u.concat(u.map(rk)))),u));let N=[g,...P],O=await rj(e,S),I=[],M=(null==(i=m.flip)?void 0:i.overflows)||[];if(b&&I.push(O[E]),y){let e,t,i,n,o=(s=c,a=f,void 0===(l=z)&&(l=!1),e=rD(s),i=rS(t=rC(rA(s))),n="x"===t?e===(l?"end":"start")?"right":"left":"start"===e?"bottom":"top",a.reference[i]>a.floating[i]&&(n=rO(n)),[n,rO(n)]);I.push(O[o[0]],O[o[1]])}if(M=[...M,{placement:c,overflows:I}],!I.every(e=>e<=0)){let e=((null==(n=m.flip)?void 0:n.index)||0)+1,t=N[e];if(t&&("alignment"!==y||A===rA(t)||M.every(e=>rA(e.placement)!==A||e.overflows[0]>0)))return{data:{index:e,overflows:M},reset:{placement:t}};let i=null==(o=M.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:o.placement;if(!i)switch(_){case"bestFit":{let e=null==(r=M.filter(e=>{if(R){let t=rA(e.placement);return t===A||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:r[0];e&&(i=e);break}case"initialPlacement":i=g}if(c!==i)return{reset:{placement:i}}}return{}}},options:[u,c]},{...{name:"size",options:g=m={...Y,apply:({elements:e,rects:t,availableWidth:i,availableHeight:n})=>{let{width:o,height:r}=t.reference,s=e.floating.style;s.setProperty("--radix-popper-available-width",`${i}px`),s.setProperty("--radix-popper-available-height",`${n}px`),s.setProperty("--radix-popper-anchor-width",`${o}px`),s.setProperty("--radix-popper-anchor-height",`${r}px`)}},async fn(e){var t,i;let n,o,{placement:r,rects:s,platform:a,elements:l}=e,{apply:d=()=>{},...h}=rx(g,e),u=await rj(e,h),c=r_(r),p=rD(r),m="y"===rA(r),{width:f,height:v}=s.floating;"top"===c||"bottom"===c?(n=c,o=p===(await (null==a.isRTL?void 0:a.isRTL(l.floating))?"start":"end")?"left":"right"):(o=c,n="end"===p?"top":"bottom");let w=v-u.top-u.bottom,b=f-u.left-u.right,y=rm(v-u[n],w),x=rm(f-u[o],b),_=!e.middlewareData.shift,D=y,C=x;if(null!=(t=e.middlewareData.shift)&&t.enabled.x&&(C=b),null!=(i=e.middlewareData.shift)&&i.enabled.y&&(D=w),_&&!p){let e=rf(u.left,0),t=rf(u.right,0),i=rf(u.top,0),n=rf(u.bottom,0);m?C=f-2*(0!==e||0!==t?e+t:rf(u.left,u.right)):D=v-2*(0!==i||0!==n?i+n:rf(u.top,u.bottom))}await d({...e,availableWidth:C,availableHeight:D});let S=await a.getDimensions(l.floating);return f!==S.width||v!==S.height?{reset:{rects:!0}}:{}}},options:[m,f]},B&&{...{name:"arrow",options:b=v={element:B,padding:k},fn(e){let{element:t,padding:i}="function"==typeof b?b(e):b;return t&&({}).hasOwnProperty.call(t,"current")?null!=t.current?sy({element:t.current,padding:i}).fn(e):{}:t?sy({element:t,padding:i}).fn(e):{}}},options:[v,w]},sF({arrowWidth:K,arrowHeight:J}),O&&{...{name:"hide",options:_=y={strategy:"referenceHidden",...Y},async fn(e){let{rects:t}=e,{strategy:i="referenceHidden",...n}=rx(_,e);switch(i){case"referenceHidden":{let i=rG(await rj(e,{...n,elementContext:"reference"}),t.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:rV(i)}}}case"escaped":{let i=rG(await rj(e,{...n,altBoundary:!0}),t.floating);return{data:{escapedOffsets:i,escaped:rV(i)}}}default:return{}}}},options:[y,x]}]}),[eo,er]=sB(et),es=o2(M);oV(()=>{ei&&es?.()},[ei,es]);let ea=en.arrow?.x,el=en.arrow?.y,ed=en.arrow?.centerOffset!==0,[eh,eu]=W.useState();return oV(()=>{j&&eu(window.getComputedStyle(j).zIndex)},[j]),(0,V.jsx)("div",{ref:Q.setFloating,"data-radix-popper-content-wrapper":"",style:{...ee,transform:ei?ee.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:eh,"--radix-popper-transform-origin":[en.transformOrigin?.x,en.transformOrigin?.y].join(" "),...en.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,V.jsx)(sL,{scope:D,placedSide:eo,onArrowChange:$,arrowX:ea,arrowY:el,shouldHideArrow:ed,children:(0,V.jsx)(o$.div,{"data-side":eo,"data-align":er,...L,ref:F,style:{...L.style,animation:ei?void 0:"none"}})})})});sj.displayName=sM;var sG="PopperArrow",sV={top:"bottom",right:"left",bottom:"top",left:"right"},sW=W.forwardRef(function(e,t){let{__scopePopper:i,...n}=e,o=sT(sG,i),r=sV[o.placedSide];return(0,V.jsx)("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[r]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:(0,V.jsx)(sE,{...n,ref:t,style:{...n.style,display:"block"}})})});function sH(e){return null!==e}sW.displayName=sG;var sF=e=>({name:"transformOrigin",options:e,fn(t){let{placement:i,rects:n,middlewareData:o}=t,r=o.arrow?.centerOffset!==0,s=r?0:e.arrowWidth,a=r?0:e.arrowHeight,[l,d]=sB(i),h={start:"0%",center:"50%",end:"100%"}[d],u=(o.arrow?.x??0)+s/2,c=(o.arrow?.y??0)+a/2,p="",m="";return"bottom"===l?(p=r?h:`${u}px`,m=`${-a}px`):"top"===l?(p=r?h:`${u}px`,m=`${n.floating.height+a}px`):"right"===l?(p=`${-a}px`,m=r?h:`${c}px`):"left"===l&&(p=`${n.floating.width+a}px`,m=r?h:`${c}px`),{data:{x:p,y:m}}}});function sB(e){let[t,i="center"]=e.split("-");return[t,i]}var s$=W.forwardRef((e,t)=>{let{container:i,...n}=e,[o,r]=W.useState(!1);oV(()=>r(!0),[]);let s=i||o&&globalThis?.document?.body;return s?H.default.createPortal((0,V.jsx)(o$.div,{...n,ref:t}),s):null});s$.displayName="Portal";var sU=e=>{var t;let i,n,{present:o,children:r}=e,s=function(e){var t,i;let[n,o]=W.useState(),r=W.useRef(null),s=W.useRef(e),a=W.useRef("none"),[l,d]=(t=e?"mounted":"unmounted",i={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},W.useReducer((e,t)=>i[e][t]??e,t));return W.useEffect(()=>{let e=sK(r.current);a.current="mounted"===l?e:"none"},[l]),oV(()=>{let t=r.current,i=s.current;if(i!==e){let n=a.current,o=sK(t);e?d("MOUNT"):"none"===o||t?.display==="none"?d("UNMOUNT"):i&&n!==o?d("ANIMATION_OUT"):d("UNMOUNT"),s.current=e}},[e,d]),oV(()=>{if(n){let e,t=n.ownerDocument.defaultView??window,i=i=>{let o=sK(r.current).includes(CSS.escape(i.animationName));if(i.target===n&&o&&(d("ANIMATION_END"),!s.current)){let i=n.style.animationFillMode;n.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===n.style.animationFillMode&&(n.style.animationFillMode=i)})}},o=e=>{e.target===n&&(a.current=sK(r.current))};return n.addEventListener("animationstart",o),n.addEventListener("animationcancel",i),n.addEventListener("animationend",i),()=>{t.clearTimeout(e),n.removeEventListener("animationstart",o),n.removeEventListener("animationcancel",i),n.removeEventListener("animationend",i)}}d("ANIMATION_END")},[n,d]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:W.useCallback(e=>{r.current=e?getComputedStyle(e):null,o(e)},[])}}(o),a="function"==typeof r?r({present:s.isPresent}):W.Children.only(r),l=ok(s.ref,(t=a,(n=(i=Object.getOwnPropertyDescriptor(t.props,"ref")?.get)&&"isReactWarning"in i&&i.isReactWarning)?t.ref:(n=(i=Object.getOwnPropertyDescriptor(t,"ref")?.get)&&"isReactWarning"in i&&i.isReactWarning)?t.props.ref:t.props.ref||t.ref));return"function"==typeof r||s.isPresent?W.cloneElement(a,{ref:l}):null};function sK(e){return e?.animationName||"none"}sU.displayName="Presence";var sJ="rovingFocusGroup.onEntryFocus",sZ={bubbles:!1,cancelable:!0},sX="RovingFocusGroup",[sq,sY,sQ]=oX(sX),[s0,s1]=oG(sX,[sQ]),[s2,s5]=s0(sX),s3=W.forwardRef((e,t)=>(0,V.jsx)(sq.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,V.jsx)(sq.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,V.jsx)(s4,{...e,ref:t})})}));s3.displayName=sX;var s4=W.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:i,orientation:n,loop:o=!1,dir:r,currentTabStopId:s,defaultCurrentTabStopId:a,onCurrentTabStopIdChange:l,onEntryFocus:d,preventScrollOnEntryFocus:h=!1,...u}=e,c=W.useRef(null),p=ok(t,c),m=o1(r),[f,g]=oH({prop:s,defaultProp:a??null,onChange:l,caller:sX}),[v,w]=W.useState(!1),b=o2(d),y=sY(i),x=W.useRef(!1),[_,D]=W.useState(0);return W.useEffect(()=>{let e=c.current;if(e)return e.addEventListener(sJ,b),()=>e.removeEventListener(sJ,b)},[b]),(0,V.jsx)(s2,{scope:i,orientation:n,dir:m,loop:o,currentTabStopId:f,onItemFocus:W.useCallback(e=>g(e),[g]),onItemShiftTab:W.useCallback(()=>w(!0),[]),onFocusableItemAdd:W.useCallback(()=>D(e=>e+1),[]),onFocusableItemRemove:W.useCallback(()=>D(e=>e-1),[]),children:(0,V.jsx)(o$.div,{tabIndex:v||0===_?-1:0,"data-orientation":n,...u,ref:p,style:{outline:"none",...e.style},onMouseDown:oj(e.onMouseDown,()=>{x.current=!0}),onFocus:oj(e.onFocus,e=>{let t=!x.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(sJ,sZ);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=y().filter(e=>e.focusable);s7([e.find(e=>e.active),e.find(e=>e.id===f),...e].filter(Boolean).map(e=>e.ref.current),h)}}x.current=!1}),onBlur:oj(e.onBlur,()=>w(!1))})})}),s9="RovingFocusGroupItem",s6=W.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:i,focusable:n=!0,active:o=!1,tabStopId:r,children:s,...a}=e,l=rc(),d=r||l,h=s5(s9,i),u=h.currentTabStopId===d,c=sY(i),{onFocusableItemAdd:p,onFocusableItemRemove:m,currentTabStopId:f}=h;return W.useEffect(()=>{if(n)return p(),()=>m()},[n,p,m]),(0,V.jsx)(sq.ItemSlot,{scope:i,id:d,focusable:n,active:o,children:(0,V.jsx)(o$.span,{tabIndex:u?0:-1,"data-orientation":h.orientation,...a,ref:t,onMouseDown:oj(e.onMouseDown,e=>{n?h.onItemFocus(d):e.preventDefault()}),onFocus:oj(e.onFocus,()=>h.onItemFocus(d)),onKeyDown:oj(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void h.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,i){var n;let o=(n=e.key,"rtl"!==i?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(o))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(o)))return s8[o]}(e,h.orientation,h.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let o=c().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)o.reverse();else if("prev"===t||"next"===t){var i,n;"prev"===t&&o.reverse();let r=o.indexOf(e.currentTarget);o=h.loop?(i=o,n=r+1,i.map((e,t)=>i[(n+t)%i.length])):o.slice(r+1)}setTimeout(()=>s7(o))}}),children:"function"==typeof s?s({isCurrentTabStop:u,hasTabStop:null!=f}):s})})});s6.displayName=s9;var s8={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function s7(e,t=!1){let i=document.activeElement;for(let n of e)if(n===i||(n.focus({preventScroll:t}),document.activeElement!==i))return}var ae=Symbol("radix.slottable");function at(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===ae}var ai=new WeakMap,an=new WeakMap,ao={},ar=0,as=function(e){return e&&(e.host||as(e.parentNode))},aa=function(e,t,i,n){var o=(Array.isArray(e)?e:[e]).map(function(e){if(t.contains(e))return e;var i=as(e);return i&&t.contains(i)?i:(console.error("aria-hidden",e,"in not contained inside",t,". Doing nothing"),null)}).filter(function(e){return!!e});ao[i]||(ao[i]=new WeakMap);var r=ao[i],s=[],a=new Set,l=new Set(o),d=function(e){!e||a.has(e)||(a.add(e),d(e.parentNode))};o.forEach(d);var h=function(e){!e||l.has(e)||Array.prototype.forEach.call(e.children,function(e){if(a.has(e))h(e);else try{var t=e.getAttribute(n),o=null!==t&&"false"!==t,l=(ai.get(e)||0)+1,d=(r.get(e)||0)+1;ai.set(e,l),r.set(e,d),s.push(e),1===l&&o&&an.set(e,!0),1===d&&e.setAttribute(i,"true"),o||e.setAttribute(n,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return h(t),a.clear(),ar++,function(){s.forEach(function(e){var t=ai.get(e)-1,o=r.get(e)-1;ai.set(e,t),r.set(e,o),t||(an.has(e)||e.removeAttribute(n),an.delete(e)),o||e.removeAttribute(i)}),--ar||(ai=new WeakMap,ai=new WeakMap,an=new WeakMap,ao={})}},al=function(e,t,i){void 0===i&&(i="data-aria-hidden");var n=Array.from(Array.isArray(e)?e:[e]),o=t||("undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(n.push.apply(n,Array.from(o.querySelectorAll("[aria-live], script"))),aa(n,o,i,"aria-hidden")):function(){return null}},ad=function(){return(ad=Object.assign||function(e){for(var t,i=1,n=arguments.length;it.indexOf(n)&&(i[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,n=Object.getOwnPropertySymbols(e);ot.indexOf(n[o])&&Object.prototype.propertyIsEnumerable.call(e,n[o])&&(i[n[o]]=e[n[o]]);return i}var au=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),ac="width-before-scroll-bar";function ap(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var am="undefined"!=typeof window?W.useLayoutEffect:W.useEffect,af=new WeakMap,ag=(void 0===S&&(S={}),(void 0===E&&(E=function(e){return e}),A=[],k=!1,z={read:function(){if(k)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return A.length?A[A.length-1]:null},useMedium:function(e){var t=E(e,k);return A.push(t),function(){A=A.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(k=!0;A.length;){var t=A;A=[],t.forEach(e)}A={push:function(t){return e(t)},filter:function(){return A}}},assignMedium:function(e){k=!0;var t=[];if(A.length){var i=A;A=[],i.forEach(e),t=A}var n=function(){var i=t;t=[],i.forEach(e)},o=function(){return Promise.resolve().then(n)};o(),A={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),A}}}}).options=ad({async:!0,ssr:!1},S),z),av=function(){},aw=W.forwardRef(function(e,t){var i,n,o,r,s=W.useRef(null),a=W.useState({onScrollCapture:av,onWheelCapture:av,onTouchMoveCapture:av}),l=a[0],d=a[1],h=e.forwardProps,u=e.children,c=e.className,p=e.removeScrollBar,m=e.enabled,f=e.shards,g=e.sideCar,v=e.noRelative,w=e.noIsolation,b=e.inert,y=e.allowPinchZoom,x=e.as,_=e.gapMode,D=ah(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),C=(i=[s,t],n=function(e){return i.forEach(function(t){return ap(t,e)})},(o=(0,W.useState)(function(){return{value:null,callback:n,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=n,r=o.facade,am(function(){var e=af.get(r);if(e){var t=new Set(e),n=new Set(i),o=r.current;t.forEach(function(e){n.has(e)||ap(e,null)}),n.forEach(function(e){t.has(e)||ap(e,o)})}af.set(r,i)},[i]),r),S=ad(ad({},D),l);return W.createElement(W.Fragment,null,m&&W.createElement(g,{sideCar:ag,removeScrollBar:p,shards:f,noRelative:v,noIsolation:w,inert:b,setCallbacks:d,allowPinchZoom:!!y,lockRef:s,gapMode:_}),h?W.cloneElement(W.Children.only(u),ad(ad({},S),{ref:C})):W.createElement(void 0===x?"div":x,ad({},S,{className:c,ref:C}),u))});aw.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},aw.classNames={fullWidth:ac,zeroRight:au};var ab=function(e){var t=e.sideCar,i=ah(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw Error("Sidecar medium not found");return W.createElement(n,ad({},i))};ab.isSideCarExport=!0;var ay=function(){var e=0,t=null;return{add:function(i){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=G||("undefined"!=typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var n,o;(n=t).styleSheet?n.styleSheet.cssText=i:n.appendChild(document.createTextNode(i)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},ax=function(){var e=ay();return function(t,i){W.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&i])}},a_=function(){var e=ax();return function(t){return e(t.styles,t.dynamic),null}},aD={left:0,top:0,right:0,gap:0},aC=function(e){return parseInt(e||"",10)||0},aS=function(e){var t=window.getComputedStyle(document.body),i=t["padding"===e?"paddingLeft":"marginLeft"],n=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[aC(i),aC(n),aC(o)]},aE=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return aD;var t=aS(e),i=document.documentElement.clientWidth,n=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,n-i+t[2]-t[0])}},aA=a_(),ak="data-scroll-locked",az=function(e,t,i,n){var o=e.left,r=e.top,s=e.right,a=e.gap;return void 0===i&&(i="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(n,";\n padding-right: ").concat(a,"px ").concat(n,";\n }\n body[").concat(ak,"] {\n overflow: hidden ").concat(n,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(n,";"),"margin"===i&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(r,"px;\n padding-right: ").concat(s,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(a,"px ").concat(n,";\n "),"padding"===i&&"padding-right: ".concat(a,"px ").concat(n,";")].filter(Boolean).join(""),"\n }\n \n .").concat(au," {\n right: ").concat(a,"px ").concat(n,";\n }\n \n .").concat(ac," {\n margin-right: ").concat(a,"px ").concat(n,";\n }\n \n .").concat(au," .").concat(au," {\n right: 0 ").concat(n,";\n }\n \n .").concat(ac," .").concat(ac," {\n margin-right: 0 ").concat(n,";\n }\n \n body[").concat(ak,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(a,"px;\n }\n")},aP=function(){var e=parseInt(document.body.getAttribute(ak)||"0",10);return isFinite(e)?e:0},aR=function(){W.useEffect(function(){return document.body.setAttribute(ak,(aP()+1).toString()),function(){var e=aP()-1;e<=0?document.body.removeAttribute(ak):document.body.setAttribute(ak,e.toString())}},[])},aN=function(e){var t=e.noRelative,i=e.noImportant,n=e.gapMode,o=void 0===n?"margin":n;aR();var r=W.useMemo(function(){return aE(o)},[o]);return W.createElement(aA,{styles:az(r,!t,o,i?"":"!important")})},aO=!1;if("undefined"!=typeof window)try{var aI=Object.defineProperty({},"passive",{get:function(){return aO=!0,!0}});window.addEventListener("test",aI,aI),window.removeEventListener("test",aI,aI)}catch(e){aO=!1}var aM=!!aO&&{passive:!1},aL=function(e,t){if(!(e instanceof Element))return!1;var i=window.getComputedStyle(e);return"hidden"!==i[t]&&(i.overflowY!==i.overflowX||"TEXTAREA"===e.tagName||"visible"!==i[t])},aT=function(e,t){var i=t.ownerDocument,n=t;do{if("undefined"!=typeof ShadowRoot&&n instanceof ShadowRoot&&(n=n.host),aj(e,n)){var o=aG(e,n);if(o[1]>o[2])return!0}n=n.parentNode}while(n&&n!==i.body)return!1},aj=function(e,t){return"v"===e?aL(t,"overflowY"):aL(t,"overflowX")},aG=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},aV=function(e,t,i,n,o){var r,s=(r=window.getComputedStyle(t).direction,"h"===e&&"rtl"===r?-1:1),a=s*n,l=i.target,d=t.contains(l),h=!1,u=a>0,c=0,p=0;do{if(!l)break;var m=aG(e,l),f=m[0],g=m[1]-m[2]-s*f;(f||g)&&aj(e,l)&&(c+=g,p+=f);var v=l.parentNode;l=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!d&&l!==document.body||d&&(t.contains(l)||t===l))return u&&(o&&1>Math.abs(c)||!o&&a>c)?h=!0:!u&&(o&&1>Math.abs(p)||!o&&-a>p)&&(h=!0),h},aW=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},aH=function(e){return[e.deltaX,e.deltaY]},aF=function(e){return e&&"current"in e?e.current:e},aB=0,a$=[];let aU=(P=function(e){var t=W.useRef([]),i=W.useRef([0,0]),n=W.useRef(),o=W.useState(aB++)[0],r=W.useState(a_)[0],s=W.useRef(e);W.useEffect(function(){s.current=e},[e]),W.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,i){if(i||2==arguments.length)for(var n,o=0,r=t.length;oMath.abs(d)?"h":"v";if("touches"in e&&"h"===u&&"range"===h.type)return!1;var c=window.getSelection(),p=c&&c.anchorNode;if(p&&(p===h||p.contains(h)))return!1;var m=aT(u,h);if(!m)return!0;if(m?o=u:(o="v"===u?"h":"v",m=aT(u,h)),!m)return!1;if(!n.current&&"changedTouches"in e&&(l||d)&&(n.current=o),!o)return!0;var f=n.current||o;return aV(f,t,e,"h"===f?l:d,!0)},[]),l=W.useCallback(function(e){if(a$.length&&a$[a$.length-1]===r){var i="deltaY"in e?aH(e):aW(e),n=t.current.filter(function(t){var n;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(n=t.delta,n[0]===i[0]&&n[1]===i[1])})[0];if(n&&n.should){e.cancelable&&e.preventDefault();return}if(!n){var o=(s.current.shards||[]).map(aF).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?a(e,o[0]):!s.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),d=W.useCallback(function(e,i,n,o){var r={name:e,delta:i,target:n,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(n)};t.current.push(r),setTimeout(function(){t.current=t.current.filter(function(e){return e!==r})},1)},[]),h=W.useCallback(function(e){i.current=aW(e),n.current=void 0},[]),u=W.useCallback(function(t){d(t.type,aH(t),t.target,a(t,e.lockRef.current))},[]),c=W.useCallback(function(t){d(t.type,aW(t),t.target,a(t,e.lockRef.current))},[]);W.useEffect(function(){return a$.push(r),e.setCallbacks({onScrollCapture:u,onWheelCapture:u,onTouchMoveCapture:c}),document.addEventListener("wheel",l,aM),document.addEventListener("touchmove",l,aM),document.addEventListener("touchstart",h,aM),function(){a$=a$.filter(function(e){return e!==r}),document.removeEventListener("wheel",l,aM),document.removeEventListener("touchmove",l,aM),document.removeEventListener("touchstart",h,aM)}},[]);var p=e.removeScrollBar,m=e.inert;return W.createElement(W.Fragment,null,m?W.createElement(r,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,p?W.createElement(aN,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},ag.useMedium(P),ab);var aK=W.forwardRef(function(e,t){return W.createElement(aw,ad({},e,{ref:t,sideCar:aU}))});aK.classNames=aw.classNames;var aJ=["Enter"," "],aZ=["ArrowUp","PageDown","End"],aX=["ArrowDown","PageUp","Home",...aZ],aq={ltr:[...aJ,"ArrowRight"],rtl:[...aJ,"ArrowLeft"]},aY={ltr:["ArrowLeft"],rtl:["ArrowRight"]},aQ="Menu",[a0,a1,a2]=oX(aQ),[a5,a3]=oG(aQ,[a2,sz,s1]),a4=sz(),a9=s1(),[a6,a8]=a5(aQ),[a7,le]=a5(aQ),lt=e=>{let{__scopeMenu:t,open:i=!1,children:n,dir:o,onOpenChange:r,modal:s=!0}=e,a=a4(t),[l,d]=W.useState(null),h=W.useRef(!1),u=o2(r),c=o1(o);return W.useEffect(()=>{let e=()=>{h.current=!0,document.addEventListener("pointerdown",t,{capture:!0,once:!0}),document.addEventListener("pointermove",t,{capture:!0,once:!0})},t=()=>h.current=!1;return document.addEventListener("keydown",e,{capture:!0}),()=>{document.removeEventListener("keydown",e,{capture:!0}),document.removeEventListener("pointerdown",t,{capture:!0}),document.removeEventListener("pointermove",t,{capture:!0})}},[]),(0,V.jsx)(sN,{...a,children:(0,V.jsx)(a6,{scope:t,open:i,onOpenChange:u,content:l,onContentChange:d,children:(0,V.jsx)(a7,{scope:t,onClose:W.useCallback(()=>u(!1),[u]),isUsingKeyboardRef:h,dir:c,modal:s,children:n})})})};lt.displayName=aQ;var li=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e,o=a4(i);return(0,V.jsx)(sI,{...o,...n,ref:t})});li.displayName="MenuAnchor";var ln="MenuPortal",[lo,lr]=a5(ln,{forceMount:void 0}),ls=e=>{let{__scopeMenu:t,forceMount:i,children:n,container:o}=e,r=a8(ln,t);return(0,V.jsx)(lo,{scope:t,forceMount:i,children:(0,V.jsx)(sU,{present:i||r.open,children:(0,V.jsx)(s$,{asChild:!0,container:o,children:n})})})};ls.displayName=ln;var la="MenuContent",[ll,ld]=a5(la),lh=W.forwardRef((e,t)=>{let i=lr(la,e.__scopeMenu),{forceMount:n=i.forceMount,...o}=e,r=a8(la,e.__scopeMenu),s=le(la,e.__scopeMenu);return(0,V.jsx)(a0.Provider,{scope:e.__scopeMenu,children:(0,V.jsx)(sU,{present:n||r.open,children:(0,V.jsx)(a0.Slot,{scope:e.__scopeMenu,children:s.modal?(0,V.jsx)(lu,{...o,ref:t}):(0,V.jsx)(lc,{...o,ref:t})})})})}),lu=W.forwardRef((e,t)=>{let i=a8(la,e.__scopeMenu),n=W.useRef(null),o=ok(t,n);return W.useEffect(()=>{let e=n.current;if(e)return al(e)},[]),(0,V.jsx)(lm,{...e,ref:o,trapFocus:i.open,disableOutsidePointerEvents:i.open,disableOutsideScroll:!0,onFocusOutside:oj(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>i.onOpenChange(!1)})}),lc=W.forwardRef((e,t)=>{let i=a8(la,e.__scopeMenu);return(0,V.jsx)(lm,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>i.onOpenChange(!1)})}),lp=((v=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName="MenuContent.ScrollLock.SlotClone",a=v,(l=W.forwardRef((e,t)=>{let{children:i,...n}=e,o=W.Children.toArray(i),r=o.find(at);if(r){let e=r.props.children,i=o.map(t=>t!==r?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(a,{...n,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(a,{...n,ref:t,children:i})})).displayName="MenuContent.ScrollLock.Slot",l),lm=W.forwardRef((e,t)=>{let{__scopeMenu:i,loop:n=!1,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:s,disableOutsidePointerEvents:a,onEntryFocus:l,onEscapeKeyDown:d,onPointerDownOutside:h,onFocusOutside:u,onInteractOutside:c,onDismiss:p,disableOutsideScroll:m,...f}=e,g=a8(la,i),v=le(la,i),w=a4(i),b=a9(i),y=a1(i),[x,_]=W.useState(null),D=W.useRef(null),C=ok(t,D,g.onContentChange),S=W.useRef(0),E=W.useRef(""),A=W.useRef(0),k=W.useRef(null),z=W.useRef("right"),P=W.useRef(0),R=m?aK:W.Fragment;W.useEffect(()=>()=>window.clearTimeout(S.current),[]),o7();let N=W.useCallback(e=>{var t,i;return z.current===k.current?.side&&(t=e,!!(i=k.current?.area)&&function(e,t){let{x:i,y:n}=e,o=!1;for(let e=0,r=t.length-1;en!=u>n&&i<(h-l)*(n-d)/(u-d)+l&&(o=!o)}return o}({x:t.clientX,y:t.clientY},i))},[]);return(0,V.jsx)(ll,{scope:i,searchRef:E,onItemEnter:W.useCallback(e=>{N(e)&&e.preventDefault()},[N]),onItemLeave:W.useCallback(e=>{N(e)||(D.current?.focus(),_(null))},[N]),onTriggerLeave:W.useCallback(e=>{N(e)&&e.preventDefault()},[N]),pointerGraceTimerRef:A,onPointerGraceIntentChange:W.useCallback(e=>{k.current=e},[]),children:(0,V.jsx)(R,{...m?{as:lp,allowPinchZoom:!0}:void 0,children:(0,V.jsx)(ro,{asChild:!0,trapped:o,onMountAutoFocus:oj(r,e=>{e.preventDefault(),D.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:s,children:(0,V.jsx)(o4,{asChild:!0,disableOutsidePointerEvents:a,onEscapeKeyDown:d,onPointerDownOutside:h,onFocusOutside:u,onInteractOutside:c,onDismiss:p,children:(0,V.jsx)(s3,{asChild:!0,...b,dir:v.dir,orientation:"vertical",loop:n,currentTabStopId:x,onCurrentTabStopIdChange:_,onEntryFocus:oj(l,e=>{v.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,V.jsx)(sj,{role:"menu","aria-orientation":"vertical","data-state":lV(g.open),"data-radix-menu-content":"",dir:v.dir,...w,...f,ref:C,style:{outline:"none",...f.style},onKeyDown:oj(f.onKeyDown,e=>{let t=e.target.closest("[data-radix-menu-content]")===e.currentTarget,i=e.ctrlKey||e.altKey||e.metaKey,n=1===e.key.length;if(t){var o;let t,r,s,a,l,d;"Tab"===e.key&&e.preventDefault(),!i&&n&&(o=e.key,t=E.current+o,r=y().filter(e=>!e.disabled),s=document.activeElement,a=r.find(e=>e.ref.current===s)?.textValue,l=function(e,t,i){var n;let o=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,r=i?e.indexOf(i):-1,s=(n=Math.max(r,0),e.map((t,i)=>e[(n+i)%e.length]));1===o.length&&(s=s.filter(e=>e!==i));let a=s.find(e=>e.toLowerCase().startsWith(o.toLowerCase()));return a!==i?a:void 0}(r.map(e=>e.textValue),t,a),d=r.find(e=>e.textValue===l)?.ref.current,function e(t){E.current=t,window.clearTimeout(S.current),""!==t&&(S.current=window.setTimeout(()=>e(""),1e3))}(t),d&&setTimeout(()=>d.focus()))}let r=D.current;if(e.target!==r||!aX.includes(e.key))return;e.preventDefault();let s=y().filter(e=>!e.disabled).map(e=>e.ref.current);aZ.includes(e.key)&&s.reverse(),function(e){let t=document.activeElement;for(let i of e)if(i===t||(i.focus(),document.activeElement!==t))return}(s)}),onBlur:oj(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(S.current),E.current="")}),onPointerMove:oj(e.onPointerMove,lF(e=>{let t=e.target,i=P.current!==e.clientX;e.currentTarget.contains(t)&&i&&(z.current=e.clientX>P.current?"right":"left",P.current=e.clientX)}))})})})})})})});lh.displayName=la;var lf=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e;return(0,V.jsx)(o$.div,{role:"group",...n,ref:t})});lf.displayName="MenuGroup";var lg=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e;return(0,V.jsx)(o$.div,{...n,ref:t})});lg.displayName="MenuLabel";var lv="MenuItem",lw="menu.itemSelect",lb=W.forwardRef((e,t)=>{let{disabled:i=!1,onSelect:n,...o}=e,r=W.useRef(null),s=le(lv,e.__scopeMenu),a=ld(lv,e.__scopeMenu),l=ok(t,r),d=W.useRef(!1);return(0,V.jsx)(ly,{...o,ref:l,disabled:i,onClick:oj(e.onClick,()=>{let e=r.current;if(!i&&e){let t=new CustomEvent(lw,{bubbles:!0,cancelable:!0});e.addEventListener(lw,e=>n?.(e),{once:!0}),oU(e,t),t.defaultPrevented?d.current=!1:s.onClose()}}),onPointerDown:t=>{e.onPointerDown?.(t),d.current=!0},onPointerUp:oj(e.onPointerUp,e=>{d.current||e.currentTarget?.click()}),onKeyDown:oj(e.onKeyDown,e=>{let t=""!==a.searchRef.current;i||t&&" "===e.key||aJ.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});lb.displayName=lv;var ly=W.forwardRef((e,t)=>{let{__scopeMenu:i,disabled:n=!1,textValue:o,...r}=e,s=ld(lv,i),a=a9(i),l=W.useRef(null),d=ok(t,l),[h,u]=W.useState(!1),[c,p]=W.useState("");return W.useEffect(()=>{let e=l.current;e&&p((e.textContent??"").trim())},[r.children]),(0,V.jsx)(a0.ItemSlot,{scope:i,disabled:n,textValue:o??c,children:(0,V.jsx)(s6,{asChild:!0,...a,focusable:!n,children:(0,V.jsx)(o$.div,{role:"menuitem","data-highlighted":h?"":void 0,"aria-disabled":n||void 0,"data-disabled":n?"":void 0,...r,ref:d,onPointerMove:oj(e.onPointerMove,lF(e=>{n?s.onItemLeave(e):(s.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:oj(e.onPointerLeave,lF(e=>s.onItemLeave(e))),onFocus:oj(e.onFocus,()=>u(!0)),onBlur:oj(e.onBlur,()=>u(!1))})})})}),lx=W.forwardRef((e,t)=>{let{checked:i=!1,onCheckedChange:n,...o}=e;return(0,V.jsx)(lz,{scope:e.__scopeMenu,checked:i,children:(0,V.jsx)(lb,{role:"menuitemcheckbox","aria-checked":lW(i)?"mixed":i,...o,ref:t,"data-state":lH(i),onSelect:oj(o.onSelect,()=>n?.(!!lW(i)||!i),{checkForDefaultPrevented:!1})})})});lx.displayName="MenuCheckboxItem";var l_="MenuRadioGroup",[lD,lC]=a5(l_,{value:void 0,onValueChange:()=>{}}),lS=W.forwardRef((e,t)=>{let{value:i,onValueChange:n,...o}=e,r=o2(n);return(0,V.jsx)(lD,{scope:e.__scopeMenu,value:i,onValueChange:r,children:(0,V.jsx)(lf,{...o,ref:t})})});lS.displayName=l_;var lE="MenuRadioItem",lA=W.forwardRef((e,t)=>{let{value:i,...n}=e,o=lC(lE,e.__scopeMenu),r=i===o.value;return(0,V.jsx)(lz,{scope:e.__scopeMenu,checked:r,children:(0,V.jsx)(lb,{role:"menuitemradio","aria-checked":r,...n,ref:t,"data-state":lH(r),onSelect:oj(n.onSelect,()=>o.onValueChange?.(i),{checkForDefaultPrevented:!1})})})});lA.displayName=lE;var lk="MenuItemIndicator",[lz,lP]=a5(lk,{checked:!1}),lR=W.forwardRef((e,t)=>{let{__scopeMenu:i,forceMount:n,...o}=e,r=lP(lk,i);return(0,V.jsx)(sU,{present:n||lW(r.checked)||!0===r.checked,children:(0,V.jsx)(o$.span,{...o,ref:t,"data-state":lH(r.checked)})})});lR.displayName=lk;var lN=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e;return(0,V.jsx)(o$.div,{role:"separator","aria-orientation":"horizontal",...n,ref:t})});lN.displayName="MenuSeparator";var lO=W.forwardRef((e,t)=>{let{__scopeMenu:i,...n}=e,o=a4(i);return(0,V.jsx)(sW,{...o,...n,ref:t})});lO.displayName="MenuArrow";var[lI,lM]=a5("MenuSub"),lL="MenuSubTrigger",lT=W.forwardRef((e,t)=>{let i=a8(lL,e.__scopeMenu),n=le(lL,e.__scopeMenu),o=lM(lL,e.__scopeMenu),r=ld(lL,e.__scopeMenu),s=W.useRef(null),{pointerGraceTimerRef:a,onPointerGraceIntentChange:l}=r,d={__scopeMenu:e.__scopeMenu},h=W.useCallback(()=>{s.current&&window.clearTimeout(s.current),s.current=null},[]);return W.useEffect(()=>h,[h]),W.useEffect(()=>{let e=a.current;return()=>{window.clearTimeout(e),l(null)}},[a,l]),(0,V.jsx)(li,{asChild:!0,...d,children:(0,V.jsx)(ly,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":i.open,"aria-controls":o.contentId,"data-state":lV(i.open),...e,ref:oA(t,o.onTriggerChange),onClick:t=>{e.onClick?.(t),e.disabled||t.defaultPrevented||(t.currentTarget.focus(),i.open||i.onOpenChange(!0))},onPointerMove:oj(e.onPointerMove,lF(t=>{r.onItemEnter(t),!t.defaultPrevented&&(e.disabled||i.open||s.current||(r.onPointerGraceIntentChange(null),s.current=window.setTimeout(()=>{i.onOpenChange(!0),h()},100)))})),onPointerLeave:oj(e.onPointerLeave,lF(e=>{h();let t=i.content?.getBoundingClientRect();if(t){let n=i.content?.dataset.side,o="right"===n,s=t[o?"left":"right"],l=t[o?"right":"left"];r.onPointerGraceIntentChange({area:[{x:e.clientX+(o?-5:5),y:e.clientY},{x:s,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:s,y:t.bottom}],side:n}),window.clearTimeout(a.current),a.current=window.setTimeout(()=>r.onPointerGraceIntentChange(null),300)}else{if(r.onTriggerLeave(e),e.defaultPrevented)return;r.onPointerGraceIntentChange(null)}})),onKeyDown:oj(e.onKeyDown,t=>{let o=""!==r.searchRef.current;e.disabled||o&&" "===t.key||aq[n.dir].includes(t.key)&&(i.onOpenChange(!0),i.content?.focus(),t.preventDefault())})})})});lT.displayName=lL;var lj="MenuSubContent",lG=W.forwardRef((e,t)=>{let i=lr(la,e.__scopeMenu),{forceMount:n=i.forceMount,...o}=e,r=a8(la,e.__scopeMenu),s=le(la,e.__scopeMenu),a=lM(lj,e.__scopeMenu),l=W.useRef(null),d=ok(t,l);return(0,V.jsx)(a0.Provider,{scope:e.__scopeMenu,children:(0,V.jsx)(sU,{present:n||r.open,children:(0,V.jsx)(a0.Slot,{scope:e.__scopeMenu,children:(0,V.jsx)(lm,{id:a.contentId,"aria-labelledby":a.triggerId,...o,ref:d,align:"start",side:"rtl"===s.dir?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{s.isUsingKeyboardRef.current&&l.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:oj(e.onFocusOutside,e=>{e.target!==a.trigger&&r.onOpenChange(!1)}),onEscapeKeyDown:oj(e.onEscapeKeyDown,e=>{s.onClose(),e.preventDefault()}),onKeyDown:oj(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),i=aY[s.dir].includes(e.key);t&&i&&(r.onOpenChange(!1),a.trigger?.focus(),e.preventDefault())})})})})})});function lV(e){return e?"open":"closed"}function lW(e){return"indeterminate"===e}function lH(e){return lW(e)?"indeterminate":e?"checked":"unchecked"}function lF(e){return t=>"mouse"===t.pointerType?e(t):void 0}lG.displayName=lj;var lB="DropdownMenu",[l$,lU]=oG(lB,[a3]),lK=a3(),[lJ,lZ]=l$(lB),lX=e=>{let{__scopeDropdownMenu:t,children:i,dir:n,open:o,defaultOpen:r,onOpenChange:s,modal:a=!0}=e,l=lK(t),d=W.useRef(null),[h,u]=oH({prop:o,defaultProp:r??!1,onChange:s,caller:lB});return(0,V.jsx)(lJ,{scope:t,triggerId:rc(),triggerRef:d,contentId:rc(),open:h,onOpenChange:u,onOpenToggle:W.useCallback(()=>u(e=>!e),[u]),modal:a,children:(0,V.jsx)(lt,{...l,open:h,onOpenChange:u,dir:n,modal:a,children:i})})};lX.displayName=lB;var lq="DropdownMenuTrigger",lY=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,disabled:n=!1,...o}=e,r=lZ(lq,i),s=lK(i);return(0,V.jsx)(li,{asChild:!0,...s,children:(0,V.jsx)(o$.button,{type:"button",id:r.triggerId,"aria-haspopup":"menu","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":r.open?"open":"closed","data-disabled":n?"":void 0,disabled:n,...o,ref:oA(t,r.triggerRef),onPointerDown:oj(e.onPointerDown,e=>{!n&&0===e.button&&!1===e.ctrlKey&&(r.onOpenToggle(),r.open||e.preventDefault())}),onKeyDown:oj(e.onKeyDown,e=>{!n&&(["Enter"," "].includes(e.key)&&r.onOpenToggle(),"ArrowDown"===e.key&&r.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(e.key)&&e.preventDefault())})})})});lY.displayName=lq;var lQ=e=>{let{__scopeDropdownMenu:t,...i}=e,n=lK(t);return(0,V.jsx)(ls,{...n,...i})};lQ.displayName="DropdownMenuPortal";var l0="DropdownMenuContent",l1=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lZ(l0,i),r=lK(i),s=W.useRef(!1);return(0,V.jsx)(lh,{id:o.contentId,"aria-labelledby":o.triggerId,...r,...n,ref:t,onCloseAutoFocus:oj(e.onCloseAutoFocus,e=>{s.current||o.triggerRef.current?.focus(),s.current=!1,e.preventDefault()}),onInteractOutside:oj(e.onInteractOutside,e=>{let t=e.detail.originalEvent,i=0===t.button&&!0===t.ctrlKey,n=2===t.button||i;(!o.modal||n)&&(s.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});l1.displayName=l0,W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lf,{...o,...n,ref:t})}).displayName="DropdownMenuGroup";var l2=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lg,{...o,...n,ref:t})});l2.displayName="DropdownMenuLabel";var l5=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lb,{...o,...n,ref:t})});l5.displayName="DropdownMenuItem";var l3=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lx,{...o,...n,ref:t})});l3.displayName="DropdownMenuCheckboxItem",W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lS,{...o,...n,ref:t})}).displayName="DropdownMenuRadioGroup";var l4=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lA,{...o,...n,ref:t})});l4.displayName="DropdownMenuRadioItem";var l9=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lR,{...o,...n,ref:t})});l9.displayName="DropdownMenuItemIndicator";var l6=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lN,{...o,...n,ref:t})});l6.displayName="DropdownMenuSeparator",W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lO,{...o,...n,ref:t})}).displayName="DropdownMenuArrow";var l8=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lT,{...o,...n,ref:t})});l8.displayName="DropdownMenuSubTrigger";var l7=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:i,...n}=e,o=lK(i);return(0,V.jsx)(lG,{...o,...n,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});l7.displayName="DropdownMenuSubContent";let de=nJ("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);W.forwardRef(({className:e,inset:t,children:i,...n},o)=>(0,V.jsxs)(l8,{ref:o,className:tm("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...n,children:[i,(0,V.jsx)(n2,{className:"ml-auto"})]})).displayName=l8.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(l7,{ref:i,className:tm("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",e),...t})).displayName=l7.displayName;let dt=W.forwardRef(({className:e,sideOffset:t=4,...i},n)=>(0,V.jsx)(lQ,{children:(0,V.jsx)(l1,{ref:n,sideOffset:t,className:tm("z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]",e),...i})}));dt.displayName=l1.displayName;let di=W.forwardRef(({className:e,inset:t,...i},n)=>(0,V.jsx)(l5,{ref:n,className:tm("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",t&&"pl-8",e),...i}));di.displayName=l5.displayName,W.forwardRef(({className:e,children:t,checked:i,...n},o)=>(0,V.jsxs)(l3,{ref:o,className:tm("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:i,...n,children:[(0,V.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,V.jsx)(l9,{children:(0,V.jsx)(de,{className:"h-4 w-4"})})}),t]})).displayName=l3.displayName,W.forwardRef(({className:e,children:t,...i},n)=>(0,V.jsxs)(l4,{ref:n,className:tm("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...i,children:[(0,V.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,V.jsx)(l9,{children:(0,V.jsx)(nZ,{className:"h-2 w-2 fill-current"})})}),t]})).displayName=l4.displayName,W.forwardRef(({className:e,inset:t,...i},n)=>(0,V.jsx)(l2,{ref:n,className:tm("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...i})).displayName=l2.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(l6,{ref:i,className:tm("-mx-1 my-1 h-px bg-muted",e),...t})).displayName=l6.displayName;var dn=Symbol("radix.slottable");function dr(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===dn}var ds="Popover",[da,dl]=oG(ds,[sz]),dd=sz(),[dh,du]=da(ds),dc=e=>{let{__scopePopover:t,children:i,open:n,defaultOpen:o,onOpenChange:r,modal:s=!1}=e,a=dd(t),l=W.useRef(null),[d,h]=W.useState(!1),[u,c]=oH({prop:n,defaultProp:o??!1,onChange:r,caller:ds});return(0,V.jsx)(sN,{...a,children:(0,V.jsx)(dh,{scope:t,contentId:rc(),triggerRef:l,open:u,onOpenChange:c,onOpenToggle:W.useCallback(()=>c(e=>!e),[c]),hasCustomAnchor:d,onCustomAnchorAdd:W.useCallback(()=>h(!0),[]),onCustomAnchorRemove:W.useCallback(()=>h(!1),[]),modal:s,children:i})})};dc.displayName=ds;var dp="PopoverAnchor";W.forwardRef((e,t)=>{let{__scopePopover:i,...n}=e,o=du(dp,i),r=dd(i),{onCustomAnchorAdd:s,onCustomAnchorRemove:a}=o;return W.useEffect(()=>(s(),()=>a()),[s,a]),(0,V.jsx)(sI,{...r,...n,ref:t})}).displayName=dp;var dm="PopoverTrigger",df=W.forwardRef((e,t)=>{let{__scopePopover:i,...n}=e,o=du(dm,i),r=dd(i),s=ok(t,o.triggerRef),a=(0,V.jsx)(o$.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":dA(o.open),...n,ref:s,onClick:oj(e.onClick,o.onOpenToggle)});return o.hasCustomAnchor?a:(0,V.jsx)(sI,{asChild:!0,...r,children:a})});df.displayName=dm;var dg="PopoverPortal",[dv,dw]=da(dg,{forceMount:void 0}),db=e=>{let{__scopePopover:t,forceMount:i,children:n,container:o}=e,r=du(dg,t);return(0,V.jsx)(dv,{scope:t,forceMount:i,children:(0,V.jsx)(sU,{present:i||r.open,children:(0,V.jsx)(s$,{asChild:!0,container:o,children:n})})})};db.displayName=dg;var dy="PopoverContent",dx=W.forwardRef((e,t)=>{let i=dw(dy,e.__scopePopover),{forceMount:n=i.forceMount,...o}=e,r=du(dy,e.__scopePopover);return(0,V.jsx)(sU,{present:n||r.open,children:r.modal?(0,V.jsx)(dD,{...o,ref:t}):(0,V.jsx)(dC,{...o,ref:t})})});dx.displayName=dy;var d_=((w=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName="PopoverContent.RemoveScroll.SlotClone",d=w,(h=W.forwardRef((e,t)=>{let{children:i,...n}=e,o=W.Children.toArray(i),r=o.find(dr);if(r){let e=r.props.children,i=o.map(t=>t!==r?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(d,{...n,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(d,{...n,ref:t,children:i})})).displayName="PopoverContent.RemoveScroll.Slot",h),dD=W.forwardRef((e,t)=>{let i=du(dy,e.__scopePopover),n=W.useRef(null),o=ok(t,n),r=W.useRef(!1);return W.useEffect(()=>{let e=n.current;if(e)return al(e)},[]),(0,V.jsx)(aK,{as:d_,allowPinchZoom:!0,children:(0,V.jsx)(dS,{...e,ref:o,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:oj(e.onCloseAutoFocus,e=>{e.preventDefault(),r.current||i.triggerRef.current?.focus()}),onPointerDownOutside:oj(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,i=0===t.button&&!0===t.ctrlKey;r.current=2===t.button||i},{checkForDefaultPrevented:!1}),onFocusOutside:oj(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),dC=W.forwardRef((e,t)=>{let i=du(dy,e.__scopePopover),n=W.useRef(!1),o=W.useRef(!1);return(0,V.jsx)(dS,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||i.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let r=t.target;i.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),dS=W.forwardRef((e,t)=>{let{__scopePopover:i,trapFocus:n,onOpenAutoFocus:o,onCloseAutoFocus:r,disableOutsidePointerEvents:s,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:d,onInteractOutside:h,...u}=e,c=du(dy,i),p=dd(i);return o7(),(0,V.jsx)(ro,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:o,onUnmountAutoFocus:r,children:(0,V.jsx)(o4,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:h,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:d,onDismiss:()=>c.onOpenChange(!1),children:(0,V.jsx)(sj,{"data-state":dA(c.open),role:"dialog",id:c.contentId,...p,...u,ref:t,style:{...u.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),dE="PopoverClose";function dA(e){return e?"open":"closed"}W.forwardRef((e,t)=>{let{__scopePopover:i,...n}=e,o=du(dE,i);return(0,V.jsx)(o$.button,{type:"button",...n,ref:t,onClick:oj(e.onClick,()=>o.onOpenChange(!1))})}).displayName=dE,W.forwardRef((e,t)=>{let{__scopePopover:i,...n}=e,o=dd(i);return(0,V.jsx)(sW,{...o,...n,ref:t})}).displayName="PopoverArrow";let dk=W.forwardRef(({className:e,align:t="center",sideOffset:i=4,...n},o)=>(0,V.jsx)(db,{children:(0,V.jsx)(dx,{ref:o,align:t,sideOffset:i,className:tm("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]",e),...n})}));dk.displayName=dx.displayName;var dz=/[\\\/_+.#"@\[\(\{&]/,dP=/[\\\/_+.#"@\[\(\{&]/g,dR=/[\s-]/,dN=/[\s-]/g;function dO(e){return e.toLowerCase().replace(dN," ")}var dI=Symbol("radix.slottable");function dM(e){return W.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===dI}var dL="Dialog",[dT,dj]=oG(dL),[dG,dV]=dT(dL),dW=e=>{let{__scopeDialog:t,children:i,open:n,defaultOpen:o,onOpenChange:r,modal:s=!0}=e,a=W.useRef(null),l=W.useRef(null),[d,h]=oH({prop:n,defaultProp:o??!1,onChange:r,caller:dL});return(0,V.jsx)(dG,{scope:t,triggerRef:a,contentRef:l,contentId:rc(),titleId:rc(),descriptionId:rc(),open:d,onOpenChange:h,onOpenToggle:W.useCallback(()=>h(e=>!e),[h]),modal:s,children:i})};dW.displayName=dL;var dH="DialogTrigger";W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(dH,i),r=ok(t,o.triggerRef);return(0,V.jsx)(o$.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":d8(o.open),...n,ref:r,onClick:oj(e.onClick,o.onOpenToggle)})}).displayName=dH;var dF="DialogPortal",[dB,d$]=dT(dF,{forceMount:void 0}),dU=e=>{let{__scopeDialog:t,forceMount:i,children:n,container:o}=e,r=dV(dF,t);return(0,V.jsx)(dB,{scope:t,forceMount:i,children:W.Children.map(n,e=>(0,V.jsx)(sU,{present:i||r.open,children:(0,V.jsx)(s$,{asChild:!0,container:o,children:e})}))})};dU.displayName=dF;var dK="DialogOverlay",dJ=W.forwardRef((e,t)=>{let i=d$(dK,e.__scopeDialog),{forceMount:n=i.forceMount,...o}=e,r=dV(dK,e.__scopeDialog);return r.modal?(0,V.jsx)(sU,{present:n||r.open,children:(0,V.jsx)(dX,{...o,ref:t})}):null});dJ.displayName=dK;var dZ=((b=W.forwardRef((e,t)=>{let{children:i,...n}=e;if(W.isValidElement(i)){var o;let e,r,s=(o=i,(r=(e=Object.getOwnPropertyDescriptor(o.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.ref:(r=(e=Object.getOwnPropertyDescriptor(o,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?o.props.ref:o.props.ref||o.ref),a=function(e,t){let i={...t};for(let n in t){let o=e[n],r=t[n];/^on[A-Z]/.test(n)?o&&r?i[n]=(...e)=>{let t=r(...e);return o(...e),t}:o&&(i[n]=o):"style"===n?i[n]={...o,...r}:"className"===n&&(i[n]=[o,r].filter(Boolean).join(" "))}return{...e,...i}}(n,i.props);return i.type!==W.Fragment&&(a.ref=t?oA(t,s):s),W.cloneElement(i,a)}return W.Children.count(i)>1?W.Children.only(null):null})).displayName="DialogOverlay.RemoveScroll.SlotClone",u=b,(c=W.forwardRef((e,t)=>{let{children:i,...n}=e,o=W.Children.toArray(i),r=o.find(dM);if(r){let e=r.props.children,i=o.map(t=>t!==r?t:W.Children.count(e)>1?W.Children.only(null):W.isValidElement(e)?e.props.children:null);return(0,V.jsx)(u,{...n,ref:t,children:W.isValidElement(e)?W.cloneElement(e,void 0,i):null})}return(0,V.jsx)(u,{...n,ref:t,children:i})})).displayName="DialogOverlay.RemoveScroll.Slot",c),dX=W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(dK,i);return(0,V.jsx)(aK,{as:dZ,allowPinchZoom:!0,shards:[o.contentRef],children:(0,V.jsx)(o$.div,{"data-state":d8(o.open),...n,ref:t,style:{pointerEvents:"auto",...n.style}})})}),dq="DialogContent",dY=W.forwardRef((e,t)=>{let i=d$(dq,e.__scopeDialog),{forceMount:n=i.forceMount,...o}=e,r=dV(dq,e.__scopeDialog);return(0,V.jsx)(sU,{present:n||r.open,children:r.modal?(0,V.jsx)(dQ,{...o,ref:t}):(0,V.jsx)(d0,{...o,ref:t})})});dY.displayName=dq;var dQ=W.forwardRef((e,t)=>{let i=dV(dq,e.__scopeDialog),n=W.useRef(null),o=ok(t,i.contentRef,n);return W.useEffect(()=>{let e=n.current;if(e)return al(e)},[]),(0,V.jsx)(d1,{...e,ref:o,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:oj(e.onCloseAutoFocus,e=>{e.preventDefault(),i.triggerRef.current?.focus()}),onPointerDownOutside:oj(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,i=0===t.button&&!0===t.ctrlKey;(2===t.button||i)&&e.preventDefault()}),onFocusOutside:oj(e.onFocusOutside,e=>e.preventDefault())})}),d0=W.forwardRef((e,t)=>{let i=dV(dq,e.__scopeDialog),n=W.useRef(!1),o=W.useRef(!1);return(0,V.jsx)(d1,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(n.current||i.triggerRef.current?.focus(),t.preventDefault()),n.current=!1,o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(n.current=!0,"pointerdown"===t.detail.originalEvent.type&&(o.current=!0));let r=t.target;i.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&o.current&&t.preventDefault()}})}),d1=W.forwardRef((e,t)=>{let{__scopeDialog:i,trapFocus:n,onOpenAutoFocus:o,onCloseAutoFocus:r,...s}=e,a=dV(dq,i),l=W.useRef(null),d=ok(t,l);return o7(),(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(ro,{asChild:!0,loop:!0,trapped:n,onMountAutoFocus:o,onUnmountAutoFocus:r,children:(0,V.jsx)(o4,{role:"dialog",id:a.contentId,"aria-describedby":a.descriptionId,"aria-labelledby":a.titleId,"data-state":d8(a.open),...s,ref:d,onDismiss:()=>a.onOpenChange(!1)})}),(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(hi,{titleId:a.titleId}),(0,V.jsx)(hn,{contentRef:l,descriptionId:a.descriptionId})]})]})}),d2="DialogTitle",d5=W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(d2,i);return(0,V.jsx)(o$.h2,{id:o.titleId,...n,ref:t})});d5.displayName=d2;var d3="DialogDescription",d4=W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(d3,i);return(0,V.jsx)(o$.p,{id:o.descriptionId,...n,ref:t})});d4.displayName=d3;var d9="DialogClose",d6=W.forwardRef((e,t)=>{let{__scopeDialog:i,...n}=e,o=dV(d9,i);return(0,V.jsx)(o$.button,{type:"button",...n,ref:t,onClick:oj(e.onClick,()=>o.onOpenChange(!1))})});function d8(e){return e?"open":"closed"}d6.displayName=d9;var d7="DialogTitleWarning",[he,ht]=(R={contentName:dq,titleName:d2,docsSlug:"dialog"},p=W.createContext(R),(m=e=>{let{children:t,...i}=e,n=W.useMemo(()=>i,Object.values(i));return(0,V.jsx)(p.Provider,{value:n,children:t})}).displayName=d7+"Provider",[m,function(e){let t=W.useContext(p);if(t)return t;if(void 0!==R)return R;throw Error(`\`${e}\` must be used within \`${d7}\``)}]),hi=({titleId:e})=>{let t=ht(d7),i=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return W.useEffect(()=>{e&&(document.getElementById(e)||console.error(i))},[i,e]),null},hn=({contentRef:e,descriptionId:t})=>{let i=ht("DialogDescriptionWarning"),n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${i.contentName}}.`;return W.useEffect(()=>{let i=e.current?.getAttribute("aria-describedby");t&&i&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},ho='[cmdk-group=""]',hr='[cmdk-group-items=""]',hs='[cmdk-item=""]',ha=`${hs}:not([aria-disabled="true"])`,hl="cmdk-item-select",hd="data-value",hh=(e,t,i)=>{var n;return n=e,function e(t,i,n,o,r,s,a){if(s===i.length)return r===t.length?1:.99;var l=`${r},${s}`;if(void 0!==a[l])return a[l];for(var d,h,u,c,p=o.charAt(s),m=n.indexOf(p,r),f=0;m>=0;)(d=e(t,i,n,o,m+1,s+1,a))>f&&(m===r?d*=1:dz.test(t.charAt(m-1))?(d*=.8,(u=t.slice(r,m-1).match(dP))&&r>0&&(d*=Math.pow(.999,u.length))):dR.test(t.charAt(m-1))?(d*=.9,(c=t.slice(r,m-1).match(dN))&&r>0&&(d*=Math.pow(.999,c.length))):(d*=.17,r>0&&(d*=Math.pow(.999,m-r))),t.charAt(m)!==i.charAt(s)&&(d*=.9999)),(d<.1&&n.charAt(m-1)===o.charAt(s+1)||o.charAt(s+1)===o.charAt(s)&&n.charAt(m-1)!==o.charAt(s))&&.1*(h=e(t,i,n,o,m+1,s+2,a))>d&&(d=.1*h),d>f&&(f=d),m=n.indexOf(p,m+1);return a[l]=f,f}(n=i&&i.length>0?`${n+" "+i.join(" ")}`:n,t,dO(n),dO(t),0,0,{})},hu=W.createContext(void 0),hc=W.createContext(void 0),hp=W.createContext(void 0),hm=W.forwardRef((e,t)=>{let i=hC(()=>{var t,i;return{search:"",value:null!=(i=null!=(t=e.value)?t:e.defaultValue)?i:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),n=hC(()=>new Set),o=hC(()=>new Map),r=hC(()=>new Map),s=hC(()=>new Set),a=h_(e),{label:l,children:d,value:h,onValueChange:u,filter:c,shouldFilter:p,loop:m,disablePointerSelection:f=!1,vimBindings:g=!0,...v}=e,w=rc(),b=rc(),y=rc(),x=W.useRef(null),_=hA();hD(()=>{if(void 0!==h){let e=h.trim();i.current.value=e,D.emit()}},[h]),hD(()=>{_(6,z)},[]);let D=W.useMemo(()=>({subscribe:e=>(s.current.add(e),()=>s.current.delete(e)),snapshot:()=>i.current,setState:(e,t,n)=>{var o,r,s,l;if(!Object.is(i.current[e],t)){if(i.current[e]=t,"search"===e)k(),E(),_(1,A);else if("value"===e){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let e=document.getElementById(y);e?e.focus():null==(o=document.getElementById(w))||o.focus()}if(_(7,()=>{var e;i.current.selectedItemId=null==(e=P())?void 0:e.id,D.emit()}),n||_(5,z),(null==(r=a.current)?void 0:r.value)!==void 0){null==(l=(s=a.current).onValueChange)||l.call(s,null!=t?t:"");return}}D.emit()}},emit:()=>{s.current.forEach(e=>e())}}),[]),C=W.useMemo(()=>({value:(e,t,n)=>{var o;t!==(null==(o=r.current.get(e))?void 0:o.value)&&(r.current.set(e,{value:t,keywords:n}),i.current.filtered.items.set(e,S(t,n)),_(2,()=>{E(),D.emit()}))},item:(e,t)=>(n.current.add(e),t&&(o.current.has(t)?o.current.get(t).add(e):o.current.set(t,new Set([e]))),_(3,()=>{k(),E(),i.current.value||A(),D.emit()}),()=>{r.current.delete(e),n.current.delete(e),i.current.filtered.items.delete(e);let t=P();_(4,()=>{k(),(null==t?void 0:t.getAttribute("id"))===e&&A(),D.emit()})}),group:e=>(o.current.has(e)||o.current.set(e,new Set),()=>{r.current.delete(e),o.current.delete(e)}),filter:()=>a.current.shouldFilter,label:l||e["aria-label"],getDisablePointerSelection:()=>a.current.disablePointerSelection,listId:w,inputId:y,labelId:b,listInnerRef:x}),[]);function S(e,t){var n,o;let r=null!=(o=null==(n=a.current)?void 0:n.filter)?o:hh;return e?r(e,i.current.search,t):0}function E(){if(!i.current.search||!1===a.current.shouldFilter)return;let e=i.current.filtered.items,t=[];i.current.filtered.groups.forEach(i=>{let n=o.current.get(i),r=0;n.forEach(t=>{r=Math.max(e.get(t),r)}),t.push([i,r])});let n=x.current;R().sort((t,i)=>{var n,o;let r=t.getAttribute("id"),s=i.getAttribute("id");return(null!=(n=e.get(s))?n:0)-(null!=(o=e.get(r))?o:0)}).forEach(e=>{let t=e.closest(hr);t?t.appendChild(e.parentElement===t?e:e.closest(`${hr} > *`)):n.appendChild(e.parentElement===n?e:e.closest(`${hr} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{var t;let i=null==(t=x.current)?void 0:t.querySelector(`${ho}[${hd}="${encodeURIComponent(e[0])}"]`);null==i||i.parentElement.appendChild(i)})}function A(){let e=R().find(e=>"true"!==e.getAttribute("aria-disabled")),t=null==e?void 0:e.getAttribute(hd);D.setState("value",t||void 0)}function k(){var e,t,s,l;if(!i.current.search||!1===a.current.shouldFilter){i.current.filtered.count=n.current.size;return}i.current.filtered.groups=new Set;let d=0;for(let o of n.current){let n=S(null!=(t=null==(e=r.current.get(o))?void 0:e.value)?t:"",null!=(l=null==(s=r.current.get(o))?void 0:s.keywords)?l:[]);i.current.filtered.items.set(o,n),n>0&&d++}for(let[e,t]of o.current)for(let n of t)if(i.current.filtered.items.get(n)>0){i.current.filtered.groups.add(e);break}i.current.filtered.count=d}function z(){var e,t,i;let n=P();n&&((null==(e=n.parentElement)?void 0:e.firstChild)===n&&(null==(i=null==(t=n.closest(ho))?void 0:t.querySelector('[cmdk-group-heading=""]'))||i.scrollIntoView({block:"nearest"})),n.scrollIntoView({block:"nearest"}))}function P(){var e;return null==(e=x.current)?void 0:e.querySelector(`${hs}[aria-selected="true"]`)}function R(){var e;return Array.from((null==(e=x.current)?void 0:e.querySelectorAll(ha))||[])}function N(e){let t=R()[e];t&&D.setState("value",t.getAttribute(hd))}function O(e){var t;let i=P(),n=R(),o=n.findIndex(e=>e===i),r=n[o+e];null!=(t=a.current)&&t.loop&&(r=o+e<0?n[n.length-1]:o+e===n.length?n[0]:n[o+e]),r&&D.setState("value",r.getAttribute(hd))}function I(e){let t=P(),i=null==t?void 0:t.closest(ho),n;for(;i&&!n;)n=null==(i=e>0?function(e,t){let i=e.nextElementSibling;for(;i;){if(i.matches(t))return i;i=i.nextElementSibling}}(i,ho):function(e,t){let i=e.previousElementSibling;for(;i;){if(i.matches(t))return i;i=i.previousElementSibling}}(i,ho))?void 0:i.querySelector(ha);n?D.setState("value",n.getAttribute(hd)):O(e)}let M=()=>N(R().length-1),L=e=>{e.preventDefault(),e.metaKey?M():e.altKey?I(1):O(1)},T=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?I(-1):O(-1)};return W.createElement(o$.div,{ref:t,tabIndex:-1,...v,"cmdk-root":"",onKeyDown:e=>{var t;null==(t=v.onKeyDown)||t.call(v,e);let i=e.nativeEvent.isComposing||229===e.keyCode;if(!(e.defaultPrevented||i))switch(e.key){case"n":case"j":g&&e.ctrlKey&&L(e);break;case"ArrowDown":L(e);break;case"p":case"k":g&&e.ctrlKey&&T(e);break;case"ArrowUp":T(e);break;case"Home":e.preventDefault(),N(0);break;case"End":e.preventDefault(),M();break;case"Enter":{e.preventDefault();let t=P();if(t){let e=new Event(hl);t.dispatchEvent(e)}}}}},W.createElement("label",{"cmdk-label":"",htmlFor:C.inputId,id:C.labelId,style:hz},l),hk(e,e=>W.createElement(hc.Provider,{value:D},W.createElement(hu.Provider,{value:C},e))))}),hf=W.forwardRef((e,t)=>{var i,n;let o=rc(),r=W.useRef(null),s=W.useContext(hp),a=W.useContext(hu),l=h_(e),d=null!=(n=null==(i=l.current)?void 0:i.forceMount)?n:null==s?void 0:s.forceMount;hD(()=>{if(!d)return a.item(o,null==s?void 0:s.id)},[d]);let h=hE(o,r,[e.value,e.children,r],e.keywords),u=W.useContext(hc),c=hS(e=>e.value&&e.value===h.current),p=hS(e=>!!d||!1===a.filter()||!e.search||e.filtered.items.get(o)>0);function m(){var e,t;f(),null==(t=(e=l.current).onSelect)||t.call(e,h.current)}function f(){u.setState("value",h.current,!0)}if(W.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(hl,m),()=>t.removeEventListener(hl,m)},[p,e.onSelect,e.disabled]),!p)return null;let{disabled:g,value:v,onSelect:w,forceMount:b,keywords:y,...x}=e;return W.createElement(o$.div,{ref:oA(r,t),...x,id:o,"cmdk-item":"",role:"option","aria-disabled":!!g,"aria-selected":!!c,"data-disabled":!!g,"data-selected":!!c,onPointerMove:g||a.getDisablePointerSelection()?void 0:f,onClick:g?void 0:m},e.children)}),hg=W.forwardRef((e,t)=>{let{heading:i,children:n,forceMount:o,...r}=e,s=rc(),a=W.useRef(null),l=W.useRef(null),d=rc(),h=W.useContext(hu),u=hS(e=>!!o||!1===h.filter()||!e.search||e.filtered.groups.has(s));hD(()=>h.group(s),[]),hE(s,a,[e.value,e.heading,l]);let c=W.useMemo(()=>({id:s,forceMount:o}),[o]);return W.createElement(o$.div,{ref:oA(a,t),...r,"cmdk-group":"",role:"presentation",hidden:!u||void 0},i&&W.createElement("div",{ref:l,"cmdk-group-heading":"","aria-hidden":!0,id:d},i),hk(e,e=>W.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":i?d:void 0},W.createElement(hp.Provider,{value:c},e))))}),hv=W.forwardRef((e,t)=>{let{alwaysRender:i,...n}=e,o=W.useRef(null),r=hS(e=>!e.search);return i||r?W.createElement(o$.div,{ref:oA(o,t),...n,"cmdk-separator":"",role:"separator"}):null}),hw=W.forwardRef((e,t)=>{let{onValueChange:i,...n}=e,o=null!=e.value,r=W.useContext(hc),s=hS(e=>e.search),a=hS(e=>e.selectedItemId),l=W.useContext(hu);return W.useEffect(()=>{null!=e.value&&r.setState("search",e.value)},[e.value]),W.createElement(o$.input,{ref:t,...n,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":a,id:l.inputId,type:"text",value:o?e.value:s,onChange:e=>{o||r.setState("search",e.target.value),null==i||i(e.target.value)}})}),hb=W.forwardRef((e,t)=>{let{children:i,label:n="Suggestions",...o}=e,r=W.useRef(null),s=W.useRef(null),a=hS(e=>e.selectedItemId),l=W.useContext(hu);return W.useEffect(()=>{if(s.current&&r.current){let e=s.current,t=r.current,i,n=new ResizeObserver(()=>{i=requestAnimationFrame(()=>{let i=e.offsetHeight;t.style.setProperty("--cmdk-list-height",i.toFixed(1)+"px")})});return n.observe(e),()=>{cancelAnimationFrame(i),n.unobserve(e)}}},[]),W.createElement(o$.div,{ref:oA(r,t),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":a,"aria-label":n,id:l.listId},hk(e,e=>W.createElement("div",{ref:oA(s,l.listInnerRef),"cmdk-list-sizer":""},e)))}),hy=W.forwardRef((e,t)=>{let{open:i,onOpenChange:n,overlayClassName:o,contentClassName:r,container:s,...a}=e;return W.createElement(dW,{open:i,onOpenChange:n},W.createElement(dU,{container:s},W.createElement(dJ,{"cmdk-overlay":"",className:o}),W.createElement(dY,{"aria-label":e.label,"cmdk-dialog":"",className:r},W.createElement(hm,{ref:t,...a}))))}),hx=Object.assign(hm,{List:hb,Item:hf,Input:hw,Group:hg,Separator:hv,Dialog:hy,Empty:W.forwardRef((e,t)=>hS(e=>0===e.filtered.count)?W.createElement(o$.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Loading:W.forwardRef((e,t)=>{let{progress:i,children:n,label:o="Loading...",...r}=e;return W.createElement(o$.div,{ref:t,...r,"cmdk-loading":"",role:"progressbar","aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},hk(e,e=>W.createElement("div",{"aria-hidden":!0},e)))})});function h_(e){let t=W.useRef(e);return hD(()=>{t.current=e}),t}var hD="undefined"==typeof window?W.useEffect:W.useLayoutEffect;function hC(e){let t=W.useRef();return void 0===t.current&&(t.current=e()),t}function hS(e){let t=W.useContext(hc),i=()=>e(t.snapshot());return W.useSyncExternalStore(t.subscribe,i,i)}function hE(e,t,i,n=[]){let o=W.useRef(),r=W.useContext(hu);return hD(()=>{var s;let a=(()=>{var e;for(let t of i){if("string"==typeof t)return t.trim();if("object"==typeof t&&"current"in t)return t.current?null==(e=t.current.textContent)?void 0:e.trim():o.current}})(),l=n.map(e=>e.trim());r.value(e,a,l),null==(s=t.current)||s.setAttribute(hd,a),o.current=a}),o}var hA=()=>{let[e,t]=W.useState(),i=hC(()=>new Map);return hD(()=>{i.current.forEach(e=>e()),i.current=new Map},[e]),(e,n)=>{i.current.set(e,n),t({})}};function hk({asChild:e,children:t},i){let n;return e&&W.isValidElement(t)?W.cloneElement("function"==typeof(n=t.type)?n(t.props):"render"in n?n.render(t.props):t,{ref:t.ref},i(t.props.children)):i(t)}var hz={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};let hP=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(dJ,{ref:i,className:tm("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));hP.displayName=dJ.displayName,W.forwardRef(({className:e,children:t,...i},n)=>(0,V.jsxs)(dU,{children:[(0,V.jsx)(hP,{}),(0,V.jsxs)(dY,{ref:n,className:tm("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...i,children:[t,(0,V.jsxs)(d6,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,V.jsx)(n3,{className:"h-4 w-4"}),(0,V.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})).displayName=dY.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(d5,{ref:i,className:tm("text-lg font-semibold leading-none tracking-tight",e),...t})).displayName=d5.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(d4,{ref:i,className:tm("text-sm text-muted-foreground",e),...t})).displayName=d4.displayName;let hR=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx,{ref:i,className:tm("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));hR.displayName=hx.displayName;let hN=W.forwardRef(({className:e,...t},i)=>(0,V.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,V.jsx)(n0,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,V.jsx)(hx.Input,{ref:i,className:tm("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));hN.displayName=hx.Input.displayName;let hO=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx.List,{ref:i,className:tm("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));hO.displayName=hx.List.displayName;let hI=W.forwardRef((e,t)=>(0,V.jsx)(hx.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));hI.displayName=hx.Empty.displayName;let hM=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx.Group,{ref:i,className:tm("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));hM.displayName=hx.Group.displayName,W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx.Separator,{ref:i,className:tm("-mx-1 h-px bg-border",e),...t})).displayName=hx.Separator.displayName;let hL=W.forwardRef(({className:e,...t},i)=>(0,V.jsx)(hx.Item,{ref:i,className:tm("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));hL.displayName=hx.Item.displayName;let hT=nJ("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]),hj=nJ("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),hG=nJ("panel-bottom",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}]]),hV=nJ("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),hW=nJ("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),hH=F.default.env.NEXT_PUBLIC_DISCORD_URL??"https://discord.gg/Qf2pXtY4Vf";function hF(){let{datasetInfo:e,leftPanelOpen:t,rightPanelOpen:i,bottomPanelOpen:n}=eg(),o=function(){let e=(0,W.useContext)(ou),t=eg(e=>e.datasetInfo),{leftPanelOpen:i,rightPanelOpen:n,bottomPanelOpen:o,setLeftPanelOpen:r,setRightPanelOpen:s,setBottomPanelOpen:a}=eg(),l=(0,W.useCallback)(i=>{if(!e?.api)return;let n=e.api,o=function(e){let t=function(e){for(let t of oo){let i=e.getPanel(t);if(i)return i}return e.panels.find(e=>!os.has(e.id))??e.activePanel}(e);if(t)return{referencePanel:t,direction:"within"}}(n),r=o?{position:o}:{},s=t?.layouts??[],a=tA(s,"euclidean"),l=tA(s,"poincare");if(n.getPanel(i))return void n.getPanel(i)?.focus();switch(i){case n8:n.addPanel({id:n8,component:"grid",title:"Samples",tabComponent:"samplesTab",renderer:"always",...r});break;case n7:n.addPanel({id:n7,component:"scatter",title:"Euclidean",tabComponent:"euclideanTab",params:{layoutKey:a?.layout_key,geometry:"euclidean"},renderer:"always",...r});break;case oe:n.addPanel({id:oe,component:"scatter",title:"Hyperbolic",tabComponent:"hyperbolicTab",params:{layoutKey:l?.layout_key,geometry:"poincare"},renderer:"always",...r})}},[e?.api,t]),d=(0,W.useCallback)(()=>{localStorage.removeItem(n9),window.location.reload()},[]),h=(0,W.useCallback)(t=>{let l;if(!e?.api)return;let d=e.api,h="left"===t?n6:"right"===t?oi:on,u="left"===t?r:"right"===t?s:a,c="left"===t?i:"right"===t?n:o,p=d.getPanel(h);if(c&&p){p.api.close(),u(!1);return}if(c)return;let m=ol(d),f=d?.height??window.innerHeight,g=oh(t);if("left"===t){let e=od(m);(l=d.addPanel({id:h,component:"explorer",title:"Explorer",position:g,initialWidth:e,minimumWidth:120,maximumWidth:e}))&&(l.group.locked=!0,l.group.header.hidden=!0,l.api.setSize({width:e}))}else l="right"===t?d.addPanel({id:h,component:"placeholder",title:"Blank",position:g,initialWidth:Math.round(Math.min(.45*m,300)),minimumWidth:120,maximumWidth:Math.round(.65*m)}):d.addPanel({id:h,component:"placeholder",title:"Blank",position:g,initialHeight:Math.round(Math.min(Math.max(.25*f,150),250)),minimumHeight:150,maximumHeight:Math.round(Math.max(f-150,150))});l&&(u(!0),l.api.setActive())},[e?.api,i,n,o,r,s,a]);return e?{api:e.api,addPanel:l,resetLayout:d,toggleZone:h}:null}(),[r,s]=(0,W.useState)(!1),a=new Set(or.map(e=>e.id).filter(e=>o?.api?.getPanel(e)));return(0,V.jsxs)("header",{className:"h-7 min-h-[28px] bg-secondary border-b border-border flex items-center justify-between px-2",children:[(0,V.jsxs)("div",{className:"flex items-center gap-2",children:[(0,V.jsx)("div",{className:"flex items-center justify-center h-6 w-6 text-primary",children:(0,V.jsx)(tg,{className:"h-3.5 w-3.5"})}),o&&(0,V.jsxs)(lX,{children:[(0,V.jsx)(lY,{asChild:!0,children:(0,V.jsxs)(oT,{variant:"ghost",size:"sm",className:"h-6 px-2 text-[12px] leading-[16px] tracking-[-0.15px] text-muted-foreground hover:text-foreground hover:bg-muted/50",children:["View",(0,V.jsx)(n1,{className:"ml-0.5 h-2.5 w-2.5"})]})}),(0,V.jsxs)(dt,{align:"start",className:"w-48",children:[or.map(e=>{let t=e.icon,i=a.has(e.id);return(0,V.jsxs)(di,{onClick:()=>(e=>{if(!o?.api)return;let t=o.api.getPanel(e);t?t.api.close():o.addPanel(e)})(e.id),className:"flex items-center justify-between h-7 text-[12px] leading-[16px]",children:[(0,V.jsxs)("span",{className:"flex items-center gap-2",children:[(0,V.jsx)(t,{className:"h-3.5 w-3.5"}),e.label]}),i&&(0,V.jsx)(de,{className:"h-3.5 w-3.5 text-primary"})]},e.id)}),(0,V.jsx)("div",{className:"h-2"}),(0,V.jsxs)(di,{onClick:()=>o.resetLayout(),className:"flex items-center gap-2 h-7 text-[12px] leading-[16px]",children:[(0,V.jsx)(hT,{className:"h-3.5 w-3.5"}),"Reset Layout"]})]})]})]}),(0,V.jsx)("div",{className:"flex-1 flex justify-center px-4",children:(0,V.jsxs)(dc,{open:r,onOpenChange:s,children:[(0,V.jsx)(df,{asChild:!0,children:(0,V.jsxs)(oT,{variant:"ghost",size:"sm",role:"combobox","aria-expanded":r,className:"h-6 min-w-[200px] max-w-[400px] px-3 text-[12px] leading-[16px] tracking-[-0.15px] text-muted-foreground hover:text-foreground bg-muted/40 hover:bg-muted/60 border border-border/50 rounded-md justify-start gap-2",children:[(0,V.jsx)(n0,{className:"h-3 w-3 flex-shrink-0 opacity-50"}),(0,V.jsx)("span",{className:"truncate flex-1 text-left",children:e?.name??"No dataset loaded"})]})}),(0,V.jsx)(dk,{className:"w-[280px] p-0",align:"center",children:(0,V.jsxs)(hR,{children:[(0,V.jsx)(hN,{placeholder:"Search datasets...",className:"h-6 text-[12px] leading-[16px]"}),(0,V.jsxs)(hO,{children:[(0,V.jsx)(hI,{className:"py-4 text-xs text-center",children:"No datasets found."}),(0,V.jsx)(hM,{children:e&&(0,V.jsxs)(hL,{value:e.name,onSelect:()=>s(!1),className:"text-[12px] leading-[16px]",children:[(0,V.jsx)("span",{className:"flex-1 truncate",children:e.name}),(0,V.jsxs)("span",{className:"text-[10px] text-muted-foreground ml-2",children:[e.num_samples.toLocaleString()," samples"]}),(0,V.jsx)(de,{className:"h-3 w-3 ml-2 text-primary"})]})})]})]})})]})}),(0,V.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,V.jsx)("a",{href:hH,target:"_blank",rel:"noopener noreferrer",className:"h-6 w-6 p-0 flex items-center justify-center rounded-sm text-muted-foreground hover:text-foreground hover:bg-muted/40 transition-colors",title:"Join our Discord community",children:(0,V.jsx)(tw,{className:"h-3.5 w-3.5"})}),(0,V.jsx)("div",{className:"w-px h-3 bg-border mx-1"}),(0,V.jsx)(oT,{variant:"ghost",size:"sm",onClick:()=>o?.toggleZone("left"),className:tm("h-6 w-6 p-0",t?"text-foreground bg-muted/50":"text-muted-foreground hover:text-foreground hover:bg-muted/40"),children:(0,V.jsx)(hj,{className:"h-3.5 w-3.5"})}),(0,V.jsx)(oT,{variant:"ghost",size:"sm",onClick:()=>o?.toggleZone("bottom"),className:tm("h-6 w-6 p-0",n?"text-foreground bg-muted/50":"text-muted-foreground hover:text-foreground hover:bg-muted/40"),children:(0,V.jsx)(hG,{className:"h-3.5 w-3.5"})}),(0,V.jsx)(oT,{variant:"ghost",size:"sm",onClick:()=>o?.toggleZone("right"),className:tm("h-6 w-6 p-0",i?"text-foreground bg-muted/50":"text-muted-foreground hover:text-foreground hover:bg-muted/40"),children:(0,V.jsx)(hV,{className:"h-3.5 w-3.5"})}),(0,V.jsx)("div",{className:"w-px h-3 bg-border mx-1"}),(0,V.jsx)(oT,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground hover:bg-muted/40",children:(0,V.jsx)(hW,{className:"h-3.5 w-3.5"})})]})]})}function hB(){let{samples:e,totalSamples:t,samplesLoaded:i,setSamples:n,appendSamples:o,addSamplesIfMissing:r,setDatasetInfo:s,setIsLoading:a,isLoading:l,error:d,setError:h,selectedIds:u,isLassoSelection:c,selectionSource:p,lassoQuery:m,lassoSamples:f,lassoTotal:g,lassoIsLoading:v,setLassoResults:w,labelFilter:b}=eg(),[y,x]=(0,W.useState)(!1),_=(0,W.useRef)(b??null);(0,W.useEffect)(()=>{(async()=>{a(!0),h(null);try{let[e,t]=await Promise.all([tk(),tz(0,100)]);s(e),n(t.samples,t.total)}catch(e){console.error("Failed to load data:",e),h(e instanceof Error?e.message:"Failed to load data")}finally{a(!1)}})()},[]),(0,W.useEffect)(()=>{(async()=>{if(c||0===u.size||"label"===p)return;let t=new Set(e.map(e=>e.id)),i=Array.from(u).filter(e=>!t.has(e));if(0!==i.length)try{let e=await tR(i);r(e)}catch(e){console.error("Failed to fetch selected samples:",e)}})()},[u,e,r,c,p]),(0,W.useEffect)(()=>{if(_.current===b||c)return;_.current=b??null;let e=!1;return(async()=>{try{let t=await tz(0,100,b??void 0);if(e)return;n(t.samples,t.total)}catch(t){if(e)return;console.error("Failed to load filtered samples:",t)}})(),()=>{e=!0}},[c,b,n]),(0,W.useEffect)(()=>{if(!c||!m||!v)return;let e=new AbortController;return(async()=>{try{let t=await tN({layoutKey:m.layoutKey,polygon:m.polygon,offset:0,limit:100,signal:e.signal});if(e.signal.aborted)return;w(t.samples,t.total,!1)}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)return;console.error("Failed to fetch lasso selection:",e),w([],0,!1)}})(),()=>e.abort()},[c,v,m,w]);let D=(0,W.useCallback)(async()=>{if(!y){if(c){if(!m||v||!v&&f.length>=g)return;x(!0);try{let e=await tN({layoutKey:m.layoutKey,polygon:m.polygon,offset:f.length,limit:100});w(e.samples,e.total,!0)}catch(e){console.error("Failed to load more lasso samples:",e)}finally{x(!1)}return}if(!(i>=t)){x(!0);try{let e=await tz(i,100,b??void 0);o(e.samples)}catch(e){console.error("Failed to load more samples:",e)}finally{x(!1)}}}},[y,o,c,v,m,f.length,g,i,t,w,b]),C=(0,W.useMemo)(()=>{if(c)return f;if("scatter"===p&&u.size>0){let t=new Map;for(let i of e)t.set(i.id,i);let i=[];for(let e of u){let n=t.get(e);n&&i.push(n)}if(i.length>0)return[...i,...e.filter(e=>!u.has(e.id))]}return e},[c,f,e,u,p]),S=c?g:t,E=c?C.lengthhB],50912)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/3686d57edf1023fb.js b/src/hyperview/server/static/_next/static/chunks/3686d57edf1023fb.js deleted file mode 100644 index 8044046..0000000 --- a/src/hyperview/server/static/_next/static/chunks/3686d57edf1023fb.js +++ /dev/null @@ -1,301 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54214,e=>{"use strict";function t(e,t,i){if(t.length%2!=0)throw Error(`positions length must be even (got ${t.length})`);let r=t.length/2,o=i??new Uint16Array(r);if(o.length!==r)throw Error(`labels length must equal number of points (${r}), got ${o.length}`);return{n:r,positions:t,labels:o,geometry:e}}function i(e){let t=new Float32Array(2*e.length);for(let i=0;i65535)throw Error(`label index out of range at ${i}: ${r}`);t[i]=r}return t}e.s(["createDataset",()=>t,"packPositions",()=>i,"packPositionsXY",()=>r,"packUint16Labels",()=>o],15454),e.i(15454);let s=["#4e79a7","#f28e2c","#e15759","#76b7b2","#59a14f","#edc949","#af7aa1","#ff9da7","#9c755f","#bab0ab"],a="#ff0000",n="#ffffff";function l(e,t){return{kind:"indices",indices:e,computeTimeMs:t,has:t=>e.has(t)}}function h(e,t,i,r){return{kind:"geometry",geometry:e,computeTimeMs:i,has:i=>r(t[2*i],t[2*i+1],e.coords)}}function u(e,t,i,r,o){let s=.4*Math.min(r,o)*i.zoom;return{x:r/2+(e-i.centerX)*s,y:o/2-(t-i.centerY)*s}}function d(e,t,i,r,o){let s=.4*Math.min(r,o)*i.zoom;return{x:i.centerX+(e-r/2)/s,y:i.centerY-(t-o/2)/s}}function f(){return{type:"poincare",ax:0,ay:0,displayZoom:1}}function c(e,t,i,r){let o=e-i,s=t-r,a=1-(i*e+r*t),n=-(i*t-r*e),l=a*a+n*n;if(l<1e-12){let e=Math.sqrt(o*o+s*s);return e<1e-12?{x:0,y:0}:{x:o/e*.999,y:s/e*.999}}let h=(o*a+s*n)/l,u=(s*a-o*n)/l,d=h*h+u*u;if(d>=1){let e=Math.sqrt(d);return{x:h/e*.999,y:u/e*.999}}return{x:h,y:u}}function p(e,t,i,r){let o=e+i,s=t+r,a=1+(i*e+r*t),n=i*t-r*e,l=a*a+n*n;if(l<1e-12){let e=Math.sqrt(o*o+s*s);return e<1e-12?{x:0,y:0}:{x:o/e*.999,y:s/e*.999}}let h=(o*a+s*n)/l,u=(s*a-o*n)/l,d=h*h+u*u;if(d>=1){let e=Math.sqrt(d);return{x:h/e*.999,y:u/e*.999}}return{x:h,y:u}}function m(e,t,i,r,o){let s=.45*Math.min(r,o)*i.displayZoom,a=(e-r/2)/s,n=-(t-o/2)/s,l=a*a+n*n;if(l>=1){let e=Math.sqrt(l);return p(a/e*.999,n/e*.999,i.ax,i.ay)}return p(a,n,i.ax,i.ay)}function x(e,t,i,r,o,s,a){let n=.45*Math.min(s,a)*e.displayZoom,l=(e,t,i=.95)=>{let r=e*e+t*t;if(r>i*i){let o=Math.sqrt(r);return{x:e/o*i,y:t/o*i}}return{x:e,y:t}},h=l((t-s/2)/n,-(i-a/2)/n),u=l((r-s/2)/n,-(o-a/2)/n),d=p(h.x,h.y,e.ax,e.ay),f=function(e,t,i,r){let o=i*e-r*t,s=i*t+r*e,a=o*o+s*s-1;if(1e-10>Math.abs(a))return{x:-i,y:-r};let n=e-i,l=r-t,h=(-(1+o)*n+s*l)/a,u=((1-o)*l-s*n)/a,d=h*h+u*u;if(d>=1){let e=Math.sqrt(d);return{x:h/e*.99,y:u/e*.99}}return{x:h,y:u}}(d.x,d.y,u.x,u.y);return{...e,ax:f.x,ay:f.y}}function g(e,t,i){let r=i.length/2;if(r<3)return!1;let o=!1;for(let s=0,a=r-1;sl||tu)return!1;let d=o-i,f=s-r,c=d*d+f*f;if(c<1e-9*1e-9)return 1e-9>=Math.sqrt((e-i)*(e-i)+(t-r)*(t-r));let p=Math.max(0,Math.min(1,((e-i)*d+(t-r)*f)/c)),m=i+p*d,x=r+p*f;return 1e-9>=Math.sqrt((e-m)*(e-m)+(t-x)*(t-x))}(e,t,r,n,l,h,1e-9))return!0;n>t!=h>t&&e<(l-r)*(t-n)/(h-n)+r&&(o=!o)}return o}function b(e){let t=1/0,i=1/0,r=-1/0,o=-1/0;for(let s=0;sr&&(r=a),no&&(o=n)}return Number.isFinite(t)&&Number.isFinite(i)&&Number.isFinite(r)&&Number.isFinite(o)?{xMin:t,yMin:i,xMax:r,yMax:o}:{xMin:0,yMin:0,xMax:0,yMax:0}}function E(e,t,i){return ei?i:0|e}class R{n;bounds;cellsX;cellsY;cellSizeX;cellSizeY;offsets;ids;constructor(e,t,i=64){this.n=e.length/2|0,this.bounds=t??function(e){let t=1/0,i=1/0,r=-1/0,o=-1/0;for(let s=0;sr&&(r=a),no&&(o=n)}return Number.isFinite(t)&&Number.isFinite(i)?(1e-9>Math.abs(r-t)&&(r=t+1),1e-9>Math.abs(o-i)&&(o=i+1),{minX:t,minY:i,maxX:r,maxY:o}):{minX:0,minY:0,maxX:0,maxY:0}}(e);const r=this.bounds.maxX-this.bounds.minX,o=this.bounds.maxY-this.bounds.minY,s=Math.max(64,Math.min(1e6,Math.ceil(this.n/Math.max(1,i))));let a=Math.round(Math.sqrt(r/o*s)),n=Math.round(s/(a=E(a,8,2048)));n=E(n,8,2048),this.cellsX=a,this.cellsY=n,this.cellSizeX=r/a,this.cellSizeY=o/n;const l=a*n,h=new Uint32Array(l);for(let t=0;tr.push(e))}}function T(e){let t=e.trim();if(!t.startsWith("#"))return[1,1,1,1];let i=t.slice(1);return 3===i.length?[parseInt(i[0]+i[0],16)/255,parseInt(i[1]+i[1],16)/255,parseInt(i[2]+i[2],16)/255,1]:6===i.length||8===i.length?[parseInt(i.slice(0,2),16)/255,parseInt(i.slice(2,4),16)/255,parseInt(i.slice(4,6),16)/255,8===i.length?parseInt(i.slice(6,8),16)/255:1]:[1,1,1,1]}function y(e,t,i){let r=e.createShader(t);if(!r)throw Error("Failed to create shader");if(e.shaderSource(r,i),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r)??"unknown";throw e.deleteShader(r),Error(`Shader compile failed: ${t}`)}return r}function _(e,t,i){let r=y(e,e.VERTEX_SHADER,t),o=y(e,e.FRAGMENT_SHADER,i),s=e.createProgram();if(!s)throw Error("Failed to create program");if(e.attachShader(s,r),e.attachShader(s,o),e.linkProgram(s),e.deleteShader(r),e.deleteShader(o),!e.getProgramParameter(s,e.LINK_STATUS)){let t=e.getProgramInfoLog(s)??"unknown";throw e.deleteProgram(s),Error(`Program link failed: ${t}`)}return s}function v(e,t,i,r){e.width=Math.max(1,Math.floor(t*r)),e.height=Math.max(1,Math.floor(i*r)),e.style.width=`${t}px`,e.style.height=`${i}px`}let A=`#version 300 es -precision highp float; -precision highp int; - -flat in uint v_label; - -// Present in the vertex stage too; redeclare here so we can compute AA width. -uniform float u_dpr; -uniform float u_pointRadiusCss; - -uniform sampler2D u_paletteTex; -uniform int u_paletteSize; -uniform int u_paletteWidth; - -out vec4 outColor; - -void main() { - vec2 p = gl_PointCoord * 2.0 - 1.0; - // Anti-aliased circle: avoid harsh discard edges that can look like - // "weird polygons" at small sizes or without MSAA. - float r = length(p); - // Ensure at least ~1px transition (in point-local coordinates) so small - // points remain visually circular. - float radiusPx = max(u_pointRadiusCss * u_dpr, 1.0); - // Slightly wider than 1px helps circles stay round-looking when zoomed out - // (where points are perceptually tiny and aliasing is more obvious). - float aa = max(fwidth(r), 1.5 / radiusPx); - float alpha = 1.0 - smoothstep(1.0 - aa, 1.0 + aa, r); - if (alpha <= 0.0) discard; - - int size = max(u_paletteSize, 1); - int w = max(u_paletteWidth, 1); - int idx = int(v_label) % size; - int x = idx % w; - int y = idx / w; - vec4 c = texelFetch(u_paletteTex, ivec2(x, y), 0); - outColor = vec4(c.rgb, c.a * alpha); -} -`,S=`#version 300 es -precision highp float; -precision highp int; - -flat in uint v_label; - -uniform sampler2D u_paletteTex; -uniform int u_paletteSize; -uniform int u_paletteWidth; - -out vec4 outColor; - -void main() { - int size = max(u_paletteSize, 1); - int w = max(u_paletteWidth, 1); - int idx = int(v_label) % size; - int x = idx % w; - int y = idx / w; - outColor = texelFetch(u_paletteTex, ivec2(x, y), 0); -} -`,P=`#version 300 es -precision highp float; -precision highp int; - -uniform float u_dpr; -uniform float u_pointRadiusCss; - -uniform vec4 u_color; -uniform float u_pointSizePx; -uniform float u_ringThicknessPx; -uniform int u_ringMode; // 0 = solid, 1 = ring - -out vec4 outColor; - -void main() { - vec2 p = gl_PointCoord * 2.0 - 1.0; - float r = length(p); - float radiusPx = max(u_pointRadiusCss * u_dpr, 1.0); - float aa = max(fwidth(r), 1.5 / radiusPx); - float outer = 1.0 - smoothstep(1.0 - aa, 1.0 + aa, r); - if (outer <= 0.0) discard; - - float alpha = outer; - - if (u_ringMode == 1) { - float radiusPx = u_pointSizePx * 0.5; - float t = clamp(u_ringThicknessPx / max(radiusPx, 1e-6), 0.0, 1.0); - float inner = 1.0 - t; - // Keep only the outer ring with an anti-aliased inner boundary. - float innerMask = smoothstep(inner - aa, inner + aa, r); - alpha *= innerMask; - if (alpha <= 0.0) discard; - } - - outColor = vec4(u_color.rgb, u_color.a * alpha); -} -`,M=`#version 300 es -precision highp float; - -out vec2 v_uv; - -void main() { - // Fullscreen triangle - // (-1,-1), (3,-1), (-1,3) - if (gl_VertexID == 0) { - gl_Position = vec4(-1.0, -1.0, 0.0, 1.0); - v_uv = vec2(0.0, 0.0); - } else if (gl_VertexID == 1) { - gl_Position = vec4(3.0, -1.0, 0.0, 1.0); - v_uv = vec2(2.0, 0.0); - } else { - gl_Position = vec4(-1.0, 3.0, 0.0, 1.0); - v_uv = vec2(0.0, 2.0); - } -} -`,F=`#version 300 es -precision highp float; - -in vec2 v_uv; - -uniform sampler2D u_tex; - -out vec4 outColor; - -void main() { - vec2 uv = clamp(v_uv, 0.0, 1.0); - outColor = texture(u_tex, uv); -} -`,B=`#version 300 es -precision highp float; -precision highp int; - -uniform vec2 u_cssSize; -uniform float u_dpr; -uniform float u_displayZoom; - -uniform vec4 u_diskFillColor; -uniform vec4 u_diskBorderColor; -uniform vec4 u_gridColor; -uniform float u_diskBorderWidthPx; -uniform float u_gridWidthPx; - -out vec4 outColor; - -void main() { - // Convert framebuffer pixels to CSS pixels - vec2 fragCss = gl_FragCoord.xy / max(u_dpr, 1.0); - vec2 center = u_cssSize * 0.5; - - float diskRadius = min(u_cssSize.x, u_cssSize.y) * 0.45 * u_displayZoom; - vec2 p = fragCss - center; - float dist = length(p); - - // Reference-like styling - vec3 diskFill = u_diskFillColor.rgb; - vec3 diskBorder = u_diskBorderColor.rgb; - - float borderWidth = max(u_diskBorderWidthPx, 0.0); - float halfW = 0.5 * borderWidth; - - // Anti-aliasing width (CSS px). Keep at least 1px for crisp edges. - float aa = max(1.0, fwidth(dist)); - - // Discard outside disk+border region so the clear color remains intact. - if (dist > diskRadius + halfW + aa) discard; - - // Outer fade for anti-aliased boundary - float outerAlpha = 1.0 - smoothstep(diskRadius + halfW - aa, diskRadius + halfW + aa, dist); - - // Border mask - float borderInner = smoothstep(diskRadius - halfW - aa, diskRadius - halfW + aa, dist); - float borderOuter = 1.0 - smoothstep(diskRadius + halfW - aa, diskRadius + halfW + aa, dist); - float borderMask = clamp(borderInner * borderOuter, 0.0, 1.0); - - vec3 col = mix(diskFill, diskBorder, borderMask); - - // ------------------------------------------------------------------------ - // Reference-like hyperbolic grid overlay - // ------------------------------------------------------------------------ - // Matches HyperbolicReference.drawHyperbolicGrid(): - // - 8 radial lines (geodesics through origin) - // - 5 concentric circles - vec3 gridCol = u_gridColor.rgb; - float gridWidth = max(u_gridWidthPx, 0.0); - float halfGrid = 0.5 * gridWidth; - - // AA width for thin lines in CSS pixel space. - float aaLine = max(1.0, fwidth(dist)); - - float gridMask = 0.0; - - // Concentric circles (5) - for (int i = 1; i <= 5; i++) { - float r = (float(i) / 6.0) * diskRadius; - float d = abs(dist - r); - float m = 1.0 - smoothstep(halfGrid - aaLine, halfGrid + aaLine, d); - gridMask = max(gridMask, m); - } - - // Radial lines (8), angle = (i/8)*pi - // Distance to line through origin with direction (cos a, sin a): |cross(p, dir)| - for (int i = 0; i < 8; i++) { - float a = (float(i) / 8.0) * 3.141592653589793; - vec2 dir = vec2(cos(a), sin(a)); - float d = abs(p.x * dir.y - p.y * dir.x); - float m = 1.0 - smoothstep(halfGrid - aaLine, halfGrid + aaLine, d); - gridMask = max(gridMask, m); - } - - // Apply grid on top of disk fill/border. Use u_gridColor alpha as intensity. - col = mix(col, gridCol, clamp(gridMask, 0.0, 1.0) * clamp(u_gridColor.a, 0.0, 1.0)); - outColor = vec4(col, outerAlpha); -} -`,D=`#version 300 es -precision highp float; -precision highp int; - -layout(location = 0) in vec2 a_pos; -layout(location = 1) in uint a_label; - -uniform vec2 u_center; -uniform vec2 u_cssSize; -uniform float u_zoom; -uniform float u_dpr; -uniform float u_pointRadiusCss; - -flat out uint v_label; - -void main() { - float baseScale = min(u_cssSize.x, u_cssSize.y) * 0.4 * u_zoom; - float sx = u_cssSize.x * 0.5 + (a_pos.x - u_center.x) * baseScale; - float sy = u_cssSize.y * 0.5 - (a_pos.y - u_center.y) * baseScale; - - vec2 dbufSize = u_cssSize * u_dpr; - vec2 dbuf = vec2(sx, sy) * u_dpr; - - float cx = (dbuf.x / dbufSize.x) * 2.0 - 1.0; - float cy = 1.0 - (dbuf.y / dbufSize.y) * 2.0; - - gl_Position = vec4(cx, cy, 0.0, 1.0); - gl_PointSize = (u_pointRadiusCss * 2.0) * u_dpr; - v_label = a_label; -} -`,C=`#version 300 es -precision highp float; -precision highp int; - -layout(location = 0) in vec2 a_pos; -layout(location = 1) in uint a_label; - -uniform vec2 u_cssSize; -uniform float u_dpr; -uniform float u_pointRadiusCss; - -uniform vec2 u_a; // camera translation (ax, ay) -uniform float u_displayZoom; // visual zoom - -flat out uint v_label; - -vec2 mobiusTransform(vec2 z, vec2 a) { - // (z - a) / (1 - conj(a) * z) - vec2 num = z - a; - - // denom = 1 - (ax*zx + ay*zy) + i * (-(ax*zy - ay*zx)) - float denomX = 1.0 - (a.x * z.x + a.y * z.y); - float denomY = -(a.x * z.y - a.y * z.x); - float denomNormSq = denomX * denomX + denomY * denomY; - if (denomNormSq < 1e-12) { - // Push outside clip - return vec2(2.0, 2.0); - } - - // complex division - float rx = (num.x * denomX + num.y * denomY) / denomNormSq; - float ry = (num.y * denomX - num.x * denomY) / denomNormSq; - return vec2(rx, ry); -} - -void main() { - vec2 w = mobiusTransform(a_pos, u_a); - float r2 = dot(w, w); - if (r2 >= 1.0) { - gl_Position = vec4(2.0, 2.0, 0.0, 1.0); - gl_PointSize = 0.0; - v_label = a_label; - return; - } - - float diskRadius = min(u_cssSize.x, u_cssSize.y) * 0.45 * u_displayZoom; - float sx = u_cssSize.x * 0.5 + w.x * diskRadius; - float sy = u_cssSize.y * 0.5 - w.y * diskRadius; - - vec2 dbufSize = u_cssSize * u_dpr; - vec2 dbuf = vec2(sx, sy) * u_dpr; - - float cx = (dbuf.x / dbufSize.x) * 2.0 - 1.0; - float cy = 1.0 - (dbuf.y / dbufSize.y) * 2.0; - - gl_Position = vec4(cx, cy, 0.0, 1.0); - gl_PointSize = (u_pointRadiusCss * 2.0) * u_dpr; - v_label = a_label; -} -`;class U{canvas=null;width=0;height=0;deviceDpr=1;canvasDpr=1;dpr=1;dataset=null;selection=new Set;hoveredIndex=-1;pointRadiusCss=3;colors=s;backgroundColor="#0a0a0a";poincareDiskFillColor="#141414";poincareDiskBorderColor="#666666";poincareGridColor="#66666633";poincareDiskBorderWidthPx=2;poincareGridWidthPx=.5;paletteSize=0;paletteDirty=!0;paletteTex=null;paletteTexW=0;paletteTexH=0;paletteBytes=new Uint8Array(0);paletteTexUnit=1;scratchIds=[];hoverPosScratch=new Float32Array(2);hoverLabScratch=new Uint16Array(1);hoverIndexScratch=new Uint32Array(1);lastViewChangeTs=0;markViewChanged(){this.lastViewChangeTs=performance.now()}endInteraction(){this.lastViewChangeTs=0}markBackdropDirty(){this.backdropDirty=!0}uploadPoincareDiskStyleUniforms(){let e=this.gl,t=this.poincareDisk;if(!e||!t)return;let i=T(this.poincareDiskFillColor),r=T(this.poincareDiskBorderColor),o=T(this.poincareGridColor);t.uDiskFillColor&&e.uniform4f(t.uDiskFillColor,i[0],i[1],i[2],i[3]),t.uDiskBorderColor&&e.uniform4f(t.uDiskBorderColor,r[0],r[1],r[2],r[3]),t.uGridColor&&e.uniform4f(t.uGridColor,o[0],o[1],o[2],o[3]),t.uDiskBorderWidthPx&&e.uniform1f(t.uDiskBorderWidthPx,this.poincareDiskBorderWidthPx),t.uGridWidthPx&&e.uniform1f(t.uGridWidthPx,this.poincareGridWidthPx)}getBackdropZoom(){return 1}dataIndex=null;gl=null;vao=null;posBuffer=null;labelBuffer=null;hoverVao=null;hoverPosBuffer=null;hoverLabelBuffer=null;selectionVao=null;selectionPosBuffer=null;selectionLabelBuffer=null;selectionOverlayCount=0;selectionEbo=null;hoverEbo=null;interactionEbo=null;interactionCount=0;maxBaseDrawPoints=4e6;maxGpuUploadPoints=1e7;gpuUsesFullDataset=!0;gpuPointCount=0;policy={fragmentBudget:1e8,circleBudget:6e7,squareOnRatio:1,squareOffRatio:.75,minPointsDpr:.35};renderAsSquares=!1;__debugPolicy=null;backdropTex=null;backdropFbo=null;backdropW=0;backdropH=0;backdropDpr=1;backdropZoom=NaN;backdropDirty=!0;pointsTex=null;pointsFbo=null;pointsW=0;pointsH=0;programComposite=null;uCompositeTex=null;poincareDisk=null;pointsCircle=null;pointsSquare=null;programSolid=null;uSolidColor=null;uSolidPointSizePx=null;uSolidRingThicknessPx=null;uSolidRingMode=null;uCssSizeSolid=null;uDprSolid=null;uPointRadiusSolid=null;selectionDirty=!0;hoverDirty=!0;init(e,t){this.canvas=e,this.width=t.width,this.height=t.height,this.deviceDpr=t.devicePixelRatio??window.devicePixelRatio??1,this.canvasDpr=this.deviceDpr,this.dpr=this.deviceDpr;let i="string"==typeof t.poincareDiskFillColor;t.backgroundColor&&(this.backgroundColor=t.backgroundColor),t.pointRadius&&(this.pointRadiusCss=t.pointRadius),t.colors&&(this.colors=t.colors),this.poincareDiskFillColor=i?t.poincareDiskFillColor:this.poincareDiskFillColor,t.poincareDiskBorderColor&&(this.poincareDiskBorderColor=t.poincareDiskBorderColor),t.poincareGridColor&&(this.poincareGridColor=t.poincareGridColor),"number"==typeof t.poincareDiskBorderWidthPx&&Number.isFinite(t.poincareDiskBorderWidthPx)&&(this.poincareDiskBorderWidthPx=Math.max(0,t.poincareDiskBorderWidthPx)),"number"==typeof t.poincareGridWidthPx&&Number.isFinite(t.poincareGridWidthPx)&&(this.poincareGridWidthPx=Math.max(0,t.poincareGridWidthPx)),this.paletteDirty=!0}chooseRenderDpr(e){let t=this.deviceDpr,i=Math.max(1,this.width)*Math.max(1,this.height),r=e>this.maxBaseDrawPoints?this.estimateSubsampleCount(e):e,o=Math.sqrt((e>=1e6?i>1e6?2e5:5e5:e>=5e5?14e5:e>=25e4?21e5:8e6)/i),s=Math.max(.5,this.pointRadiusCss),a=Math.max(1,r)*Math.PI*s*s,n=Math.sqrt(this.policy.fragmentBudget/a),l=e>=1e6?1:e>=5e5?1.25:1.5;return Math.max(e>=1e6?this.policy.minPointsDpr:e>=5e5?.75:1,Math.min(t,l,o,n))}estimateSubsampleCount(e){if(e<5e5)return e;let t=Math.min(e,Math.max(25e4,Math.min(this.maxBaseDrawPoints,Math.floor(.25*e)))),i=Math.max(1,Math.floor(e/t));return Math.min(t,Math.ceil(e/i))}estimatePointFragments(e,t){let i=Math.max(.5,this.pointRadiusCss),r=Math.max(0,t);return Math.max(0,e)*Math.PI*i*i*r*r}updateSquarePointPolicy(e){let t=this.policy.circleBudget*this.policy.squareOnRatio,i=this.policy.circleBudget*this.policy.squareOffRatio;if(this.dpr<=.75){this.renderAsSquares=!0;return}this.renderAsSquares?e<=i&&(this.renderAsSquares=!1):e>=t&&(this.renderAsSquares=!0)}setDataset(e){this.dataset=e,this.selection=new Set,this.hoveredIndex=-1,this.selectionDirty=!0,this.hoverDirty=!0;let t=this.chooseRenderDpr(e.n);t!==this.dpr&&(this.dpr=t),this.dataIndex=new R(e.positions,void 0,64),this.gl&&this.uploadDatasetToGPU(),this.markBackdropDirty()}resize(e,t){this.width=e,this.height=t,this.gl&&this.canvas&&(v(this.canvas,e,t,this.canvasDpr),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.markBackdropDirty())}setSelection(e){let t=e.size;this.selection=t<=2e5?new Set(e):e,this.selectionDirty=!0,this.gl&&this.uploadSelectionToGPU()}getSelection(){return this.selection.size<=2e5?new Set(this.selection):this.selection}setHovered(e){this.hoveredIndex=e,this.hoverDirty=!0,this.gl&&this.uploadHoverToGPU()}destroy(){let e=this.gl;e&&(this.pointsCircle&&e.deleteProgram(this.pointsCircle.program),this.pointsSquare&&e.deleteProgram(this.pointsSquare.program),this.programSolid&&e.deleteProgram(this.programSolid),this.poincareDisk&&e.deleteProgram(this.poincareDisk.program),this.vao&&e.deleteVertexArray(this.vao),this.hoverVao&&e.deleteVertexArray(this.hoverVao),this.selectionVao&&e.deleteVertexArray(this.selectionVao),this.posBuffer&&e.deleteBuffer(this.posBuffer),this.labelBuffer&&e.deleteBuffer(this.labelBuffer),this.hoverPosBuffer&&e.deleteBuffer(this.hoverPosBuffer),this.hoverLabelBuffer&&e.deleteBuffer(this.hoverLabelBuffer),this.selectionPosBuffer&&e.deleteBuffer(this.selectionPosBuffer),this.selectionLabelBuffer&&e.deleteBuffer(this.selectionLabelBuffer),this.selectionEbo&&e.deleteBuffer(this.selectionEbo),this.hoverEbo&&e.deleteBuffer(this.hoverEbo),this.interactionEbo&&e.deleteBuffer(this.interactionEbo),this.backdropFbo&&e.deleteFramebuffer(this.backdropFbo),this.backdropTex&&e.deleteTexture(this.backdropTex),this.pointsFbo&&e.deleteFramebuffer(this.pointsFbo),this.pointsTex&&e.deleteTexture(this.pointsTex),this.paletteTex&&e.deleteTexture(this.paletteTex),this.programComposite&&e.deleteProgram(this.programComposite)),this.gl=null,this.vao=null,this.hoverVao=null,this.selectionVao=null,this.posBuffer=null,this.labelBuffer=null,this.hoverPosBuffer=null,this.hoverLabelBuffer=null,this.selectionPosBuffer=null,this.selectionLabelBuffer=null,this.selectionOverlayCount=0,this.selectionEbo=null,this.hoverEbo=null,this.interactionEbo=null,this.interactionCount=0,this.gpuUsesFullDataset=!0,this.gpuPointCount=0,this.backdropFbo=null,this.backdropTex=null,this.backdropW=0,this.backdropH=0,this.backdropDpr=1,this.backdropZoom=NaN,this.backdropDirty=!0,this.pointsFbo=null,this.pointsTex=null,this.pointsW=0,this.pointsH=0,this.programComposite=null,this.uCompositeTex=null,this.pointsCircle=null,this.pointsSquare=null,this.programSolid=null,this.poincareDisk=null,this.paletteTex=null,this.paletteTexW=0,this.paletteTexH=0,this.paletteSize=0,this.paletteDirty=!0}uploadPaletteUniforms(){let e=this.gl;if(!e)return;let t=this.colors.length,i=Math.max(1,Math.min(t,65536)),r=e.getParameter(e.MAX_TEXTURE_SIZE),o=Math.min(r,i),s=Math.ceil(i/o);if(s>r)throw Error(`Palette too large for WebGL texture: size=${i}, maxTex=${r}`);let a=o*s;if(this.paletteBytes.length!==4*a?this.paletteBytes=new Uint8Array(4*a):this.paletteBytes.fill(0),0===t)this.paletteBytes[0]=255,this.paletteBytes[1]=255,this.paletteBytes[2]=255,this.paletteBytes[3]=255;else for(let e=0;e{t&&(e.useProgram(t.program),t.uPaletteTex&&e.uniform1i(t.uPaletteTex,this.paletteTexUnit),t.uPaletteSize&&e.uniform1i(t.uPaletteSize,this.paletteSize),t.uPaletteWidth&&e.uniform1i(t.uPaletteWidth,this.paletteTexW))};n(this.pointsCircle),n(this.pointsSquare),this.paletteDirty=!1}bindPaletteTexture(){let e=this.gl;e&&this.paletteTex&&(e.activeTexture(e.TEXTURE0+this.paletteTexUnit),e.bindTexture(e.TEXTURE_2D,this.paletteTex),e.activeTexture(e.TEXTURE0))}async countSelection(e,t={}){let i=this.dataset,r=this.dataIndex;if(!i||!r)return 0;if(e.indices)return e.indices.size;if("geometry"!==e.kind||!e.geometry)return 0;let o=e.geometry.coords;if(o.length/2<3)return 0;let s=e.geometry.bounds;if(!s){let e=1/0,t=1/0,i=-1/0,r=-1/0;for(let s=0;si&&(i=a),nr&&(r=n)}s={xMin:e,yMin:t,xMax:i,yMax:r}}let a=t.shouldCancel,n=t.onProgress,l="number"==typeof t.yieldEveryMs&&Number.isFinite(t.yieldEveryMs)?Math.max(0,t.yieldEveryMs):8,h=s.xMin-1e-12,u=s.yMin-1e-12,d=s.xMax+1e-12,f=s.yMax+1e-12,c=(e,t,i)=>ei?i:0|e,p=c(Math.floor((h-r.bounds.minX)/r.cellSizeX),0,r.cellsX-1),m=c(Math.floor((u-r.bounds.minY)/r.cellSizeY),0,r.cellsY-1),x=c(Math.floor((d-r.bounds.minX)/r.cellSizeX),0,r.cellsX-1),b=c(Math.floor((f-r.bounds.minY)/r.cellSizeY),0,r.cellsY-1),E=i.positions,R=r.ids,T=r.offsets,y=0,_=0,v=16384,A=l>0?performance.now():0;for(let e=m;e<=b;e++){let t=e*r.cellsX;for(let e=p;e<=x;e++){let i=t+e,r=T[i],h=T[i+1];for(let e=r;es.xMax)&&!(rs.yMax)&&(g(i,r,o)&&y++,_++,l>0&&_>=v)){if(v=_+16384,a?.())return y;performance.now()-A>=l&&(n?.(y,_),await new Promise(e=>requestAnimationFrame(()=>e())),A=performance.now())}}}}return n?.(y,_),y}ensureGL(){if(this.gl)return;if(!this.canvas)throw Error("Renderer not initialized");v(this.canvas,this.width,this.height,this.canvasDpr);let e=this.canvas.getContext("webgl2",{antialias:!1,alpha:!1,depth:!1,stencil:!1,preserveDrawingBuffer:!1,premultipliedAlpha:!1,desynchronized:!0});if(!e)throw Error("Failed to get WebGL2 context (is the canvas already using 2D context?)");this.gl=e,e.disable(e.DEPTH_TEST),e.disable(e.CULL_FACE),e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA);let[t,i,r,o]=T(this.backgroundColor);e.clearColor(t,i,r,o),e.viewport(0,0,this.canvas.width,this.canvas.height),this.createProgramsAndBuffers(),this.uploadPaletteUniforms(),this.dataset&&this.uploadDatasetToGPU(),this.uploadSelectionToGPU(),this.uploadHoverToGPU(),this.markBackdropDirty()}ensurePointsResources(){if(!this.gl||!this.canvas)return;let e=this.gl,t=Math.max(1,Math.floor(this.width*this.dpr)),i=Math.max(1,Math.floor(this.height*this.dpr)),r=e.getParameter(e.MAX_TEXTURE_SIZE);if(t>r||i>r){let e=Math.min(1,r/t,r/i);t=Math.max(1,Math.floor(t*e)),i=Math.max(1,Math.floor(i*e))}if(!this.pointsTex){if(this.pointsTex=e.createTexture(),!this.pointsTex)throw Error("Failed to create points texture");e.bindTexture(e.TEXTURE_2D,this.pointsTex),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null)}if(!this.pointsFbo&&(this.pointsFbo=e.createFramebuffer(),!this.pointsFbo))throw Error("Failed to create points framebuffer");if(t!==this.pointsW||i!==this.pointsH){this.pointsW=t,this.pointsH=i,e.bindTexture(e.TEXTURE_2D,this.pointsTex),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,t,i,0,e.RGBA,e.UNSIGNED_BYTE,null),e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,this.pointsFbo),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.pointsTex,0);let r=e.checkFramebufferStatus(e.FRAMEBUFFER);if(e.bindFramebuffer(e.FRAMEBUFFER,null),r!==e.FRAMEBUFFER_COMPLETE)throw Error(`Points framebuffer incomplete: ${r}`)}}ensureBackdropResources(){if(!this.gl||!this.canvas||"poincare"!==this.geometryKind()||!this.poincareDisk||!this.vao)return;let e=this.gl,t=Math.max(1,this.canvasDpr),i=Math.max(1,Math.floor(this.width*t)),r=Math.max(1,Math.floor(this.height*t)),o=e.getParameter(e.MAX_TEXTURE_SIZE);if(i>o||r>o){let e=Math.min(1,o/i,o/r);i=Math.max(1,Math.floor(i*e)),r=Math.max(1,Math.floor(r*e)),this.backdropDpr=t*e}else this.backdropDpr=t;if(!this.backdropTex){if(this.backdropTex=e.createTexture(),!this.backdropTex)throw Error("Failed to create backdrop texture");e.bindTexture(e.TEXTURE_2D,this.backdropTex),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null)}if(!this.backdropFbo&&(this.backdropFbo=e.createFramebuffer(),!this.backdropFbo))throw Error("Failed to create backdrop framebuffer");if(i!==this.backdropW||r!==this.backdropH){this.backdropW=i,this.backdropH=r,e.bindTexture(e.TEXTURE_2D,this.backdropTex),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,i,r,0,e.RGBA,e.UNSIGNED_BYTE,null),e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,this.backdropFbo),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,this.backdropTex,0);let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(e.bindFramebuffer(e.FRAMEBUFFER,null),t!==e.FRAMEBUFFER_COMPLETE)throw Error(`Backdrop framebuffer incomplete: ${t}`);this.markBackdropDirty()}}renderBackdropIfNeeded(){if(!this.gl||!this.canvas||"poincare"!==this.geometryKind()||!this.poincareDisk||!this.vao||(this.ensureBackdropResources(),!this.backdropFbo))return;let e=this.getBackdropZoom(),t=Number.isFinite(this.backdropZoom)&&1e-12>=Math.abs(this.backdropZoom-e);if(!this.backdropDirty&&t)return;let i=this.gl;i.bindFramebuffer(i.FRAMEBUFFER,this.backdropFbo),i.viewport(0,0,this.backdropW,this.backdropH);let[r,o,s,a]=T(this.backgroundColor);i.clearColor(r,o,s,a),i.clear(i.COLOR_BUFFER_BIT),i.useProgram(this.poincareDisk.program),this.bindViewUniformsForProgram(this.poincareDisk.program),this.uploadPoincareDiskStyleUniforms(),this.poincareDisk.uCssSize&&i.uniform2f(this.poincareDisk.uCssSize,this.width,this.height),this.poincareDisk.uDpr&&i.uniform1f(this.poincareDisk.uDpr,this.backdropDpr),i.bindVertexArray(this.vao),i.drawArrays(i.TRIANGLES,0,3),i.bindFramebuffer(i.FRAMEBUFFER,null),i.viewport(0,0,this.canvas.width,this.canvas.height),this.backdropZoom=e,this.backdropDirty=!1}createProgramsAndBuffers(){let e=this.gl,t="euclidean"===this.geometryKind()?D:C,i=_(e,t,A),r=_(e,t,S);if(this.programSolid=_(e,t,P),this.programComposite=_(e,M,F),e.useProgram(this.programComposite),this.uCompositeTex=e.getUniformLocation(this.programComposite,"u_tex"),"poincare"===this.geometryKind()){let t=_(e,M,B);this.poincareDisk={program:t,uCssSize:e.getUniformLocation(t,"u_cssSize"),uDpr:e.getUniformLocation(t,"u_dpr"),uDiskFillColor:e.getUniformLocation(t,"u_diskFillColor"),uDiskBorderColor:e.getUniformLocation(t,"u_diskBorderColor"),uGridColor:e.getUniformLocation(t,"u_gridColor"),uDiskBorderWidthPx:e.getUniformLocation(t,"u_diskBorderWidthPx"),uGridWidthPx:e.getUniformLocation(t,"u_gridWidthPx")},e.useProgram(t),this.uploadPoincareDiskStyleUniforms()}if(e.useProgram(i),this.pointsCircle={program:i,uPaletteTex:e.getUniformLocation(i,"u_paletteTex"),uPaletteSize:e.getUniformLocation(i,"u_paletteSize"),uPaletteWidth:e.getUniformLocation(i,"u_paletteWidth"),uCssSize:e.getUniformLocation(i,"u_cssSize"),uDpr:e.getUniformLocation(i,"u_dpr"),uPointRadius:e.getUniformLocation(i,"u_pointRadiusCss")},e.useProgram(r),this.pointsSquare={program:r,uPaletteTex:e.getUniformLocation(r,"u_paletteTex"),uPaletteSize:e.getUniformLocation(r,"u_paletteSize"),uPaletteWidth:e.getUniformLocation(r,"u_paletteWidth"),uCssSize:e.getUniformLocation(r,"u_cssSize"),uDpr:e.getUniformLocation(r,"u_dpr"),uPointRadius:e.getUniformLocation(r,"u_pointRadiusCss")},e.useProgram(this.programSolid),this.uSolidColor=e.getUniformLocation(this.programSolid,"u_color"),this.uSolidPointSizePx=e.getUniformLocation(this.programSolid,"u_pointSizePx"),this.uSolidRingThicknessPx=e.getUniformLocation(this.programSolid,"u_ringThicknessPx"),this.uSolidRingMode=e.getUniformLocation(this.programSolid,"u_ringMode"),this.uCssSizeSolid=e.getUniformLocation(this.programSolid,"u_cssSize"),this.uDprSolid=e.getUniformLocation(this.programSolid,"u_dpr"),this.uPointRadiusSolid=e.getUniformLocation(this.programSolid,"u_pointRadiusCss"),this.vao=e.createVertexArray(),this.posBuffer=e.createBuffer(),this.labelBuffer=e.createBuffer(),this.hoverVao=e.createVertexArray(),this.hoverPosBuffer=e.createBuffer(),this.hoverLabelBuffer=e.createBuffer(),this.selectionVao=e.createVertexArray(),this.selectionPosBuffer=e.createBuffer(),this.selectionLabelBuffer=e.createBuffer(),this.selectionEbo=e.createBuffer(),this.hoverEbo=e.createBuffer(),this.interactionEbo=e.createBuffer(),!this.vao||!this.posBuffer||!this.labelBuffer||!this.hoverVao||!this.hoverPosBuffer||!this.hoverLabelBuffer||!this.selectionVao||!this.selectionPosBuffer||!this.selectionLabelBuffer||!this.selectionEbo||!this.hoverEbo||!this.interactionEbo)throw Error("Failed to allocate WebGL resources");e.bindVertexArray(this.vao),e.bindBuffer(e.ARRAY_BUFFER,this.posBuffer),e.enableVertexAttribArray(0),e.vertexAttribPointer(0,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,this.labelBuffer),e.enableVertexAttribArray(1),e.vertexAttribIPointer(1,1,e.UNSIGNED_SHORT,0,0),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),e.bindVertexArray(this.hoverVao),e.bindBuffer(e.ARRAY_BUFFER,this.hoverPosBuffer),e.enableVertexAttribArray(0),e.vertexAttribPointer(0,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,this.hoverLabelBuffer),e.enableVertexAttribArray(1),e.vertexAttribIPointer(1,1,e.UNSIGNED_SHORT,0,0),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),e.bindVertexArray(this.selectionVao),e.bindBuffer(e.ARRAY_BUFFER,this.selectionPosBuffer),e.enableVertexAttribArray(0),e.vertexAttribPointer(0,2,e.FLOAT,!1,0,0),e.bindBuffer(e.ARRAY_BUFFER,this.selectionLabelBuffer),e.enableVertexAttribArray(1),e.vertexAttribIPointer(1,1,e.UNSIGNED_SHORT,0,0),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null)}uploadDatasetToGPU(){let e=this.gl,t=this.dataset;if(!t)return;e.bindVertexArray(this.vao);let i=t.n<=this.maxGpuUploadPoints;if(this.gpuUsesFullDataset=i,i)e.bindBuffer(e.ARRAY_BUFFER,this.posBuffer),e.bufferData(e.ARRAY_BUFFER,t.positions,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,this.labelBuffer),e.bufferData(e.ARRAY_BUFFER,t.labels,e.STATIC_DRAW),this.gpuPointCount=t.n;else{let i=t.n,r=Math.min(i,Math.max(25e4,Math.min(this.maxBaseDrawPoints,Math.floor(.25*i)))),o=Math.max(1,Math.floor(i/r)),s=Math.min(r,Math.ceil(i/o)),a=new Float32Array(2*s),n=new Uint16Array(s),l=0;for(let e=0;e=5e5){let t=Math.min(i,Math.max(25e4,Math.min(this.maxBaseDrawPoints,Math.floor(.25*i)))),r=Math.max(1,Math.floor(i/t)),o=Math.min(t,Math.ceil(i/r)),s=new Uint32Array(o),a=0;for(let e=0;e=r)break;this.selectionOverlayCount=a,e.bindVertexArray(this.selectionVao),e.bindBuffer(e.ARRAY_BUFFER,this.selectionPosBuffer),e.bufferData(e.ARRAY_BUFFER,o,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,this.selectionLabelBuffer),e.bufferData(e.ARRAY_BUFFER,s,e.DYNAMIC_DRAW),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),this.selectionDirty=!1;return}let t=Math.min(this.selection.size,25e4);if(this.selectionOverlayCount=t,0===t){this.selectionDirty=!1;return}let i=new Uint32Array(t),r=0;for(let e of this.selection)if(i[r++]=e,r>=t)break;this.selectionOverlayCount=r,e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.selectionEbo),e.bufferData(e.ELEMENT_ARRAY_BUFFER,i,e.DYNAMIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),this.selectionDirty=!1}uploadHoverToGPU(){if(!this.gl||!this.hoverEbo)return;let e=this.gl;if(!this.gpuUsesFullDataset){let t=this.dataset;if(!t||!this.hoverVao||!this.hoverPosBuffer||!this.hoverLabelBuffer)return;let i=this.hoveredIndex>=0&&this.hoveredIndex=0?(r[0]=t.positions[2*i],r[1]=t.positions[2*i+1],o[0]=t.labels[i]):(r[0]=2,r[1]=2,o[0]=0),e.bindVertexArray(this.hoverVao),e.bindBuffer(e.ARRAY_BUFFER,this.hoverPosBuffer),e.bufferData(e.ARRAY_BUFFER,r,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,this.hoverLabelBuffer),e.bufferData(e.ARRAY_BUFFER,o,e.DYNAMIC_DRAW),e.bindVertexArray(null),e.bindBuffer(e.ARRAY_BUFFER,null),this.hoverDirty=!1;return}let t=this.hoveredIndex>=0?this.hoveredIndex:0,i=this.hoverIndexScratch;i[0]=t,e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.hoverEbo),e.bufferData(e.ELEMENT_ARRAY_BUFFER,i,e.DYNAMIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),this.hoverDirty=!1}render(){this.ensureGL();let e=this.gl,t=this.dataset;if(!t)return;let i=performance.now()-this.lastViewChangeTs<80,r=!!this.interactionEbo&&this.interactionCount>0,o=i&&"poincare"===this.geometryKind()&&t.n>=2e6&&r,s=t.n>this.maxBaseDrawPoints&&r,l=this.gpuUsesFullDataset&&(o||s),h=this.gpuUsesFullDataset?l?this.interactionCount:t.n:this.gpuPointCount,u=this.estimatePointFragments(h,this.dpr);if(this.updateSquarePointPolicy(u),this.selectionDirty&&this.uploadSelectionToGPU(),this.hoverDirty&&this.uploadHoverToGPU(),e.bindFramebuffer(e.FRAMEBUFFER,null),e.viewport(0,0,this.canvas.width,this.canvas.height),e.disable(e.BLEND),"poincare"===this.geometryKind())if(this.renderBackdropIfNeeded(),this.backdropTex&&this.programComposite)e.useProgram(this.programComposite),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this.backdropTex),this.uCompositeTex&&e.uniform1i(this.uCompositeTex,0),e.bindVertexArray(this.vao),e.drawArrays(e.TRIANGLES,0,3),e.bindTexture(e.TEXTURE_2D,null);else{let[t,i,r,o]=T(this.backgroundColor);e.clearColor(t,i,r,o),e.clear(e.COLOR_BUFFER_BIT)}else{let[t,i,r,o]=T(this.backgroundColor);e.clearColor(t,i,r,o),e.clear(e.COLOR_BUFFER_BIT)}if(this.ensurePointsResources(),!this.pointsFbo||!this.pointsTex||!this.programComposite)return;e.bindFramebuffer(e.FRAMEBUFFER,this.pointsFbo),e.viewport(0,0,this.pointsW,this.pointsH),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT);let d=this.renderAsSquares?this.pointsSquare:this.pointsCircle;if(d){if(e.useProgram(d.program),this.bindViewUniformsForProgram(d.program),this.paletteDirty&&this.uploadPaletteUniforms(),this.bindPaletteTexture(),d.uCssSize&&e.uniform2f(d.uCssSize,this.width,this.height),d.uDpr&&e.uniform1f(d.uDpr,this.dpr),d.uPointRadius&&e.uniform1f(d.uPointRadius,this.pointRadiusCss),this.renderAsSquares?e.disable(e.BLEND):(e.enable(e.BLEND),e.blendFunc(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA)),e.bindVertexArray(this.vao),l)e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.interactionEbo),e.drawElements(e.POINTS,this.interactionCount,e.UNSIGNED_INT,0),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null);else{let i=this.gpuUsesFullDataset?t.n:this.gpuPointCount;e.drawArrays(e.POINTS,0,i)}if(this.__debugPolicy={pointsDpr:this.dpr,deviceDpr:this.deviceDpr,canvasDpr:this.canvasDpr,renderAsSquares:this.renderAsSquares,useLod:l,baseDrawCount:h,interactionCount:this.interactionCount,gpuUsesFullDataset:this.gpuUsesFullDataset,gpuPointCount:this.gpuPointCount,estimatedPointFragments:u,fragmentBudget:this.policy.fragmentBudget,isInteracting:i},!i&&this.selection.size>0){if(e.useProgram(this.programSolid),this.bindViewUniformsForProgram(this.programSolid),this.uCssSizeSolid&&e.uniform2f(this.uCssSizeSolid,this.width,this.height),this.uDprSolid&&e.uniform1f(this.uDprSolid,this.dpr),this.uPointRadiusSolid&&e.uniform1f(this.uPointRadiusSolid,this.pointRadiusCss+1),this.uSolidColor){let[t,i,r,o]=T(a);e.uniform4f(this.uSolidColor,t,i,r,o)}this.uSolidRingMode&&e.uniform1i(this.uSolidRingMode,0),this.uSolidRingThicknessPx&&e.uniform1f(this.uSolidRingThicknessPx,0),this.uSolidPointSizePx&&e.uniform1f(this.uSolidPointSizePx,(this.pointRadiusCss+1)*2*this.dpr),this.gpuUsesFullDataset?(e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.selectionEbo),e.drawElements(e.POINTS,this.selectionOverlayCount,e.UNSIGNED_INT,0),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)):this.selectionVao&&this.selectionOverlayCount>0&&(e.bindVertexArray(this.selectionVao),e.drawArrays(e.POINTS,0,this.selectionOverlayCount),e.bindVertexArray(this.vao))}if(!i&&this.hoveredIndex>=0&&this.hoveredIndex0))return null;let n=o/a*(1+1e-12),l=n*n,h=d(e,t,this.view,this.width,this.height),f=.5*this.width,c=.5*this.height,p=this.view.centerX,m=this.view.centerY,x=-1,g=1/0;if(r.forEachInAABB(h.x-n,h.y-n,h.x+n,h.y+n,r=>{let o=i.positions[2*r],n=i.positions[2*r+1],u=o-h.x,d=n-h.y;if(u*u+d*d>l)return;let b=f+(o-p)*a-e,E=c-(n-m)*a-t,R=b*b+E*E;R<=s&&(Rn&&(n=t),iu&&(u=i)}let f={xMin:s,yMin:a,xMax:n,yMax:u},c=performance.now()-r;return h({type:"polygon",coords:o,bounds:f},t.positions,c,(e,t,i)=>!(ef.xMax)&&!(tf.yMax)&&g(e,t,i))}projectToScreen(e,t){return u(e,t,this.view,this.width,this.height)}unprojectFromScreen(e,t){return d(e,t,this.view,this.width,this.height)}}class k extends U{view=f();uniformCache=new Map;lastPanScreenX=0;lastPanScreenY=0;hasPanAnchor=!1;geometryKind(){return"poincare"}getBackdropZoom(){return this.view.displayZoom}setDataset(e){if("poincare"!==e.geometry)throw Error("HyperbolicWebGLCandidate only supports poincare geometry");super.setDataset(e),this.view=f(),this.hasPanAnchor=!1}setView(e){if("poincare"!==e.type)throw Error("HyperbolicWebGLCandidate only supports poincare view state");this.view=e,this.markBackdropDirty()}getView(){return{...this.view}}bindViewUniformsForProgram(e){if(!this.gl)return;let t=this.gl,i=this.uniformCache.get(e);i||(i={uA:t.getUniformLocation(e,"u_a"),uDisplayZoom:t.getUniformLocation(e,"u_displayZoom")},this.uniformCache.set(e,i)),i.uA&&t.uniform2f(i.uA,this.view.ax,this.view.ay),i.uDisplayZoom&&t.uniform1f(i.uDisplayZoom,this.view.displayZoom)}startPan(e,t){this.lastPanScreenX=e,this.lastPanScreenY=t,this.hasPanAnchor=!0}pan(e,t,i){this.hasPanAnchor||(this.lastPanScreenX=this.width/2,this.lastPanScreenY=this.height/2,this.hasPanAnchor=!0);let r=this.lastPanScreenX,o=this.lastPanScreenY,s=r+e,a=o+t;this.view=x(this.view,r,o,s,a,this.width,this.height),this.markViewChanged(),this.lastPanScreenX=s,this.lastPanScreenY=a}zoom(e,t,i,r){var o,s,a;let n,l,h,u,d,f,p,g;this.view=(o=this.view,s=this.width,a=this.height,n=Math.pow(1.1,i),l=Math.max(.5,Math.min(10,o.displayZoom*n)),h=m(e,t,o,s,a),u=.45*Math.min(s,a)*l,f=s/2+(d=c(h.x,h.y,o.ax,o.ay)).x*u,g=(p=a/2-d.y*u)-t,Math.abs(f-e)>.5||Math.abs(g)>.5?x({...o,displayZoom:l},f,p,e,t,s,a):{...o,displayZoom:l}),this.markViewChanged(),this.markBackdropDirty()}mobiusDerivativeScaleAt(e,t){let i=this.view.ax,r=this.view.ay,o=1-(i*e+r*t),s=-(i*t-r*e),a=o*o+s*s;return a<1e-12?0:Math.max(0,1-(i*i+r*r))/a}conservativeDataRadiusForScreenRadius(e,t,i,r){let o=this.view.ax,s=this.view.ay,a=o*o+s*s,n=Math.sqrt(a),l=Math.max(1e-12,1-a);if(!(r>1e-9)||!(i>0))return 0;let h=1-(o*e+s*t),u=-(o*t-s*e),d=Math.sqrt(h*h+u*u);if(!Number.isFinite(d)||d<1e-12)return 2;let f=i/(r*l),c=f*d*d;for(let e=0;e<5;e++){let e=d+n*c;c=f*e*e}return Number.isFinite(c)?Math.min(1.999,Math.max(0,c*=1.001)):2}hitTest(e,t){let i=this.dataset,r=this.dataIndex;if(!i||!r)return null;let{width:o,height:s,view:a}=this,n=o/2,l=s/2,h=.45*Math.min(o,s)*a.displayZoom,u=h*h,d=this.pointRadiusCss+5,f=d*d,c=e-n,p=t-l,x=h+d;if(c*c+p*p>x*x)return null;let g=m(e,t,a,o,s),b=this.conservativeDataRadiusForScreenRadius(g.x,g.y,d,h),E=-1,R=1/0,T=a.ax,y=a.ay;if(r.forEachInAABB(g.x-b,g.y-b,g.x+b,g.y+b,r=>{let o=i.positions[2*r],s=i.positions[2*r+1],a=o-T,d=s-y,c=1-(T*o+y*s),p=-(T*s-y*o),m=c*c+p*p,x=0,g=0;if(m<1e-12){let e=Math.sqrt(a*a+d*d);e<1e-12?(x=0,g=0):(x=a/e*.999,g=d/e*.999)}else{let e=(x=(a*c+d*p)/m)*x+(g=(d*c-a*p)/m)*g;if(e>=1){let t=Math.sqrt(e);x=x/t*.999,g=g/t*.999}}let b=n+x*h,_=l-g*h,v=b-n,A=_-l;if(v*v+A*A>u)return;let S=b-e,P=_-t,M=S*S+P*P;M<=f&&(M=1){let t=Math.sqrt(e);B=B/t*.999,D=D/t*.999}}return{index:E,screenX:n+B*h,screenY:l-D*h,distance:Math.sqrt(R)}}lassoSelect(e){let t=this.dataset,i=this.dataIndex;if(!t||!i)return l(new Set,0);let r=performance.now(),o=new Float32Array(e.length);for(let t=0;tn&&(n=t),iu&&(u=i)}let d={xMin:s,yMin:a,xMax:n,yMax:u},f=performance.now()-r;return h({type:"polygon",coords:o,bounds:d},t.positions,f,(e,t,i)=>!(ed.xMax)&&!(td.yMax)&&g(e,t,i))}projectToScreen(e,t){var i,r,o;let s,a;return i=this.view,r=this.width,o=this.height,s=c(e,t,i.ax,i.ay),a=.45*Math.min(r,o)*i.displayZoom,{x:r/2+s.x*a,y:o/2-s.y*a}}unprojectFromScreen(e,t){return m(e,t,this.view,this.width,this.height)}}function L(e,t){let i=Math.floor(e.length/2);if(i<=t)return new Float32Array(e);let r=e;if(i>2048){let t=new Float32Array(4096);for(let r=0;r<2048;r++){let o=Math.floor(r*i/2048);t[2*r]=e[2*o],t[2*r+1]=e[2*o+1]}r=t}let o=function(e,t){let i=Array.from(e),r=Math.floor(i.length/2);if(r<3)return i;for(let e=0;e<5&&!((r=Math.floor(i.length/2))<3);e++){let e=Array(4*r),t=0;for(let o=0;or&&(r=a),no&&(o=n)}return Number.isFinite(t)&&Number.isFinite(i)?{xMin:t,yMin:i,xMax:r,yMax:o}:{xMin:0,yMin:0,xMax:0,yMax:0}}(o),a=Math.max(s.xMax-s.xMin,s.yMax-s.yMin),n=(e,t,i,r,o,s)=>{let a=o-i,n=s-r,l=a*a+n*n,h=0;l>1e-12&&((h=((e-i)*a+(t-r)*n)/l)<0?h=0:h>1&&(h=1));let u=e-(i+h*a),d=t-(r+h*n);return u*u+d*d},l=e=>{let t=Math.floor(o.length/2);if(t<=2)return o.slice();let i=e*e,r=new Uint8Array(t);r[0]=1,r[t-1]=1;let s=[0,t-1];for(;s.length>0;){let e=s.pop(),t=s.pop(),a=o[2*t],l=o[2*t+1],h=o[2*e],u=o[2*e+1],d=-1,f=-1;for(let i=t+1;id&&(d=e,f=i)}d>i&&f>=0&&(r[f]=1,s.push(t,f),s.push(f,e))}let a=[];for(let e=0;et&&d<20;)h*=1.1,u=l(h),d++;let f=Math.floor(u.length/2);if(f>t){let e=new Float32Array(2*t);for(let i=0;ie.shiftKey&&(e.metaKey||e.ctrlKey)),s=Number.isFinite(i.lassoMinSampleDistPx)?i.lassoMinSampleDistPx:2,a=Number.isFinite(i.lassoMaxVertsInteraction)?i.lassoMaxVertsInteraction:24,n=Number.isFinite(i.lassoMaxVertsFinal)?i.lassoMaxVertsFinal:48,l=i.observeResize??!0,h=0,u=0,d=0,f=!0,c="idle",p=null,m=0,x=0,g=0,b=0,E={shift:!1,ctrl:!1,alt:!1,meta:!1},R=0,T=0,y=0,_={shift:!1,ctrl:!1,alt:!1,meta:!1},v=!1,A=!1,S=0,P=0,M=-2,F=[],B=null,D=0,C=0,U=!1,w=(t,i)=>{let r=e.getBoundingClientRect();return{x:t-r.left,y:i-r.top}},k=e=>{let i=new Float32Array(e.length);for(let r=0;r{h||(h=requestAnimationFrame(()=>{h=0;let r=!1;if(f){let i,o,s;f=!1,o=I((i=e.getBoundingClientRect()).width),s=I(i.height),r=(o!==u||s!==d)&&(u=o,d=s,t.resize(o,s),!0)||r}if((0!==g||0!==b)&&(t.pan(g,b,E),g=0,b=0,r=!0),v&&0!==R&&(t.zoom(T,y,R,_),R=0,v=!1,r=!0),"idle"===c&&A){A=!1;let e=t.hitTest(S,P),o=e?e.index:-1;o!==M&&(M=o,t.setHovered(o),r=!0),i.onHover?.(e)}if("lasso"===c&&U&&i.onLassoUpdate&&F.length>=6){U=!1;let e=L(F,a);B=e;let t=k(e);i.onLassoUpdate(e,t)}r&&t.render()}))},Y=i=>{if(0!==i.button)return;let{x:r,y:s}=w(i.clientX,i.clientY);if(p=i.pointerId,m=r,x=s,-1!==M&&(M=-1,t.setHovered(-1)),o(i)){c="lasso",F=[],B=null,D=r,C=s;let e=t.unprojectFromScreen(r,s);F.push(e.x,e.y),U=!0,X()}else c="pan",g=0,b=0,E=z(i),"startPan"in t&&t.startPan(r,s),X();e.setPointerCapture(i.pointerId)},V=e=>{if(p!==e.pointerId){if("idle"===c){let{x:t,y:i}=w(e.clientX,e.clientY);S=t,P=i,A=!0,X()}return}let{x:i,y:r}=w(e.clientX,e.clientY);if("pan"===c){g+=i-m,b+=r-x,E=z(e),m=i,x=r,X();return}if("lasso"===c){let e=i-D,o=r-C;if(e*e+o*o>=s*s){let e=t.unprojectFromScreen(i,r);F.push(e.x,e.y),U=!0,D=i,C=r,X()}return}S=i,P=r,A=!0,X()},W=r=>{if(p===r.pointerId){if("pan"===c&&(0!==g||0!==b)&&(t.pan(g,b,E),g=0,b=0,t.render()),"lasso"===c&&F.length>=6){let e=B??L(F,n),r=k(e),o=t.lassoSelect(r);i.onLassoComplete?.(o,e,r)}"endInteraction"in t&&t.endInteraction(),c="idle",p=null,F=[],B=null,U=!1,A=!1;try{e.releasePointerCapture(r.pointerId)}catch{}}},G=e=>{e.preventDefault();let{x:t,y:i}=w(e.clientX,e.clientY),o=-e.deltaY*r;R+=o,T=t,y=i,_=z(e),v=!0,X()};e.addEventListener("pointerdown",Y),e.addEventListener("pointermove",V),e.addEventListener("pointerup",W),e.addEventListener("pointercancel",W),e.addEventListener("wheel",G,{passive:!1});let O=null;return l&&"undefined"!=typeof ResizeObserver&&(O=new ResizeObserver(()=>{f=!0,X()})).observe(e),f=!0,X(),{destroy(){h&&(cancelAnimationFrame(h),h=0),e.removeEventListener("pointerdown",Y),e.removeEventListener("pointermove",V),e.removeEventListener("pointerup",W),e.removeEventListener("pointercancel",W),e.removeEventListener("wheel",G),O?.disconnect(),O=null},requestResize(){f=!0,X()}}}e.s(["DEFAULT_COLORS",0,s,"EuclideanWebGLCandidate",()=>w,"HOVER_COLOR",0,n,"HyperbolicWebGLCandidate",()=>k,"SELECTION_COLOR",0,a,"boundsOfPolygon",()=>b,"createDataset",()=>t,"createInteractionController",()=>N,"packPositions",()=>i,"packPositionsXY",()=>r,"packUint16Labels",()=>o,"pointInPolygon",()=>g],54214)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/a6dad97d9634a72d.js b/src/hyperview/server/static/_next/static/chunks/a6dad97d9634a72d.js deleted file mode 100644 index ab422b9..0000000 --- a/src/hyperview/server/static/_next/static/chunks/a6dad97d9634a72d.js +++ /dev/null @@ -1 +0,0 @@ -!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r,n,o=function(t){return t&&t.Math===Math&&t},i=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof t&&t)||o("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a=function(t){try{return!!t()}catch(t){return!0}},u=!a(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}),s=!a(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}),c=Function.prototype.call,f=s?c.bind(c):function(){return c.apply(c,arguments)},l={}.propertyIsEnumerable,h=Object.getOwnPropertyDescriptor,p=h&&!l.call({1:2},1)?function(t){var e=h(this,t);return!!e&&e.enumerable}:l,v={f:p},d=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},g=Function.prototype,y=g.call,m=s&&g.bind.bind(y,y),b=s?m:function(t){return function(){return y.apply(t,arguments)}},w=b({}.toString),S=b("".slice),E=function(t){return S(w(t),8,-1)},O=Object,x=b("".split),R=a(function(){return!O("z").propertyIsEnumerable(0)})?function(t){return"String"===E(t)?x(t,""):O(t)}:O,P=function(t){return null==t},A=TypeError,j=function(t){if(P(t))throw new A("Can't call method on "+t);return t},k=function(t){return R(j(t))},I="object"==typeof document&&document.all,T=void 0===I&&void 0!==I?function(t){return"function"==typeof t||t===I}:function(t){return"function"==typeof t},M=function(t){return"object"==typeof t?null!==t:T(t)},L=function(t,e){return arguments.length<2?T(r=i[t])?r:void 0:i[t]&&i[t][e];var r},U=b({}.isPrototypeOf),N=i.navigator,C=N&&N.userAgent,_=C?String(C):"",F=i.process,B=i.Deno,D=F&&F.versions||B&&B.version,z=D&&D.v8;z&&(n=(r=z.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&_&&(!(r=_.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=_.match(/Chrome\/(\d+)/))&&(n=+r[1]);var W=n,q=i.String,H=!!Object.getOwnPropertySymbols&&!a(function(){var t=Symbol("symbol detection");return!q(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&W&&W<41}),$=H&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,K=Object,G=$?function(t){return"symbol"==typeof t}:function(t){var e=L("Symbol");return T(e)&&U(e.prototype,K(t))},V=String,Y=function(t){try{return V(t)}catch(t){return"Object"}},X=TypeError,J=function(t){if(T(t))return t;throw new X(Y(t)+" is not a function")},Q=function(t,e){var r=t[e];return P(r)?void 0:J(r)},Z=TypeError,tt=Object.defineProperty,et=function(t,e){try{tt(i,t,{value:e,configurable:!0,writable:!0})}catch(r){i[t]=e}return e},rt=e(function(t){var e="__core-js_shared__",r=t.exports=i[e]||et(e,{});(r.versions||(r.versions=[])).push({version:"3.38.1",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})}),nt=function(t,e){return rt[t]||(rt[t]=e||{})},ot=Object,it=function(t){return ot(j(t))},at=b({}.hasOwnProperty),ut=Object.hasOwn||function(t,e){return at(it(t),e)},st=0,ct=Math.random(),ft=b(1..toString),lt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ft(++st+ct,36)},ht=i.Symbol,pt=nt("wks"),vt=$?ht.for||ht:ht&&ht.withoutSetter||lt,dt=function(t){return ut(pt,t)||(pt[t]=H&&ut(ht,t)?ht[t]:vt("Symbol."+t)),pt[t]},gt=TypeError,yt=dt("toPrimitive"),mt=function(t,e){if(!M(t)||G(t))return t;var r,n=Q(t,yt);if(n){if(void 0===e&&(e="default"),r=f(n,t,e),!M(r)||G(r))return r;throw new gt("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var r,n;if("string"===e&&T(r=t.toString)&&!M(n=f(r,t)))return n;if(T(r=t.valueOf)&&!M(n=f(r,t)))return n;if("string"!==e&&T(r=t.toString)&&!M(n=f(r,t)))return n;throw new Z("Can't convert object to primitive value")}(t,e)},bt=function(t){var e=mt(t,"string");return G(e)?e:e+""},wt=i.document,St=M(wt)&&M(wt.createElement),Et=function(t){return St?wt.createElement(t):{}},Ot=!u&&!a(function(){return 7!==Object.defineProperty(Et("div"),"a",{get:function(){return 7}}).a}),xt=Object.getOwnPropertyDescriptor,Rt={f:u?xt:function(t,e){if(t=k(t),e=bt(e),Ot)try{return xt(t,e)}catch(t){}if(ut(t,e))return d(!f(v.f,t,e),t[e])}},Pt=u&&a(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype}),At=String,jt=TypeError,kt=function(t){if(M(t))return t;throw new jt(At(t)+" is not an object")},It=TypeError,Tt=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Lt="enumerable",Ut="configurable",Nt="writable",Ct={f:u?Pt?function(t,e,r){if(kt(t),e=bt(e),kt(r),"function"==typeof t&&"prototype"===e&&"value"in r&&Nt in r&&!r[Nt]){var n=Mt(t,e);n&&n[Nt]&&(t[e]=r.value,r={configurable:Ut in r?r[Ut]:n[Ut],enumerable:Lt in r?r[Lt]:n[Lt],writable:!1})}return Tt(t,e,r)}:Tt:function(t,e,r){if(kt(t),e=bt(e),kt(r),Ot)try{return Tt(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new It("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},_t=u?function(t,e,r){return Ct.f(t,e,d(1,r))}:function(t,e,r){return t[e]=r,t},Ft=Function.prototype,Bt=u&&Object.getOwnPropertyDescriptor,Dt=ut(Ft,"name"),zt={EXISTS:Dt,PROPER:Dt&&"something"===function(){}.name,CONFIGURABLE:Dt&&(!u||u&&Bt(Ft,"name").configurable)},Wt=b(Function.toString);T(rt.inspectSource)||(rt.inspectSource=function(t){return Wt(t)});var qt,Ht,$t,Kt=rt.inspectSource,Gt=i.WeakMap,Vt=T(Gt)&&/native code/.test(String(Gt)),Yt=nt("keys"),Xt=function(t){return Yt[t]||(Yt[t]=lt(t))},Jt={},Qt="Object already initialized",Zt=i.TypeError;if(Vt||rt.state){var te=rt.state||(rt.state=new(0,i.WeakMap));te.get=te.get,te.has=te.has,te.set=te.set,qt=function(t,e){if(te.has(t))throw new Zt(Qt);return e.facade=t,te.set(t,e),e},Ht=function(t){return te.get(t)||{}},$t=function(t){return te.has(t)}}else{var ee=Xt("state");Jt[ee]=!0,qt=function(t,e){if(ut(t,ee))throw new Zt(Qt);return e.facade=t,_t(t,ee,e),e},Ht=function(t){return ut(t,ee)?t[ee]:{}},$t=function(t){return ut(t,ee)}}var re,ne={set:qt,get:Ht,has:$t,enforce:function(t){return $t(t)?Ht(t):qt(t,{})},getterFor:function(t){return function(e){var r;if(!M(e)||(r=Ht(e)).type!==t)throw new Zt("Incompatible receiver, "+t+" required");return r}}},oe=e(function(t){var e=zt.CONFIGURABLE,r=ne.enforce,n=ne.get,o=String,i=Object.defineProperty,s=b("".slice),c=b("".replace),f=b([].join),l=u&&!a(function(){return 8!==i(function(){},"length",{value:8}).length}),h=String(String).split("String"),p=t.exports=function(t,n,a){"Symbol("===s(o(n),0,7)&&(n="["+c(o(n),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),a&&a.getter&&(n="get "+n),a&&a.setter&&(n="set "+n),(!ut(t,"name")||e&&t.name!==n)&&(u?i(t,"name",{value:n,configurable:!0}):t.name=n),l&&a&&ut(a,"arity")&&t.length!==a.arity&&i(t,"length",{value:a.arity});try{a&&ut(a,"constructor")&&a.constructor?u&&i(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var p=r(t);return ut(p,"source")||(p.source=f(h,"string"==typeof n?n:"")),t};Function.prototype.toString=p(function(){return T(this)&&n(this).source||Kt(this)},"toString")}),ie=function(t,e,r,n){n||(n={});var o=n.enumerable,i=void 0!==n.name?n.name:e;if(T(r)&&oe(r,i,n),n.global)o?t[e]=r:et(e,r);else{try{n.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=r:Ct.f(t,e,{value:r,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return t},ae=Math.ceil,ue=Math.floor,se=Math.trunc||function(t){var e=+t;return(e>0?ue:ae)(e)},ce=function(t){var e=+t;return e!=e||0===e?0:se(e)},fe=Math.max,le=Math.min,he=function(t,e){var r=ce(t);return r<0?fe(r+e,0):le(r,e)},pe=Math.min,ve=function(t){var e=ce(t);return e>0?pe(e,9007199254740991):0},de=function(t){return ve(t.length)},ge=function(t){return function(e,r,n){var o=k(e),i=de(o);if(0===i)return!t&&-1;var a,u=he(n,i);if(t&&r!=r){for(;i>u;)if((a=o[u++])!=a)return!0}else for(;i>u;u++)if((t||u in o)&&o[u]===r)return t||u||0;return!t&&-1}},ye={includes:ge(!0),indexOf:ge(!1)},me=ye.indexOf,be=b([].push),we=function(t,e){var r,n=k(t),o=0,i=[];for(r in n)!ut(Jt,r)&&ut(n,r)&&be(i,r);for(;e.length>o;)ut(n,r=e[o++])&&(~me(i,r)||be(i,r));return i},Se=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ee=Se.concat("length","prototype"),Oe={f:Object.getOwnPropertyNames||function(t){return we(t,Ee)}},xe={f:Object.getOwnPropertySymbols},Re=b([].concat),Pe=L("Reflect","ownKeys")||function(t){var e=Oe.f(kt(t)),r=xe.f;return r?Re(e,r(t)):e},Ae=function(t,e,r){for(var n=Pe(e),o=Ct.f,i=Rt.f,a=0;aa;)Ct.f(t,r=o[a++],n[r]);return t},Be={f:Fe},De=L("document","documentElement"),ze="prototype",We="script",qe=Xt("IE_PROTO"),He=function(){},$e=function(t){return"<"+We+">"+t+""},Ke=function(t){t.write($e("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ge=function(){try{re=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;Ge="undefined"!=typeof document?document.domain&&re?Ke(re):(e=Et("iframe"),r="java"+We+":",e.style.display="none",De.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write($e("document.F=Object")),t.close(),t.F):Ke(re);for(var n=Se.length;n--;)delete Ge[ze][Se[n]];return Ge()};Jt[qe]=!0;var Ve=Object.create||function(t,e){var r;return null!==t?(He[ze]=kt(t),r=new He,He[ze]=null,r[qe]=t):r=Ge(),void 0===e?r:Be.f(r,e)},Ye=Ct.f,Xe=dt("unscopables"),Je=Array.prototype;void 0===Je[Xe]&&Ye(Je,Xe,{configurable:!0,value:Ve(null)});var Qe=function(t){Je[Xe][t]=!0};Ce({target:"Array",proto:!0},{at:function(t){var e=it(this),r=de(e),n=ce(t),o=n>=0?n:r+n;return o<0||o>=r?void 0:e[o]}}),Qe("at");var Ze=function(t,e){return b(i[t].prototype[e])},tr=(Ze("Array","at"),TypeError),er=function(t,e){if(!delete t[e])throw new tr("Cannot delete property "+Y(e)+" of "+Y(t))},rr=Math.min,nr=[].copyWithin||function(t,e){var r=it(this),n=de(r),o=he(t,n),i=he(e,n),a=arguments.length>2?arguments[2]:void 0,u=rr((void 0===a?n:he(a,n))-i,n-o),s=1;for(i0;)i in r?r[o]=r[i]:er(r,o),o+=s,i+=s;return r};Ce({target:"Array",proto:!0},{copyWithin:nr}),Qe("copyWithin"),Ze("Array","copyWithin"),Ce({target:"Array",proto:!0},{fill:function(t){for(var e=it(this),r=de(e),n=arguments.length,o=he(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:he(i,r);a>o;)e[o++]=t;return e}}),Qe("fill"),Ze("Array","fill");var or=function(t){if("Function"===E(t))return b(t)},ir=or(or.bind),ar=function(t,e){return J(t),void 0===e?t:s?ir(t,e):function(){return t.apply(e,arguments)}},ur=Array.isArray||function(t){return"Array"===E(t)},sr={};sr[dt("toStringTag")]="z";var cr="[object z]"===String(sr),fr=dt("toStringTag"),lr=Object,hr="Arguments"===E(function(){return arguments}()),pr=cr?E:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=lr(t),fr))?r:hr?E(e):"Object"===(n=E(e))&&T(e.callee)?"Arguments":n},vr=function(){},dr=L("Reflect","construct"),gr=/^\s*(?:class|function)\b/,yr=b(gr.exec),mr=!gr.test(vr),br=function(t){if(!T(t))return!1;try{return dr(vr,[],t),!0}catch(t){return!1}},wr=function(t){if(!T(t))return!1;switch(pr(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return mr||!!yr(gr,Kt(t))}catch(t){return!0}};wr.sham=!0;var Sr=!dr||a(function(){var t;return br(br.call)||!br(Object)||!br(function(){t=!0})||t})?wr:br,Er=dt("species"),Or=Array,xr=function(t,e){return new(function(t){var e;return ur(t)&&(Sr(e=t.constructor)&&(e===Or||ur(e.prototype))||M(e)&&null===(e=e[Er]))&&(e=void 0),void 0===e?Or:e}(t))(0===e?0:e)},Rr=b([].push),Pr=function(t){var e=1===t,r=2===t,n=3===t,o=4===t,i=6===t,a=7===t,u=5===t||i;return function(s,c,f,l){for(var h,p,v=it(s),d=R(v),g=de(d),y=ar(c,f),m=0,b=l||xr,w=e?b(s,g):r||a?b(s,0):void 0;g>m;m++)if((u||m in d)&&(p=y(h=d[m],m,v),t))if(e)w[m]=p;else if(p)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:Rr(w,h)}else switch(t){case 4:return!1;case 7:Rr(w,h)}return i?-1:n||o?o:w}},Ar={forEach:Pr(0),map:Pr(1),filter:Pr(2),some:Pr(3),every:Pr(4),find:Pr(5),findIndex:Pr(6),filterReject:Pr(7)},jr=Ar.find,kr="find",Ir=!0;kr in[]&&Array(1)[kr](function(){Ir=!1}),Ce({target:"Array",proto:!0,forced:Ir},{find:function(t){return jr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(kr),Ze("Array","find");var Tr=Ar.findIndex,Mr="findIndex",Lr=!0;Mr in[]&&Array(1)[Mr](function(){Lr=!1}),Ce({target:"Array",proto:!0,forced:Lr},{findIndex:function(t){return Tr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(Mr),Ze("Array","findIndex");var Ur=TypeError,Nr=function(t){if(t>9007199254740991)throw Ur("Maximum allowed index exceeded");return t},Cr=function(t,e,r,n,o,i,a,u){for(var s,c,f=o,l=0,h=!!a&&ar(a,u);l0&&ur(s)?(c=de(s),f=Cr(t,e,s,c,f,i-1)-1):(Nr(f+1),t[f]=s),f++),l++;return f},_r=Cr;Ce({target:"Array",proto:!0},{flatMap:function(t){var e,r=it(this),n=de(r);return J(t),(e=xr(r,0)).length=_r(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Qe("flatMap"),Ze("Array","flatMap"),Ce({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=it(this),r=de(e),n=xr(e,0);return n.length=_r(n,e,e,r,0,void 0===t?1:ce(t)),n}}),Qe("flat"),Ze("Array","flat");var Fr,Br,Dr,zr=String,Wr=function(t){if("Symbol"===pr(t))throw new TypeError("Cannot convert a Symbol value to a string");return zr(t)},qr=b("".charAt),Hr=b("".charCodeAt),$r=b("".slice),Kr=function(t){return function(e,r){var n,o,i=Wr(j(e)),a=ce(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=Hr(i,a))<55296||n>56319||a+1===u||(o=Hr(i,a+1))<56320||o>57343?t?qr(i,a):n:t?$r(i,a,a+2):o-56320+(n-55296<<10)+65536}},Gr={codeAt:Kr(!1),charAt:Kr(!0)},Vr=!a(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),Yr=Xt("IE_PROTO"),Xr=Object,Jr=Xr.prototype,Qr=Vr?Xr.getPrototypeOf:function(t){var e=it(t);if(ut(e,Yr))return e[Yr];var r=e.constructor;return T(r)&&e instanceof r?r.prototype:e instanceof Xr?Jr:null},Zr=dt("iterator"),tn=!1;[].keys&&("next"in(Dr=[].keys())?(Br=Qr(Qr(Dr)))!==Object.prototype&&(Fr=Br):tn=!0);var en=!M(Fr)||a(function(){var t={};return Fr[Zr].call(t)!==t});en&&(Fr={}),T(Fr[Zr])||ie(Fr,Zr,function(){return this});var rn={IteratorPrototype:Fr,BUGGY_SAFARI_ITERATORS:tn},nn=Ct.f,on=dt("toStringTag"),an=function(t,e,r){t&&!r&&(t=t.prototype),t&&!ut(t,on)&&nn(t,on,{configurable:!0,value:e})},un={},sn=rn.IteratorPrototype,cn=function(){return this},fn=function(t,e,r,n){var o=e+" Iterator";return t.prototype=Ve(sn,{next:d(+!n,r)}),an(t,o,!1),un[o]=cn,t},ln=function(t,e,r){try{return b(J(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}},hn=String,pn=TypeError,vn=function(t){if(function(t){return M(t)||null===t}(t))return t;throw new pn("Can't set "+hn(t)+" as a prototype")},dn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=ln(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return j(r),vn(n),M(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0),gn=zt.PROPER,yn=zt.CONFIGURABLE,mn=rn.IteratorPrototype,bn=rn.BUGGY_SAFARI_ITERATORS,wn=dt("iterator"),Sn="keys",En="values",On="entries",xn=function(){return this},Rn=function(t,e,r,n,o,i,a){fn(r,e,n);var u,s,c,l=function(t){if(t===o&&g)return g;if(!bn&&t&&t in v)return v[t];switch(t){case Sn:case En:case On:return function(){return new r(this,t)}}return function(){return new r(this)}},h=e+" Iterator",p=!1,v=t.prototype,d=v[wn]||v["@@iterator"]||o&&v[o],g=!bn&&d||l(o),y="Array"===e&&v.entries||d;if(y&&(u=Qr(y.call(new t)))!==Object.prototype&&u.next&&(Qr(u)!==mn&&(dn?dn(u,mn):T(u[wn])||ie(u,wn,xn)),an(u,h,!0)),gn&&o===En&&d&&d.name!==En&&(yn?_t(v,"name",En):(p=!0,g=function(){return f(d,this)})),o)if(s={values:l(En),keys:i?g:l(Sn),entries:l(On)},a)for(c in s)(bn||p||!(c in v))&&ie(v,c,s[c]);else Ce({target:e,proto:!0,forced:bn||p},s);return v[wn]!==g&&ie(v,wn,g,{name:o}),un[e]=g,s},Pn=function(t,e){return{value:t,done:e}},An=Gr.charAt,jn="String Iterator",kn=ne.set,In=ne.getterFor(jn);Rn(String,"String",function(t){kn(this,{type:jn,string:Wr(t),index:0})},function(){var t,e=In(this),r=e.string,n=e.index;return n>=r.length?Pn(void 0,!0):(t=An(r,n),e.index+=t.length,Pn(t,!1))});var Tn=function(t,e,r){var n,o;kt(t);try{if(!(n=Q(t,"return"))){if("throw"===e)throw r;return r}n=f(n,t)}catch(t){o=!0,n=t}if("throw"===e)throw r;if(o)throw n;return kt(n),r},Mn=function(t,e,r,n){try{return n?e(kt(r)[0],r[1]):e(r)}catch(e){Tn(t,"throw",e)}},Ln=dt("iterator"),Un=Array.prototype,Nn=function(t){return void 0!==t&&(un.Array===t||Un[Ln]===t)},Cn=function(t,e,r){u?Ct.f(t,e,d(0,r)):t[e]=r},_n=dt("iterator"),Fn=function(t){if(!P(t))return Q(t,_n)||Q(t,"@@iterator")||un[pr(t)]},Bn=TypeError,Dn=function(t,e){var r=arguments.length<2?Fn(t):e;if(J(r))return kt(f(r,t));throw new Bn(Y(t)+" is not iterable")},zn=Array,Wn=function(t){var e=it(t),r=Sr(this),n=arguments.length,o=n>1?arguments[1]:void 0,i=void 0!==o;i&&(o=ar(o,n>2?arguments[2]:void 0));var a,u,s,c,l,h,p=Fn(e),v=0;if(!p||this===zn&&Nn(p))for(a=de(e),u=r?new this(a):zn(a);a>v;v++)h=i?o(e[v],v):e[v],Cn(u,v,h);else for(u=r?new this:[],l=(c=Dn(e,p)).next;!(s=f(l,c)).done;v++)h=i?Mn(c,o,[s.value,v],!0):s.value,Cn(u,v,h);return u.length=v,u},qn=dt("iterator"),Hn=!1;try{var $n=0,Kn={next:function(){return{done:!!$n++}},return:function(){Hn=!0}};Kn[qn]=function(){return this},Array.from(Kn,function(){throw 2})}catch(t){}var Gn=function(t,e){try{if(!e&&!Hn)return!1}catch(t){return!1}var r=!1;try{var n={};n[qn]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},Vn=!Gn(function(t){Array.from(t)});Ce({target:"Array",stat:!0,forced:Vn},{from:Wn});var Yn=i,Xn=ye.includes,Jn=a(function(){return!Array(1).includes()});Ce({target:"Array",proto:!0,forced:Jn},{includes:function(t){return Xn(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe("includes"),Ze("Array","includes");var Qn=Ct.f,Zn="Array Iterator",to=ne.set,eo=ne.getterFor(Zn),ro=Rn(Array,"Array",function(t,e){to(this,{type:Zn,target:k(t),index:0,kind:e})},function(){var t=eo(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);switch(t.kind){case"keys":return Pn(r,!1);case"values":return Pn(e[r],!1)}return Pn([r,e[r]],!1)},"values"),no=un.Arguments=un.Array;if(Qe("keys"),Qe("values"),Qe("entries"),u&&"values"!==no.name)try{Qn(no,"name",{value:"values"})}catch(t){}cr||ie(Object.prototype,"toString",cr?{}.toString:function(){return"[object "+pr(this)+"]"},{unsafe:!0}),Ze("Array","values");var oo=Array,io=a(function(){function t(){}return!(oo.of.call(t)instanceof t)});Ce({target:"Array",stat:!0,forced:io},{of:function(){for(var t=0,e=arguments.length,r=new(Sr(this)?this:oo)(e);e>t;)Cn(r,t,arguments[t++]);return r.length=e,r}});var ao=dt("hasInstance"),uo=Function.prototype;ao in uo||Ct.f(uo,ao,{value:oe(function(t){if(!T(this)||!M(t))return!1;var e=this.prototype;return M(e)?U(e,t):t instanceof this},ao)}),dt("hasInstance");var so=function(t,e,r){return r.get&&oe(r.get,e,{getter:!0}),r.set&&oe(r.set,e,{setter:!0}),Ct.f(t,e,r)},co=zt.EXISTS,fo=Function.prototype,lo=b(fo.toString),ho=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,po=b(ho.exec);u&&!co&&so(fo,"name",{configurable:!0,get:function(){try{return po(ho,lo(this))[1]}catch(t){return""}}});var vo=b([].slice),go=Oe.f,yo="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],mo={f:function(t){return yo&&"Window"===E(t)?function(t){try{return go(t)}catch(t){return vo(yo)}}(t):go(k(t))}},bo=a(function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}),wo=Object.isExtensible,So=a(function(){wo(1)})||bo?function(t){return!!M(t)&&(!bo||"ArrayBuffer"!==E(t))&&(!wo||wo(t))}:wo,Eo=!a(function(){return Object.isExtensible(Object.preventExtensions({}))}),Oo=e(function(t){var e=Ct.f,r=!1,n=lt("meta"),o=0,i=function(t){e(t,n,{value:{objectID:"O"+o++,weakData:{}}})},a=t.exports={enable:function(){a.enable=function(){},r=!0;var t=Oe.f,e=b([].splice),o={};o[n]=1,t(o).length&&(Oe.f=function(r){for(var o=t(r),i=0,a=o.length;ii;i++)if((u=y(t[i]))&&U(Po,u))return u;return new Ro(!1)}n=Dn(t,o)}for(s=h?t.next:n.next;!(c=f(s,n)).done;){try{u=y(c.value)}catch(t){Tn(n,"throw",t)}if("object"==typeof u&&u&&U(Po,u))return u}return new Ro(!1)},jo=TypeError,ko=function(t,e){if(U(e,t))return t;throw new jo("Incorrect invocation")},Io=function(t,e,r){var n,o;return dn&&T(n=e.constructor)&&n!==r&&M(o=n.prototype)&&o!==r.prototype&&dn(t,o),t},To=function(t,e,r){var n=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),u=n?"set":"add",s=i[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=b(c[t]);ie(c,t,"add"===t?function(t){return e(this,0===t?0:t),this}:"delete"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:"get"===t?function(t){return o&&!M(t)?void 0:e(this,0===t?0:t)}:"has"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:function(t,r){return e(this,0===t?0:t,r),this})};if(Ue(t,!T(s)||!(o||c.forEach&&!a(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,n,u),Oo.enable();else if(Ue(t,!0)){var p=new f,v=p[u](o?{}:-0,1)!==p,d=a(function(){p.has(1)}),g=Gn(function(t){new s(t)}),y=!o&&a(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});g||((f=e(function(t,e){ko(t,c);var r=Io(new s,t,f);return P(e)||Ao(e,r[u],{that:r,AS_ENTRIES:n}),r})).prototype=c,c.constructor=f),(d||y)&&(h("delete"),h("has"),n&&h("get")),(y||v)&&h(u),o&&c.clear&&delete c.clear}return l[t]=f,Ce({global:!0,constructor:!0,forced:f!==s},l),an(f,t),o||r.setStrong(f,t,n),f},Mo=function(t,e,r){for(var n in e)ie(t,n,e[n],r);return t},Lo=dt("species"),Uo=function(t){var e=L(t);u&&e&&!e[Lo]&&so(e,Lo,{configurable:!0,get:function(){return this}})},No=Oo.fastKey,Co=ne.set,_o=ne.getterFor,Fo={getConstructor:function(t,e,r,n){var o=t(function(t,o){ko(t,i),Co(t,{type:e,index:Ve(null),first:null,last:null,size:0}),u||(t.size=0),P(o)||Ao(o,t[n],{that:t,AS_ENTRIES:r})}),i=o.prototype,a=_o(e),s=function(t,e,r){var n,o,i=a(t),s=c(t,e);return s?s.value=r:(i.last=s={index:o=No(e,!0),key:e,value:r,previous:n=i.last,next:null,removed:!1},i.first||(i.first=s),n&&(n.next=s),u?i.size++:t.size++,"F"!==o&&(i.index[o]=s)),t},c=function(t,e){var r,n=a(t),o=No(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key===e)return r};return Mo(i,{clear:function(){for(var t=a(this),e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=null),e=e.next;t.first=t.last=null,t.index=Ve(null),u?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=c(e,t);if(n){var o=n.next,i=n.previous;delete r.index[n.index],n.removed=!0,i&&(i.next=o),o&&(o.previous=i),r.first===n&&(r.first=o),r.last===n&&(r.last=i),u?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=ar(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!c(this,t)}}),Mo(i,r?{get:function(t){var e=c(this,t);return e&&e.value},set:function(t,e){return s(this,0===t?0:t,e)}}:{add:function(t){return s(this,t=0===t?0:t,t)}}),u&&so(i,"size",{configurable:!0,get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=_o(e),i=_o(n);Rn(t,e,function(t,e){Co(this,{type:n,target:t,state:o(t),kind:e,last:null})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?Pn("keys"===e?r.key:"values"===e?r.value:[r.key,r.value],!1):(t.target=null,Pn(void 0,!0))},r?"entries":"values",!r,!0),Uo(e)}};To("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var Bo=Map.prototype,Do={Map:Map,set:b(Bo.set),get:b(Bo.get),has:b(Bo.has),remove:b(Bo.delete),proto:Bo},zo=Do.Map,Wo=Do.has,qo=Do.get,Ho=Do.set,$o=b([].push),Ko=a(function(){return 1!==zo.groupBy("ab",function(t){return t}).get("a").length});Ce({target:"Map",stat:!0,forced:Ko},{groupBy:function(t,e){j(t),J(e);var r=new zo,n=0;return Ao(t,function(t){var o=e(t,n++);Wo(r,o)?$o(qo(r,o),t):Ho(r,o,[t])}),r}});var Go={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Vo=Et("span").classList,Yo=Vo&&Vo.constructor&&Vo.constructor.prototype,Xo=Yo===Object.prototype?void 0:Yo,Jo=dt("iterator"),Qo=ro.values,Zo=function(t,e){if(t){if(t[Jo]!==Qo)try{_t(t,Jo,Qo)}catch(e){t[Jo]=Qo}if(an(t,e,!0),Go[e])for(var r in ro)if(t[r]!==ro[r])try{_t(t,r,ro[r])}catch(e){t[r]=ro[r]}}};for(var ti in Go)Zo(i[ti]&&i[ti].prototype,ti);Zo(Xo,"DOMTokenList");var ei=function(t,e,r){return function(n){var o=it(n),i=arguments.length,a=i>1?arguments[1]:void 0,u=void 0!==a,s=u?ar(a,i>2?arguments[2]:void 0):void 0,c=new t,f=0;return Ao(o,function(t){var n=u?s(t,f++):t;r?e(c,kt(n)[0],n[1]):e(c,n)}),c}};Ce({target:"Map",stat:!0,forced:!0},{from:ei(Do.Map,Do.set,!0)});var ri=function(t,e,r){return function(){for(var n=new t,o=arguments.length,i=0;i1?arguments[1]:void 0);return!1!==di(e,function(t,n){if(!r(t,n,e))return!1},!0)}});var gi=Do.Map,yi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new gi;return di(e,function(t,o){r(t,o,e)&&yi(n,o,t)}),n}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{find:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{key:n}},!0);return n&&n.key}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(t){return!0===di(oi(this),function(e){if((r=e)===(n=t)||r!=r&&n!=n)return!0;var r,n},!0)}});var mi=Do.Map;Ce({target:"Map",stat:!0,forced:!0},{keyBy:function(t,e){var r=new(T(this)?this:mi);J(e);var n=J(r.set);return Ao(t,function(t){f(n,r,e(t),t)}),r}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(t){var e=di(oi(this),function(e,r){if(e===t)return{key:r}},!0);return e&&e.key}});var bi=Do.Map,wi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new bi;return di(e,function(t,o){wi(n,r(t,o,e),t)}),n}});var Si=Do.Map,Ei=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new Si;return di(e,function(t,o){Ei(n,o,r(t,o,e))}),n}});var Oi=Do.set;Ce({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(t){for(var e=oi(this),r=arguments.length,n=0;n1?arguments[1]:void 0);return!0===di(e,function(t,n){if(r(t,n,e))return!0},!0)}});var Ri=TypeError,Pi=Do.get,Ai=Do.has,ji=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{update:function(t,e){var r=oi(this),n=arguments.length;J(e);var o=Ai(r,t);if(!o&&n<3)throw new Ri("Updating absent value");var i=o?Pi(r,t):J(n>2?arguments[2]:void 0)(t,r);return ji(r,t,e(i,t,r)),r}});var ki=TypeError,Ii=function(t,e){var r,n=kt(this),o=J(n.get),i=J(n.has),a=J(n.set),u=arguments.length>2?arguments[2]:void 0;if(!T(e)&&!T(u))throw new ki("At least one callback required");return f(i,n,t)?(r=f(o,n,t),T(e)&&(r=e(r),f(a,n,t,r))):T(u)&&(r=u(),f(a,n,t,r)),r};Ce({target:"Map",proto:!0,real:!0,forced:!0},{upsert:Ii}),Ce({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:Ii});var Ti=b(1..valueOf),Mi="\t\n\v\f\r                 \u2028\u2029\ufeff",Li=b("".replace),Ui=RegExp("^["+Mi+"]+"),Ni=RegExp("(^|[^"+Mi+"])["+Mi+"]+$"),Ci=function(t){return function(e){var r=Wr(j(e));return 1&t&&(r=Li(r,Ui,"")),2&t&&(r=Li(r,Ni,"$1")),r}},_i={start:Ci(1),end:Ci(2),trim:Ci(3)},Fi=Oe.f,Bi=Rt.f,Di=Ct.f,zi=_i.trim,Wi="Number",qi=i[Wi],Hi=qi.prototype,$i=i.TypeError,Ki=b("".slice),Gi=b("".charCodeAt),Vi=Ue(Wi,!qi(" 0o1")||!qi("0b1")||qi("+0x1")),Yi=function(t){var e,r=arguments.length<1?0:qi(function(t){var e=mt(t,"number");return"bigint"==typeof e?e:function(t){var e,r,n,o,i,a,u,s,c=mt(t,"number");if(G(c))throw new $i("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=zi(c),43===(e=Gi(c,0))||45===e){if(88===(r=Gi(c,2))||120===r)return NaN}else if(48===e){switch(Gi(c,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=Ki(c,2)).length,u=0;uo)return NaN;return parseInt(i,n)}return+c}(e)}(t));return U(Hi,e=this)&&a(function(){Ti(e)})?Io(Object(r),this,Yi):r};Yi.prototype=Hi,Vi&&(Hi.constructor=Yi),Ce({global:!0,constructor:!0,wrap:!0,forced:Vi},{Number:Yi}),Vi&&function(t,e){for(var r,n=u?Fi(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)ut(e,r=n[o])&&!ut(t,r)&&Di(t,r,Bi(e,r))}(Yn[Wi],qi),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)});var Xi=i.isFinite;Ce({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&Xi(t)}});var Ji=Math.floor,Qi=Number.isInteger||function(t){return!M(t)&&isFinite(t)&&Ji(t)===t};Ce({target:"Number",stat:!0},{isInteger:Qi}),Ce({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Zi=Math.abs;Ce({target:"Number",stat:!0},{isSafeInteger:function(t){return Qi(t)&&Zi(t)<=9007199254740991}}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991});var ta=_i.trim,ea=b("".charAt),ra=i.parseFloat,na=i.Symbol,oa=na&&na.iterator,ia=1/ra(Mi+"-0")!=-Infinity||oa&&!a(function(){ra(Object(oa))})?function(t){var e=ta(Wr(t)),r=ra(e);return 0===r&&"-"===ea(e,0)?-0:r}:ra;Ce({target:"Number",stat:!0,forced:Number.parseFloat!==ia},{parseFloat:ia});var aa=_i.trim,ua=i.parseInt,sa=i.Symbol,ca=sa&&sa.iterator,fa=/^[+-]?0x/i,la=b(fa.exec),ha=8!==ua(Mi+"08")||22!==ua(Mi+"0x16")||ca&&!a(function(){ua(Object(ca))})?function(t,e){var r=aa(Wr(t));return ua(r,e>>>0||(la(fa,r)?16:10))}:ua;Ce({target:"Number",stat:!0,forced:Number.parseInt!==ha},{parseInt:ha});var pa=b(v.f),va=b([].push),da=u&&a(function(){var t=Object.create(null);return t[2]=2,!pa(t,2)}),ga=function(t){return function(e){for(var r,n=k(e),o=_e(n),i=da&&null===Qr(n),a=o.length,s=0,c=[];a>s;)r=o[s++],u&&!(i?r in n:pa(n,r))||va(c,t?[r,n[r]]:n[r]);return c}},ya={entries:ga(!0),values:ga(!1)},ma=ya.entries;Ce({target:"Object",stat:!0},{entries:function(t){return ma(t)}}),Ce({target:"Object",stat:!0,sham:!u},{getOwnPropertyDescriptors:function(t){for(var e,r,n=k(t),o=Rt.f,i=Pe(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&Cn(a,e,r);return a}});var ba=a(function(){_e(1)});Ce({target:"Object",stat:!0,forced:ba},{keys:function(t){return _e(it(t))}});var wa=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Ce({target:"Object",stat:!0},{is:wa});var Sa=ya.values;Ce({target:"Object",stat:!0},{values:function(t){return Sa(t)}}),Ce({target:"Object",stat:!0},{hasOwn:ut});var Ea=Function.prototype,Oa=Ea.apply,xa=Ea.call,Ra="object"==typeof Reflect&&Reflect.apply||(s?xa.bind(Oa):function(){return xa.apply(Oa,arguments)}),Pa=!a(function(){Reflect.apply(function(){})});Ce({target:"Reflect",stat:!0,forced:Pa},{apply:function(t,e,r){return Ra(J(t),e,kt(r))}});var Aa=Function,ja=b([].concat),ka=b([].join),Ia={},Ta=s?Aa.bind:function(t){var e=J(this),r=e.prototype,n=vo(arguments,1),o=function(){var r=ja(n,vo(arguments));return this instanceof o?function(t,e,r){if(!ut(Ia,e)){for(var n=[],o=0;ob)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}),gs=Oe.f,ys=ne.enforce,ms=dt("match"),bs=i.RegExp,ws=bs.prototype,Ss=i.SyntaxError,Es=b(ws.exec),Os=b("".charAt),xs=b("".replace),Rs=b("".indexOf),Ps=b("".slice),As=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,js=/a/g,ks=/a/g,Is=new bs(js)!==js,Ts=cs.MISSED_STICKY,Ms=cs.UNSUPPORTED_Y,Ls=u&&(!Is||Ts||ps||ds||a(function(){return ks[ms]=!1,bs(js)!==js||bs(ks)===ks||"/a/i"!==String(bs(js,"i"))}));if(Ue("RegExp",Ls)){for(var Us=function(t,e){var r,n,o,i,a,u,s=U(ws,this),c=es(t),f=void 0===e,l=[],h=t;if(!s&&c&&f&&t.constructor===Us)return t;if((c||U(ws,t))&&(t=t.source,f&&(e=os(h))),t=void 0===t?"":Wr(t),e=void 0===e?"":Wr(e),h=t,ps&&"dotAll"in js&&(n=!!e&&Rs(e,"s")>-1)&&(e=xs(e,/s/g,"")),r=e,Ts&&"sticky"in js&&(o=!!e&&Rs(e,"y")>-1)&&Ms&&(e=xs(e,/y/g,"")),ds&&(i=function(t){for(var e,r=t.length,n=0,o="",i=[],a=Ve(null),u=!1,s=!1,c=0,f="";n<=r;n++){if("\\"===(e=Os(t,n)))e+=Os(t,++n);else if("]"===e)u=!1;else if(!u)switch(!0){case"["===e:u=!0;break;case"("===e:if(o+=e,"?:"===Ps(t,n+1,n+3))continue;Es(As,Ps(t,n+1))&&(n+=2,s=!0),c++;continue;case">"===e&&s:if(""===f||ut(a,f))throw new Ss("Invalid capture group name");a[f]=!0,i[i.length]=[f,c],s=!1,f="";continue}s?f+=e:o+=e}return[o,i]}(t),t=i[0],l=i[1]),a=Io(bs(t,e),s?this:ws,Us),(n||o||l.length)&&(u=ys(a),n&&(u.dotAll=!0,u.raw=Us(function(t){for(var e,r=t.length,n=0,o="",i=!1;n<=r;n++)"\\"!==(e=Os(t,n))?i||"."!==e?("["===e?i=!0:"]"===e&&(i=!1),o+=e):o+="[\\s\\S]":o+=e+Os(t,++n);return o}(t),r)),o&&(u.sticky=!0),l.length&&(u.groups=l)),t!==h)try{_t(a,"source",""===h?"(?:)":h)}catch(t){}return a},Ns=gs(bs),Cs=0;Ns.length>Cs;)ls(Us,bs,Ns[Cs++]);ws.constructor=Us,Us.prototype=ws,ie(i,"RegExp",Us,{constructor:!0})}Uo("RegExp");var _s=zt.PROPER,Fs="toString",Bs=RegExp.prototype,Ds=Bs[Fs];(a(function(){return"/a/b"!==Ds.call({source:"a",flags:"b"})})||_s&&Ds.name!==Fs)&&ie(Bs,Fs,function(){var t=kt(this);return"/"+Wr(t.source)+"/"+Wr(os(t))},{unsafe:!0});var zs=ne.get,Ws=RegExp.prototype,qs=TypeError;u&&ps&&so(Ws,"dotAll",{configurable:!0,get:function(){if(this!==Ws){if("RegExp"===E(this))return!!zs(this).dotAll;throw new qs("Incompatible receiver, RegExp required")}}});var Hs=ne.get,$s=nt("native-string-replace",String.prototype.replace),Ks=RegExp.prototype.exec,Gs=Ks,Vs=b("".charAt),Ys=b("".indexOf),Xs=b("".replace),Js=b("".slice),Qs=function(){var t=/a/,e=/b*/g;return f(Ks,t,"a"),f(Ks,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Zs=cs.BROKEN_CARET,tc=void 0!==/()??/.exec("")[1];(Qs||tc||Zs||ps||ds)&&(Gs=function(t){var e,r,n,o,i,a,u,s=this,c=Hs(s),l=Wr(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=f(Gs,h,l),s.lastIndex=h.lastIndex,e;var p=c.groups,v=Zs&&s.sticky,d=f(rs,s),g=s.source,y=0,m=l;if(v&&(d=Xs(d,"y",""),-1===Ys(d,"g")&&(d+="g"),m=Js(l,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==Vs(l,s.lastIndex-1))&&(g="(?: "+g+")",m=" "+m,y++),r=new RegExp("^(?:"+g+")",d)),tc&&(r=new RegExp("^"+g+"$(?!\\s)",d)),Qs&&(n=s.lastIndex),o=f(Ks,v?r:s,m),v?o?(o.input=Js(o.input,y),o[0]=Js(o[0],y),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:Qs&&o&&(s.lastIndex=s.global?o.index+o[0].length:n),tc&&o&&o.length>1&&f($s,o[0],r,function(){for(i=1;i]*>)/g,Oc=/\$([$&'`]|\d{1,2})/g,xc=function(t,e,r,n,o,i){var a=r+t.length,u=n.length,s=Oc;return void 0!==o&&(o=it(o),s=Ec),wc(i,s,function(i,s){var c;switch(bc(s,0)){case"$":return"$";case"&":return t;case"`":return Sc(e,0,r);case"'":return Sc(e,a);case"<":c=o[Sc(s,1,-1)];break;default:var f=+s;if(0===f)return i;if(f>u){var l=mc(f/10);return 0===l?i:l<=u?void 0===n[l-1]?bc(s,1):n[l-1]+bc(s,1):i}c=n[f-1]}return void 0===c?"":c})},Rc=dt("replace"),Pc=Math.max,Ac=Math.min,jc=b([].concat),kc=b([].push),Ic=b("".indexOf),Tc=b("".slice),Mc="$0"==="a".replace(/./,"$0"),Lc=!!/./[Rc]&&""===/./[Rc]("a","$0"),Uc=!a(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")});pc("replace",function(t,e,r){var n=Lc?"$":"$0";return[function(t,r){var n=j(this),o=P(t)?void 0:Q(t,Rc);return o?f(o,t,n,r):f(e,Wr(n),t,r)},function(t,o){var i=kt(this),a=Wr(t);if("string"==typeof o&&-1===Ic(o,n)&&-1===Ic(o,"$<")){var u=r(e,i,a,o);if(u.done)return u.value}var s=T(o);s||(o=Wr(o));var c,f=i.global;f&&(c=i.unicode,i.lastIndex=0);for(var l,h=[];null!==(l=yc(i,a))&&(kc(h,l),f);)""===Wr(l[0])&&(i.lastIndex=dc(a,ve(i.lastIndex),c));for(var p,v="",d=0,g=0;g=d&&(v+=Tc(a,d,b)+y,d=b+m.length)}return v+Tc(a,d)}]},!Uc||!Mc||Lc),pc("search",function(t,e,r){return[function(e){var r=j(this),n=P(e)?void 0:Q(e,t);return n?f(n,e,r):new RegExp(e)[t](Wr(r))},function(t){var n=kt(this),o=Wr(t),i=r(e,n,o);if(i.done)return i.value;var a=n.lastIndex;wa(a,0)||(n.lastIndex=0);var u=yc(n,o);return wa(n.lastIndex,a)||(n.lastIndex=a),null===u?-1:u.index}]});var Nc=dt("species"),Cc=function(t,e){var r,n=kt(t).constructor;return void 0===n||P(r=kt(n)[Nc])?e:La(r)},_c=cs.UNSUPPORTED_Y,Fc=Math.min,Bc=b([].push),Dc=b("".slice),zc=!a(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),Wc="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;pc("split",function(t,e,r){var n="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:f(e,this,t,r)}:e;return[function(e,r){var o=j(this),i=P(e)?void 0:Q(e,t);return i?f(i,e,o,r):f(n,Wr(o),e,r)},function(t,o){var i=kt(this),a=Wr(t);if(!Wc){var u=r(n,i,a,o,n!==e);if(u.done)return u.value}var s=Cc(i,RegExp),c=i.unicode,f=new s(_c?"^(?:"+i.source+")":i,(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(_c?"g":"y")),l=void 0===o?4294967295:o>>>0;if(0===l)return[];if(0===a.length)return null===yc(f,a)?[a]:[];for(var h=0,p=0,v=[];p0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},Kc=b($c),Gc=b("".slice),Vc=Math.ceil,Yc=function(t){return function(e,r,n){var o,i,a=Wr(j(e)),u=ve(r),s=a.length,c=void 0===n?" ":Wr(n);return u<=s||""===c?a:((i=Kc(c,Vc((o=u-s)/c.length))).length>o&&(i=Gc(i,0,o)),t?a+i:i+a)}},Xc={start:Yc(!1),end:Yc(!0)},Jc=Xc.start,Qc=Array,Zc=RegExp.escape,tf=b("".charAt),ef=b("".charCodeAt),rf=b(1.1.toString),nf=b([].join),of=/^[0-9a-z]/i,af=/^[$()*+./?[\\\]^{|}]/,uf=RegExp("^[!\"#%&',\\-:;<=>@`~"+Mi+"]"),sf=b(of.exec),cf={"\t":"t","\n":"n","\v":"v","\f":"f","\r":"r"},ff=function(t){var e=rf(ef(t,0),16);return e.length<3?"\\x"+Jc(e,2,"0"):"\\u"+Jc(e,4,"0")},lf=!Zc||"\\x61b"!==Zc("ab");Ce({target:"RegExp",stat:!0,forced:lf},{escape:function(t){!function(t){if("string"==typeof t)return t;throw new qc("Argument is not a string")}(t);for(var e=t.length,r=Qc(e),n=0;n=56320||n+1>=e||56320!=(64512&ef(t,n+1))?r[n]=ff(o):(r[n]=o,r[++n]=tf(t,n))}}return nf(r,"")}}),To("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var hf=Set.prototype,pf={Set:Set,add:b(hf.add),has:b(hf.has),remove:b(hf.delete),proto:hf},vf=pf.has,df=function(t){return vf(t),t},gf=pf.Set,yf=pf.proto,mf=b(yf.forEach),bf=b(yf.keys),wf=bf(new gf).next,Sf=function(t,e,r){return r?ci({iterator:bf(t),next:wf},e):mf(t,e)},Ef=pf.Set,Of=pf.add,xf=function(t){var e=new Ef;return Sf(t,function(t){Of(e,t)}),e},Rf=ln(pf.proto,"size","get")||function(t){return t.size},Pf="Invalid size",Af=RangeError,jf=TypeError,kf=Math.max,If=function(t,e){this.set=t,this.size=kf(e,0),this.has=J(t.has),this.keys=J(t.keys)};If.prototype={getIterator:function(){return{iterator:t=kt(f(this.keys,this.set)),next:t.next,done:!1};var t},includes:function(t){return f(this.has,this.set,t)}};var Tf=function(t){kt(t);var e=+t.size;if(e!=e)throw new jf(Pf);var r=ce(e);if(r<0)throw new Af(Pf);return new If(t,r)},Mf=pf.has,Lf=pf.remove,Uf=function(t){var e=df(this),r=Tf(t),n=xf(e);return Rf(e)<=r.size?Sf(e,function(t){r.includes(t)&&Lf(n,t)}):ci(r.getIterator(),function(t){Mf(e,t)&&Lf(n,t)}),n},Nf=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},Cf=function(t){var e=L("Set");try{(new e)[t](Nf(0));try{return(new e)[t](Nf(-1)),!1}catch(t){return!0}}catch(t){return!1}};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("difference")},{difference:Uf});var _f=pf.Set,Ff=pf.add,Bf=pf.has,Df=function(t){var e=df(this),r=Tf(t),n=new _f;return Rf(e)>r.size?ci(r.getIterator(),function(t){Bf(e,t)&&Ff(n,t)}):Sf(e,function(t){r.includes(t)&&Ff(n,t)}),n},zf=!Cf("intersection")||a(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))});Ce({target:"Set",proto:!0,real:!0,forced:zf},{intersection:Df});var Wf=pf.has,qf=function(t){var e=df(this),r=Tf(t);if(Rf(e)<=r.size)return!1!==Sf(e,function(t){if(r.includes(t))return!1},!0);var n=r.getIterator();return!1!==ci(n,function(t){if(Wf(e,t))return Tn(n,"normal",!1)})};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isDisjointFrom")},{isDisjointFrom:qf});var Hf=function(t){var e=df(this),r=Tf(t);return!(Rf(e)>r.size)&&!1!==Sf(e,function(t){if(!r.includes(t))return!1},!0)};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isSubsetOf")},{isSubsetOf:Hf});var $f=pf.has,Kf=function(t){var e=df(this),r=Tf(t);if(Rf(e)1?arguments[1]:void 0);return!1!==Sf(e,function(t){if(!r(t,t,e))return!1},!0)}});var el=dt("iterator"),rl=Object,nl=L("Set"),ol=function(t){return function(t){return M(t)&&"number"==typeof t.size&&T(t.has)&&T(t.keys)}(t)?t:function(t){if(P(t))return!1;var e=rl(t);return void 0!==e[el]||"@@iterator"in e||ut(un,pr(e))}(t)?new nl(t):t};Ce({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(t){return f(Uf,this,ol(t))}});var il=pf.Set,al=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new il;return Sf(e,function(t){r(t,t,e)&&al(n,t)}),n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{find:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=Sf(e,function(t){if(r(t,t,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(t){return f(Df,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(t){return f(qf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(t){return f(Hf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(t){return f(Kf,this,ol(t))}});var ul=b([].join),sl=b([].push);Ce({target:"Set",proto:!0,real:!0,forced:!0},{join:function(t){var e=df(this),r=void 0===t?",":Wr(t),n=[];return Sf(e,function(t){sl(n,t)}),ul(n,r)}});var cl=pf.Set,fl=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{map:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new cl;return Sf(e,function(t){fl(n,r(t,t,e))}),n}});var ll=TypeError;Ce({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=df(this),r=arguments.length<2,n=r?void 0:arguments[1];if(J(t),Sf(e,function(o){r?(r=!1,n=o):n=t(n,o,o,e)}),r)throw new ll("Reduce of empty set with no initial value");return n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{some:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!0===Sf(e,function(t){if(r(t,t,e))return!0},!0)}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(t){return f(Xf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{union:function(t){return f(Qf,this,ol(t))}});var hl=dt("species"),pl=dt("isConcatSpreadable"),vl=W>=51||!a(function(){var t=[];return t[pl]=!1,t.concat()[0]!==t}),dl=function(t){if(!M(t))return!1;var e=t[pl];return void 0!==e?!!e:ur(t)},gl=!(vl&&(W>=51||!a(function(){var t=[];return(t.constructor={})[hl]=function(){return{foo:1}},1!==t.concat(Boolean).foo})));Ce({target:"Array",proto:!0,arity:1,forced:gl},{concat:function(t){var e,r,n,o,i,a=it(this),u=xr(a,0),s=0;for(e=-1,n=arguments.length;e1?arguments[1]:void 0,n=e.length,o=void 0===r?n:ip(ve(r),n),i=Wr(t);return op(e,o-i.length,o)===i}}),Ze("String","endsWith");var sp=RangeError,cp=String.fromCharCode,fp=String.fromCodePoint,lp=b([].join);Ce({target:"String",stat:!0,arity:1,forced:!!fp&&1!==fp.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],he(e,1114111)!==e)throw new sp(e+" is not a valid code point");r[o]=e<65536?cp(e):cp(55296+((e-=65536)>>10),e%1024+56320)}return lp(r,"")}});var hp=b("".indexOf);Ce({target:"String",proto:!0,forced:!rp("includes")},{includes:function(t){return!!~hp(Wr(j(this)),Wr(tp(t)),arguments.length>1?arguments[1]:void 0)}}),Ze("String","includes"),b(un.String);var pp=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(_),vp=Xc.start;Ce({target:"String",proto:!0,forced:pp},{padStart:function(t){return vp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padStart");var dp=Xc.end;Ce({target:"String",proto:!0,forced:pp},{padEnd:function(t){return dp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padEnd");var gp=b([].push),yp=b([].join);Ce({target:"String",stat:!0},{raw:function(t){var e=k(it(t).raw),r=de(e);if(!r)return"";for(var n=arguments.length,o=[],i=0;;){if(gp(o,Wr(e[i++])),i===r)return yp(o,"");i1?arguments[1]:void 0,e.length)),n=Wr(t);return bp(e,r,r+n.length)===n}}),Ze("String","startsWith");var Op=zt.PROPER,xp=function(t){return a(function(){return!!Mi[t]()||"​…᠎"!=="​…᠎"[t]()||Op&&Mi[t].name!==t})},Rp=_i.start,Pp=xp("trimStart")?function(){return Rp(this)}:"".trimStart;Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==Pp},{trimLeft:Pp}),Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==Pp},{trimStart:Pp}),Ze("String","trimLeft");var Ap=_i.end,jp=xp("trimEnd")?function(){return Ap(this)}:"".trimEnd;Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==jp},{trimRight:jp}),Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==jp},{trimEnd:jp}),Ze("String","trimRight");var kp=Object.getOwnPropertyDescriptor,Ip=function(t){if(!u)return i[t];var e=kp(i,t);return e&&e.value},Tp=dt("iterator"),Mp=!a(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),n="";return t.pathname="c%20d",e.forEach(function(t,r){e.delete("b"),n+=r+t}),r.delete("a",2),r.delete("b",void 0),!e.size&&!u||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Tp]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host}),Lp=TypeError,Up=function(t,e){if(t0;)t[o]=t[--o];o!==i++&&(t[o]=n)}else for(var a=Np(r/2),u=Cp(vo(t,0,a),e),s=Cp(vo(t,a),e),c=u.length,f=s.length,l=0,h=0;l0&&0!=(t&r);r>>=1)e++;return e},pv=function(t){var e=null;switch(t.length){case 1:e=t[0];break;case 2:e=(31&t[0])<<6|63&t[1];break;case 3:e=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:e=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return e>1114111?null:e},vv=function(t){for(var e=(t=nv(t,cv," ")).length,r="",n=0;ne){r+="%",n++;continue}var i=lv(t,n+1);if(i!=i){r+=o,n++;continue}n+=2;var a=hv(i);if(0===a)o=Jp(i);else{if(1===a||a>4){r+="�",n++;continue}for(var u=[i],s=1;se||"%"!==tv(t,n));){var c=lv(t,n+1);if(c!=c){n+=3;break}if(c>191||c<128)break;rv(u,c),n+=2,s++}if(u.length!==a){r+="�";continue}var f=pv(u);null===f?r+="�":o=Qp(f)}}r+=o,n++}return r},dv=/[!'()~]|%20/g,gv={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},yv=function(t){return gv[t]},mv=function(t){return nv(Xp(t),dv,yv)},bv=fn(function(t,e){zp(this,{type:Dp,target:Wp(t).entries,index:0,kind:e})},Bp,function(){var t=qp(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);var n=e[r];switch(t.kind){case"keys":return Pn(n.key,!1);case"values":return Pn(n.value,!1)}return Pn([n.key,n.value],!1)},!0),wv=function(t){this.entries=[],this.url=null,void 0!==t&&(M(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===tv(t,0)?uv(t,1):t:Wr(t)))};wv.prototype={type:Bp,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,r,n,o,i,a,u,s=this.entries,c=Fn(t);if(c)for(r=(e=Dn(t,c)).next;!(n=f(r,e)).done;){if(o=Dn(kt(n.value)),(a=f(i=o.next,o)).done||(u=f(i,o)).done||!f(i,o).done)throw new Yp("Expected sequence with length 2");rv(s,{key:Wr(a.value),value:Wr(u.value)})}else for(var l in t)ut(t,l)&&rv(s,{key:l,value:Wr(t[l])})},parseQuery:function(t){if(t)for(var e,r,n=this.entries,o=av(t,"&"),i=0;i0?arguments[0]:void 0));u||(this.size=t.entries.length)},Ev=Sv.prototype;if(Mo(Ev,{append:function(t,e){var r=Wp(this);Up(arguments.length,2),rv(r.entries,{key:Wr(t),value:Wr(e)}),u||this.length++,r.updateURL()},delete:function(t){for(var e=Wp(this),r=Up(arguments.length,1),n=e.entries,o=Wr(t),i=r<2?void 0:arguments[1],a=void 0===i?i:Wr(i),s=0;se.key?1:-1}),t.updateURL()},forEach:function(t){for(var e,r=Wp(this).entries,n=ar(t,arguments.length>1?arguments[1]:void 0),o=0;o1?Rv(arguments[1]):{})}}),T($p)){var Pv=function(t){return ko(this,Gp),new $p(t,arguments.length>1?Rv(arguments[1]):{})};Gp.constructor=Pv,Pv.prototype=Gp,Ce({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Pv})}}var Av={URLSearchParams:Sv,getState:Wp},jv=URLSearchParams,kv=jv.prototype,Iv=b(kv.append),Tv=b(kv.delete),Mv=b(kv.forEach),Lv=b([].push),Uv=new jv("a=1&a=2&b=3");Uv.delete("a",1),Uv.delete("b",void 0),Uv+""!="a=2"&&ie(kv,"delete",function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return Tv(this,t);var n=[];Mv(this,function(t,e){Lv(n,{key:e,value:t})}),Up(e,1);for(var o,i=Wr(t),a=Wr(r),u=0,s=0,c=!1,f=n.length;uo;)for(var s,c=R(arguments[o++]),l=i?$v(_e(c),i(c)):_e(c),h=l.length,p=0;h>p;)s=l[p++],u&&!f(a,c,s)||(r[s]=c[s]);return r}:qv,Gv=2147483647,Vv=/[^\0-\u007E]/,Yv=/[.\u3002\uFF0E\uFF61]/g,Xv="Overflow: input needs wider integers to process",Jv=RangeError,Qv=b(Yv.exec),Zv=Math.floor,td=String.fromCharCode,ed=b("".charCodeAt),rd=b([].join),nd=b([].push),od=b("".replace),id=b("".split),ad=b("".toLowerCase),ud=function(t){return t+22+75*(t<26)},sd=function(t,e,r){var n=0;for(t=r?Zv(t/700):t>>1,t+=Zv(t/e);t>455;)t=Zv(t/35),n+=36;return Zv(n+36*t/(t+38))},cd=function(t){var e=[];t=function(t){for(var e=[],r=0,n=t.length;r=55296&&o<=56319&&r=i&&nZv((Gv-a)/l))throw new Jv(Xv);for(a+=(f-i)*l,i=f,r=0;rGv)throw new Jv(Xv);if(n===i){for(var h=a,p=36;;){var v=p<=u?1:p>=u+26?26:p-u;if(h?@[\\\]^|]/,qd=/[\0\t\n\r #/:<>?@[\\\]^|]/,Hd=/^[\u0000-\u0020]+/,$d=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Kd=/[\t\n\r]/g,Gd=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)Td(e,t%256),t=md(t/256);return Ed(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r?n:e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=Od(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},Vd={},Yd=Kv({},Vd,{" ":1,'"':1,"<":1,">":1,"`":1}),Xd=Kv({},Yd,{"#":1,"?":1,"{":1,"}":1}),Jd=Kv({},Xd,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Qd=function(t,e){var r=fd(t,0);return r>32&&r<127&&!ut(e,t)?t:encodeURIComponent(t)},Zd={ftp:21,file:null,http:80,https:443,ws:80,wss:443},tg=function(t,e){var r;return 2===t.length&&Sd(Nd,wd(t,0))&&(":"===(r=wd(t,1))||!e&&"|"===r)},eg=function(t){var e;return t.length>1&&tg(kd(t,0,2))&&(2===t.length||"/"===(e=wd(t,2))||"\\"===e||"?"===e||"#"===e)},rg=function(t){return"."===t||"%2e"===Id(t)},ng={},og={},ig={},ag={},ug={},sg={},cg={},fg={},lg={},hg={},pg={},vg={},dg={},gg={},yg={},mg={},bg={},wg={},Sg={},Eg={},Og={},xg=function(t,e,r){var n,o,i,a=Wr(t);if(e){if(o=this.parse(a))throw new gd(o);this.searchParams=null}else{if(void 0!==r&&(n=new xg(r,!0)),o=this.parse(a,null,n))throw new gd(o);(i=vd(new pd)).bindURL(this),this.searchParams=i}};xg.prototype={type:"URL",parse:function(t,e,r){var n,o,i,a,u,s=this,c=e||ng,f=0,l="",h=!1,p=!1,v=!1;for(t=Wr(t),e||(s.scheme="",s.username="",s.password="",s.host=null,s.port=null,s.path=[],s.query=null,s.fragment=null,s.cannotBeABaseURL=!1,t=Pd(t,Hd,""),t=Pd(t,$d,"$1")),t=Pd(t,Kd,""),n=Wn(t);f<=n.length;){switch(o=n[f],c){case ng:if(!o||!Sd(Nd,o)){if(e)return Md;c=ig;continue}l+=Id(o),c=og;break;case og:if(o&&(Sd(Cd,o)||"+"===o||"-"===o||"."===o))l+=Id(o);else{if(":"!==o){if(e)return Md;l="",c=ig,f=0;continue}if(e&&(s.isSpecial()!==ut(Zd,l)||"file"===l&&(s.includesCredentials()||null!==s.port)||"file"===s.scheme&&!s.host))return;if(s.scheme=l,e)return void(s.isSpecial()&&Zd[s.scheme]===s.port&&(s.port=null));l="","file"===s.scheme?c=gg:s.isSpecial()&&r&&r.scheme===s.scheme?c=ag:s.isSpecial()?c=fg:"/"===n[f+1]?(c=ug,f++):(s.cannotBeABaseURL=!0,Rd(s.path,""),c=Sg)}break;case ig:if(!r||r.cannotBeABaseURL&&"#"!==o)return Md;if(r.cannotBeABaseURL&&"#"===o){s.scheme=r.scheme,s.path=vo(r.path),s.query=r.query,s.fragment="",s.cannotBeABaseURL=!0,c=Og;break}c="file"===r.scheme?gg:sg;continue;case ag:if("/"!==o||"/"!==n[f+1]){c=sg;continue}c=lg,f++;break;case ug:if("/"===o){c=hg;break}c=wg;continue;case sg:if(s.scheme=r.scheme,o===Wv)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query;else if("/"===o||"\\"===o&&s.isSpecial())c=cg;else if("?"===o)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query="",c=Eg;else{if("#"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.path.length--,c=wg;continue}s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og}break;case cg:if(!s.isSpecial()||"/"!==o&&"\\"!==o){if("/"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,c=wg;continue}c=hg}else c=lg;break;case fg:if(c=lg,"/"!==o||"/"!==wd(l,f+1))continue;f++;break;case lg:if("/"!==o&&"\\"!==o){c=hg;continue}break;case hg:if("@"===o){h&&(l="%40"+l),h=!0,i=Wn(l);for(var d=0;d65535)return Ud;s.port=s.isSpecial()&&m===Zd[s.scheme]?null:m,l=""}if(e)return;c=bg;continue}return Ud}l+=o;break;case gg:if(s.scheme="file","/"===o||"\\"===o)c=yg;else{if(!r||"file"!==r.scheme){c=wg;continue}switch(o){case Wv:s.host=r.host,s.path=vo(r.path),s.query=r.query;break;case"?":s.host=r.host,s.path=vo(r.path),s.query="",c=Eg;break;case"#":s.host=r.host,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og;break;default:eg(Ed(vo(n,f),""))||(s.host=r.host,s.path=vo(r.path),s.shortenPath()),c=wg;continue}}break;case yg:if("/"===o||"\\"===o){c=mg;break}r&&"file"===r.scheme&&!eg(Ed(vo(n,f),""))&&(tg(r.path[0],!0)?Rd(s.path,r.path[0]):s.host=r.host),c=wg;continue;case mg:if(o===Wv||"/"===o||"\\"===o||"?"===o||"#"===o){if(!e&&tg(l))c=wg;else if(""===l){if(s.host="",e)return;c=bg}else{if(a=s.parseHost(l))return a;if("localhost"===s.host&&(s.host=""),e)return;l="",c=bg}continue}l+=o;break;case bg:if(s.isSpecial()){if(c=wg,"/"!==o&&"\\"!==o)continue}else if(e||"?"!==o)if(e||"#"!==o){if(o!==Wv&&(c=wg,"/"!==o))continue}else s.fragment="",c=Og;else s.query="",c=Eg;break;case wg:if(o===Wv||"/"===o||"\\"===o&&s.isSpecial()||!e&&("?"===o||"#"===o)){if(".."===(u=Id(u=l))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(s.shortenPath(),"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,"")):rg(l)?"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,""):("file"===s.scheme&&!s.path.length&&tg(l)&&(s.host&&(s.host=""),l=wd(l,0)+":"),Rd(s.path,l)),l="","file"===s.scheme&&(o===Wv||"?"===o||"#"===o))for(;s.path.length>1&&""===s.path[0];)Ad(s.path);"?"===o?(s.query="",c=Eg):"#"===o&&(s.fragment="",c=Og)}else l+=Qd(o,Xd);break;case Sg:"?"===o?(s.query="",c=Eg):"#"===o?(s.fragment="",c=Og):o!==Wv&&(s.path[0]+=Qd(o,Vd));break;case Eg:e||"#"!==o?o!==Wv&&("'"===o&&s.isSpecial()?s.query+="%27":s.query+="#"===o?"%23":Qd(o,Vd)):(s.fragment="",c=Og);break;case Og:o!==Wv&&(s.fragment+=Qd(o,Yd))}f++}},parseHost:function(t){var e,r,n;if("["===wd(t,0)){if("]"!==wd(t,t.length-1))return Ld;if(e=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return wd(t,l)};if(":"===h()){if(":"!==wd(t,1))return;l+=2,f=++c}for(;h();){if(8===c)return;if(":"!==h()){for(e=r=0;r<4&&Sd(zd,h());)e=16*e+yd(h(),16),l++,r++;if("."===h()){if(0===r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."===h()&&n<4))return;l++}if(!Sd(_d,h()))return;for(;Sd(_d,h());){if(i=yd(h(),10),null===o)o=i;else{if(0===o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!==n||c++}if(4!==n)return;break}if(":"===h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!==c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!==c)return;return s}(kd(t,1,-1)),!e)return Ld;this.host=e}else if(this.isSpecial()){if(t=function(t){var e,r,n=[],o=id(od(ad(t),Yv,"."),".");for(e=0;e4)return t;for(r=[],n=0;n1&&"0"===wd(o,0)&&(i=Sd(Fd,o)?16:8,o=kd(o,8===i?1:2)),""===o)a=0;else{if(!Sd(10===i?Dd:8===i?Bd:zd,o))return t;a=yd(o,i)}Rd(r,a)}for(n=0;n=bd(256,5-e))return null}else if(a>255)return null;for(u=xd(r),n=0;n1?arguments[1]:void 0,n=ld(e,new xg(t,!1,r));u||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Pg=Rg.prototype,Ag=function(t,e){return{get:function(){return hd(this)[t]()},set:e&&function(t){return hd(this)[e](t)},configurable:!0,enumerable:!0}};if(u&&(so(Pg,"href",Ag("serialize","setHref")),so(Pg,"origin",Ag("getOrigin")),so(Pg,"protocol",Ag("getProtocol","setProtocol")),so(Pg,"username",Ag("getUsername","setUsername")),so(Pg,"password",Ag("getPassword","setPassword")),so(Pg,"host",Ag("getHost","setHost")),so(Pg,"hostname",Ag("getHostname","setHostname")),so(Pg,"port",Ag("getPort","setPort")),so(Pg,"pathname",Ag("getPathname","setPathname")),so(Pg,"search",Ag("getSearch","setSearch")),so(Pg,"searchParams",Ag("getSearchParams")),so(Pg,"hash",Ag("getHash","setHash"))),ie(Pg,"toJSON",function(){return hd(this).serialize()},{enumerable:!0}),ie(Pg,"toString",function(){return hd(this).serialize()},{enumerable:!0}),dd){var jg=dd.createObjectURL,kg=dd.revokeObjectURL;jg&&ie(Rg,"createObjectURL",ar(jg,dd)),kg&&ie(Rg,"revokeObjectURL",ar(kg,dd))}an(Rg,"URL"),Ce({global:!0,constructor:!0,forced:!Mp,sham:!u},{URL:Rg});var Ig=L("URL"),Tg=Mp&&a(function(){Ig.canParse()}),Mg=a(function(){return 1!==Ig.canParse.length});Ce({target:"URL",stat:!0,forced:!Tg||Mg},{canParse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return!!new Ig(r,n)}catch(t){return!1}}});var Lg=L("URL");Ce({target:"URL",stat:!0,forced:!Mp},{parse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return new Lg(r,n)}catch(t){return null}}}),Ce({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return f(URL.prototype.toString,this)}});var Ug=WeakMap.prototype,Ng={WeakMap:WeakMap,set:b(Ug.set),get:b(Ug.get),has:b(Ug.has),remove:b(Ug.delete)},Cg=Ng.has,_g=function(t){return Cg(t),t},Fg=Ng.get,Bg=Ng.has,Dg=Ng.set;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{emplace:function(t,e){var r,n,o=_g(this);return Bg(o,t)?(r=Fg(o,t),"update"in e&&(r=e.update(r,t,o),Dg(o,t,r)),r):(n=e.insert(t,o),Dg(o,t,n),n)}}),Ce({target:"WeakMap",stat:!0,forced:!0},{from:ei(Ng.WeakMap,Ng.set,!0)}),Ce({target:"WeakMap",stat:!0,forced:!0},{of:ri(Ng.WeakMap,Ng.set,!0)});var zg=Ng.remove;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=_g(this),r=!0,n=0,o=arguments.length;n2&&(n=r,M(o=arguments[2])&&"cause"in o&&_t(n,"cause",o.cause));var s=[];return Ao(t,ny,{that:s}),_t(r,"errors",s),r};dn?dn(oy,ry):Ae(oy,ry,{name:!0});var iy=oy.prototype=Ve(ry.prototype,{constructor:d(1,oy),message:d(1,""),name:d(1,"AggregateError")});Ce({global:!0,constructor:!0,arity:2},{AggregateError:oy});var ay,uy,sy,cy,fy=function(t){return _.slice(0,t.length)===t},ly=fy("Bun/")?"BUN":fy("Cloudflare-Workers")?"CLOUDFLARE":fy("Deno/")?"DENO":fy("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===E(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST",hy="NODE"===ly,py=/(?:ipad|iphone|ipod).*applewebkit/i.test(_),vy=i.setImmediate,dy=i.clearImmediate,gy=i.process,yy=i.Dispatch,my=i.Function,by=i.MessageChannel,wy=i.String,Sy=0,Ey={},Oy="onreadystatechange";a(function(){ay=i.location});var xy=function(t){if(ut(Ey,t)){var e=Ey[t];delete Ey[t],e()}},Ry=function(t){return function(){xy(t)}},Py=function(t){xy(t.data)},Ay=function(t){i.postMessage(wy(t),ay.protocol+"//"+ay.host)};vy&&dy||(vy=function(t){Up(arguments.length,1);var e=T(t)?t:my(t),r=vo(arguments,1);return Ey[++Sy]=function(){Ra(e,void 0,r)},uy(Sy),Sy},dy=function(t){delete Ey[t]},hy?uy=function(t){gy.nextTick(Ry(t))}:yy&&yy.now?uy=function(t){yy.now(Ry(t))}:by&&!py?(cy=(sy=new by).port2,sy.port1.onmessage=Py,uy=ar(cy.postMessage,cy)):i.addEventListener&&T(i.postMessage)&&!i.importScripts&&ay&&"file:"!==ay.protocol&&!a(Ay)?(uy=Ay,i.addEventListener("message",Py,!1)):uy=Oy in Et("script")?function(t){De.appendChild(Et("script"))[Oy]=function(){De.removeChild(this),xy(t)}}:function(t){setTimeout(Ry(t),0)});var jy={set:vy,clear:dy},ky=function(){this.head=null,this.tail=null};ky.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var Iy,Ty,My,Ly,Uy,Ny=ky,Cy=/ipad|iphone|ipod/i.test(_)&&"undefined"!=typeof Pebble,_y=/web0s(?!.*chrome)/i.test(_),Fy=jy.set,By=i.MutationObserver||i.WebKitMutationObserver,Dy=i.document,zy=i.process,Wy=i.Promise,qy=Ip("queueMicrotask");if(!qy){var Hy=new Ny,$y=function(){var t,e;for(hy&&(t=zy.domain)&&t.exit();e=Hy.get();)try{e()}catch(t){throw Hy.head&&Iy(),t}t&&t.enter()};py||hy||_y||!By||!Dy?!Cy&&Wy&&Wy.resolve?((Ly=Wy.resolve(void 0)).constructor=Wy,Uy=ar(Ly.then,Ly),Iy=function(){Uy($y)}):hy?Iy=function(){zy.nextTick($y)}:(Fy=ar(Fy,i),Iy=function(){Fy($y)}):(Ty=!0,My=Dy.createTextNode(""),new By($y).observe(My,{characterData:!0}),Iy=function(){My.data=Ty=!Ty}),qy=function(t){Hy.head||Iy(),Hy.add(t)}}var Ky,Gy,Vy,Yy=qy,Xy=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Jy=i.Promise,Qy=dt("species"),Zy=!1,tm=T(i.PromiseRejectionEvent),em=Ue("Promise",function(){var t=Kt(Jy),e=t!==String(Jy);if(!e&&66===W)return!0;if(!W||W<51||!/native code/.test(t)){var r=new Jy(function(t){t(1)}),n=function(t){t(function(){},function(){})};if((r.constructor={})[Qy]=n,!(Zy=r.then(function(){})instanceof n))return!0}return!(e||"BROWSER"!==ly&&"DENO"!==ly||tm)}),rm={CONSTRUCTOR:em,REJECTION_EVENT:tm,SUBCLASSING:Zy},nm=TypeError,om=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new nm("Bad Promise constructor");e=t,r=n}),this.resolve=J(e),this.reject=J(r)},im={f:function(t){return new om(t)}},am=jy.set,um="Promise",sm=rm.CONSTRUCTOR,cm=rm.REJECTION_EVENT,fm=rm.SUBCLASSING,lm=ne.getterFor(um),hm=ne.set,pm=Jy&&Jy.prototype,vm=Jy,dm=pm,gm=i.TypeError,ym=i.document,mm=i.process,bm=im.f,wm=bm,Sm=!!(ym&&ym.createEvent&&i.dispatchEvent),Em="unhandledrejection",Om=function(t){var e;return!(!M(t)||!T(e=t.then))&&e},xm=function(t,e){var r,n,o,i=e.value,a=1===e.state,u=a?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&km(e),e.rejection=1),!0===u?r=i:(l&&l.enter(),r=u(i),l&&(l.exit(),o=!0)),r===t.promise?c(new gm("Promise-chain cycle")):(n=Om(r))?f(n,r,s,c):s(r)):c(i)}catch(t){l&&!o&&l.exit(),c(t)}},Rm=function(t,e){t.notified||(t.notified=!0,Yy(function(){for(var r,n=t.reactions;r=n.get();)xm(r,t);t.notified=!1,e&&!t.rejection&&Am(t)}))},Pm=function(t,e,r){var n,o;Sm?((n=ym.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),i.dispatchEvent(n)):n={promise:e,reason:r},!cm&&(o=i["on"+t])?o(n):t===Em&&function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}("Unhandled promise rejection",r)},Am=function(t){f(am,i,function(){var e,r=t.facade,n=t.value;if(jm(t)&&(e=Xy(function(){hy?mm.emit("unhandledRejection",n,r):Pm(Em,r,n)}),t.rejection=hy||jm(t)?2:1,e.error))throw e.value})},jm=function(t){return 1!==t.rejection&&!t.parent},km=function(t){f(am,i,function(){var e=t.facade;hy?mm.emit("rejectionHandled",e):Pm("rejectionhandled",e,t.value)})},Im=function(t,e,r){return function(n){t(e,n,r)}},Tm=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,Rm(t,!0))},Mm=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new gm("Promise can't be resolved itself");var n=Om(e);n?Yy(function(){var r={done:!1};try{f(n,e,Im(Mm,r,t),Im(Tm,r,t))}catch(e){Tm(r,e,t)}}):(t.value=e,t.state=1,Rm(t,!1))}catch(e){Tm({done:!1},e,t)}}};if(sm&&(vm=function(t){ko(this,dm),J(t),f(Ky,this);var e=lm(this);try{t(Im(Mm,e),Im(Tm,e))}catch(t){Tm(e,t)}},(Ky=function(t){hm(this,{type:um,done:!1,notified:!1,parent:!1,reactions:new Ny,rejection:!1,state:0,value:null})}).prototype=ie(dm=vm.prototype,"then",function(t,e){var r=lm(this),n=bm(Cc(this,vm));return r.parent=!0,n.ok=!T(t)||t,n.fail=T(e)&&e,n.domain=hy?mm.domain:void 0,0===r.state?r.reactions.add(n):Yy(function(){xm(n,r)}),n.promise}),Gy=function(){var t=new Ky,e=lm(t);this.promise=t,this.resolve=Im(Mm,e),this.reject=Im(Tm,e)},im.f=bm=function(t){return t===vm||void 0===t?new Gy(t):wm(t)},T(Jy)&&pm!==Object.prototype)){Vy=pm.then,fm||ie(pm,"then",function(t,e){var r=this;return new vm(function(t,e){f(Vy,r,t,e)}).then(t,e)},{unsafe:!0});try{delete pm.constructor}catch(t){}dn&&dn(pm,dm)}Ce({global:!0,constructor:!0,wrap:!0,forced:sm},{Promise:vm}),an(vm,um,!1),Uo(um);var Lm=rm.CONSTRUCTOR||!Gn(function(t){Jy.all(t).then(void 0,function(){})});Ce({target:"Promise",stat:!0,forced:Lm},{all:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),i=[],a=0,u=1;Ao(t,function(t){var s=a++,c=!1;u++,f(r,e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise}});var Um=Jy&&Jy.prototype;if(Ce({target:"Promise",proto:!0,forced:rm.CONSTRUCTOR,real:!0},{catch:function(t){return this.then(void 0,t)}}),T(Jy)){var Nm=L("Promise").prototype.catch;Um.catch!==Nm&&ie(Um,"catch",Nm,{unsafe:!0})}Ce({target:"Promise",stat:!0,forced:Lm},{race:function(t){var e=this,r=im.f(e),n=r.reject,o=Xy(function(){var o=J(e.resolve);Ao(t,function(t){f(o,e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{reject:function(t){var e=im.f(this);return(0,e.reject)(t),e.promise}});var Cm=function(t,e){if(kt(t),M(e)&&e.constructor===t)return e;var r=im.f(t);return(0,r.resolve)(e),r.promise};Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{resolve:function(t){return Cm(this,t)}}),Ce({target:"Promise",stat:!0,forced:Lm},{allSettled:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),o=[],i=0,a=1;Ao(t,function(t){var u=i++,s=!1;a++,f(r,e,t).then(function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var _m="No one promise resolved";Ce({target:"Promise",stat:!0,forced:Lm},{any:function(t){var e=this,r=L("AggregateError"),n=im.f(e),o=n.resolve,i=n.reject,a=Xy(function(){var n=J(e.resolve),a=[],u=0,s=1,c=!1;Ao(t,function(t){var l=u++,h=!1;s++,f(n,e,t).then(function(t){h||c||(c=!0,o(t))},function(t){h||c||(h=!0,a[l]=t,--s||i(new r(a,_m)))})}),--s||i(new r(a,_m))});return a.error&&i(a.value),n.promise}}),Ce({target:"Promise",stat:!0},{withResolvers:function(){var t=im.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var Fm=Jy&&Jy.prototype,Bm=!!Jy&&a(function(){Fm.finally.call({then:function(){}},function(){})});if(Ce({target:"Promise",proto:!0,real:!0,forced:Bm},{finally:function(t){var e=Cc(this,L("Promise")),r=T(t);return this.then(r?function(r){return Cm(e,t()).then(function(){return r})}:t,r?function(r){return Cm(e,t()).then(function(){throw r})}:t)}}),T(Jy)){var Dm=L("Promise").prototype.finally;Fm.finally!==Dm&&ie(Fm,"finally",Dm,{unsafe:!0})}var zm=i.Promise,Wm=!1,qm=!zm||!zm.try||Xy(function(){zm.try(function(t){Wm=8===t},8)}).error||!Wm;Ce({target:"Promise",stat:!0,forced:qm},{try:function(t){var e=arguments.length>1?vo(arguments,1):[],r=im.f(this),n=Xy(function(){return Ra(J(t),void 0,e)});return(n.error?r.reject:r.resolve)(n.value),r.promise}}),Ze("Promise","finally");var Hm="URLSearchParams"in self,$m="Symbol"in self&&"iterator"in Symbol,Km="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),Gm="FormData"in self,Vm="ArrayBuffer"in self;if(Vm)var Ym=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],Xm=ArrayBuffer.isView||function(t){return t&&Ym.indexOf(Object.prototype.toString.call(t))>-1};function Jm(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function Qm(t){return"string"!=typeof t&&(t=String(t)),t}function Zm(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return $m&&(e[Symbol.iterator]=function(){return e}),e}function tb(t){this.map={},t instanceof tb?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function eb(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function rb(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function nb(t){var e=new FileReader,r=rb(e);return e.readAsArrayBuffer(t),r}function ob(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function ib(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:Km&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:Gm&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:Hm&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():Vm&&Km&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=ob(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Vm&&(ArrayBuffer.prototype.isPrototypeOf(t)||Xm(t))?this._bodyArrayBuffer=ob(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Hm&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},Km&&(this.blob=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?eb(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(nb)}),this.text=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=rb(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function sb(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function cb(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new tb(e.headers),this.url=e.url||"",this._initBody(t)}ub.prototype.clone=function(){return new ub(this,{body:this._bodyInit})},ib.call(ub.prototype),ib.call(cb.prototype),cb.prototype.clone=function(){return new cb(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new tb(this.headers),url:this.url})},cb.error=function(){var t=new cb(null,{status:0,statusText:""});return t.type="error",t};var fb=[301,302,303,307,308];cb.redirect=function(t,e){if(-1===fb.indexOf(e))throw new RangeError("Invalid status code");return new cb(null,{status:e,headers:{location:t}})};var lb=self.DOMException;try{new lb}catch(t){(lb=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),lb.prototype.constructor=lb}function hb(t,e){return new Promise(function(r,n){var o=new ub(t,e);if(o.signal&&o.signal.aborted)return n(new lb("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new tb,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new cb("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new lb("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&Km&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}hb.polyfill=!0,self.fetch||(self.fetch=hb,self.Headers=tb,self.Request=ub,self.Response=cb);var pb=Object.getOwnPropertySymbols,vb=Object.prototype.hasOwnProperty,db=Object.prototype.propertyIsEnumerable,gb=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),i=1;i{t.v(e=>Promise.all(["static/chunks/3686d57edf1023fb.js"].map(e=>t.l(e))).then(()=>e(54214)))}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/b96ffc94b0d8fbba.js b/src/hyperview/server/static/_next/static/chunks/b96ffc94b0d8fbba.js deleted file mode 100644 index 840f9b7..0000000 --- a/src/hyperview/server/static/_next/static/chunks/b96ffc94b0d8fbba.js +++ /dev/null @@ -1,2 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50407,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getAssetPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(84524);function l(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new r.InvariantError(`Expected document.currentScript to be a ",a=a.removeChild(a.firstChild);break;case"select":a="string"==typeof r.is?u.createElement("select",{is:r.is}):u.createElement("select"),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a="string"==typeof r.is?u.createElement(l,{is:r.is}):u.createElement(l)}}a[eW]=t,a[eK]=r;e:for(u=t.child;null!==u;){if(5===u.tag||6===u.tag)a.appendChild(u.stateNode);else if(4!==u.tag&&27!==u.tag&&null!==u.child){u.child.return=u,u=u.child;continue}if(u===t)break;for(;null===u.sibling;){if(null===u.return||u.return===t)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}switch(t.stateNode=a,cl(a,l,r),l){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break;case"img":r=!0;break;default:r=!1}r&&ou(t)}}return of(t),t.subtreeFlags&=-0x2000001,oo(t,t.type,null===e?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ou(t);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));if(e=en.current,rY(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(l=rB))switch(l.tag){case 27:case 5:r=l.memoizedProps}e[eW]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||ct(e.nodeValue,n)))||rQ(t,!0)}else(e=ci(e).createTextNode(r))[eW]=t,t.stateNode=e}return of(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=rY(t),null!==n){if(null===e){if(!r)throw Error(i(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(i(557));e[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),e=!1}else n=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e){if(256&t.flags)return l7(t),t;return l7(t),null}if(0!=(128&t.flags))throw Error(i(558))}return of(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(l=rY(t),null!==r&&null!==r.dehydrated){if(null===e){if(!l)throw Error(i(318));if(!(l=null!==(l=t.memoizedState)?l.dehydrated:null))throw Error(i(317));l[eW]=t}else rJ(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;of(t),l=!1}else l=rZ(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=l),l=!0;if(!l){if(256&t.flags)return l7(t),t;return l7(t),null}}if(l7(t),0!=(128&t.flags))return t.lanes=n,t;return n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(r=t.child,l=null,null!==r.alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(l=r.alternate.memoizedState.cachePool.pool),a=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(a=r.memoizedState.cachePool.pool),a!==l&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),os(t,t.updateQueue),of(t),null;case 4:return ea(),null===e&&s1(t.stateNode.containerInfo),t.flags|=0x4000000,of(t),null;case 10:return r8(t.type),of(t),null;case 19:if(an(t),null===(r=t.memoizedState))return of(t),null;if(l=0!=(128&t.flags),null===(a=r.rendering))if(l)oc(r,!1);else{if(0!==iM||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=ar(e))){for(t.flags|=128,oc(r,!1),t.updateQueue=e=a.updateQueue,os(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)rS(n,e),n=n.sibling;return at(t,1&ae.current|2),rq&&rA(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&ey()>iV&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304)}else{if(!l)if(null!==(e=ar(a))){if(t.flags|=128,l=!0,t.updateQueue=e=e.updateQueue,os(t,e),oc(r,!0),null===r.tail&&"collapsed"!==r.tailMode&&"visible"!==r.tailMode&&!a.alternate&&!rq)return of(t),null}else 2*ey()-r.renderingStartTime>iV&&0x20000000!==n&&(t.flags|=128,l=!0,oc(r,!1),t.lanes=4194304);r.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=r.last)?e.sibling=a:t.child=a,r.last=a)}if(null!==r.tail){e=r.tail;e:{for(n=e;null!==n;){if(null!==n.alternate){n=!1;break e}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ey(),e.sibling=null,a=ae.current,a=l?1&a|2:1&a,"visible"===r.tailMode||"collapsed"===r.tailMode||!n||rq?at(t,a):(n=a,Z(l3,t),Z(ae,n),null===l4&&(l4=t)),rq&&rA(t,r.treeForkCount),e}return of(t),null;case 22:case 23:return l7(t),l2(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!=(0x20000000&n)&&0==(128&t.flags)&&(of(t),6&t.subtreeFlags&&(t.flags|=8192)):of(t),null!==(n=t.updateQueue)&&os(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&J(lv),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),r8(lo),of(t),null;case 25:return null;case 30:return t.flags|=0x2000000,of(t),null}throw Error(i(156,t.tag))}(t.alternate,t,iN);if(null!==n){iP=n;return}if(null!==(t=t.sibling)){iP=t;return}iP=t=e}while(null!==t)0===iM&&(iM=5)}function sh(e,t){do{var n=function(e,t){switch(rU(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return r8(lo),ea(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return eo(t),null;case 31:if(null!==t.memoizedState){if(l7(t),null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(l7(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));rJ()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return an(t),65536&(e=t.flags)?(t.flags=-65537&e|128,null!==(e=t.memoizedState)&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return ea(),null;case 10:return r8(t.type),null;case 22:case 23:return l7(t),l2(),null!==e&&J(lv),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return r8(lo),null;default:return null}}(e.alternate,e);if(null!==n){n.flags&=32767,iP=n;return}if(null!==(n=e.return)&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&null!==(e=e.sibling)){iP=e;return}iP=e=n}while(null!==e)iM=6,iP=null}function sm(e,t,n,r,l,a,u,o,s,c,f){e.cancelPendingCommit=null;do sE();while(0!==iW)if(0!=(6&iE))throw Error(i(327));if(null!==t){var d;if(t===e.current)throw Error(i(177));if(!function(e,t,n,r,l,a){var u=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var o=e.entanglements,i=e.expirationTimes,s=e.hiddenUpdates;for(n=u&~n;0fc){o.length=u;break}d=new Promise(cR.bind(d)),o.push(d)}}}return 0g&&(u=g,g=m,m=u);var y=nH(o,m),v=nH(o,g);if(y&&v&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var b=f.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),m>g?(p.addRange(b),p.extend(v.node,v.offset)):(b.setEnd(v.node,v.offset),p.addRange(b))}}}}for(f=[],p=o;p=p.parentNode;)1===p.nodeType&&f.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"==typeof o.focus&&o.focus(),o=0;on?32:n,W.T=null,n=iY,iY=null;var a=iK,u=iG;if(iW=0,iQ=iK=null,iG=0,0!=(6&iE))throw Error(i(331));var o=iE;if(iE|=4,iv(a.current),ic(a,a.current,u,n),iE=o,sI(0,!1),ek&&"function"==typeof ek.onPostCommitFiberRoot)try{ek.onPostCommitFiberRoot(eP,a)}catch(e){}return!0}finally{K.p=l,W.T=r,sw(e,t)}}function sP(e,t,n){t=rT(n,t),t=uF(e.stateNode,t,2),null!==(e=lq(e,t,2))&&(eA(e,2),sA(e))}function sk(e,t,n){if(3===e.tag)sP(e,e,n);else for(;null!==t;){if(3===t.tag){sP(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===i$||!i$.has(r))){e=rT(n,e),null!==(r=lq(t,n=uA(2),2))&&(uI(n,r,t,e),eA(r,2),sA(r));break}}t=t.return}}function sR(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new iw;var l=new Set;r.set(t,l)}else void 0===(l=r.get(t))&&(l=new Set,r.set(t,l));l.has(n)||(iC=!0,l.add(n),e=sT.bind(null,e,t,n),t.then(e,e))}function sT(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,i_===e&&(ik&n)===n&&(4===iM||3===iM&&(0x3c00000&ik)===ik&&300>ey()-iH?0==(2&iE)&&sr(e,0):ij|=n,iA===ik&&(iA=0)),sA(e)}function sx(e,t){0===t&&(t=ej()),null!==(e=rd(e,t))&&(eA(e,t),sA(e))}function sO(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),sx(e,n)}function sC(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(n=l.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==r&&r.delete(t),sx(e,n)}var sN=null,sM=null,sL=!1,sz=!1,sj=!1,sF=0;function sA(e){e!==sM&&null===e.next&&(null===sM?sN=sM=e:sM=sM.next=e),sz=!0,sL||(sL=!0,cg(function(){0!=(6&iE)?ep(eb,sD):sU()}))}function sI(e,t){if(!sj&&sz){sj=!0;do for(var n=!1,r=sN;null!==r;){if(!t)if(0!==e){var l=r.pendingLanes;if(0===l)var a=0;else{var u=r.suspendedLanes,o=r.pingedLanes;a=0xc000095&(a=(1<<31-eR(42|e)+1)-1&(l&~(u&~o)))?0xc000095&a|1:a?2|a:0}0!==a&&(n=!0,sV(r,a))}else a=ik,0==(3&(a=eL(r,r===i_?a:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||ez(r,a)||(n=!0,sV(r,a));r=r.next}while(n)sj=!1}}function sD(){sU()}function sU(){sz=sL=!1;var e,t=0;0===sF||((e=window.event)&&"popstate"===e.type?e===cd||(cd=e,0):(cd=null,1))||(t=sF);for(var n=ey(),r=null,l=sN;null!==l;){var a=l.next,u=sH(l,n);0===u?(l.next=null,null===r?sN=a:r.next=a,null===a&&(sM=r)):(r=l,(0!==t||0!=(3&u))&&(sz=!0)),l=a}0!==iW&&5!==iW||sI(t,!1),0!==sF&&(sF=0)}function sH(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,l=e.expirationTimes,a=-0x3c00001&e.pendingLanes;0 title"):null)}function fu(e,t){return"img"===e&&null!=t.src&&""!==t.src&&null==t.onLoad&&"lazy"!==t.loading}function fo(e){return"stylesheet"!==e.type||0!=(3&e.state.loading)}function fi(e){return(e.width||100)*(e.height||100)*("number"==typeof devicePixelRatio?devicePixelRatio:1)*.25}function fs(e,t){"function"==typeof t.decode&&(e.imgCount++,t.complete||(e.imgBytes+=fi(t),e.suspenseyImages.push(t)),e=fp.bind(e),t.decode().then(e,e))}var fc=0;function ff(e){if(0===e.count&&(0===e.imgCount||!e.waitingForImages)){if(e.stylesheets)fm(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function fd(){this.count--,ff(this)}function fp(){this.imgCount--,ff(this)}var fh=null;function fm(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,fh=new Map,t.forEach(fg,e),fh=null,fd.call(e))}function fg(e,t){if(!(4&t.state.loading)){var n=fh.get(e);if(n)var r=n.get(null);else{n=new Map,fh.set(e,n);for(var l=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(94454)},98084,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HeadManagerContext",{enumerable:!0,get:function(){return r}});let r=e.r(35856)._(e.r(30668)).default.createContext({})},26717,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={onCaughtError:function(){return d},onUncaughtError:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(35856),u=e.r(31028),o=e.r(19551),i=e.r(96887),s=e.r(71202),c=a._(e.r(75115)),f={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function d(e,t){let n,r=t.errorBoundary?.constructor;if(n=n||r===s.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===c.default)return p(e);(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||f.originConsoleError(e)}function p(e){(0,o.isBailoutToCSRError)(e)||(0,u.isNextRouterError)(e)||(0,i.reportGlobalError)(e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},5725,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={computeChangedPath:function(){return f},extractPathFromFlightRouterState:function(){return c},getSelectedParams:function(){return function e(t,n={}){for(let r of Object.values(t[1])){let t=r[0],l=Array.isArray(t),a=l?t[1]:t;!a||a.startsWith(u.PAGE_SEGMENT_KEY)||(l&&("c"===t[2]||"oc"===t[2])?n[t[0]]=t[1].split("/"):l&&(n[t[0]]=t[1]),n=e(r,n))}return n}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(50864),u=e.r(91395),o=e.r(22039),i=e=>"string"==typeof e?"children"===e?"":e:e[1];function s(e){return e.reduce((e,t)=>{let n;return""===(t="/"===(n=t)[0]?n.slice(1):n)||(0,u.isGroupSegment)(t)?e:`${e}/${t}`},"")||"/"}function c(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===u.DEFAULT_SEGMENT_KEY||a.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t.startsWith(u.PAGE_SEGMENT_KEY))return"";let n=[i(t)],r=e[1]??{},l=r.children?c(r.children):void 0;if(void 0!==l)n.push(l);else for(let[e,t]of Object.entries(r)){if("children"===e)continue;let r=c(t);void 0!==r&&n.push(r)}return s(n)}function f(e,t){let n=function e(t,n){let[r,l]=t,[u,s]=n,f=i(r),d=i(u);if(a.INTERCEPTION_ROUTE_MARKERS.some(e=>f.startsWith(e)||d.startsWith(e)))return"";if(!(0,o.matchSegment)(r,u))return c(n)??"";for(let t in l)if(s[t]){let n=e(l[t],s[t]);if(null!==n)return`${i(u)}/${n}`}return null}(e,t);return null==n||"/"===n?n:s(n.split("/"))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},40494,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleMutable",{enumerable:!0,get:function(){return a}});let r=e.r(5725);function l(e){return void 0!==e}function a(e,t){let n=t.shouldScroll??!0,a=e.previousNextUrl,u=e.nextUrl;if(l(t.patchedTree)){let n=(0,r.computeChangedPath)(e.tree,t.patchedTree);n?(a=u,u=n):u||(u=e.canonicalUrl)}return{canonicalUrl:t.canonicalUrl??e.canonicalUrl,renderedSearch:t.renderedSearch??e.renderedSearch,pushRef:{pendingPush:l(t.pendingPush)?t.pendingPush:e.pushRef.pendingPush,mpaNavigation:l(t.mpaNavigation)?t.mpaNavigation:e.pushRef.mpaNavigation,preserveCustomHistoryState:l(t.preserveCustomHistoryState)?t.preserveCustomHistoryState:e.pushRef.preserveCustomHistoryState},focusAndScrollRef:{apply:!!n&&(!!l(t?.scrollableSegments)||e.focusAndScrollRef.apply),onlyHashChange:t.onlyHashChange||!1,hashFragment:n?t.hashFragment&&""!==t.hashFragment?decodeURIComponent(t.hashFragment.slice(1)):e.focusAndScrollRef.hashFragment:null,segmentPaths:n?t?.scrollableSegments??e.focusAndScrollRef.segmentPaths:[]},cache:t.cache?t.cache:e.cache,tree:l(t.patchedTree)?t.patchedTree:e.tree,nextUrl:u,previousNextUrl:a,debugInfo:t.collectedDebugInfo??null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},84697,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,n){let r=t[0],l=n[0];if(Array.isArray(r)&&Array.isArray(l)){if(r[0]!==l[0]||r[2]!==l[2])return!0}else if(r!==l)return!0;if(t[4])return!n[4];if(n[4])return!0;let a=Object.values(t[1])[0],u=Object.values(n[1])[0];return!a||!u||e(a,u)}}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1989,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={abortTask:function(){return y},listenForDynamicRequest:function(){return g},startPPRNavigation:function(){return d},updateCacheNodeOnPopstateRestoration:function(){return function e(t,n){let r=n[1],l=t.parallelRoutes,a=new Map(l);for(let t in r){let n=r[t],u=n[0],o=(0,i.createRouterCacheKey)(u),s=l.get(t);if(void 0!==s){let r=s.get(o);if(void 0!==r){let l=e(r,n),u=new Map(s);u.set(o,l),a.set(t,u)}}}let u=t.rsc,o=S(u)&&"pending"===u.status;return{lazyData:null,rsc:u,head:t.head,prefetchHead:o?t.prefetchHead:[null,null],prefetchRsc:o?t.prefetchRsc:null,loading:t.loading,parallelRoutes:a,navigatedAt:t.navigatedAt}}}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(91395),u=e.r(22039),o=e.r(80118),i=e.r(91439),s=e.r(84697),c=e.r(28806),f={route:null,node:null,dynamicRequestTree:null,children:null};function d(e,t,n,r,l,s,c,d,m,g){return function e(t,n,r,l,s,c,d,m,g,y,v,b){let S=l[1],w=s[1],E=null!==d?d[1]:null;c||!0===s[4]&&(c=!0);let _=r.parallelRoutes,P=new Map(_),k={},R=null,T=!1,x={};for(let r in w){let l,s=w[r],d=S[r],O=_.get(r),C=null!==E?E[r]:null,N=s[0],M=v.concat([r,N]),L=(0,i.createRouterCacheKey)(N),z=void 0!==d?d[0]:void 0,j=void 0!==O?O.get(L):void 0;if(null!==(l=N===a.DEFAULT_SEGMENT_KEY?void 0!==d?function(e,t){let n;return"refresh"===t[3]?n=t:((n=h(t,t[1]))[2]=(0,o.createHrefFromUrl)(e),n[3]="refresh"),{route:n,node:null,dynamicRequestTree:null,children:null}}(n,d):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):y&&0===Object.keys(s[1]).length?p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b):void 0!==d&&void 0!==z&&(0,u.matchSegment)(N,z)&&void 0!==j&&void 0!==d?e(t,n,j,d,s,c,C,m,g,y,M,b):p(t,d,s,j,c,void 0!==C?C:null,m,g,M,b))){if(null===l.route)return f;null===R&&(R=new Map),R.set(r,l);let e=l.node;if(null!==e){let t=new Map(O);t.set(L,e),P.set(r,t)}let t=l.route;k[r]=t;let n=l.dynamicRequestTree;null!==n?(T=!0,x[r]=n):x[r]=t}else k[r]=s,x[r]=s}if(null===R)return null;let O={lazyData:null,rsc:r.rsc,prefetchRsc:r.prefetchRsc,head:r.head,prefetchHead:r.prefetchHead,loading:r.loading,parallelRoutes:P,navigatedAt:t};return{route:h(s,k),node:O,dynamicRequestTree:T?h(s,x):null,children:R}}(e,t,n,r,l,!1,s,c,d,m,[],g)}function p(e,t,n,r,l,a,u,o,d,p){return!l&&(void 0===t||(0,s.isNavigatingToNewRootLayout)(t,n))?f:function e(t,n,r,l,a,u,o,s){let f,d,p,g,y=n[1],v=0===Object.keys(y).length;if(void 0!==r&&r.navigatedAt+c.DYNAMIC_STALETIME_MS>t)f=r.rsc,d=r.loading,p=r.head,g=r.navigatedAt;else if(null===l)return m(t,n,null,a,u,o,s);else if(f=l[0],d=l[2],p=v?a:null,g=t,l[3]||u&&v)return m(t,n,l,a,u,o,s);let b=null!==l?l[1]:null,S=new Map,w=void 0!==r?r.parallelRoutes:null,E=new Map(w),_={},P=!1;if(v)s.push(o);else for(let n in y){let r=y[n],l=null!==b?b[n]:null,c=null!==w?w.get(n):void 0,f=r[0],d=o.concat([n,f]),p=(0,i.createRouterCacheKey)(f),h=e(t,r,void 0!==c?c.get(p):void 0,l,a,u,d,s);S.set(n,h);let m=h.dynamicRequestTree;null!==m?(P=!0,_[n]=m):_[n]=r;let g=h.node;if(null!==g){let e=new Map;e.set(p,g),E.set(n,e)}}return{route:n,node:{lazyData:null,rsc:f,prefetchRsc:null,head:p,prefetchHead:null,loading:d,parallelRoutes:E,navigatedAt:g},dynamicRequestTree:P?h(n,_):null,children:S}}(e,n,r,a,u,o,d,p)}function h(e,t){let n=[e[0],t];return 2 in e&&(n[2]=e[2]),3 in e&&(n[3]=e[3]),4 in e&&(n[4]=e[4]),n}function m(e,t,n,r,l,a,u){let o=h(t,t[1]);return o[3]="refetch",{route:t,node:function e(t,n,r,l,a,u,o){let s=n[1],c=null!==r?r[1]:null,f=new Map;for(let n in s){let r=s[n],d=null!==c?c[n]:null,p=r[0],h=u.concat([n,p]),m=(0,i.createRouterCacheKey)(p),g=e(t,r,void 0===d?null:d,l,a,h,o),y=new Map;y.set(m,g),f.set(n,y)}let d=0===f.size;d&&o.push(u);let p=null!==r?r[0]:null;return{lazyData:null,parallelRoutes:f,prefetchRsc:void 0!==p?p:null,prefetchHead:d?l:[null,null],rsc:w(),head:d?w():null,loading:null!==r?r[2]??null:w(),navigatedAt:t}}(e,t,n,r,l,a,u),dynamicRequestTree:o,children:null}}function g(e,t){t.then(t=>{if("string"==typeof t)return;let{flightData:n,debugInfo:r}=t;for(let t of n){let{segmentPath:n,tree:l,seedData:a,head:o}=t;a&&function(e,t,n,r,l,a){let o=e;for(let e=0;e{y(e,t,null)})}function y(e,t,n){let r=e.node;if(null===r)return;let l=e.children;if(null===l)v(e.route,r,t,n);else for(let e of l.values())y(e,t,n);e.dynamicRequestTree=null}function v(e,t,n,r){let l=e[1],a=t.parallelRoutes;for(let e in l){let t=l[e],u=a.get(e);if(void 0===u)continue;let o=t[0],s=(0,i.createRouterCacheKey)(o),c=u.get(s);void 0!==c&&v(t,c,n,r)}let u=t.rsc;S(u)&&(null===n?u.resolve(null,r):u.reject(n,r));let o=t.loading;S(o)&&o.resolve(null,r);let s=t.head;S(s)&&s.resolve(null,r)}let b=Symbol();function S(e){return e&&"object"==typeof e&&e.tag===b}function w(){let e,t,n=[],r=new Promise((n,r)=>{e=n,t=r});return r.status="pending",r.resolve=(t,l)=>{"pending"===r.status&&(r.status="fulfilled",r.value=t,null!==l&&n.push.apply(n,l),e(t))},r.reject=(e,l)=>{"pending"===r.status&&(r.status="rejected",r.reason=e,null!==l&&n.push.apply(n,l),t(e))},r.tag=b,r._debugInfo=n,r}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},18563,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"HasLoadingBoundary",{enumerable:!0,get:function(){return l}});var r,l=((r={})[r.SegmentHasLoadingBoundary=1]="SegmentHasLoadingBoundary",r[r.SubtreeHasLoadingBoundary=2]="SubtreeHasLoadingBoundary",r[r.SubtreeHasNoLoadingBoundary=3]="SubtreeHasNoLoadingBoundary",r)},24994,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l,a,u={FetchStrategy:function(){return c},NavigationResultTag:function(){return i},PrefetchPriority:function(){return s}};for(var o in u)Object.defineProperty(n,o,{enumerable:!0,get:u[o]});var i=((r={})[r.MPA=0]="MPA",r[r.Success=1]="Success",r[r.NoOp=2]="NoOp",r[r.Async=3]="Async",r),s=((l={})[l.Intent=2]="Intent",l[l.Default=1]="Default",l[l.Background=0]="Background",l),c=((a={})[a.LoadingBoundary=0]="LoadingBoundary",a[a.PPR=1]="PPR",a[a.PPRRuntime=2]="PPRRuntime",a[a.Full=3]="Full",a);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},68323,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={deleteFromLru:function(){return f},lruPut:function(){return s},updateLruSize:function(){return c}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(47661),u=null,o=!1,i=0;function s(e){if(u===e)return;let t=e.prev,n=e.next;if(null===n||null===t?(i+=e.size,d()):(t.next=n,n.prev=t),null===u)e.prev=e,e.next=e;else{let t=u.prev;e.prev=t,null!==t&&(t.next=e),e.next=u,u.prev=e}u=e}function c(e,t){let n=e.size;e.size=t,null!==e.next&&(i=i-n+t,d())}function f(e){let t=e.next,n=e.prev;null!==t&&null!==n&&(i-=e.size,e.next=null,e.prev=null,u===e?u=t===u?null:t:(n.next=t,t.prev=n))}function d(){o||i<=0x3200000||(o=!0,h(p))}function p(){o=!1;for(;i>0x2d00000&&null!==u;){let e=u.prev;null!==e&&(0,a.deleteFromCacheMap)(e.value)}}let h="function"==typeof requestIdleCallback?requestIdleCallback:e=>setTimeout(e,0);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},47661,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={Fallback:function(){return u},createCacheMap:function(){return i},deleteFromCacheMap:function(){return h},getFromCacheMap:function(){return s},isValueExpired:function(){return c},setInCacheMap:function(){return f},setSizeInCacheMap:function(){return g}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(68323),u={},o={};function i(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function s(e,t,n,r,l){let i=function e(t,n,r,l,a,i){let s,f;if(null!==l)s=l.value,f=l.parent;else if(a&&i!==o)s=o,f=null;else return null===r.value?r:c(t,n,r.value)?(m(r),null):r;let d=r.map;if(null!==d){let r=d.get(s);if(void 0!==r){let l=e(t,n,r,f,a,s);if(null!==l)return l}let l=d.get(u);if(void 0!==l)return e(t,n,l,f,a,s)}return null}(e,t,n,r,l,0);return null===i||null===i.value?null:((0,a.lruPut)(i),i.value)}function c(e,t,n){return n.staleAt<=e||n.version{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={appendLayoutVaryPath:function(){return c},clonePageVaryPathWithNewSearchParams:function(){return m},finalizeLayoutVaryPath:function(){return f},finalizeMetadataVaryPath:function(){return p},finalizePageVaryPath:function(){return d},getFulfilledRouteVaryPath:function(){return s},getRouteVaryPath:function(){return i},getSegmentVaryPathForRequest:function(){return h}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(24994),u=e.r(47661),o=e.r(69434);function i(e,t,n){return{value:e,parent:{value:t,parent:{value:n,parent:null}}}}function s(e,t,n,r){return{value:e,parent:{value:t,parent:{value:r?n:u.Fallback,parent:null}}}}function c(e,t){return{value:t,parent:e}}function f(e,t){return{value:e,parent:t}}function d(e,t,n){return{value:e,parent:{value:t,parent:n}}}function p(e,t,n){return{value:e+o.HEAD_REQUEST_KEY,parent:{value:t,parent:n}}}function h(e,t){let n=t.varyPath;if(t.isPage&&e!==a.FetchStrategy.Full&&e!==a.FetchStrategy.PPRRuntime){let e=n.parent.parent;return{value:n.value,parent:{value:u.Fallback,parent:e}}}return n}function m(e,t){let n=e.parent;return{value:e.value,parent:{value:t,parent:n.parent}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},63280,(e,t,n)=>{"use strict";function r(e,t){let n=new URL(e);return{pathname:n.pathname,search:n.search,nextUrl:t}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createCacheKey",{enumerable:!0,get:function(){return r}}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},40285,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={cancelPrefetchTask:function(){return w},isPrefetchTaskDirty:function(){return _},pingPrefetchTask:function(){return O},reschedulePrefetchTask:function(){return E},schedulePrefetchTask:function(){return S},startRevalidationCooldown:function(){return b}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(18563),u=e.r(22039),o=e.r(91666),i=e.r(91900),s=e.r(63280),c=e.r(24994),f=e.r(91395),d="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),p=[],h=0,m=0,g=!1,y=null,v=null;function b(){null!==v&&clearTimeout(v),v=setTimeout(()=>{v=null,k()},300)}function S(e,t,n,r,l){let a={key:e,treeAtTimeOfPrefetch:t,cacheVersion:(0,o.getCurrentCacheVersion)(),priority:r,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:n,sortId:m++,isCanceled:!1,onInvalidate:l,_heapIndex:-1};return P(a),H(p,a),k(),a}function w(e){e.isCanceled=!0,function(e,t){let n=t._heapIndex;if(-1!==n&&(t._heapIndex=-1,0!==e.length)){let r=e.pop();r!==t&&(e[n]=r,r._heapIndex=n,W(e,r,n))}}(p,e)}function E(e,t,n,r){e.isCanceled=!1,e.phase=1,e.sortId=m++,e.priority=e===y?c.PrefetchPriority.Intent:r,e.treeAtTimeOfPrefetch=t,e.fetchStrategy=n,P(e),-1!==e._heapIndex?q(p,e):H(p,e),k()}function _(e,t,n){let r=(0,o.getCurrentCacheVersion)();return e.cacheVersion!==r||e.treeAtTimeOfPrefetch!==n||e.key.nextUrl!==t}function P(e){e.priority===c.PrefetchPriority.Intent&&e!==y&&(null!==y&&y.priority!==c.PrefetchPriority.Background&&(y.priority=c.PrefetchPriority.Default,q(p,y)),y=e)}function k(){g||(g=!0,d(C))}function R(e){return null===v&&(e.priority===c.PrefetchPriority.Intent?h<12:h<4)}function T(e){return h++,e.then(e=>null===e?(x(),null):(e.closed.then(x),e.value))}function x(){h--,k()}function O(e){e.isCanceled||-1!==e._heapIndex||(H(p,e),k())}function C(){g=!1;let e=Date.now(),t=B(p);for(;null!==t&&R(t);){t.cacheVersion=(0,o.getCurrentCacheVersion)();let n=function(e,t){let n=t.key,r=(0,o.readOrCreateRouteCacheEntry)(e,t,n),l=function(e,t,n){switch(n.status){case o.EntryStatus.Empty:T((0,o.fetchRouteOnCacheMiss)(n,t,t.key)),n.staleAt=e+6e4,n.status=o.EntryStatus.Pending;case o.EntryStatus.Pending:{let e=n.blockedTasks;return null===e?n.blockedTasks=new Set([t]):e.add(t),1}case o.EntryStatus.Rejected:break;case o.EntryStatus.Fulfilled:{if(0!==t.phase)return 2;if(!R(t))return 0;let i=n.tree,s=t.fetchStrategy===c.FetchStrategy.PPR?n.isPPREnabled?c.FetchStrategy.PPR:c.FetchStrategy.LoadingBoundary:t.fetchStrategy;switch(s){case c.FetchStrategy.PPR:{var r,l,u;if(z(r=e,l=t,u=n,(0,o.readOrCreateSegmentCacheEntry)(r,c.FetchStrategy.PPR,u,u.metadata),l.key,u.metadata),0===function e(t,n,r,l,a){let u=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,a);z(t,n,r,u,n.key,a);let i=l[1],s=a.slots;if(null!==s)for(let l in s){if(!R(n))return 0;let a=s[l],u=a.segment,c=i[l],f=c?.[0];if(0===(void 0!==f&&D(r,u,f)?e(t,n,r,c,a):function e(t,n,r,l){if(l.hasRuntimePrefetch)return null===n.spawnedRuntimePrefetches?n.spawnedRuntimePrefetches=new Set([l.requestKey]):n.spawnedRuntimePrefetches.add(l.requestKey),2;let a=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);if(z(t,n,r,a,n.key,l),null!==l.slots){if(!R(n))return 0;for(let a in l.slots)if(0===e(t,n,r,l.slots[a]))return 0}return 2}(t,n,r,a)))return 0}return 2}(e,t,n,t.treeAtTimeOfPrefetch,i))return 0;let a=t.spawnedRuntimePrefetches;if(null!==a){let r=new Map;M(e,t,n,r,c.FetchStrategy.PPRRuntime);let l=function e(t,n,r,l,a,u){if(a.has(l.requestKey))return L(t,n,r,l,!1,u,c.FetchStrategy.PPRRuntime);let o={},i=l.slots;if(null!==i)for(let l in i){let s=i[l];o[l]=e(t,n,r,s,a,u)}return[l.segment,o,null,null]}(e,t,n,i,a,r);r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,c.FetchStrategy.PPRRuntime,l,r))}return 2}case c.FetchStrategy.Full:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.LoadingBoundary:{let r=new Map;M(e,t,n,r,s);let l=function e(t,n,r,l,u,i,s){let f=l[1],d=u.slots,p={};if(null!==d)for(let l in d){let u=d[l],h=u.segment,m=f[l],g=m?.[0];if(void 0!==g&&D(r,h,g)){let a=e(t,n,r,m,u,i,s);p[l]=a}else switch(s){case c.FetchStrategy.LoadingBoundary:{let e=u.hasLoadingBoundary!==a.HasLoadingBoundary.SubtreeHasNoLoadingBoundary?function e(t,n,r,l,u,i){let s=null===u?"inside-shared-layout":null,f=(0,o.readOrCreateSegmentCacheEntry)(t,n.fetchStrategy,r,l);switch(f.status){case o.EntryStatus.Empty:i.set(l.requestKey,(0,o.upgradeToPendingSegment)(f,c.FetchStrategy.LoadingBoundary)),"refetch"!==u&&(s=u="refetch");break;case o.EntryStatus.Fulfilled:if(l.hasLoadingBoundary===a.HasLoadingBoundary.SegmentHasLoadingBoundary)return(0,o.convertRouteTreeToFlightRouterState)(l);case o.EntryStatus.Pending:case o.EntryStatus.Rejected:}let d={};if(null!==l.slots)for(let a in l.slots){let o=l.slots[a];d[a]=e(t,n,r,o,u,i)}return[l.segment,d,null,s,l.isRootLayout]}(t,n,r,u,null,i):(0,o.convertRouteTreeToFlightRouterState)(u);p[l]=e;break}case c.FetchStrategy.PPRRuntime:{let e=L(t,n,r,u,!1,i,s);p[l]=e;break}case c.FetchStrategy.Full:{let e=L(t,n,r,u,!1,i,s);p[l]=e}}}return[u.segment,p,null,null,u.isRootLayout]}(e,t,n,t.treeAtTimeOfPrefetch,i,r,s);return r.size>0&&T((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,n,s,l,r)),2}}}}return 2}(e,t,r);if(0!==l&&""!==n.search){let r=new URL(n.pathname,location.origin),l=(0,s.createCacheKey)(r.href,n.nextUrl),a=(0,o.readOrCreateRouteCacheEntry)(e,t,l);switch(a.status){case o.EntryStatus.Empty:N(t)&&(a.status=o.EntryStatus.Pending,T((0,o.fetchRouteOnCacheMiss)(a,t,l)));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}return l}(e,t),r=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,n){case 0:return;case 1:V(p),t=B(p);continue;case 2:1===t.phase?(t.phase=0,q(p,t)):r?(t.priority=c.PrefetchPriority.Background,q(p,t)):V(p),t=B(p);continue}}}function N(e){return e.priority===c.PrefetchPriority.Background||(e.hasBackgroundWork=!0,!1)}function M(e,t,n,r,l){L(e,t,n,n.metadata,!1,r,l===c.FetchStrategy.LoadingBoundary?c.FetchStrategy.Full:l)}function L(e,t,n,r,l,a,u){let i=(0,o.readOrCreateSegmentCacheEntry)(e,u,n,r),s=null;switch(i.status){case o.EntryStatus.Empty:s=(0,o.upgradeToPendingSegment)(i,u);break;case o.EntryStatus.Fulfilled:i.isPartial&&(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u));break;case o.EntryStatus.Pending:case o.EntryStatus.Rejected:(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,u)&&(s=F(e,n,r,u))}let c={};if(null!==r.slots)for(let o in r.slots){let i=r.slots[o];c[o]=L(e,t,n,i,l||null!==s,a,u)}null!==s&&a.set(r.requestKey,s);let f=l||null===s?null:"refetch";return[r.segment,c,null,f,r.isRootLayout]}function z(e,t,n,r,l,a){switch(r.status){case o.EntryStatus.Empty:T((0,o.fetchSegmentOnCacheMiss)(n,(0,o.upgradeToPendingSegment)(r,c.FetchStrategy.PPR),l,a));break;case o.EntryStatus.Pending:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:N(t)&&j(e,n,l,a);break;default:r.fetchStrategy}break;case o.EntryStatus.Rejected:switch(r.fetchStrategy){case c.FetchStrategy.PPR:case c.FetchStrategy.PPRRuntime:case c.FetchStrategy.Full:break;case c.FetchStrategy.LoadingBoundary:j(e,n,l,a);break;default:r.fetchStrategy}case o.EntryStatus.Fulfilled:}}function j(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,c.FetchStrategy.PPR,t,r);switch(l.status){case o.EntryStatus.Empty:I(T((0,o.fetchSegmentOnCacheMiss)(t,(0,o.upgradeToPendingSegment)(l,c.FetchStrategy.PPR),n,r)),(0,i.getSegmentVaryPathForRequest)(c.FetchStrategy.PPR,r));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}function F(e,t,n,r){let l=(0,o.readOrCreateRevalidatingSegmentEntry)(e,r,t,n);if(l.status===o.EntryStatus.Empty){let e=(0,o.upgradeToPendingSegment)(l,r);return I((0,o.waitForSegmentCacheEntry)(e),(0,i.getSegmentVaryPathForRequest)(r,n)),e}if((0,o.canNewFetchStrategyProvideMoreContent)(l.fetchStrategy,r)){let e=(0,o.overwriteRevalidatingSegmentCacheEntry)(r,t,n),l=(0,o.upgradeToPendingSegment)(e,r);return I((0,o.waitForSegmentCacheEntry)(l),(0,i.getSegmentVaryPathForRequest)(r,n)),l}switch(l.status){case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:default:return null}}let A=()=>{};function I(e,t){e.then(e=>{null!==e&&(0,o.upsertSegmentEntry)(Date.now(),t,e)},A)}function D(e,t,n){return n===f.PAGE_SEGMENT_KEY?t===(0,f.addSearchParamsIfPageSegment)(f.PAGE_SEGMENT_KEY,Object.fromEntries(new URLSearchParams(e.renderedSearch))):(0,u.matchSegment)(n,t)}function U(e,t){let n=t.priority-e.priority;if(0!==n)return n;let r=t.phase-e.phase;return 0!==r?r:t.sortId-e.sortId}function H(e,t){let n=e.length;e.push(t),t._heapIndex=n,$(e,t,n)}function B(e){return 0===e.length?null:e[0]}function V(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let n=e.pop();return n!==t&&(e[0]=n,n._heapIndex=0,W(e,n,0)),t}function q(e,t){let n=t._heapIndex;-1!==n&&(0===n?W(e,t,0):U(e[n-1>>>1],t)>0?$(e,t,n):W(e,t,n))}function $(e,t,n){let r=n;for(;r>0;){let n=r-1>>>1,l=e[n];if(!(U(l,t)>0))return;e[n]=t,t._heapIndex=n,e[r]=l,l._heapIndex=r,r=n}}function W(e,t,n){let r=n,l=e.length,a=l>>>1;for(;rU(a,t))uU(o,a)?(e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u):(e[r]=a,a._heapIndex=r,e[n]=t,t._heapIndex=n,r=n);else{if(!(uU(o,t)))return;e[r]=o,o._heapIndex=r,e[u]=t,t._heapIndex=u,r=u}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},28732,(e,t,n)=>{"use strict";function r(e){let t=e.indexOf("#"),n=e.indexOf("?"),r=n>-1&&(t<0||n-1?{pathname:e.substring(0,r?n:t),query:r?e.substring(n,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"parsePath",{enumerable:!0,get:function(){return r}})},26935,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(28732);function l(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:n,query:l,hash:a}=(0,r.parsePath)(e);return`${t}${n}${l}${a}`}},20206,(e,t,n)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},67268,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return a}});let r=e.r(20206),l=e.r(28732),a=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:n,hash:a}=(0,l.parsePath)(e);return/\.[^/]+\/?$/.test(t)?`${(0,r.removeTrailingSlash)(t)}${n}${a}`:t.endsWith("/")?`${t}${n}${a}`:`${t}/${n}${a}`};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},39940,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addBasePath",{enumerable:!0,get:function(){return a}});let r=e.r(26935),l=e.r(67268);function a(e,t){return(0,l.normalizePathTrailingSlash)((0,r.addPathPrefix)(e,""))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},93259,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createPrefetchURL:function(){return i},isExternalURL:function(){return o}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(62112),u=e.r(39940);function o(e){return e.origin!==window.location.origin}function i(e){let t;if((0,a.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,u.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return o(t)?null:t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79111,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return c},mountFormInstance:function(){return S},mountLinkInstance:function(){return b},onLinkVisibilityChanged:function(){return E},onNavigationIntent:function(){return _},pingVisibleLinks:function(){return k},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return p},unmountPrefetchableInstance:function(){return w}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(24994),u=e.r(63280),o=e.r(40285),i=e.r(30668),s=null,c={pending:!0},f={pending:!1};function d(e){(0,i.startTransition)(()=>{s?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(c),s=e})}function p(e){s===e&&(s=null)}let h="function"==typeof WeakMap?new WeakMap:new Map,m=new Set,g="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;E(t.target,e)}},{rootMargin:"200px"}):null;function y(e,t){void 0!==h.get(e)&&w(e),h.set(e,t),null!==g&&g.observe(e)}function v(t){if("undefined"==typeof window)return null;{let{createPrefetchURL:n}=e.r(93259);try{return n(t)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${t}' because it cannot be converted to a URL.`),null}}}function b(e,t,n,r,l,a){if(l){let l=v(t);if(null!==l){let t={router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:a};return y(e,t),t}}return{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:a}}function S(e,t,n,r){let l=v(t);null===l||y(e,{router:n,fetchStrategy:r,isVisible:!1,prefetchTask:null,prefetchHref:l.href,setOptimisticLinkStatus:null})}function w(e){let t=h.get(e);if(void 0!==t){h.delete(e),m.delete(t);let n=t.prefetchTask;null!==n&&(0,o.cancelPrefetchTask)(n)}null!==g&&g.unobserve(e)}function E(e,t){let n=h.get(e);void 0!==n&&(n.isVisible=t,t?m.add(n):m.delete(n),P(n,a.PrefetchPriority.Default))}function _(e,t){let n=h.get(e);void 0!==n&&void 0!==n&&P(n,a.PrefetchPriority.Intent)}function P(t,n){if("undefined"!=typeof window){let r=t.prefetchTask;if(!t.isVisible){null!==r&&(0,o.cancelPrefetchTask)(r);return}let{getCurrentAppRouterState:l}=e.r(19998),a=l();if(null!==a){let e=a.tree;if(null===r){let r=a.nextUrl,l=(0,u.createCacheKey)(t.prefetchHref,r);t.prefetchTask=(0,o.schedulePrefetchTask)(l,e,t.fetchStrategy,n,null)}else(0,o.reschedulePrefetchTask)(r,e,t.fetchStrategy,n)}}}function k(e,t){for(let n of m){let r=n.prefetchTask;if(null!==r&&!(0,o.isPrefetchTaskDirty)(r,e,t))continue;null!==r&&(0,o.cancelPrefetchTask)(r);let l=(0,u.createCacheKey)(n.prefetchHref,e);n.prefetchTask=(0,o.schedulePrefetchTask)(l,t,n.fetchStrategy,a.PrefetchPriority.Default,null)}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},76534,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DOC_PREFETCH_RANGE_HEADER_VALUE:function(){return u},doesExportedHtmlMatchBuildId:function(){return s},insertBuildIdComment:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a="",u="bytes=0-63";function o(e){return e.slice(0,24).replace(/-/g,"_")}function i(e,t){return t.includes("-->")||!e.startsWith(a)?e:e.replace(a,a+"")}function s(e,t){return e.startsWith(a+"")}},91666,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,l={EntryStatus:function(){return k},canNewFetchStrategyProvideMoreContent:function(){return el},convertRouteTreeToFlightRouterState:function(){return function e(t){let n={};if(null!==t.slots)for(let r in t.slots)n[r]=e(t.slots[r]);return[t.segment,n,null,null,t.isRootLayout]}},createDetachedSegmentCacheEntry:function(){return q},fetchRouteOnCacheMiss:function(){return X},fetchSegmentOnCacheMiss:function(){return Y},fetchSegmentPrefetchesUsingDynamicRequest:function(){return J},getCurrentCacheVersion:function(){return N},getStaleTimeMs:function(){return P},overwriteRevalidatingSegmentCacheEntry:function(){return B},pingInvalidationListeners:function(){return L},readOrCreateRevalidatingSegmentEntry:function(){return H},readOrCreateRouteCacheEntry:function(){return A},readOrCreateSegmentCacheEntry:function(){return U},readRouteCacheEntry:function(){return z},readSegmentCacheEntry:function(){return j},requestOptimisticRouteCacheEntry:function(){return I},revalidateEntireCache:function(){return M},upgradeToPendingSegment:function(){return $},upsertSegmentEntry:function(){return V},waitForSegmentCacheEntry:function(){return F}};for(var a in l)Object.defineProperty(n,a,{enumerable:!0,get:l[a]});let u=e.r(18563),o=e.r(2089),i=e.r(20320),s=e.r(40285),c=e.r(91900),f=e.r(70410),d=e.r(80118),p=e.r(63280),h=e.r(88617),m=e.r(47661),g=e.r(69434),y=e.r(94955),v=e.r(28806),b=e.r(79111),S=e.r(91395),w=e.r(76534),E=e.r(24994),_=e.r(59162);function P(e){return 1e3*Math.max(e,30)}var k=((r={})[r.Empty=0]="Empty",r[r.Pending=1]="Pending",r[r.Fulfilled=2]="Fulfilled",r[r.Rejected=3]="Rejected",r);let R=["",{},null,"metadata-only"],T=(0,m.createCacheMap)(),x=(0,m.createCacheMap)(),O=null,C=0;function N(){return C}function M(e,t){C++,(0,s.startRevalidationCooldown)(),(0,b.pingVisibleLinks)(e,t),L(e,t)}function L(e,t){if(null!==O){let n=O;for(let r of(O=null,n))(0,s.isPrefetchTaskDirty)(r,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(r)}}function z(e,t){let n=(0,c.getRouteVaryPath)(t.pathname,t.search,t.nextUrl);return(0,m.getFromCacheMap)(e,C,T,n,!1)}function j(e,t){return(0,m.getFromCacheMap)(e,C,x,t,!1)}function F(e){let t=e.promise;return null===t&&(t=e.promise=(0,_.createPromiseWithResolvers)()),t.promise}function A(e,t,n){null!==t.onInvalidate&&(null===O?O=new Set([t]):O.add(t));let r=z(e,n);if(null!==r)return r;let l={canonicalUrl:null,status:0,blockedTasks:null,tree:null,metadata:null,couldBeIntercepted:!0,isPPREnabled:!1,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:C},a=(0,c.getRouteVaryPath)(n.pathname,n.search,n.nextUrl);return(0,m.setInCacheMap)(T,a,l,!1),l}function I(e,t,n){let r=t.search;if(""===r)return null;let l=new URL(t);l.search="";let a=z(e,(0,p.createCacheKey)(l.href,n));if(null===a||2!==a.status)return null;let u=new URL(a.canonicalUrl,t.origin),o=""!==u.search?u.search:r,i=""!==a.renderedSearch?a.renderedSearch:r,s=new URL(a.canonicalUrl,location.origin);return s.search=o,{canonicalUrl:(0,d.createHrefFromUrl)(s),status:2,blockedTasks:null,tree:D(a.tree,i),metadata:D(a.metadata,i),couldBeIntercepted:a.couldBeIntercepted,isPPREnabled:a.isPPREnabled,renderedSearch:i,ref:null,size:0,staleAt:a.staleAt,version:a.version}}function D(e,t){let n=null,r=e.slots;if(null!==r)for(let e in n={},r){let l=r[e];n[e]=D(l,t)}return e.isPage?{requestKey:e.requestKey,segment:e.segment,varyPath:(0,c.clonePageVaryPathWithNewSearchParams)(e.varyPath,t),isPage:!0,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}:{requestKey:e.requestKey,segment:e.segment,varyPath:e.varyPath,isPage:!1,slots:n,isRootLayout:e.isRootLayout,hasLoadingBoundary:e.hasLoadingBoundary,hasRuntimePrefetch:e.hasRuntimePrefetch}}function U(e,t,n,r){let l=j(e,r.varyPath);if(null!==l)return l;let a=(0,c.getSegmentVaryPathForRequest)(t,r),u=q(n.staleAt);return(0,m.setInCacheMap)(x,a,u,!1),u}function H(e,t,n,r){var l;let a=(l=r.varyPath,(0,m.getFromCacheMap)(e,C,x,l,!0));if(null!==a)return a;let u=(0,c.getSegmentVaryPathForRequest)(t,r),o=q(n.staleAt);return(0,m.setInCacheMap)(x,u,o,!0),o}function B(e,t,n){let r=(0,c.getSegmentVaryPathForRequest)(e,n),l=q(t.staleAt);return(0,m.setInCacheMap)(x,r,l,!0),l}function V(e,t,n){if((0,m.isValueExpired)(e,C,n))return null;let r=j(e,t);if(null!==r){var l;if(n.fetchStrategy!==r.fetchStrategy&&(l=r.fetchStrategy,!(l""!==e),r=g.ROOT_SEGMENT_REQUEST_KEY,function e(t,n,r,l,a,o,i,s){let f,d,p=null,m=t.slots;if(null!==m)for(let t in f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r),p={},m){let n,u,f,d=m[t],y=d.name,v=d.paramType,b=d.paramKey;if(null!==v){let e=(0,h.parseDynamicParamFromURLPart)(v,a,o),t=null!==b?b:(0,h.getCacheKeyForDynamicParam)(e,"");f=(0,c.appendLayoutVaryPath)(r,t),u=[y,t,v],n=!0}else f=r,u=y,n=(0,h.doesStaticSegmentAppearInURL)(y);let S=n?o+1:o,w=(0,g.createSegmentRequestKeyPart)(u),E=(0,g.appendSegmentRequestKeyPart)(l,t,w);p[t]=e(d,u,f,E,a,S,i,s)}else l.endsWith(S.PAGE_SEGMENT_KEY)?(f=!0,d=(0,c.finalizePageVaryPath)(l,i,r),null===s.metadataVaryPath&&(s.metadataVaryPath=(0,c.finalizeMetadataVaryPath)(l,i,r))):(f=!1,d=(0,c.finalizeLayoutVaryPath)(l,r));return{requestKey:l,segment:n,varyPath:d,isPage:f,slots:p,isRootLayout:t.isRootLayout,hasLoadingBoundary:u.HasLoadingBoundary.SegmentHasLoadingBoundary,hasRuntimePrefetch:t.hasRuntimePrefetch}}(o.tree,r,null,g.ROOT_SEGMENT_REQUEST_KEY,n,0,d,v)),E=v.metadataVaryPath;if(null===E)return Q(e,Date.now()+1e4),null;let _=P(o.staleTime);y=Date.now()+_,l={requestKey:g.HEAD_REQUEST_KEY,segment:g.HEAD_REQUEST_KEY,varyPath:E,isPage:!0,slots:null,isRootLayout:!1,hasLoadingBoundary:u.HasLoadingBoundary.SubtreeHasNoLoadingBoundary,hasRuntimePrefetch:!1},e.status=2,e.tree=w,e.metadata=l,e.staleAt=y,e.couldBeIntercepted=k,e.canonicalUrl=b,e.renderedSearch=d,e.isPPREnabled=x,W(e)}if(!k){let t=(0,c.getFulfilledRouteVaryPath)(r,l,a,k);(0,m.setInCacheMap)(T,t,e,!1)}return{value:null,closed:R.promise}}catch(t){return Q(e,Date.now()+1e4),null}}async function Y(e,t,n,r){let l=new URL(e.canonicalUrl,location.origin),a=n.nextUrl,u=r.requestKey,s=u===g.ROOT_SEGMENT_REQUEST_KEY?"/_index":u,c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_PREFETCH_HEADER]:"1",[o.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:s};null!==a&&(c[o.NEXT_URL]=a);let d=er(l,s);try{let n=await et(d,c);if(!n||!n.ok||204===n.status||"2"!==n.headers.get(o.NEXT_DID_POSTPONE_HEADER)&&0||!n.body)return G(t,Date.now()+1e4),null;let r=(0,_.createPromiseWithResolvers)(),l=en(n.body,r.resolve,function(e){(0,m.setSizeInCacheMap)(t,e)}),a=await (0,i.createFromNextReadableStream)(l,c);if(a.buildId!==(0,f.getAppBuildId)())return G(t,Date.now()+1e4),null;return{value:K(t,a.rsc,a.loading,e.staleAt,a.isPartial),closed:r.promise}}catch(e){return G(t,Date.now()+1e4),null}}async function J(e,t,n,r,l){let a=e.key,u=new URL(t.canonicalUrl,location.origin),s=a.nextUrl;1===l.size&&l.has(t.metadata.requestKey)&&(r=R);let c={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_STATE_TREE_HEADER]:(0,y.prepareFlightRouterStateForRequest)(r)};switch(null!==s&&(c[o.NEXT_URL]=s),n){case E.FetchStrategy.Full:break;case E.FetchStrategy.PPRRuntime:c[o.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case E.FetchStrategy.LoadingBoundary:c[o.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let r=await et(u,c);if(!r||!r.ok||!r.body||(0,h.getRenderedSearch)(r)!==t.renderedSearch)return Z(l,Date.now()+1e4),null;let a=(0,_.createPromiseWithResolvers)(),s=null,d=en(r.body,a.resolve,function(e){if(null===s)return;let t=e/s.length;for(let e of s)(0,m.setSizeInCacheMap)(e,t)}),p=await (0,i.createFromNextReadableStream)(d,c),g=n===E.FetchStrategy.PPRRuntime&&p.rp?.[0]===!0;return s=function(e,t,n,r,l,a,u,i){if(l.b!==(0,f.getAppBuildId)())return null!==i&&Z(i,e+1e4),null;let s=(0,y.normalizeFlightData)(l.f);if("string"==typeof s)return null;let c="number"==typeof l.rp?.[1]?l.rp[1]:parseInt(r.headers.get(o.NEXT_ROUTER_STALE_TIME_HEADER)??"",10),d=e+(isNaN(c)?v.STATIC_STALETIME_MS:P(c));for(let r of s){let l=r.seedData;if(null!==l){let o=r.segmentPath,s=u.tree;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"navigate",{enumerable:!0,get:function(){return c}});let r=e.r(20320),l=e.r(1989),a=e.r(80118),u=e.r(91666),o=e.r(63280),i=e.r(91395),s=e.r(24994);function c(e,t,n,r,l,a,i){let c=Date.now(),d=e.href,g=d===window.location.href,y=(0,o.createCacheKey)(d,l),v=(0,u.readRouteCacheEntry)(c,y);if(null!==v&&v.status===u.EntryStatus.Fulfilled){let u=p(c,v,v.tree),o=u.flightRouterState,i=u.seedData,s=h(c,v),d=s.rsc,m=s.isPartial,y=v.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,o,i,d,m,y,v.renderedSearch,a,e.hash)}if(null===v||v.status!==u.EntryStatus.Rejected){let o=(0,u.requestOptimisticRouteCacheEntry)(c,e,l);if(null!==o){let u=p(c,o,o.tree),i=u.flightRouterState,s=u.seedData,d=h(c,o),m=d.rsc,y=d.isPartial,v=o.canonicalUrl+e.hash;return f(c,e,t,l,g,n,r,i,s,m,y,v,o.renderedSearch,a,e.hash)}}let b=i.collectedDebugInfo??[];return void 0===i.collectedDebugInfo&&(b=i.collectedDebugInfo=[]),{tag:s.NavigationResultTag.Async,data:m(c,e,t,l,g,n,r,a,e.hash,b)}}function f(e,t,n,a,u,o,i,c,f,p,h,m,g,y,v){let b=[],S=(0,l.startPPRNavigation)(e,n,o,i,c,f,p,h,u,b);if(null!==S){let e=S.dynamicRequestTree;if(null!==e){let n=(0,r.fetchServerResponse)(new URL(m,t.origin),{flightRouterState:e,nextUrl:a});(0,l.listenForDynamicRequest)(S,n)}return d(S,o,m,g,b,y,v)}return{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:m,shouldScroll:y}}}function d(e,t,n,r,l,a,u){let o=e.route;if(null===o)return{tag:s.NavigationResultTag.MPA,data:n};let i=e.node;return{tag:s.NavigationResultTag.Success,data:{flightRouterState:o,cacheNode:null!==i?i:t,canonicalUrl:n,renderedSearch:r,scrollableSegments:l,shouldScroll:a,hash:u}}}function p(e,t,n){let r={},l={},a=n.slots;if(null!==a)for(let n in a){let u=p(e,t,a[n]);r[n]=u.flightRouterState,l[n]=u.seedData}let o=null,s=null,c=!0,f=(0,u.readSegmentCacheEntry)(e,n.varyPath);if(null!==f)switch(f.status){case u.EntryStatus.Fulfilled:o=f.rsc,s=f.loading,c=f.isPartial;break;case u.EntryStatus.Pending:{let e=(0,u.waitForSegmentCacheEntry)(f);o=e.then(e=>null!==e?e.rsc:null),s=e.then(e=>null!==e?e.loading:null),c=!0}case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{flightRouterState:[(0,i.addSearchParamsIfPageSegment)(n.segment,Object.fromEntries(new URLSearchParams(t.renderedSearch))),r,null,null,n.isRootLayout],seedData:[o,l,s,c,!1]}}function h(e,t){let n=null,r=!0,l=(0,u.readSegmentCacheEntry)(e,t.metadata.varyPath);if(null!==l)switch(l.status){case u.EntryStatus.Fulfilled:n=l.rsc,r=l.isPartial;break;case u.EntryStatus.Pending:n=(0,u.waitForSegmentCacheEntry)(l).then(e=>null!==e?e.rsc:null),r=!0;case u.EntryStatus.Empty:case u.EntryStatus.Rejected:}return{rsc:n,isPartial:r}}async function m(e,t,n,u,o,i,c,f,p,h){let m=(0,r.fetchServerResponse)(t,{flightRouterState:c,nextUrl:u}),g=await m;if("string"==typeof g)return{tag:s.NavigationResultTag.MPA,data:g};let{flightData:y,canonicalUrl:v,renderedSearch:b,debugInfo:S}=g;null!==S&&h.push(...S);let w=function(e,t){let n=e;for(let{segmentPath:r,tree:l}of t){let t=n!==e;n=function e(t,n,r,l,a){if(a===r.length)return n;let u=r[a],o=t[1],i={};for(let t in o)if(t===u){let u=o[t];i[t]=e(u,n,r,l,a+2)}else i[t]=o[t];if(l)return t[1]=i,t;let s=[t[0],i];return 2 in t&&(s[2]=t[2]),3 in t&&(s[3]=t[3]),4 in t&&(s[4]=t[4]),s}(n,l,r,t,0)}return n}(c,y),E=[],_=(0,l.startPPRNavigation)(e,n,i,c,w,null,null,!0,o,E);return null!==_?(null!==_.dynamicRequestTree&&(0,l.listenForDynamicRequest)(_,m),d(_,i,(0,a.createHrefFromUrl)(v),b,E,f,p)):{tag:s.NavigationResultTag.NoOp,data:{canonicalUrl:(0,a.createHrefFromUrl)(v),shouldScroll:f}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},28806,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={DYNAMIC_STALETIME_MS:function(){return c},STATIC_STALETIME_MS:function(){return f},generateSegmentsFromPatch:function(){return function e(t){let n=[],[r,l]=t;if(0===Object.keys(l).length)return[[r]];for(let[t,a]of Object.entries(l))for(let l of e(a))""===r?n.push([t,...l]):n.push([r,t,...l]);return n}},handleExternalUrl:function(){return d},navigateReducer:function(){return p}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(80118),u=e.r(40494),o=e.r(94345),i=e.r(24994),s=e.r(91666),c=1e3*Number("0"),f=(0,s.getStaleTimeMs)(Number("300"));function d(e,t,n,r){return t.mpaNavigation=!0,t.canonicalUrl=n,t.pendingPush=r,t.scrollableSegments=void 0,(0,u.handleMutable)(e,t)}function p(e,t){let{url:n,isExternalUrl:r,navigateType:l,shouldScroll:s}=t,c={},f=(0,a.createHrefFromUrl)(n),p="push"===l;if(c.preserveCustomHistoryState=!1,c.pendingPush=p,r)return d(e,c,n.toString(),p);if(document.getElementById("__next-page-redirect"))return d(e,c,f,p);let h=new URL(e.canonicalUrl,location.origin),m=(0,o.navigate)(n,h,e.cache,e.tree,e.nextUrl,s,c);return function e(t,n,r,l,a){switch(a.tag){case i.NavigationResultTag.MPA:return d(n,r,a.data,l);case i.NavigationResultTag.NoOp:{r.canonicalUrl=a.data.canonicalUrl;let e=new URL(n.canonicalUrl,t);return t.pathname===e.pathname&&t.search===e.search&&t.hash!==e.hash&&(r.onlyHashChange=!0,r.shouldScroll=a.data.shouldScroll,r.hashFragment=t.hash,r.scrollableSegments=[]),(0,u.handleMutable)(n,r)}case i.NavigationResultTag.Success:return r.cache=a.data.cacheNode,r.patchedTree=a.data.flightRouterState,r.renderedSearch=a.data.renderedSearch,r.canonicalUrl=a.data.canonicalUrl,r.scrollableSegments=a.data.scrollableSegments,r.shouldScroll=a.data.shouldScroll,r.hashFragment=a.data.hash,(0,u.handleMutable)(n,r);case i.NavigationResultTag.Async:return a.data.then(a=>e(t,n,r,l,a),()=>n);default:return n}}(n,e,c,p,m)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},61447,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"fillLazyItemsTillLeafWithHead",{enumerable:!0,get:function(){return function e(t,n,l,a,u,o){if(0===Object.keys(a[1]).length){n.head=o;return}for(let i in a[1]){let s,c=a[1][i],f=c[0],d=(0,r.createRouterCacheKey)(f),p=null!==u&&void 0!==u[1][i]?u[1][i]:null;if(l){let r=l.parallelRoutes.get(i);if(r){let l,a=new Map(r),u=a.get(d);l=null!==p?{lazyData:null,rsc:p[0],prefetchRsc:null,head:null,prefetchHead:null,loading:p[2],parallelRoutes:new Map(u?.parallelRoutes),navigatedAt:t}:{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map(u?.parallelRoutes),loading:null,navigatedAt:t},a.set(d,l),e(t,l,u,c,p||null,o),n.parallelRoutes.set(i,a);continue}}if(null!==p){let e=p[0],n=p[2];s={lazyData:null,rsc:e,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:n,navigatedAt:t}}else s={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:t};let h=n.parallelRoutes.get(i);h?h.set(d,s):n.parallelRoutes.set(i,new Map([[d,s]])),e(t,s,void 0,c,p,o)}}}});let r=e.r(91439);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},59941,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"invalidateCacheByRouterState",{enumerable:!0,get:function(){return l}});let r=e.r(91439);function l(e,t,n){for(let l in n[1]){let a=n[1][l][0],u=(0,r.createRouterCacheKey)(a),o=t.parallelRoutes.get(l);if(o){let t=new Map(o);t.delete(u),e.parallelRoutes.set(l,t)}}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},96397,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={fillCacheWithNewSubTreeData:function(){return c},fillCacheWithNewSubTreeDataButOnlyLoading:function(){return f}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(59941),u=e.r(61447),o=e.r(91439),i=e.r(91395);function s(e,t,n,r,l){let{segmentPath:s,seedData:c,tree:f,head:d}=r,p=t,h=n;for(let t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyFlightData",{enumerable:!0,get:function(){return a}});let r=e.r(61447),l=e.r(96397);function a(e,t,n,a){let{tree:u,seedData:o,head:i,isRootRender:s}=a;if(null===o)return!1;if(s){let l=o[0];n.loading=o[2],n.rsc=l,n.prefetchRsc=null,(0,r.fillLazyItemsTillLeafWithHead)(e,n,t,u,o,i)}else n.rsc=t.rsc,n.prefetchRsc=t.prefetchRsc,n.parallelRoutes=new Map(t.parallelRoutes),n.loading=t.loading,(0,l.fillCacheWithNewSubTreeData)(e,n,t,a);return!0}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},51441,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={addRefreshMarkerToActiveParallelSegments:function(){return function e(t,n){let[r,l,,a]=t;for(let u in r.includes(o.PAGE_SEGMENT_KEY)&&"refresh"!==a&&(t[2]=n,t[3]="refresh"),l)e(l[u],n)}},refreshInactiveParallelSegments:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(1465),u=e.r(20320),o=e.r(91395);async function i(e){let t=new Set;await s({...e,rootTree:e.updatedTree,fetchedSegments:t})}async function s({navigatedAt:e,state:t,updatedTree:n,updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i=n,canonicalUrl:c}){let[,f,d,p]=n,h=[];if(d&&d!==c&&"refresh"===p&&!o.has(d)){o.add(d);let n=(0,u.fetchServerResponse)(new URL(d,location.origin),{flightRouterState:[i[0],i[1],i[2],"refetch"],nextUrl:l?t.nextUrl:null}).then(t=>{if("string"!=typeof t){let{flightData:n}=t;for(let t of n)(0,a.applyFlightData)(e,r,r,t)}});h.push(n)}for(let n in f){let a=s({navigatedAt:e,state:t,updatedTree:f[n],updatedCache:r,includeNextUrl:l,fetchedSegments:o,rootTree:i,canonicalUrl:c});h.push(a)}await Promise.all(h)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},84938,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"applyRouterStatePatchToTree",{enumerable:!0,get:function(){return function e(t,n,r,i){let s,[c,f,d,p,h]=n;if(1===t.length){let e=o(n,r);return(0,u.addRefreshMarkerToActiveParallelSegments)(e,i),e}let[m,g]=t;if(!(0,a.matchSegment)(m,c))return null;if(2===t.length)s=o(f[g],r);else if(null===(s=e((0,l.getNextFlightSegmentPath)(t),f[g],r,i)))return null;let y=[t[0],{...f,[g]:s},d,p];return h&&(y[4]=!0),(0,u.addRefreshMarkerToActiveParallelSegments)(y,i),y}}});let r=e.r(91395),l=e.r(94955),a=e.r(22039),u=e.r(51441);function o(e,t){let[n,l]=e,[u,i]=t;if(u===r.DEFAULT_SEGMENT_KEY&&n!==r.DEFAULT_SEGMENT_KEY)return e;if((0,a.matchSegment)(n,u)){let t={};for(let e in l)void 0!==i[e]?t[e]=o(l[e],i[e]):t[e]=l[e];for(let e in i)t[e]||(t[e]=i[e]);let r=[n,t];return e[2]&&(r[2]=e[2]),e[3]&&(r[3]=e[3]),e[4]&&(r[4]=e[4]),r}return t}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},42887,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"AppRouterAnnouncer",{enumerable:!0,get:function(){return u}});let r=e.r(30668),l=e.r(69941),a="next-route-announcer";function u({tree:e}){let[t,n]=(0,r.useState)(null);(0,r.useEffect)(()=>(n(function(){let e=document.getElementsByName(a)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(a);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(a)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[u,o]=(0,r.useState)(""),i=(0,r.useRef)(void 0);return(0,r.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&o(e),i.current=e},[e]),t?(0,l.createPortal)(u,t):null}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},43941,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"findHeadInCache",{enumerable:!0,get:function(){return a}});let r=e.r(91395),l=e.r(91439);function a(e,t){return function e(t,n,a,u){if(0===Object.keys(n).length)return[t,a,u];let o=Object.keys(n).filter(e=>"children"!==e);for(let u of("children"in n&&o.unshift("children"),o)){let[o,i]=n[u];if(o===r.DEFAULT_SEGMENT_KEY)continue;let s=t.parallelRoutes.get(u);if(!s)continue;let c=(0,l.createRouterCacheKey)(o),f=(0,l.createRouterCacheKey)(o,!0),d=s.get(c);if(!d)continue;let p=e(d,i,a+"/"+c,a+"/"+f);if(p)return p}return null}(e,t,"","")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},36254,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"pathHasPrefix",{enumerable:!0,get:function(){return l}});let r=e.r(28732);function l(e,t){if("string"!=typeof e)return!1;let{pathname:n}=(0,r.parsePath)(e);return n===t||n.startsWith(t+"/")}},37023,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hasBasePath",{enumerable:!0,get:function(){return l}});let r=e.r(36254);function l(e){return(0,r.pathHasPrefix)(e,"")}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},44351,(e,t,n)=>{"use strict";function r(e){return e}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removeBasePath",{enumerable:!0,get:function(){return r}}),e.r(37023),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},9984,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={GracefulDegradeBoundary:function(){return o},default:function(){return i}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(48277),u=e.r(30668);class o extends u.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,u.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,n])=>{e.setAttribute(t,n)})}render(){let{hasError:e}=this.state;return("undefined"==typeof window||this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(35856),l=e.r(48277);e.r(30668);let a=r._(e.r(9984)),u=e.r(71202),o=e.r(62112),i="undefined"!=typeof window&&(0,o.isBot)(window.navigator.userAgent);function s({children:e,errorComponent:t,errorStyles:n,errorScripts:r}){return i?(0,l.jsx)(a.default,{children:e}):(0,l.jsx)(u.ErrorBoundary,{errorComponent:t,errorStyles:n,errorScripts:r,children:e})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},87670,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createEmptyCacheNode:function(){return N},default:function(){return j}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(35856),u=e.r(61909),o=e.r(48277),i=u._(e.r(30668)),s=e.r(45243),c=e.r(98165),f=e.r(80118),d=e.r(69370),p=e.r(53128),h=e.r(42887),m=e.r(2188),g=e.r(43941),y=e.r(83648),v=e.r(44351),b=e.r(37023),S=e.r(5725),w=e.r(61524),E=e.r(19998),_=e.r(44216),P=e.r(84628),k=e.r(79111),R=a._(e.r(81133)),T=a._(e.r(75115)),x=e.r(64381),O={};function C({appRouterState:e}){return(0,i.useInsertionEffect)(()=>{let{tree:t,pushRef:n,canonicalUrl:r,renderedSearch:l}=e,a={...n.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:l}};n.pendingPush&&(0,f.createHrefFromUrl)(new URL(window.location.href))!==r?(n.pendingPush=!1,window.history.pushState(a,"",r)):window.history.replaceState(a,"",r)},[e]),(0,i.useEffect)(()=>{(0,k.pingVisibleLinks)(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function N(){return{lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1}}function M(e){null==e&&(e={});let t=window.history.state,n=t?.__NA;n&&(e.__NA=n);let r=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return r&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=r),e}function L({headCacheNode:e}){let t=null!==e?e.head:null,n=null!==e?e.prefetchHead:null,r=null!==n?n:t;return(0,i.useDeferredValue)(t,r)}function z({actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r}){let l,a=(0,p.useActionQueue)(e),{canonicalUrl:u}=a,{searchParams:f,pathname:w}=(0,i.useMemo)(()=>{let e=new URL(u,"undefined"==typeof window?"http://n":window.location.href);return{searchParams:e.searchParams,pathname:(0,b.hasBasePath)(e.pathname)?(0,v.removeBasePath)(e.pathname):e.pathname}},[u]);(0,i.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(O.pendingMpaPath=void 0,(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,i.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,P.isRedirectError)(t)){e.preventDefault();let n=(0,_.getURLFromRedirectError)(t);(0,_.getRedirectTypeFromError)(t)===P.RedirectType.push?E.publicAppRouterInstance.push(n,{}):E.publicAppRouterInstance.replace(n,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:k}=a;if(k.mpaNavigation){if(O.pendingMpaPath!==u){let e=window.location;k.pendingPush?e.assign(u):e.replace(u),O.pendingMpaPath=u}throw y.unresolvedThenable}(0,i.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),n=e=>{let t=window.location.href,n=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,i.startTransition)(()=>{(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(e??t,t),historyState:n})})};window.history.pushState=function(t,r,l){return t?.__NA||t?._N||(t=M(t),l&&n(l)),e(t,r,l)},window.history.replaceState=function(e,r,l){return e?.__NA||e?._N||(e=M(e),l&&n(l)),t(e,r,l)};let r=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,i.startTransition)(()=>{(0,E.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",r),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",r)}},[]);let{cache:T,tree:N,nextUrl:z,focusAndScrollRef:j,previousNextUrl:F}=a,A=(0,i.useMemo)(()=>(0,g.findHeadInCache)(T,N[1]),[T,N]),D=(0,i.useMemo)(()=>(0,S.getSelectedParams)(N),[N]),U=(0,i.useMemo)(()=>({parentTree:N,parentCacheNode:T,parentSegmentPath:null,parentParams:{},debugNameContext:"/",url:u,isActive:!0}),[N,T,u]),H=(0,i.useMemo)(()=>({tree:N,focusAndScrollRef:j,nextUrl:z,previousNextUrl:F}),[N,j,z,F]);if(null!==A){let[e,t,n]=A;l=(0,o.jsx)(L,{headCacheNode:e},"undefined"==typeof window?n:t)}else l=null;let B=(0,o.jsxs)(m.RedirectBoundary,{children:[l,(0,o.jsx)(x.RootLayoutBoundary,{children:T.rsc}),(0,o.jsx)(h.AppRouterAnnouncer,{tree:N})]});return B=(0,o.jsx)(R.default,{errorComponent:t[0],errorStyles:t[1],children:B}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C,{appRouterState:a}),(0,o.jsx)(I,{}),(0,o.jsx)(d.NavigationPromisesContext.Provider,{value:null,children:(0,o.jsx)(d.PathParamsContext.Provider,{value:D,children:(0,o.jsx)(d.PathnameContext.Provider,{value:w,children:(0,o.jsx)(d.SearchParamsContext.Provider,{value:f,children:(0,o.jsx)(s.GlobalLayoutRouterContext.Provider,{value:H,children:(0,o.jsx)(s.AppRouterContext.Provider,{value:E.publicAppRouterInstance,children:(0,o.jsx)(s.LayoutRouterContext.Provider,{value:U,children:B})})})})})})})]})}function j({actionQueue:e,globalErrorState:t,webSocket:n,staticIndicatorState:r}){(0,w.useNavFailureHandler)();let l=(0,o.jsx)(z,{actionQueue:e,globalError:t,webSocket:n,staticIndicatorState:r});return(0,o.jsx)(R.default,{errorComponent:T.default,children:l})}let F=new Set,A=new Set;function I(){let[,e]=i.default.useState(0),t=F.size;return(0,i.useEffect)(()=>{let n=()=>e(e=>e+1);return A.add(n),t!==F.size&&n(),()=>{A.delete(n)}},[t,e]),[...F].map((e,t)=>(0,o.jsx)("link",{rel:"stylesheet",href:`${e}`,precedence:"next"},t))}globalThis._N_E_STYLE_LOAD=function(e){let t=F.size;return F.add(e),F.size!==t&&A.forEach(e=>e()),Promise.resolve()},("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},76702,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverPatchReducer",{enumerable:!0,get:function(){return c}});let r=e.r(80118),l=e.r(84938),a=e.r(84697),u=e.r(28806),o=e.r(1465),i=e.r(40494),s=e.r(87670);function c(e,t){let{serverResponse:n,navigatedAt:c}=t,f={};if(f.preserveCustomHistoryState=!1,"string"==typeof n)return(0,u.handleExternalUrl)(e,f,n,e.pushRef.pendingPush);let{flightData:d,canonicalUrl:p,renderedSearch:h}=n,m=e.tree,g=e.cache;for(let t of d){let{segmentPath:n,tree:i}=t,d=(0,l.applyRouterStatePatchToTree)(["",...n],m,i,e.canonicalUrl);if(null===d)return e;if((0,a.isNavigatingToNewRootLayout)(m,d))return(0,u.handleExternalUrl)(e,f,e.canonicalUrl,e.pushRef.pendingPush);f.canonicalUrl=(0,r.createHrefFromUrl)(p);let y=(0,s.createEmptyCacheNode)();(0,o.applyFlightData)(c,g,y,t),f.patchedTree=d,f.renderedSearch=h,f.cache=y,g=y,m=d}return(0,i.handleMutable)(e,f)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},43746,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"restoreReducer",{enumerable:!0,get:function(){return a}});let r=e.r(80118),l=e.r(5725);function a(e,t){let n,a,{url:u,historyState:o}=t,i=(0,r.createHrefFromUrl)(u);o?(n=o.tree,a=o.renderedSearch):(n=e.tree,a=e.renderedSearch);let s=e.cache;return{canonicalUrl:i,renderedSearch:a,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:s,tree:n,nextUrl:(0,l.extractPathFromFlightRouterState)(n)??u.pathname,previousNextUrl:null,debugInfo:null}}e.r(1989),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},45733,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"handleSegmentMismatch",{enumerable:!0,get:function(){return l}});let r=e.r(28806);function l(e,t,n){return(0,r.handleExternalUrl)(e,{},e.canonicalUrl,!0)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},64324,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"refreshReducer",{enumerable:!0,get:function(){return m}});let r=e.r(20320),l=e.r(80118),a=e.r(84938),u=e.r(84697),o=e.r(28806),i=e.r(40494),s=e.r(61447),c=e.r(87670),f=e.r(45733),d=e.r(20017),p=e.r(51441),h=e.r(91666);function m(e,t){let{origin:n}=t,m={},g=e.canonicalUrl,y=e.tree;m.preserveCustomHistoryState=!1;let v=(0,c.createEmptyCacheNode)(),b=(0,d.hasInterceptionRouteInCurrentTree)(e.tree);v.lazyData=(0,r.fetchServerResponse)(new URL(g,n),{flightRouterState:[y[0],y[1],y[2],"refetch"],nextUrl:b?e.nextUrl:null});let S=Date.now();return v.lazyData.then(async n=>{if("string"==typeof n)return(0,o.handleExternalUrl)(e,m,n,e.pushRef.pendingPush);let{flightData:r,canonicalUrl:c,renderedSearch:d}=n;for(let n of(v.lazyData=null,r)){let{tree:r,seedData:i,head:w,isRootRender:E}=n;if(!E)return console.log("REFRESH FAILED"),e;let _=(0,a.applyRouterStatePatchToTree)([""],y,r,e.canonicalUrl);if(null===_)return(0,f.handleSegmentMismatch)(e,t,r);if((0,u.isNavigatingToNewRootLayout)(y,_))return(0,o.handleExternalUrl)(e,m,g,e.pushRef.pendingPush);if(m.canonicalUrl=(0,l.createHrefFromUrl)(c),null!==i){let t=i[0],n=i[2];v.rsc=t,v.prefetchRsc=null,v.loading=n,(0,s.fillLazyItemsTillLeafWithHead)(S,v,void 0,r,i,w),(0,h.revalidateEntireCache)(e.nextUrl,_)}await (0,p.refreshInactiveParallelSegments)({navigatedAt:S,state:e,updatedTree:_,updatedCache:v,includeNextUrl:b,canonicalUrl:m.canonicalUrl||e.canonicalUrl}),m.cache=v,m.patchedTree=_,m.renderedSearch=d,y=_}return(0,i.handleMutable)(e,m)},()=>e)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},1470,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hmrRefreshReducer",{enumerable:!0,get:function(){return r}}),e.r(20320),e.r(80118),e.r(84938),e.r(84697),e.r(28806),e.r(40494),e.r(1465),e.r(87670),e.r(45733),e.r(20017);let r=function(e,t){return e};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},98454,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"assignLocation",{enumerable:!0,get:function(){return l}});let r=e.r(39940);function l(e,t){if(e.startsWith(".")){let n=t.origin+t.pathname;return new URL((n.endsWith("/")?n:n+"/")+e)}return new URL((0,r.addBasePath)(e),t.href)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},17213,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={extractInfoFromServerReferenceId:function(){return a},omitUnusedArgs:function(){return u}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});function a(e){let t=parseInt(e.slice(0,2),16),n=t>>1&63,r=Array(6);for(let e=0;e<6;e++){let t=n>>5-e&1;r[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:r,hasRestArgs:1==(1&t)}}function u(e,t){let n=Array(e.length);for(let r=0;r=6&&t.hasRestArgs)&&(n[r]=e[r]);return n}},92114,(e,t,n)=>{"use strict";let r;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"serverActionReducer",{enumerable:!0,get:function(){return C}});let l=e.r(59295),a=e.r(85045),u=e.r(2089),o=e.r(40288),i=e.r(30545),s=e.r(98454),c=e.r(80118),f=e.r(28806),d=e.r(84938),p=e.r(84697),h=e.r(40494),m=e.r(61447),g=e.r(87670),y=e.r(20017),v=e.r(45733),b=e.r(51441),S=e.r(94955),w=e.r(44216),E=e.r(84628),_=e.r(44351),P=e.r(37023),k=e.r(17213),R=e.r(91666),T=i.createFromFetch;async function x(e,t,{actionId:n,actionArgs:c}){let f,d,p,h,m=(0,i.createTemporaryReferenceSet)(),g=(0,k.extractInfoFromServerReferenceId)(n),y="use-cache"===g.type?(0,k.omitUnusedArgs)(c,g):c,v=await (0,i.encodeReply)(y,{temporaryReferences:m}),b={Accept:u.RSC_CONTENT_TYPE_HEADER,[u.ACTION_HEADER]:n,[u.NEXT_ROUTER_STATE_TREE_HEADER]:(0,S.prepareFlightRouterStateForRequest)(e.tree)};t&&(b[u.NEXT_URL]=t);let w=await fetch(e.canonicalUrl,{method:"POST",headers:b,body:v});if("1"===w.headers.get(u.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new o.UnrecognizedActionError(`Server Action "${n}" was not found on the server. -Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let _=w.headers.get("x-action-redirect"),[P,R]=_?.split(";")||[];switch(R){case"push":f=E.RedirectType.push;break;case"replace":f=E.RedirectType.replace;break;default:f=void 0}let x=!!w.headers.get(u.NEXT_IS_PRERENDER_HEADER);try{let e=JSON.parse(w.headers.get("x-action-revalidated")||"[[],0,0]");d={paths:e[0]||[],tag:!!e[1],cookie:e[2]}}catch(e){d=O}let C=P?(0,s.assignLocation)(P,new URL(e.canonicalUrl,window.location.href)):void 0,N=w.headers.get("content-type"),M=!!(N&&N.startsWith(u.RSC_CONTENT_TYPE_HEADER));if(!M&&!C)throw Object.defineProperty(Error(w.status>=400&&"text/plain"===N?await w.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(M){let e=await T(Promise.resolve(w),{callServer:l.callServer,findSourceMapURL:a.findSourceMapURL,temporaryReferences:m,debugChannel:r&&r(b)});p=C?void 0:e.a,h=(0,S.normalizeFlightData)(e.f)}else p=void 0,h=void 0;return{actionResult:p,actionFlightData:h,redirectLocation:C,redirectType:f,revalidatedParts:d,isPrerender:x}}let O={paths:[],tag:!1,cookie:!1};function C(e,t){let{resolve:n,reject:r}=t,l={},a=e.tree;l.preserveCustomHistoryState=!1;let u=(e.previousNextUrl||e.nextUrl)&&(0,y.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null,o=Date.now();return x(e,u,t).then(async({actionResult:i,actionFlightData:s,redirectLocation:y,redirectType:S,revalidatedParts:k})=>{let T;if(y&&(S===E.RedirectType.replace?(e.pushRef.pendingPush=!1,l.pendingPush=!1):(e.pushRef.pendingPush=!0,l.pendingPush=!0),l.canonicalUrl=T=(0,c.createHrefFromUrl)(y,!1)),!s)return(n(i),y)?(0,f.handleExternalUrl)(e,l,y.href,e.pushRef.pendingPush):e;if("string"==typeof s)return n(i),(0,f.handleExternalUrl)(e,l,s,e.pushRef.pendingPush);let x=k.paths.length>0||k.tag||k.cookie;for(let r of(x&&(t.didRevalidate=!0),s)){let{tree:s,seedData:c,head:h,isRootRender:y}=r;if(!y)return console.log("SERVER ACTION APPLY FAILED"),n(i),e;let S=(0,d.applyRouterStatePatchToTree)([""],a,s,T||e.canonicalUrl);if(null===S)return n(i),(0,v.handleSegmentMismatch)(e,t,s);if((0,p.isNavigatingToNewRootLayout)(a,S))return n(i),(0,f.handleExternalUrl)(e,l,T||e.canonicalUrl,e.pushRef.pendingPush);if(null!==c){let t=c[0],n=(0,g.createEmptyCacheNode)();n.rsc=t,n.prefetchRsc=null,n.loading=c[2],(0,m.fillLazyItemsTillLeafWithHead)(o,n,void 0,s,c,h),l.cache=n,(0,R.revalidateEntireCache)(e.nextUrl,S),x&&await (0,b.refreshInactiveParallelSegments)({navigatedAt:o,state:e,updatedTree:S,updatedCache:n,includeNextUrl:!!u,canonicalUrl:l.canonicalUrl||e.canonicalUrl})}l.patchedTree=S,a=S}if(y&&T){let e=(0,w.getRedirectError)((0,P.hasBasePath)(T)?(0,_.removeBasePath)(T):T,S||E.RedirectType.push);e.handled=!0,r(e)}else n(i);return(0,h.handleMutable)(e,l)},t=>(r(t),e))}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},42939,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"reducer",{enumerable:!0,get:function(){return c}});let r=e.r(98165),l=e.r(28806),a=e.r(76702),u=e.r(43746),o=e.r(64324),i=e.r(1470),s=e.r(92114),c="undefined"==typeof window?function(e,t){return e}:function(e,t){switch(t.type){case r.ACTION_NAVIGATE:return(0,l.navigateReducer)(e,t);case r.ACTION_SERVER_PATCH:return(0,a.serverPatchReducer)(e,t);case r.ACTION_RESTORE:return(0,u.restoreReducer)(e,t);case r.ACTION_REFRESH:return(0,o.refreshReducer)(e,t);case r.ACTION_HMR_REFRESH:return(0,i.hmrRefreshReducer)(e,t);case r.ACTION_SERVER_ACTION:return(0,s.serverActionReducer)(e,t);default:throw Object.defineProperty(Error("Unknown action"),"__NEXT_ERROR_CODE",{value:"E295",enumerable:!1,configurable:!0})}};("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},19939,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"prefetch",{enumerable:!0,get:function(){return o}});let r=e.r(93259),l=e.r(63280),a=e.r(40285),u=e.r(24994);function o(e,t,n,o,i){let s=(0,r.createPrefetchURL)(e);if(null===s)return;let c=(0,l.createCacheKey)(s.href,t);(0,a.schedulePrefetchTask)(c,n,o,u.PrefetchPriority.Default,i)}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},19998,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={createMutableActionQueue:function(){return v},dispatchNavigateAction:function(){return w},dispatchTraverseAction:function(){return E},getCurrentAppRouterState:function(){return b},publicAppRouterInstance:function(){return _}};for(var l in r)Object.defineProperty(n,l,{enumerable:!0,get:r[l]});let a=e.r(98165),u=e.r(42939),o=e.r(30668),i=e.r(65035),s=e.r(24994),c=e.r(19939),f=e.r(53128),d=e.r(39940),p=e.r(93259),h=e.r(79111);function m(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&g({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:a.ACTION_REFRESH,origin:window.location.origin},t))}async function g({actionQueue:e,action:t,setState:n}){let r=e.state;e.pending=t;let l=t.payload,u=e.action(r,l);function o(r){if(t.discarded){t.payload.type===a.ACTION_SERVER_ACTION&&t.payload.didRevalidate&&(e.needsRefresh=!0),m(e,n);return}e.state=r,m(e,n),t.resolve(r)}(0,i.isThenable)(u)?u.then(o,r=>{m(e,n),t.reject(r)}):o(u)}let y=null;function v(e,t){let n={state:e,dispatch:(e,t)=>(function(e,t,n){let r={resolve:n,reject:()=>{}};if(t.type!==a.ACTION_RESTORE){let e=new Promise((e,t)=>{r={resolve:e,reject:t}});(0,o.startTransition)(()=>{n(e)})}let l={payload:t,next:null,resolve:r.resolve,reject:r.reject};null===e.pending?(e.last=l,g({actionQueue:e,action:l,setState:n})):t.type===a.ACTION_NAVIGATE||t.type===a.ACTION_RESTORE?(e.pending.discarded=!0,l.next=e.pending.next,g({actionQueue:e,action:l,setState:n})):(null!==e.last&&(e.last.next=l),e.last=l)})(n,e,t),action:async(e,t)=>(0,u.reducer)(e,t),pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};if("undefined"!=typeof window){if(null!==y)throw Object.defineProperty(Error("Internal Next.js Error: createMutableActionQueue was called more than once"),"__NEXT_ERROR_CODE",{value:"E624",enumerable:!1,configurable:!0});y=n}return n}function b(){return null!==y?y.state:null}function S(){return null!==y?y.onRouterTransitionStart:null}function w(e,t,n,r){let l=new URL((0,d.addBasePath)(e),location.href);(0,h.setLinkForCurrentNavigation)(r);let u=S();null!==u&&u(e,t),(0,f.dispatchAppRouterAction)({type:a.ACTION_NAVIGATE,url:l,isExternalUrl:(0,p.isExternalURL)(l),locationSearch:location.search,shouldScroll:n,navigateType:t})}function E(e,t){let n=S();null!==n&&n(e,"traverse"),(0,f.dispatchAppRouterAction)({type:a.ACTION_RESTORE,url:new URL(e),historyState:t})}let _={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{let n,r=function(){if(null===y)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});return y}();switch(t?.kind??a.PrefetchKind.AUTO){case a.PrefetchKind.AUTO:n=s.FetchStrategy.PPR;break;case a.PrefetchKind.FULL:n=s.FetchStrategy.Full;break;case a.PrefetchKind.TEMPORARY:return;default:n=s.FetchStrategy.PPR}(0,c.prefetch)(e,r.state.nextUrl,r.state.tree,n,t?.onInvalidate??null)},replace:(e,t)=>{(0,o.startTransition)(()=>{w(e,"replace",t?.scroll??!0,null)})},push:(e,t)=>{(0,o.startTransition)(()=>{w(e,"push",t?.scroll??!0,null)})},refresh:()=>{(0,o.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:a.ACTION_REFRESH,origin:window.location.origin})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};"undefined"!=typeof window&&window.next&&(window.next.router=_),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},79216,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"createInitialRouterState",{enumerable:!0,get:function(){return i}});let r=e.r(80118),l=e.r(61447),a=e.r(5725),u=e.r(51441),o=e.r(94955);function i({navigatedAt:e,initialFlightData:t,initialCanonicalUrlParts:n,initialRenderedSearch:i,initialParallelRoutes:s,location:c}){let f=n.join("/"),{tree:d,seedData:p,head:h}=(0,o.getFlightDataPartsFromPath)(t[0]),m={lazyData:null,rsc:p?.[0],prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:s,loading:p?.[2]??null,navigatedAt:e},g=c?(0,r.createHrefFromUrl)(c):f;return(0,u.addRefreshMarkerToActiveParallelSegments)(d,g),(null===s||0===s.size)&&(0,l.fillLazyItemsTillLeafWithHead)(e,m,void 0,d,p,h),{tree:d,cache:m,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{apply:!1,onlyHashChange:!1,hashFragment:null,segmentPaths:[]},canonicalUrl:g,renderedSearch:i,nextUrl:((0,a.extractPathFromFlightRouterState)(d)||c?.pathname)??null,previousNextUrl:null,debugInfo:null}}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},51971,(e,t,n)=>{"use strict";let r,l,a,u;Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"hydrate",{enumerable:!0,get:function(){return I}});let o=e.r(35856),i=e.r(48277);e.r(86096);let s=o._(e.r(69460)),c=o._(e.r(30668)),f=e.r(30545),d=e.r(98084),p=e.r(29554),h=e.r(26717),m=e.r(59295),g=e.r(85045),y=e.r(19998),v=o._(e.r(87670)),b=e.r(79216);e.r(45243);let S=e.r(70410),w=e.r(94955),E=f.createFromReadableStream,_=f.createFromFetch,P=document,k=new TextEncoder,R=!1,T=!1,x=null;function O(e){if(0===e[0])a=[];else if(1===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});u?u.enqueue(k.encode(e[1])):a.push(e[1])}else if(2===e[0])x=e[1];else if(3===e[0]){if(!a)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let n=atob(e[1]),r=new Uint8Array(n.length);for(var t=0;t{e.enqueue("string"==typeof t?k.encode(t):t)}),R&&!T)&&(null===e.desiredSize||e.desiredSize<0?e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),T=!0,a=void 0),u=e}}),L=window.__NEXT_CLIENT_RESUME;function z({initialRSCPayload:e,actionQueue:t,webSocket:n,staticIndicatorState:r}){return(0,i.jsx)(v.default,{actionQueue:t,globalErrorState:e.G,webSocket:n,staticIndicatorState:r})}l=L?Promise.resolve(_(L,{callServer:m.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r})).then(async e=>(0,w.createInitialRSCPayloadFromFallbackPrerender)(await L,e)):E(M,{callServer:m.callServer,findSourceMapURL:g.findSourceMapURL,debugChannel:r,startTime:0});let j=c.default.StrictMode;function F({children:e}){return e}let A={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:p.onRecoverableError,onCaughtError:h.onCaughtError,onUncaughtError:h.onUncaughtError};async function I(e,t){let n,r,a=await l;(0,S.setAppBuildId)(a.b);let u=Date.now(),o=(0,y.createMutableActionQueue)((0,b.createInitialRouterState)({navigatedAt:u,initialFlightData:a.f,initialCanonicalUrlParts:a.c,initialRenderedSearch:a.q,initialParallelRoutes:new Map,location:window.location}),e),f=(0,i.jsx)(j,{children:(0,i.jsx)(d.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,i.jsx)(F,{children:(0,i.jsx)(z,{initialRSCPayload:a,actionQueue:o,webSocket:r,staticIndicatorState:n})})})});"__next_error__"===document.documentElement.id?s.default.createRoot(P,A).render(f):c.default.startTransition(()=>{s.default.hydrateRoot(P,f,{...A,formState:x})})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},24153,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});let r=e.r(68402);e.r(29554),window.next.turbopack=!0,self.__webpack_hash__="";let l=e.r(22487);(0,r.appBootstrap)(t=>{let{hydrate:n}=e.r(51971);n(l,t)}),("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/cb115cad1deddecd.js b/src/hyperview/server/static/_next/static/chunks/cb115cad1deddecd.js deleted file mode 100644 index f3d614e..0000000 --- a/src/hyperview/server/static/_next/static/chunks/cb115cad1deddecd.js +++ /dev/null @@ -1 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,86051,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},39400,(e,r,t)=>{"use strict";function n(e,r={}){if(r.onlyHashChange)return void e();let t=document.documentElement;if("smooth"!==t.dataset.scrollBehavior)return void e();let a=t.style.scrollBehavior;t.style.scrollBehavior="auto",r.dontForceLayout||t.getClientRects(),e(),t.style.scrollBehavior=a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),e.r(86051)},15128,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return i}});let n=e.r(61909),a=e.r(48277),o=n._(e.r(30668)),c=e.r(83441),u=e.r(88112);e.r(86051);let l=e.r(45243);class s extends o.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,u.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,u.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,r){return e.pathname!==r.previousPathname&&r.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:r.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:r,unauthorized:t,children:n}=this.props,{triggeredStatus:o}=this.state,c={[u.HTTPAccessErrorStatus.NOT_FOUND]:e,[u.HTTPAccessErrorStatus.FORBIDDEN]:r,[u.HTTPAccessErrorStatus.UNAUTHORIZED]:t};if(o){let l=o===u.HTTPAccessErrorStatus.NOT_FOUND&&e,s=o===u.HTTPAccessErrorStatus.FORBIDDEN&&r,i=o===u.HTTPAccessErrorStatus.UNAUTHORIZED&&t;return l||s||i?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,c[o]]}):n}return n}}function i({notFound:e,forbidden:r,unauthorized:t,children:n}){let u=(0,c.useUntrackedPathname)(),i=(0,o.useContext)(l.MissingSlotContext);return e||r||t?(0,a.jsx)(s,{pathname:u,notFound:e,forbidden:r,unauthorized:t,missingSlots:i,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},79227,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=e.r(30668);function a(e,r){let[t,a]=(0,n.useState)(()=>({tree:e,stateKey:r,next:null}));if(t.tree===e)return t;let o={tree:e,stateKey:r,next:null},c=1,u=t,l=o;for(;null!==u&&c<1;){if(u.stateKey===r){l.next=u.next;break}{c++;let e={tree:u.tree,stateKey:u.stateKey,next:null};l.next=e,l=e}u=u.next}return a(o),o}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},32035,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return T}});let n=e.r(35856),a=e.r(61909),o=e.r(48277),c=e.r(98165),u=a._(e.r(30668)),l=n._(e.r(69941)),s=e.r(45243),i=e.r(20320),d=e.r(83648),f=e.r(71202),p=e.r(22039),h=e.r(39400),m=e.r(2188),g=e.r(15128),y=e.r(91439),b=e.r(20017),P=e.r(53128),_=e.r(79227);e.r(86511);let v=e.r(69370),O=e.r(88617),S=l.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=["bottom","height","left","right","top","width","x","y"];function R(e,r){let t=e.getBoundingClientRect();return t.top>=0&&t.top<=r}class j extends u.default.Component{componentDidMount(){this.handlePotentialScroll()}componentDidUpdate(){this.props.focusAndScrollRef.apply&&this.handlePotentialScroll()}render(){return this.props.children}constructor(...e){super(...e),this.handlePotentialScroll=()=>{let{focusAndScrollRef:e,segmentPath:r}=this.props;if(e.apply){if(0!==e.segmentPaths.length&&!e.segmentPaths.some(e=>r.every((r,t)=>(0,p.matchSegment)(r,e[t]))))return;let t=null,n=e.hashFragment;if(n&&(t="top"===n?document.body:document.getElementById(n)??document.getElementsByName(n)[0]),t||(t="undefined"==typeof window?null:(0,S.findDOMNode)(this)),!(t instanceof Element))return;for(;!(t instanceof HTMLElement)||function(e){if(["sticky","fixed"].includes(getComputedStyle(e).position))return!0;let r=e.getBoundingClientRect();return E.every(e=>0===r[e])}(t);){if(null===t.nextElementSibling)return;t=t.nextElementSibling}e.apply=!1,e.hashFragment=null,e.segmentPaths=[],(0,h.disableSmoothScrollDuringRouteTransition)(()=>{if(n)return void t.scrollIntoView();let e=document.documentElement,r=e.clientHeight;!R(t,r)&&(e.scrollTop=0,R(t,r)||t.scrollIntoView())},{dontForceLayout:!0,onlyHashChange:e.onlyHashChange}),e.onlyHashChange=!1,t.focus()}}}}function w({segmentPath:e,children:r}){let t=(0,u.useContext)(s.GlobalLayoutRouterContext);if(!t)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});return(0,o.jsx)(j,{segmentPath:e,focusAndScrollRef:t.focusAndScrollRef,children:r})}function C({tree:e,segmentPath:r,debugNameContext:t,cacheNode:n,params:a,url:l,isActive:f}){let h=(0,u.useContext)(s.GlobalLayoutRouterContext);if((0,u.useContext)(v.NavigationPromisesContext),!h)throw Object.defineProperty(Error("invariant global layout router not mounted"),"__NEXT_ERROR_CODE",{value:"E473",enumerable:!1,configurable:!0});let{tree:m}=h,g=null!==n.prefetchRsc?n.prefetchRsc:n.rsc,y=(0,u.useDeferredValue)(n.rsc,g),_="object"==typeof y&&null!==y&&"function"==typeof y.then?(0,u.use)(y):y;if(!_){if(f){let e=n.lazyData;if(null===e){let t=function e(r,t){if(r){let[n,a]=r,o=2===r.length;if((0,p.matchSegment)(t[0],n)&&t[1].hasOwnProperty(a)){if(o){let r=e(void 0,t[1][a]);return[t[0],{...t[1],[a]:[r[0],r[1],r[2],"refetch"]}]}return[t[0],{...t[1],[a]:e(r.slice(2),t[1][a])}]}}return t}(["",...r],m),a=(0,b.hasInterceptionRouteInCurrentTree)(m),o=Date.now();n.lazyData=e=(0,i.fetchServerResponse)(new URL(l,location.origin),{flightRouterState:t,nextUrl:a?h.previousNextUrl||h.nextUrl:null}).then(e=>((0,u.startTransition)(()=>{(0,P.dispatchAppRouterAction)({type:c.ACTION_SERVER_PATCH,previousTree:m,serverResponse:e,navigatedAt:o})}),e)),(0,u.use)(e)}}(0,u.use)(d.unresolvedThenable)}return(0,o.jsx)(s.LayoutRouterContext.Provider,{value:{parentTree:e,parentCacheNode:n,parentSegmentPath:r,parentParams:a,debugNameContext:t,url:l,isActive:f},children:_})}function x({name:e,loading:r,children:t}){let n;if(n="object"==typeof r&&null!==r&&"function"==typeof r.then?(0,u.use)(r):r){let r=n[0],a=n[1],c=n[2];return(0,o.jsx)(u.Suspense,{name:e,fallback:(0,o.jsxs)(o.Fragment,{children:[a,c,r]}),children:t})}return(0,o.jsx)(o.Fragment,{children:t})}function T({parallelRouterKey:e,error:r,errorStyles:t,errorScripts:n,templateStyles:a,templateScripts:c,template:l,notFound:i,forbidden:d,unauthorized:p,segmentViewBoundaries:h}){let b=(0,u.useContext)(s.LayoutRouterContext);if(!b)throw Object.defineProperty(Error("invariant expected layout router to be mounted"),"__NEXT_ERROR_CODE",{value:"E56",enumerable:!1,configurable:!0});let{parentTree:P,parentCacheNode:v,parentSegmentPath:S,parentParams:E,url:R,isActive:j,debugNameContext:T}=b,A=v.parallelRoutes,M=A.get(e);M||(M=new Map,A.set(e,M));let F=P[0],D=null===S?[e]:S.concat([F,e]),k=P[1][e],N=k[0],I=(0,y.createRouterCacheKey)(N,!0),U=(0,_.useRouterBFCache)(k,I),H=[];do{let e=U.tree,u=U.stateKey,h=e[0],b=(0,y.createRouterCacheKey)(h),P=M.get(b);if(void 0===P){let e={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null,navigatedAt:-1};P=e,M.set(b,e)}let _=E;if(Array.isArray(h)){let e=h[0],r=h[1],t=h[2],n=(0,O.getParamValueFromCacheKey)(r,t);null!==n&&(_={...E,[e]:n})}let S=function(e){if("/"===e)return"/";if("string"==typeof e)if("(slot)"===e)return;else return e+"/";return e[1]+"/"}(h),A=S??T,F=void 0===S?void 0:T,k=v.loading,N=(0,o.jsxs)(s.TemplateContext.Provider,{value:(0,o.jsxs)(w,{segmentPath:D,children:[(0,o.jsx)(f.ErrorBoundary,{errorComponent:r,errorStyles:t,errorScripts:n,children:(0,o.jsx)(x,{name:F,loading:k,children:(0,o.jsx)(g.HTTPAccessFallbackBoundary,{notFound:i,forbidden:d,unauthorized:p,children:(0,o.jsxs)(m.RedirectBoundary,{children:[(0,o.jsx)(C,{url:R,tree:e,params:_,cacheNode:P,segmentPath:D,debugNameContext:A,isActive:j&&u===I}),null]})})})}),null]}),children:[a,c,l]},u);H.push(N),U=U.next}while(null!==U)return H}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},91168,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=e.r(61909),a=e.r(48277),o=n._(e.r(30668)),c=e.r(45243);function u(){let e=(0,o.useContext)(c.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},66387,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},12318,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(66387).createRenderSearchParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},13972,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e){let r=n.get(e);if(r)return r;let t=Promise.resolve(e);return n.set(e,t),t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},4986,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=e.r(13972).createRenderParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},27731,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,r,t){let n=Reflect.get(e,r,t);return"function"==typeof n?n.bind(e):n}static set(e,r,t,n){return Reflect.set(e,r,t,n)}static has(e,r){return Reflect.has(e,r)}static deleteProperty(e,r){return Reflect.deleteProperty(e,r)}}},36380,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return l}});let n=function(e,r){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(void 0);if(t&&t.has(e))return t.get(e);var n={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var c in e)if("default"!==c&&Object.prototype.hasOwnProperty.call(e,c)){var u=o?Object.getOwnPropertyDescriptor(e,c):null;u&&(u.get||u.set)?Object.defineProperty(n,c,u):n[c]=e[c]}return n.default=e,t&&t.set(e,n),n}(e.r(30668));function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}let o={current:null},c="function"==typeof n.cache?n.cache:e=>e,u=console.warn;function l(e){return function(...r){u(e(...r))}}c(e=>{try{u(o.current)}finally{o.current=null}})},20697,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={describeHasCheckingStringProperty:function(){return u},describeStringPropertyAccess:function(){return c},wellKnownProperties:function(){return l}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function c(e,r){return o.test(r)?`\`${e}.${r}\``:`\`${e}[${JSON.stringify(r)}]\``}function u(e,r){let t=JSON.stringify(r);return`\`Reflect.has(${e}, ${t})\`, \`${t} in ${e}\`, or similar`}let l=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule"])},84642,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},55436,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(84642)},83602,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return s},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return u}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(16819),c=e.r(55436);function u(e,r){throw Object.defineProperty(new o.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,r){let t=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(t,r),e.invalidDynamicUsageError??=t,t}function s(){let e=c.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},9115,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createPrerenderSearchParamsForClientPage:function(){return g},createSearchParamsFromClient:function(){return p},createServerSearchParamsForMetadata:function(){return h},createServerSearchParamsForServerPage:function(){return m},makeErroringSearchParamsForUseCache:function(){return v}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(27731),c=e.r(93869),u=e.r(63416),l=e.r(84524),s=e.r(64265),i=e.r(36380),d=e.r(20697),f=e.r(83602);function p(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E769",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createSearchParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E739",enumerable:!1,configurable:!0});case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}e.r(93501);let h=m;function m(e,r){let t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return y(r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createServerSearchParamsForServerPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E747",enumerable:!1,configurable:!0});case"prerender-runtime":var n,a;return n=e,a=t,(0,c.delayUntilRuntimeStage)(a,O(n));case"request":return b(e,r,t)}(0,u.throwInvariantForMissingStore)()}function g(e){if(e.forceStatic)return Promise.resolve({});let r=u.workUnitAsyncStorage.getStore();if(r)switch(r.type){case"prerender":case"prerender-client":return(0,s.makeHangingPromise)(r.renderSignal,e.route,"`searchParams`");case"prerender-runtime":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E768",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new l.InvariantError("createPrerenderSearchParamsForClientPage should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E746",enumerable:!1,configurable:!0});case"prerender-ppr":case"prerender-legacy":case"request":return Promise.resolve({})}(0,u.throwInvariantForMissingStore)()}function y(e,r){if(e.forceStatic)return Promise.resolve({});switch(r.type){case"prerender":case"prerender-client":var t=e,n=r;let a=P.get(n);if(a)return a;let u=(0,s.makeHangingPromise)(n.renderSignal,t.route,"`searchParams`"),l=new Proxy(u,{get(e,r,t){if(Object.hasOwn(u,r))return o.ReflectAdapter.get(e,r,t);switch(r){case"then":return(0,c.annotateDynamicAccess)("`await searchParams`, `searchParams.then`, or similar",n),o.ReflectAdapter.get(e,r,t);case"status":return(0,c.annotateDynamicAccess)("`use(searchParams)`, `searchParams.status`, or similar",n),o.ReflectAdapter.get(e,r,t);default:return o.ReflectAdapter.get(e,r,t)}}});return P.set(n,l),l;case"prerender-ppr":case"prerender-legacy":var i=e,d=r;let p=P.get(i);if(p)return p;let h=Promise.resolve({}),m=new Proxy(h,{get(e,r,t){if(Object.hasOwn(h,r))return o.ReflectAdapter.get(e,r,t);if("string"==typeof r&&"then"===r){let e="`await searchParams`, `searchParams.then`, or similar";i.dynamicShouldError?(0,f.throwWithStaticGenerationBailoutErrorWithDynamicError)(i.route,e):"prerender-ppr"===d.type?(0,c.postponeWithTracking)(i.route,e,d.dynamicTracking):(0,c.throwToInterruptStaticGeneration)(e,i,d)}return o.ReflectAdapter.get(e,r,t)}});return P.set(i,m),m;default:return r}}function b(e,r,t){return r.forceStatic?Promise.resolve({}):O(e)}let P=new WeakMap,_=new WeakMap;function v(e){let r=_.get(e);if(r)return r;let t=Promise.resolve({}),n=new Proxy(t,{get:function r(n,a,c){return Object.hasOwn(t,a)||"string"!=typeof a||"then"!==a&&d.wellKnownProperties.has(a)||(0,f.throwForSearchParamsAccessInUseCache)(e,r),o.ReflectAdapter.get(n,a,c)}});return _.set(e,n),n}function O(e){let r=P.get(e);if(r)return r;let t=Promise.resolve(e);return P.set(e,t),t}(0,i.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`searchParams\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E848",enumerable:!1,configurable:!0})})},6782,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},14190,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"dynamicAccessAsyncStorage",{enumerable:!0,get:function(){return n.dynamicAccessAsyncStorageInstance}});let n=e.r(6782)},69318,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createParamsFromClient:function(){return h},createPrerenderParamsForClientSegment:function(){return b},createServerParamsForMetadata:function(){return m},createServerParamsForRoute:function(){return g},createServerParamsForServerSegment:function(){return y}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(26628),c=e.r(27731),u=e.r(93869),l=e.r(63416),s=e.r(84524),i=e.r(20697),d=e.r(64265),f=e.r(36380),p=e.r(14190);function h(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E736",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new s.InvariantError("createParamsFromClient should not be called in a runtime prerender."),"__NEXT_ERROR_CODE",{value:"E770",enumerable:!1,configurable:!0});case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}e.r(93501);let m=y;function g(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function y(e,r){let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":return P(e,r,t);case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createServerParamsForServerSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E743",enumerable:!1,configurable:!0});case"prerender-runtime":return _(e,t);case"request":return S(e)}(0,l.throwInvariantForMissingStore)()}function b(e){let r=o.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new s.InvariantError("Missing workStore in createPrerenderParamsForClientSegment"),"__NEXT_ERROR_CODE",{value:"E773",enumerable:!1,configurable:!0});let t=l.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-client":let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return(0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`")}break;case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new s.InvariantError("createPrerenderParamsForClientSegment should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E734",enumerable:!1,configurable:!0})}return Promise.resolve(e)}function P(e,r,t){switch(t.type){case"prerender":case"prerender-client":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t){let n=v.get(e);if(n)return n;let a=new Proxy((0,d.makeHangingPromise)(t.renderSignal,r.route,"`params`"),O);return v.set(e,a),a}(e,r,t)}break}case"prerender-ppr":{let n=t.fallbackRouteParams;if(n){for(let a in e)if(n.has(a))return function(e,r,t,n){let a=v.get(e);if(a)return a;let o={...e},c=Promise.resolve(o);return v.set(e,c),Object.keys(e).forEach(e=>{i.wellKnownProperties.has(e)||r.has(e)&&Object.defineProperty(o,e,{get(){let r=(0,i.describeStringPropertyAccess)("params",e);"prerender-ppr"===n.type?(0,u.postponeWithTracking)(t.route,r,n.dynamicTracking):(0,u.throwToInterruptStaticGeneration)(r,t,n)},enumerable:!0})}),c}(e,n,r,t)}}}return S(e)}function _(e,r){return(0,u.delayUntilRuntimeStage)(r,S(e))}let v=new WeakMap,O={get:function(e,r,t){if("then"===r||"catch"===r||"finally"===r){let n=c.ReflectAdapter.get(e,r,t);return({[r]:(...r)=>{let t=p.dynamicAccessAsyncStorage.getStore();return t&&t.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,r),O)}})[r]}return c.ReflectAdapter.get(e,r,t)}};function S(e){let r=v.get(e);if(r)return r;let t=Promise.resolve(e);return v.set(e,t),t}(0,f.createDedupedByCallsiteServerErrorLoggerDev)(function(e,r){let t=e?`Route "${e}" `:"This route ";return Object.defineProperty(Error(`${t}used ${r}. \`params\` is a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E834",enumerable:!1,configurable:!0})})},73440,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return s}});let n=e.r(48277),a=e.r(84524),o=e.r(45243),c=e.r(30668),u=e.r(88617),l=e.r(69370);function s({Component:r,serverProvidedParams:t}){let s,i;if(null!==t)s=t.searchParams,i=t.params;else{let e=(0,c.use)(o.LayoutRouterContext);i=null!==e?e.parentParams:{},s=(0,u.urlSearchParamsToParsedUrlQuery)((0,c.use)(l.SearchParamsContext))}if("undefined"==typeof window){let t,o,{workAsyncStorage:c}=e.r(26628),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling searchParams in a client Page."),"__NEXT_ERROR_CODE",{value:"E564",enumerable:!1,configurable:!0});let{createSearchParamsFromClient:l}=e.r(9115);t=l(s,u);let{createParamsFromClient:d}=e.r(69318);return o=d(i,u),(0,n.jsx)(r,{params:o,searchParams:t})}{let{createRenderSearchParamsFromClient:t}=e.r(12318),a=t(s),{createRenderParamsFromClient:o}=e.r(4986),c=o(i);return(0,n.jsx)(r,{params:c,searchParams:a})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},34636,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return u}});let n=e.r(48277),a=e.r(84524),o=e.r(45243),c=e.r(30668);function u({Component:r,slots:t,serverProvidedParams:u}){let l;if(null!==u)l=u.params;else{let e=(0,c.use)(o.LayoutRouterContext);l=null!==e?e.parentParams:{}}if("undefined"==typeof window){let o,{workAsyncStorage:c}=e.r(26628),u=c.getStore();if(!u)throw Object.defineProperty(new a.InvariantError("Expected workStore to exist when handling params in a client segment such as a Layout or Template."),"__NEXT_ERROR_CODE",{value:"E600",enumerable:!1,configurable:!0});let{createParamsFromClient:s}=e.r(69318);return o=s(l,u),(0,n.jsx)(r,{...t,params:o})}{let{createRenderParamsFromClient:a}=e.r(4986),o=a(l);return(0,n.jsx)(r,{...t,params:o})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},12843,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return a}});let n=e.r(48277),a=()=>"undefined"!=typeof window?null:(0,n.jsx)("meta",{name:"«nxt-icon»"})}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/e7ae0fd4a43b4ae1.css b/src/hyperview/server/static/_next/static/chunks/e7ae0fd4a43b4ae1.css deleted file mode 100644 index 23ca574..0000000 --- a/src/hyperview/server/static/_next/static/chunks/e7ae0fd4a43b4ae1.css +++ /dev/null @@ -1,3 +0,0 @@ -@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_c50830d4-module__9YwRda__className{font-family:Inter,Inter Fallback;font-style:normal} -.dv-scrollable{position:relative;overflow:hidden}.dv-scrollable .dv-scrollbar-horizontal{will-change:background-color,transform;backface-visibility:hidden;background-color:#0000;border-radius:2px;height:4px;transition:background-color 1s ease-in-out;position:absolute;bottom:0;left:0;transform:translate(0,0)}.dv-scrollable:hover .dv-scrollbar-horizontal,.dv-scrollable.dv-scrollable-resizing .dv-scrollbar-horizontal,.dv-scrollable.dv-scrollable-scrolling .dv-scrollbar-horizontal{background-color:var(--dv-scrollbar-background-color,#ffffff40)}.dv-svg{fill:currentColor;stroke:currentColor;stroke-width:0;line-height:1;display:inline-block}.dockview-theme-dark{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#1e1e1e;--dv-tabs-and-actions-container-background-color:#252526;--dv-activegroup-visiblepanel-tab-background-color:#1e1e1e;--dv-activegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color:#1e1e1e;--dv-inactivegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-tab-divider-color:#1e1e1e;--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:#969696;--dv-inactivegroup-visiblepanel-tab-color:#8f8f8f;--dv-inactivegroup-hiddenpanel-tab-color:#626262;--dv-separator-border:#444;--dv-paneview-header-border-color:#ccc3}.dockview-theme-dark .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-light{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:white;--dv-tabs-and-actions-container-background-color:#f3f3f3;--dv-activegroup-visiblepanel-tab-background-color:white;--dv-activegroup-hiddenpanel-tab-background-color:#ececec;--dv-inactivegroup-visiblepanel-tab-background-color:white;--dv-inactivegroup-hiddenpanel-tab-background-color:#ececec;--dv-tab-divider-color:white;--dv-activegroup-visiblepanel-tab-color:#333;--dv-activegroup-hiddenpanel-tab-color:#333333b3;--dv-inactivegroup-visiblepanel-tab-color:#333333b3;--dv-inactivegroup-hiddenpanel-tab-color:#33333359;--dv-separator-border:#80808059;--dv-paneview-header-border-color:#333;--dv-scrollbar-background-color:#00000040}.dockview-theme-light .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs{--dv-paneview-active-outline-color:dodgerblue;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#1e1e1e;--dv-tabs-and-actions-container-background-color:#2d2d30;--dv-activegroup-visiblepanel-tab-background-color:#007acc;--dv-activegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-inactivegroup-visiblepanel-tab-background-color:#3f3f46;--dv-inactivegroup-hiddenpanel-tab-background-color:#2d2d2d;--dv-tab-divider-color:#1e1e1e;--dv-activegroup-hiddenpanel-tab-color:white;--dv-inactivegroup-visiblepanel-tab-color:white;--dv-inactivegroup-hiddenpanel-tab-color:white;--dv-separator-border:#444;--dv-paneview-header-border-color:#ccc3;--dv-tabs-and-actions-container-height:20px;--dv-tabs-and-actions-container-font-size:11px;--dv-activegroup-visiblepanel-tab-color:white}.dockview-theme-vs .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-activegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-activegroup-hiddenpanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container{box-sizing:content-box;border-bottom:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-active-tab{border-top:2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color)}.dockview-theme-vs .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tab.dv-inactive-tab{border-top:2px solid var(--dv-inactivegroup-hiddenpanel-tab-background-color)}.dockview-theme-abyss{--dv-paneview-active-outline-color:#596f99;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-color-abyss-dark:#000c18;--dv-color-abyss:#10192c;--dv-color-abyss-light:#1c1c2a;--dv-color-abyss-lighter:#2b2b4a;--dv-color-abyss-accent:#5b1ecf;--dv-color-abyss-primary-text:white;--dv-color-abyss-secondary-text:#9497a9;--dv-group-view-background-color:var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color:var(--dv-color-abyss-light);--dv-activegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-dark);--dv-activegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss);--dv-inactivegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-dark);--dv-inactivegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss);--dv-tab-divider-color:var(--dv-color-abyss-lighter);--dv-activegroup-visiblepanel-tab-color:white;--dv-activegroup-hiddenpanel-tab-color:#ffffff80;--dv-inactivegroup-visiblepanel-tab-color:#ffffff80;--dv-inactivegroup-hiddenpanel-tab-color:#ffffff40;--dv-separator-border:var(--dv-color-abyss-lighter);--dv-paneview-header-border-color:var(--dv-color-abyss-lighter)}.dockview-theme-abyss .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula{--dv-paneview-active-outline-color:#6272a4;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:transparent;--dv-active-sash-color:transparent;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-group-view-background-color:#282a36;--dv-tabs-and-actions-container-background-color:#191a21;--dv-activegroup-visiblepanel-tab-background-color:#282a36;--dv-activegroup-hiddenpanel-tab-background-color:#21222c;--dv-inactivegroup-visiblepanel-tab-background-color:#282a36;--dv-inactivegroup-hiddenpanel-tab-background-color:#21222c;--dv-tab-divider-color:#191a21;--dv-activegroup-visiblepanel-tab-color:#f8f8f2;--dv-activegroup-hiddenpanel-tab-color:#6272a4;--dv-inactivegroup-visiblepanel-tab-color:#f8f8f280;--dv-inactivegroup-hiddenpanel-tab-color:#6272a480;--dv-separator-border:#bd93f9;--dv-paneview-header-border-color:#bd93f9}.dockview-theme-dracula .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{content:"";z-index:999;background-color:#94527e;width:100%;height:1px;position:absolute;top:0;left:0}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{position:relative}.dockview-theme-dracula .dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab:after{content:"";z-index:999;background-color:#5e3d5a;width:100%;height:1px;position:absolute;bottom:0;left:0}.dockview-theme-replit{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-tabs-and-actions-container-height:35px;--dv-drag-over-background-color:#53595d80;--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #53595d80;--dv-overlay-z-index:999;--dv-tab-font-size:inherit;--dv-border-radius:0px;--dv-tab-margin:0;--dv-sash-color:#cfd1d3;--dv-active-sash-color:#babbbb;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;box-sizing:border-box;--dv-group-view-background-color:#ebeced;--dv-tabs-and-actions-container-background-color:#fcfcfc;--dv-activegroup-visiblepanel-tab-background-color:#f0f1f2;--dv-activegroup-hiddenpanel-tab-background-color:#fcfcfc;--dv-inactivegroup-visiblepanel-tab-background-color:#f0f1f2;--dv-inactivegroup-hiddenpanel-tab-background-color:#fcfcfc;--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:#333;--dv-activegroup-hiddenpanel-tab-color:#333;--dv-inactivegroup-visiblepanel-tab-color:#333;--dv-inactivegroup-hiddenpanel-tab-color:#333;--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;background-color:#ebeced;padding:10px}.dockview-theme-replit .dv-drop-target-container .dv-drop-target-anchor.dv-drop-target-anchor-container-changed{opacity:0;transition:none}.dockview-theme-replit .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-replit .dv-resize-container{border:none;border-radius:10px!important}.dockview-theme-replit .dv-groupview{border-radius:10px;overflow:hidden}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container{border-bottom:1px solid #80808059}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab{border-radius:8px;margin:4px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-replit .dv-groupview .dv-tabs-and-actions-container .dv-tab:hover{background-color:#e4e5e6!important}.dockview-theme-replit .dv-groupview .dv-content-container{background-color:#fcfcfc}.dockview-theme-replit .dv-groupview.dv-active-group{border:1px solid #80808059}.dockview-theme-replit .dv-groupview.dv-inactive-group{border:1px solid #0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash{background-color:#0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):after{content:"";background-color:var(--dv-sash-color);border-radius:2px;width:40px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:#0000}.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-vertical>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash{background-color:#0000}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):after{content:"";background-color:var(--dv-sash-color);border-radius:2px;width:4px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active{background-color:#0000}.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):hover:after,.dockview-theme-replit .dv-horizontal>.dv-sash-container>.dv-sash:not(.disabled):active:after{background-color:var(--dv-active-sash-color)}.dockview-theme-abyss-spaced{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-drag-over-background-color:"";--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #00000080;--dv-overlay-z-index:999;--dv-tab-font-size:12px;--dv-tab-margin:.5rem .25rem;--dv-sash-color:transparent;--dv-active-sash-color:var(--dv-color-abyss-accent);--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-tabs-and-actions-container-height:44px;--dv-border-radius:20px;box-sizing:border-box;--dv-color-abyss-dark:#0b0611;--dv-color-abyss:#16121f;--dv-color-abyss-light:#201d2b;--dv-color-abyss-lighter:#2a2837;--dv-color-abyss-accent:#5b1ecf;--dv-color-abyss-primary-text:white;--dv-color-abyss-secondary-text:#9497a9;--dv-drag-over-border:2px solid var(--dv-color-abyss-accent);--dv-group-view-background-color:var(--dv-color-abyss-dark);--dv-tabs-and-actions-container-background-color:var(--dv-color-abyss);--dv-activegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-lighter);--dv-activegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss-light);--dv-inactivegroup-visiblepanel-tab-background-color:var(--dv-color-abyss-lighter);--dv-inactivegroup-hiddenpanel-tab-background-color:var(--dv-color-abyss-light);--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:var(--dv-color-abyss-primary-text);--dv-activegroup-hiddenpanel-tab-color:var(--dv-color-abyss-secondary-text);--dv-inactivegroup-visiblepanel-tab-color:var(--dv-color-abyss-primary-text);--dv-inactivegroup-hiddenpanel-tab-color:var(--dv-color-abyss-secondary-text);--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;background-color:var(--dv-color-abyss-dark);padding:10px}.dockview-theme-abyss-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-abyss-spaced .dv-sash{border-radius:4px}.dockview-theme-abyss-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius)/4)}.dockview-theme-abyss-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-resize-container{border:none;border-radius:var(--dv-border-radius)!important}.dockview-theme-abyss-spaced .dv-tabs-overflow-container,.dockview-theme-abyss-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-abyss-spaced .dv-tab{border-radius:8px}.dockview-theme-abyss-spaced .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-abyss-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-abyss-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius)/2)}.dockview-theme-abyss-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-abyss-spaced .dv-resize-container .dv-groupview{border:2px solid var(--dv-color-abyss-dark)}.dockview-theme-light-spaced{--dv-paneview-active-outline-color:dodgerblue;--dv-tabs-and-actions-container-font-size:13px;--dv-drag-over-background-color:"";--dv-drag-over-border-color:transparent;--dv-tabs-container-scrollbar-color:#888;--dv-icon-hover-background-color:#5a5d5e4f;--dv-floating-box-shadow:8px 8px 8px 0px #0000001a;--dv-overlay-z-index:999;--dv-tab-font-size:12px;--dv-tab-margin:.5rem .25rem;--dv-sash-color:transparent;--dv-active-sash-color:#5b1ecf;--dv-active-sash-transition-duration:.1s;--dv-active-sash-transition-delay:.5s;--dv-tabs-and-actions-container-height:44px;--dv-border-radius:20px;box-sizing:border-box;--dv-drag-over-border:2px solid #5b1ecf;--dv-group-view-background-color:#f6f5f9;--dv-tabs-and-actions-container-background-color:white;--dv-activegroup-visiblepanel-tab-background-color:#ededf0;--dv-activegroup-hiddenpanel-tab-background-color:#f9f9fa;--dv-inactivegroup-visiblepanel-tab-background-color:#ededf0;--dv-inactivegroup-hiddenpanel-tab-background-color:#f9f9fa;--dv-tab-divider-color:transparent;--dv-activegroup-visiblepanel-tab-color:#686b82;--dv-activegroup-hiddenpanel-tab-color:#9497a9;--dv-inactivegroup-visiblepanel-tab-color:#686b82;--dv-inactivegroup-hiddenpanel-tab-color:#9497a9;--dv-separator-border:transparent;--dv-paneview-header-border-color:#333;--dv-scrollbar-background-color:#00000040;background-color:#f6f5f9;padding:10px}.dockview-theme-light-spaced .dv-resize-container:has(>.dv-groupview){border-radius:8px}.dockview-theme-light-spaced .dv-sash{border-radius:4px}.dockview-theme-light-spaced .dv-drop-target-anchor{border-radius:calc(var(--dv-border-radius)/4)}.dockview-theme-light-spaced .dv-drop-target-anchor.dv-drop-target-content{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-resize-container{border:none;border-radius:var(--dv-border-radius)!important}.dockview-theme-light-spaced .dv-tabs-overflow-container,.dockview-theme-light-spaced .dv-tabs-overflow-dropdown-default{border-radius:8px;height:unset!important}.dockview-theme-light-spaced .dv-tab{border-radius:8px}.dockview-theme-light-spaced .dv-tab .dv-svg{width:8px;height:8px}.dockview-theme-light-spaced .dv-groupview{border-radius:var(--dv-border-radius)}.dockview-theme-light-spaced .dv-groupview .dv-tabs-and-actions-container{padding:0px calc(var(--dv-border-radius)/2)}.dockview-theme-light-spaced .dv-groupview .dv-content-container{background-color:var(--dv-tabs-and-actions-container-background-color)}.dockview-theme-light-spaced .dv-resize-container .dv-groupview{border:2px solid #ffffff1a}.dv-drop-target-container{z-index:9999;pointer-events:none;--dv-transition-duration:.3s;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.dv-drop-target-container .dv-drop-target-anchor{border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);opacity:1;will-change:transform,opacity;backface-visibility:hidden;contain:layout paint;transition:opacity var(--dv-transition-duration)ease-in,transform var(--dv-transition-duration)ease-out;position:relative;transform:translate(0,0)}.dv-drop-target{--dv-transition-duration:70ms;position:relative}.dv-drop-target>.dv-drop-target-dropzone{z-index:1000;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection{box-sizing:border-box;border:var(--dv-drag-over-border);background-color:var(--dv-drag-over-background-color);width:100%;height:100%;transition:top var(--dv-transition-duration)ease-out,left var(--dv-transition-duration)ease-out,width var(--dv-transition-duration)ease-out,height var(--dv-transition-duration)ease-out,opacity var(--dv-transition-duration)ease-out;will-change:transform;pointer-events:none;position:relative}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-top.dv-drop-target-small-vertical{border-top:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-bottom.dv-drop-target-small-vertical{border-bottom:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-left.dv-drop-target-small-horizontal{border-left:1px solid var(--dv-drag-over-border-color)}.dv-drop-target>.dv-drop-target-dropzone>.dv-drop-target-selection.dv-drop-target-right.dv-drop-target-small-horizontal{border-right:1px solid var(--dv-drag-over-border-color)}.dv-dockview{background-color:var(--dv-group-view-background-color);contain:layout;position:relative}.dv-dockview .dv-watermark-container{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.dv-dockview .dv-overlay-render-container{position:relative}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview.dv-active-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-active-tab{background-color:var(--dv-inactivegroup-visiblepanel-tab-background-color);color:var(--dv-inactivegroup-visiblepanel-tab-color)}.dv-groupview.dv-inactive-group>.dv-tabs-and-actions-container .dv-tabs-container>.dv-tab.dv-inactive-tab{background-color:var(--dv-inactivegroup-hiddenpanel-tab-background-color);color:var(--dv-inactivegroup-hiddenpanel-tab-color)}.dv-tab.dv-tab-dragging{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-groupview{background-color:var(--dv-group-view-background-color);flex-direction:column;height:100%;display:flex;overflow:hidden}.dv-groupview:focus{outline:none}.dv-groupview>.dv-content-container{outline:none;flex-grow:1;min-height:0}.dv-root-wrapper,.dv-grid-view,.dv-branch-node{width:100%;height:100%}.dv-debug .dv-resize-container .dv-resize-handle-top{background-color:red}.dv-debug .dv-resize-container .dv-resize-handle-bottom{background-color:green}.dv-debug .dv-resize-container .dv-resize-handle-left{background-color:#ff0}.dv-debug .dv-resize-container .dv-resize-handle-right{background-color:#00f}.dv-debug .dv-resize-container .dv-resize-handle-topleft,.dv-debug .dv-resize-container .dv-resize-handle-topright,.dv-debug .dv-resize-container .dv-resize-handle-bottomleft,.dv-debug .dv-resize-container .dv-resize-handle-bottomright{background-color:#0ff}.dv-resize-container{--dv-overlay-z-index:var(--dv-overlay-z-index,999);z-index:calc(var(--dv-overlay-z-index) - 2);border:1px solid var(--dv-tab-divider-color);box-shadow:var(--dv-floating-box-shadow);will-change:transform,opacity;backface-visibility:hidden;position:absolute;transform:translate(0,0)}.dv-resize-container.dv-hidden{display:none}.dv-resize-container.dv-resize-container-dragging{opacity:.5;will-change:transform,opacity}.dv-resize-container .dv-resize-handle-top{width:calc(100% - 8px);height:4px;z-index:var(--dv-overlay-z-index);cursor:ns-resize;position:absolute;top:-2px;left:4px}.dv-resize-container .dv-resize-handle-bottom{width:calc(100% - 8px);height:4px;z-index:var(--dv-overlay-z-index);cursor:ns-resize;position:absolute;bottom:-2px;left:4px}.dv-resize-container .dv-resize-handle-left{width:4px;height:calc(100% - 8px);z-index:var(--dv-overlay-z-index);cursor:ew-resize;position:absolute;top:4px;left:-2px}.dv-resize-container .dv-resize-handle-right{width:4px;height:calc(100% - 8px);z-index:var(--dv-overlay-z-index);cursor:ew-resize;position:absolute;top:4px;right:-2px}.dv-resize-container .dv-resize-handle-topleft{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:nw-resize;position:absolute;top:-2px;left:-2px}.dv-resize-container .dv-resize-handle-topright{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:ne-resize;position:absolute;top:-2px;right:-2px}.dv-resize-container .dv-resize-handle-bottomleft{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:sw-resize;position:absolute;bottom:-2px;left:-2px}.dv-resize-container .dv-resize-handle-bottomright{width:4px;height:4px;z-index:var(--dv-overlay-z-index);cursor:se-resize;position:absolute;bottom:-2px;right:-2px}.dv-render-overlay{--dv-overlay-z-index:var(--dv-overlay-z-index,999);z-index:1;contain:layout paint;isolation:isolate;will-change:transform;backface-visibility:hidden;width:100%;height:100%;position:absolute;transform:translate(0,0)}.dv-render-overlay.dv-render-overlay-float{z-index:calc(var(--dv-overlay-z-index) - 1)}.dv-debug .dv-render-overlay{outline-offset:-1;outline:1px solid red}.dv-pane-container{width:100%;height:100%}.dv-pane-container.dv-animated .dv-view{will-change:transform;backface-visibility:hidden;transition:transform .15s ease-out;transform:translate(0,0)}.dv-pane-container .dv-view{flex-direction:column;display:flex;overflow:hidden;padding:0!important}.dv-pane-container .dv-view:not(:first-child):before{background-color:#0000!important}.dv-pane-container .dv-view:not(:first-child) .dv-pane>.dv-pane-header{border-top:1px solid var(--dv-paneview-header-border-color)}.dv-pane-container .dv-view .dv-default-header{background-color:var(--dv-group-view-background-color);color:var(--dv-activegroup-visiblepanel-tab-color);cursor:pointer;padding:0 8px;display:flex}.dv-pane-container .dv-view .dv-default-header .dv-pane-header-icon{justify-content:center;align-items:center;display:flex}.dv-pane-container .dv-view .dv-default-header>span{flex-grow:1;padding-left:8px}.dv-pane-container:first-of-type>.dv-pane>.dv-pane-header{border-top:none!important}.dv-pane-container .dv-pane{flex-direction:column;height:100%;display:flex;overflow:hidden}.dv-pane-container .dv-pane .dv-pane-header{box-sizing:border-box;-webkit-user-select:none;user-select:none;outline:none;position:relative}.dv-pane-container .dv-pane .dv-pane-header.dv-pane-draggable{cursor:pointer}.dv-pane-container .dv-pane .dv-pane-header:focus:before,.dv-pane-container .dv-pane .dv-pane-header:focus-within:before{z-index:5;content:"";pointer-events:none;outline-offset:-1px;outline:-1px solid;outline-color:var(--dv-paneview-active-outline-color);width:100%;height:100%;position:absolute;top:0;left:0}.dv-pane-container .dv-pane .dv-pane-body{outline:none;flex-grow:1;position:relative;overflow:hidden auto}.dv-pane-container .dv-pane .dv-pane-body:focus:before,.dv-pane-container .dv-pane .dv-pane-body:focus-within:before{z-index:5;content:"";pointer-events:none;outline-offset:-1px;outline:-1px solid;outline-color:var(--dv-paneview-active-outline-color);width:100%;height:100%;position:absolute;top:0;left:0}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-enabled{background-color:#000}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-disabled{background-color:orange}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-maximum{background-color:green}.dv-debug .dv-split-view-container .dv-sash-container .dv-sash.dv-minimum{background-color:red}.dv-split-view-container{width:100%;height:100%;position:relative;overflow:hidden}.dv-split-view-container.dv-splitview-disabled>.dv-sash-container>.dv-sash{pointer-events:none}.dv-split-view-container.dv-animation .dv-view,.dv-split-view-container.dv-animation .dv-sash{will-change:transform;backface-visibility:hidden;transition:transform .15s ease-out;transform:translate(0,0)}.dv-split-view-container.dv-horizontal{height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash{width:4px;height:100%}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled{cursor:ew-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-maximum{cursor:w-resize}.dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-minimum{cursor:e-resize}.dv-split-view-container.dv-horizontal>.dv-view-container>.dv-view:not(:first-child):before{width:1px;height:100%}.dv-split-view-container.dv-vertical{width:100%}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash{width:100%;height:4px}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled{cursor:ns-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-disabled{cursor:default}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-maximum{cursor:n-resize}.dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-minimum{cursor:s-resize}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view{width:100%}.dv-split-view-container.dv-vertical>.dv-view-container>.dv-view:not(:first-child):before{width:100%;height:1px}.dv-split-view-container .dv-sash-container{width:100%;height:100%;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash{z-index:99;-webkit-user-select:none;user-select:none;touch-action:none;background-color:var(--dv-sash-color,transparent);outline:none;position:absolute}.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):active,.dv-split-view-container .dv-sash-container .dv-sash:not(.disabled):hover{background-color:var(--dv-active-sash-color,transparent);transition-property:background-color;transition-timing-function:ease-in-out;transition-duration:var(--dv-active-sash-transition-duration,.1s);transition-delay:var(--dv-active-sash-transition-delay,.5s)}.dv-split-view-container .dv-view-container{width:100%;height:100%;position:relative}.dv-split-view-container .dv-view-container .dv-view{box-sizing:border-box;height:100%;position:absolute;overflow:auto}.dv-split-view-container.dv-separator-border .dv-view:not(:first-child):before{content:" ";z-index:5;pointer-events:none;background-color:var(--dv-separator-border);position:absolute;top:0;left:0}.dv-dragged{transform:translate(0,0)}.dv-tab{flex-shrink:0}.dv-tab:focus-within,.dv-tab:focus{position:relative}.dv-tab:focus-within:after,.dv-tab:focus:after{content:"";pointer-events:none;outline-offset:-1px;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0;outline:1px solid var(--dv-tab-divider-color)!important}.dv-tab.dv-tab-dragging .dv-default-tab-action{background-color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tab.dv-active-tab .dv-default-tab .dv-default-tab-action{visibility:visible}.dv-tab.dv-inactive-tab .dv-default-tab .dv-default-tab-action{visibility:hidden}.dv-tab.dv-inactive-tab .dv-default-tab:hover .dv-default-tab-action{visibility:visible}.dv-tab .dv-default-tab{white-space:nowrap;text-overflow:ellipsis;align-items:center;height:100%;display:flex;position:relative}.dv-tab .dv-default-tab .dv-default-tab-content{flex-grow:1;margin-right:4px}.dv-tab .dv-default-tab .dv-default-tab-action{box-sizing:border-box;justify-content:center;align-items:center;padding:4px;display:flex}.dv-tab .dv-default-tab .dv-default-tab-action:hover{background-color:var(--dv-icon-hover-background-color);border-radius:2px}.dv-tabs-overflow-dropdown-default{height:100%;color:var(--dv-activegroup-hiddenpanel-tab-color);margin:var(--dv-tab-margin);cursor:pointer;flex-shrink:0;align-items:center;padding:.25rem .5rem;display:flex}.dv-tabs-overflow-dropdown-default>span{padding-left:.25rem}.dv-tabs-overflow-dropdown-default>svg{transform:rotate(90deg)}.dv-tabs-container{scrollbar-width:thin;will-change:scroll-position;height:100%;display:flex;overflow:auto;transform:translate(0,0)}.dv-tabs-container.dv-horizontal .dv-tab:not(:first-child):before{content:" ";z-index:5;pointer-events:none;background-color:var(--dv-tab-divider-color);width:1px;height:100%;position:absolute;top:0;left:0}.dv-tabs-container::-webkit-scrollbar{height:3px}.dv-tabs-container::-webkit-scrollbar-track{background:0 0}.dv-tabs-container::-webkit-scrollbar-thumb{background:var(--dv-tabs-container-scrollbar-color)}.dv-scrollable>.dv-tabs-container{overflow:hidden}.dv-tab{-webkit-user-drag:element;cursor:pointer;box-sizing:border-box;font-size:var(--dv-tab-font-size);margin:var(--dv-tab-margin);outline:none;padding:.25rem .5rem;position:relative}.dv-tabs-overflow-container{height:unset;border:1px solid var(--dv-tab-divider-color);background-color:var(--dv-group-view-background-color);flex-direction:column}.dv-tabs-overflow-container .dv-tab:not(:last-child){border-bottom:1px solid var(--dv-tab-divider-color)}.dv-tabs-overflow-container .dv-active-tab{background-color:var(--dv-activegroup-visiblepanel-tab-background-color);color:var(--dv-activegroup-visiblepanel-tab-color)}.dv-tabs-overflow-container .dv-inactive-tab{background-color:var(--dv-activegroup-hiddenpanel-tab-background-color);color:var(--dv-activegroup-hiddenpanel-tab-color)}.dv-tabs-and-actions-container{background-color:var(--dv-tabs-and-actions-container-background-color);box-sizing:border-box;height:var(--dv-tabs-and-actions-container-height);font-size:var(--dv-tabs-and-actions-container-font-size);flex-shrink:0;display:flex}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-scrollable,.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container{flex-grow:1}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-tabs-container .dv-tab{flex-grow:1;padding:0}.dv-tabs-and-actions-container.dv-single-tab.dv-full-width-single-tab .dv-void-container{flex-grow:0}.dv-tabs-and-actions-container .dv-void-container{flex-grow:1;display:flex}.dv-tabs-and-actions-container .dv-void-container.dv-draggable{cursor:grab}.dv-tabs-and-actions-container .dv-right-actions-container{display:flex}.dv-watermark{height:100%;display:flex} -*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}html,body{height:100%;margin:0;padding:0;overflow:hidden}:root{--background:215 28% 7%;--foreground:213 27% 92%;--card:215 21% 11%;--card-foreground:213 27% 92%;--popover:215 21% 11%;--popover-foreground:213 27% 92%;--primary:212 100% 67%;--primary-foreground:215 28% 7%;--secondary:215 14% 17%;--secondary-foreground:213 27% 92%;--muted:215 14% 17%;--muted-foreground:213 12% 58%;--accent:215 14% 17%;--accent-foreground:213 27% 92%;--destructive:0 62% 50%;--destructive-foreground:0 0% 98%;--border:215 14% 22%;--input:215 14% 22%;--ring:212 100% 67%;--radius:.375rem;--surface:215 21% 11%;--surface-light:215 14% 17%;--surface-elevated:215 14% 22%;--border-subtle:215 14% 17%;--text:213 27% 92%;--text-muted:213 12% 58%;--text-subtle:215 10% 46%;--accent-cyan:176 60% 53%;--accent-orange:27 86% 59%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground));letter-spacing:-.15px;font-feature-settings:"liga" 1,"calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:12px;font-weight:500;line-height:16px}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-0\.5{bottom:.125rem}.left-0\.5{left:.125rem}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0\.5{right:.125rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0\.5{top:.125rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-ml-1{margin-left:-.25rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-4{margin-top:1rem}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[10px\]{height:10px}.h-\[1px\]{height:1px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[300px\]{max-height:300px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:0}.min-h-\[24px\]{min-height:24px}.min-h-\[28px\]{min-height:28px}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[10px\]{width:10px}.w-\[1px\]{width:1px}.w-\[280px\]{width:280px}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[200px\]{min-width:200px}.min-w-\[8rem\]{min-width:8rem}.max-w-\[400px\]{max-width:400px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1px*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-\[3px\]{border-radius:3px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border)/.5)}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-l-transparent{border-left-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card)/.8)}.bg-card\/85{background-color:hsl(var(--card)/.85)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted-foreground\/25{background-color:hsl(var(--muted-foreground)/.25)}.bg-muted\/40{background-color:hsl(var(--muted)/.4)}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-muted\/60{background-color:hsl(var(--muted)/.6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/30{background-color:hsl(var(--secondary)/.3)}.bg-secondary\/50{background-color:hsl(var(--secondary)/.5)}.bg-transparent{background-color:#0000}.fill-current{fill:currentColor}.fill-primary{fill:hsl(var(--primary))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[2px\]{padding:2px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal)var(--tw-slashed-zero)var(--tw-numeric-figure)var(--tw-numeric-spacing)var(--tw-numeric-fraction)}.leading-4{line-height:1rem}.leading-\[16px\]{line-height:16px}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-\[-0\.15px\]{letter-spacing:-.15px}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/20{color:hsl(var(--muted-foreground)/.2)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground)/.5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground)/.6)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground)/.7)}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-inset{--tw-ring-inset:inset}.ring-primary{--tw-ring-color:hsl(var(--primary))}.ring-primary\/50{--tw-ring-color:hsl(var(--primary)/.5)}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-shadow{transition-property:box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0))}}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:hsl(var(--muted-foreground)/.2);background-clip:padding-box;border:2px solid #0000;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground)/.35);background-clip:padding-box;border:2px solid #0000}*{scrollbar-width:thin;scrollbar-color:hsl(var(--muted-foreground)/.25)transparent}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.panel-scroll{scrollbar-gutter:stable}.hyperview-dockview{--dv-background-color:hsl(var(--background));--dv-group-view-background-color:hsl(var(--card));--dv-tabs-and-actions-container-background-color:hsl(var(--secondary));--dv-activegroup-visiblepanel-tab-background-color:hsl(var(--card));--dv-activegroup-hiddenpanel-tab-background-color:hsl(var(--secondary));--dv-inactivegroup-visiblepanel-tab-background-color:hsl(var(--secondary));--dv-inactivegroup-hiddenpanel-tab-background-color:hsl(var(--secondary));--dv-activegroup-visiblepanel-tab-color:hsl(var(--foreground));--dv-activegroup-hiddenpanel-tab-color:hsl(var(--muted-foreground));--dv-inactivegroup-visiblepanel-tab-color:hsl(var(--muted-foreground));--dv-inactivegroup-hiddenpanel-tab-color:hsl(var(--muted-foreground));--dv-tabs-and-actions-container-font-size:12px;--dv-tabs-and-actions-container-height:24px;--dv-tab-font-size:12px;--dv-tabs-container-scrollbar-color:hsl(var(--muted-foreground)/.25);--dv-scrollbar-background-color:hsl(var(--muted-foreground)/.25);--dv-tab-divider-color:hsl(var(--border));--dv-separator-border:transparent;--dv-paneview-header-border-color:hsl(var(--border));--dv-sash-color:hsl(var(--border));--dv-icon-hover-background-color:hsl(var(--accent));--dv-active-sash-color:hsl(var(--primary));--dv-drag-over-background-color:hsl(var(--primary)/.15);--dv-drag-over-border-color:hsl(var(--primary)/.6);--dv-tab-margin:0}.hyperview-dockview .dv-groupview{border:none}.hyperview-dockview .dv-tabs-and-actions-container{border-bottom:1px solid hsl(var(--border))}.hyperview-dockview .dv-tab{align-items:center;height:100%;padding:0 8px;line-height:16px;display:flex}.hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal{border-radius:3px;height:6px}.hyperview-dockview .dv-tabs-container{scrollbar-width:none}.hyperview-dockview .dv-tabs-container::-webkit-scrollbar{height:0}.hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal{display:none}.hyperview-dockview .dv-split-view-container>.dv-sash-container>.dv-sash{background-color:#0000!important}.hyperview-dockview .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash:after{content:"";background-color:hsl(var(--border));pointer-events:none;width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.hyperview-dockview .dv-split-view-container.dv-horizontal>.dv-sash-container>.dv-sash.dv-enabled:hover:after{background-color:hsl(var(--primary))}.hyperview-dockview .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash:after{content:"";background-color:hsl(var(--border));pointer-events:none;height:1px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.hyperview-dockview .dv-split-view-container.dv-vertical>.dv-sash-container>.dv-sash.dv-enabled:hover:after{background-color:hsl(var(--primary))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground\/50::placeholder{color:hsl(var(--muted-foreground)/.5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted-foreground\/40:hover{background-color:hsl(var(--muted-foreground)/.4)}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted)/.3)}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted)/.4)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-muted\/60:hover{background-color:hsl(var(--muted)/.6)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:border-ring:focus{border-color:hsl(var(--ring))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=on\]\:border-primary[data-state=on]{border-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=on\]\:bg-primary[data-state=on]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=on\]\:text-primary-foreground[data-state=on]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}@media (min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0} diff --git a/src/hyperview/server/static/_next/static/chunks/f89d541331847b49.js b/src/hyperview/server/static/_next/static/chunks/f89d541331847b49.js deleted file mode 100644 index 780aa73..0000000 --- a/src/hyperview/server/static/_next/static/chunks/f89d541331847b49.js +++ /dev/null @@ -1,4 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,84524,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},35856,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},19551,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return a},isBailoutToCSRError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="BAILOUT_TO_CLIENT_SIDE_RENDERING";class a extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===u}},64918,(e,t,r)=>{"use strict";var n=e.r(69941),o={stream:!0},u=Object.prototype.hasOwnProperty;function a(t){var r=e.r(t);return"function"!=typeof r.then||"fulfilled"===r.status?null:(r.then(function(e){r.status="fulfilled",r.value=e},function(e){r.status="rejected",r.reason=e}),r)}var i=new WeakSet,l=new WeakSet;function s(){}function c(t){for(var r=t[1],n=[],o=0;of||35===f||114===f||120===f?(p=f,f=3,s++):(p=0,f=3);continue;case 2:44===(b=l[s++])?f=4:h=h<<4|(96l.length&&(b=-1)}var g=l.byteOffset+s;if(-1{"use strict";t.exports=e.r(64918)},30545,(e,t,r)=>{"use strict";t.exports=e.r(14992)},88112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return i},getAccessFallbackErrorTypeByStatus:function(){return c},getAccessFallbackHTTPStatus:function(){return s},isHTTPAccessFallbackError:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},a=new Set(Object.values(u)),i="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===i&&a.has(Number(r))}function s(e){return Number(e.digest.split(";")[1])}function c(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91945,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84628,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return i},RedirectType:function(){return l},isRedirectError:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(91945),i="NEXT_REDIRECT";var l=((n={}).push="push",n.replace="replace",n);function s(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===i&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in a.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},31028,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(88112),o=e.r(84628);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69370,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return l},PathnameContext:function(){return i},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(30668),a=(0,u.createContext)(null),i=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null);function c(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},29037,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},2089,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return a},FLIGHT_HEADERS:function(){return h},NEXT_ACTION_NOT_FOUND_HEADER:function(){return E},NEXT_DID_POSTPONE_HEADER:function(){return b},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return f},NEXT_HMR_REFRESH_HEADER:function(){return c},NEXT_HTML_REQUEST_ID_HEADER:function(){return O},NEXT_IS_PRERENDER_HEADER:function(){return m},NEXT_REQUEST_ID_HEADER:function(){return R},NEXT_REWRITTEN_PATH_HEADER:function(){return g},NEXT_REWRITTEN_QUERY_HEADER:function(){return v},NEXT_ROUTER_PREFETCH_HEADER:function(){return l},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return i},NEXT_RSC_UNION_QUERY:function(){return _},NEXT_URL:function(){return d},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="rsc",a="next-action",i="next-router-state-tree",l="next-router-prefetch",s="next-router-segment-prefetch",c="next-hmr-refresh",f="__next_hmr_refresh_hash__",d="next-url",p="text/x-component",h=[u,i,l,c,s],_="_rsc",y="x-nextjs-stale-time",b="x-nextjs-postponed",g="x-nextjs-rewritten-path",v="x-nextjs-rewritten-query",m="x-nextjs-prerender",E="x-nextjs-action-not-found",R="x-nextjs-request-id",O="x-nextjs-html-request-id";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},63416,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return y},getDraftModeProviderForCacheScope:function(){return _},getHmrRefreshHash:function(){return d},getPrerenderResumeDataCache:function(){return c},getRenderResumeDataCache:function(){return f},getRuntimeStagePromise:function(){return b},getServerComponentsHmrCache:function(){return h},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return l},throwInvariantForMissingStore:function(){return s},workUnitAsyncStorage:function(){return u.workUnitAsyncStorageInstance}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(29037),a=e.r(2089),i=e.r(84524);function l(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function s(){throw Object.defineProperty(new i.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function c(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function f(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function d(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return t.hmrRefreshHash;case"request":var r;return null==(r=t.cookies.get(a.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:r.value}}function p(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.isHmrRefresh??!1}return!1}function h(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.serverComponentsHmrCache}}function _(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function y(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function b(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},83441,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=e.r(30668),o=e.r(69370);function u(){return!function(){if("undefined"==typeof window){let{workUnitAsyncStorage:t}=e.r(63416),r=t.getStore();if(!r)return!1;switch(r.type){case"prerender":case"prerender-client":case"prerender-ppr":let n=r.fallbackRouteParams;return!!n&&n.size>0}}return!1}()?(0,n.useContext)(o.PathnameContext):null}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},80118,(e,t,r)=>{"use strict";function n(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createHrefFromUrl",{enumerable:!0,get:function(){return n}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61524,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={handleHardNavError:function(){return a},useNavFailureHandler:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});e.r(30668);let u=e.r(80118);function a(e){return!!e&&"undefined"!=typeof window&&!!window.next.__pendingUrl&&(0,u.createHrefFromUrl)(new URL(window.location.href))!==(0,u.createHrefFromUrl)(window.next.__pendingUrl)&&(console.error("Error occurred during navigation, falling back to hard navigation",e),window.location.href=window.next.__pendingUrl.toString(),!0)}function i(){}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},26470,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},62112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return i},getBotType:function(){return c},isBot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(26470),a=/Googlebot(?!-)|Googlebot$/i,i=u.HTML_LIMITED_BOT_UA_RE.source;function l(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return a.test(e)||l(e)}function c(e){return a.test(e)?"dom":l(e)?"html":void 0}},71202,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ErrorBoundary:function(){return h},ErrorBoundaryHandler:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(35856),a=e.r(48277),i=u._(e.r(30668)),l=e.r(83441),s=e.r(31028);e.r(61524);let c=e.r(86846),f=e.r(62112),d="undefined"!=typeof window&&(0,f.isBot)(window.navigator.userAgent);class p extends i.default.Component{constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!d?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.HandleISRError,{error:this.state.error}),this.props.errorStyles,this.props.errorScripts,(0,a.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset})]}):this.props.children}}function h({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let o=(0,l.useUntrackedPathname)();return e?(0,a.jsx)(p,{pathname:o,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98165,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={ACTION_HMR_REFRESH:function(){return c},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return a},ACTION_RESTORE:function(){return l},ACTION_SERVER_ACTION:function(){return f},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return d}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a="refresh",i="navigate",l="restore",s="server-patch",c="hmr-refresh",f="server-action";var d=((n={}).AUTO="auto",n.FULL="full",n.TEMPORARY="temporary",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},61909,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=u?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}},65035,(e,t,r)=>{"use strict";function n(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isThenable",{enumerable:!0,get:function(){return n}})},53128,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return l},useActionQueue:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=e.r(65035),i=null;function l(e){if(null===i)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});i(e)}function s(e){let[t,r]=u.default.useState(e.state);i=t=>e.dispatch(t,r);let n=(0,u.useMemo)(()=>t,[t]);return(0,a.isThenable)(n)?(0,u.use)(n):n}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59295,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"callServer",{enumerable:!0,get:function(){return a}});let n=e.r(30668),o=e.r(98165),u=e.r(53128);async function a(e,t){return new Promise((r,a)=>{(0,n.startTransition)(()=>{(0,u.dispatchAppRouterAction)({type:o.ACTION_SERVER_ACTION,actionId:e,actionArgs:t,resolve:r,reject:a})})})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},85045,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findSourceMapURL",{enumerable:!0,get:function(){return n}});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},96670,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},91395,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return c},addSearchParamsIfPageSegment:function(){return l},computeSelectedLayoutSegment:function(){return s},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let a;if(n)a=t[1][r];else{let e=t[1];a=e.children??Object.values(e)[0]}if(!a)return o;let i=u(a[0]);return!i||i.startsWith(c)?o:(o.push(i),e(a,r,!1,o))}},isGroupSegment:function(){return a},isParallelRouteSegment:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function a(e){return"("===e[0]&&e.endsWith(")")}function i(e){return e.startsWith("@")&&"@children"!==e}function l(e,t){if(e.includes(c)){let e=JSON.stringify(t);return"{}"!==e?c+"?"+e:c}return e}function s(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let c="__PAGE__",f="__DEFAULT__"},86511,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={normalizeAppPath:function(){return i},normalizeRscURL:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(96670),a=e.r(91395);function i(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function l(e){return e.replace(/\.rsc($|\?)/,"$1")}},50864,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return a},extractInterceptionRouteInformation:function(){return l},isInterceptionRouteAppPath:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(86511),a=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function l(e){let t,r,n;for(let o of e.split("/"))if(r=a.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=o.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},22039,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"matchSegment",{enumerable:!0,get:function(){return n}});let n=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},69434,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HEAD_REQUEST_KEY:function(){return i},ROOT_SEGMENT_REQUEST_KEY:function(){return a},appendSegmentRequestKeyPart:function(){return s},convertSegmentPathToStaticExportFilename:function(){return d},createSegmentRequestKeyPart:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a="",i="/_head";function l(e){if("string"==typeof e)return e.startsWith(u.PAGE_SEGMENT_KEY)?u.PAGE_SEGMENT_KEY:"/_not-found"===e?"_not-found":f(e);let t=e[0];return"$"+e[2]+"$"+f(t)}function s(e,t,r){return e+"/"+("children"===t?r:`@${f(t)}/${r}`)}let c=/^[a-zA-Z0-9\-_@]+$/;function f(e){return c.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function d(e){return`__next${e.replace(/\//g,".")}.txt`}},88617,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={doesStaticSegmentAppearInURL:function(){return f},getCacheKeyForDynamicParam:function(){return d},getParamValueFromCacheKey:function(){return h},getRenderedPathname:function(){return s},getRenderedSearch:function(){return l},parseDynamicParamFromURLPart:function(){return c},urlSearchParamsToParsedUrlQuery:function(){return _},urlToUrlWithoutFlightMarker:function(){return p}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a=e.r(69434),i=e.r(2089);function l(e){let t=e.headers.get(i.NEXT_REWRITTEN_QUERY_HEADER);return null!==t?""===t?"":"?"+t:p(new URL(e.url)).search}function s(e){return e.headers.get(i.NEXT_REWRITTEN_PATH_HEADER)??p(new URL(e.url)).pathname}function c(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}function f(e){return!(e===a.ROOT_SEGMENT_REQUEST_KEY||e.startsWith(u.PAGE_SEGMENT_KEY)||"("===e[0]&&e.endsWith(")"))&&e!==u.DEFAULT_SEGMENT_KEY&&"/_not-found"!==e}function d(e,t){return"string"==typeof e?(0,u.addSearchParamsIfPageSegment)(e,Object.fromEntries(new URLSearchParams(t))):null===e?"":e.join("/")}function p(e){let t=new URL(e);if(t.searchParams.delete(i.NEXT_RSC_UNION_QUERY),t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}function h(e,t){return"c"===t||"oc"===t?e.split("/"):e}function _(e){let t={};for(let[r,n]of e.entries())void 0===t[r]?t[r]=n:Array.isArray(t[r])?t[r].push(n):t[r]=[t[r],n];return t}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94955,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return s},getFlightDataPartsFromPath:function(){return l},getNextFlightSegmentPath:function(){return c},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91395),a=e.r(88617),i=e.r(80118);function l(e){let[t,r,n,o]=e.slice(-4),u=e.slice(0,-4);return{pathToSegment:u.slice(0,-1),segmentPath:u,segment:u[u.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:o,isRootRender:4===e.length}}function s(e,t){let r=(0,a.getRenderedPathname)(e),n=(0,a.getRenderedSearch)(e),o=(0,i.createHrefFromUrl)(new URL(location.href)),u=t.f[0],l=u[0];return{b:t.b,c:o.split("/"),q:n,i:t.i,f:[[function e(t,r,n,o){let u,i,l=t[0];if("string"==typeof l)u=l,i=(0,a.doesStaticSegmentAppearInURL)(l);else{let e=l[0],t=l[2],s=(0,a.parseDynamicParamFromURLPart)(t,n,o);u=[e,(0,a.getCacheKeyForDynamicParam)(s,r),t],i=!0}let s=i?o+1:o,c=t[1],f={};for(let t in c){let o=c[t];f[t]=e(o,r,n,s)}return[u,f,null,t[3],t[4]]}(l,n,r.split("/").filter(e=>""!==e),0),u[1],u[2],u[2]]],m:t.m,G:t.G,S:t.S}}function c(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>l(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){var r,n;let[o,a,i,l,s,c]=t,f="string"==typeof(r=o)&&r.startsWith(u.PAGE_SEGMENT_KEY+"?")?u.PAGE_SEGMENT_KEY:r,d={};for(let[t,r]of Object.entries(a))d[t]=e(r);let p=[f,d,null,(n=l)&&"refresh"!==n?l:null];return void 0!==s&&(p[4]=s),void 0!==c&&(p[5]=c),p}(e)))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},70410,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getAppBuildId:function(){return i},setAppBuildId:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="";function a(e){u=e}function i(){return u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},83767,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={djb2Hash:function(){return u},hexHash:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t=5381;for(let r=0;r>>0}function a(e){return u(e).toString(36).slice(0,5)}},62858,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return o}});let n=e.r(83767);function o(e,t,r,o){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===o?"":(0,n.hexHash)([e||"0",t||"0",r||"0",o||"0"].join(","))}},57283,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return i},setCacheBustingSearchParamWithHash:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(62858),a=e.r(2089),i=(e,t)=>{l(e,(0,u.computeCacheBustingSearchParam)(t[a.NEXT_ROUTER_PREFETCH_HEADER],t[a.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[a.NEXT_ROUTER_STATE_TREE_HEADER],t[a.NEXT_URL]))},l=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${a.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${a.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${a.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},20320,(e,t,r)=>{"use strict";let n;Object.defineProperty(r,"__esModule",{value:!0});var o={createFetch:function(){return m},createFromNextReadableStream:function(){return E},fetchServerResponse:function(){return v}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(30545),i=e.r(2089),l=e.r(59295),s=e.r(85045),c=e.r(98165),f=e.r(94955),d=e.r(70410),p=e.r(57283),h=e.r(88617),_=a.createFromReadableStream,y=a.createFromFetch;function b(e){return(0,h.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let g=!1;async function v(e,t){let{flightRouterState:r,nextUrl:n,prefetchKind:o}=t,u={[i.RSC_HEADER]:"1",[i.NEXT_ROUTER_STATE_TREE_HEADER]:(0,f.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};o===c.PrefetchKind.AUTO&&(u[i.NEXT_ROUTER_PREFETCH_HEADER]="1"),n&&(u[i.NEXT_URL]=n);let a=e;try{let t=o?o===c.PrefetchKind.TEMPORARY?"high":"low":"auto";(e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt";let r=await m(e,u,t,!0),n=(0,h.urlToUrlWithoutFlightMarker)(new URL(r.url)),l=r.redirected?n:a,s=r.headers.get("content-type")||"",p=!!r.headers.get("vary")?.includes(i.NEXT_URL),_=!!r.headers.get(i.NEXT_DID_POSTPONE_HEADER),y=r.headers.get(i.NEXT_ROUTER_STALE_TIME_HEADER),g=null!==y?1e3*parseInt(y,10):-1,v=s.startsWith(i.RSC_CONTENT_TYPE_HEADER);if(v||(v=s.startsWith("text/plain")),!v||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),b(n.toString());let R=r.flightResponse;if(null===R){let e,t=_?(e=r.body.getReader(),new ReadableStream({async pull(t){for(;;){let{done:r,value:n}=await e.read();if(!r){t.enqueue(n);continue}return}}})):r.body;R=E(t,u)}let O=await R;if((0,d.getAppBuildId)()!==O.b)return b(r.url);let S=(0,f.normalizeFlightData)(O.f);if("string"==typeof S)return b(S);return{flightData:S,canonicalUrl:l,renderedSearch:(0,h.getRenderedSearch)(r),couldBeIntercepted:p,prerendered:O.S,postponed:_,staleTime:g,debugInfo:R._debugInfo??null}}catch(e){return g||console.error(`Failed to fetch RSC payload for ${a}. Falling back to browser navigation.`,e),a.toString()}}async function m(e,t,r,o,u){var a,c;let f=new URL(e);(0,p.setCacheBustingSearchParam)(f,t);let d=fetch(f,{credentials:"same-origin",headers:t,priority:r||void 0,signal:u}),h=o?(a=d,c=t,y(a,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(c)})):null,_=await d,b=_.redirected,g=new URL(_.url,f);return g.searchParams.delete(i.NEXT_RSC_UNION_QUERY),{url:g.href,redirected:b,ok:_.ok,headers:_.headers,body:_.body,status:_.status,flightResponse:h}}function E(e,t){return _(e,{callServer:l.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t)})}"undefined"!=typeof window&&(window.addEventListener("pagehide",()=>{g=!0}),window.addEventListener("pageshow",()=>{g=!1})),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91439,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createRouterCacheKey",{enumerable:!0,get:function(){return o}});let n=e.r(91395);function o(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},59162,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},45243,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return a},GlobalLayoutRouterContext:function(){return l},LayoutRouterContext:function(){return i},MissingSlotContext:function(){return c},TemplateContext:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(35856)._(e.r(30668)),a=u.default.createContext(null),i=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(null),c=u.default.createContext(new Set)},13058,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},98680,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return a},useServerInsertedHTML:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=u.default.createContext(null);function i(e){let t=(0,u.useContext)(a);t&&t(e)}},40288,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function a(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},39069,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(24171).createAsyncLocalStorage)()},93988,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(39069)},44216,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return l},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return c},redirect:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(91945),a=e.r(84628),i="undefined"==typeof window?e.r(93988).actionAsyncStorage:void 0;function l(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(a.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${a.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw l(e,t??=i?.getStore()?.isAction?a.RedirectType.push:a.RedirectType.replace,u.RedirectStatusCode.TemporaryRedirect)}function c(e,t=a.RedirectType.replace){throw l(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,a.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,a.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},48918,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(88112),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},92881,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(88112).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},24673,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(88112).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33517,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(19551),o=e.r(31028);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64265,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return u},makeDevtoolsIOAwarePromise:function(){return f},makeHangingPromise:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}let a="HANGING_PROMISE_REJECTION";class i extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=a}}let l=new WeakMap;function s(e,t,r){if(e.aborted)return Promise.reject(new i(t,r));{let n=new Promise((n,o)=>{let u=o.bind(null,new i(t,r)),a=l.get(e);if(a)a.push(u);else{let t=[u];l.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{t(e)},0)})}},67867,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},61541,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return a},isDynamicServerError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="DYNAMIC_SERVER_USAGE";class a extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=u}}function i(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},16819,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return a},isStaticGenBailoutError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="NEXT_STATIC_GEN_BAILOUT";class a extends Error{constructor(...e){super(...e),this.code=u}}function i(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===u}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66251,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return u},OUTLET_BOUNDARY_NAME:function(){return i},ROOT_LAYOUT_BOUNDARY_NAME:function(){return l},VIEWPORT_BOUNDARY_NAME:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u="__next_metadata_boundary__",a="__next_viewport_boundary__",i="__next_outlet_boundary__",l="__next_root_layout_boundary__"},25992,(e,t,r)=>{"use strict";var n=e.i(39057);Object.defineProperty(r,"__esModule",{value:!0});var o={atLeastOneTask:function(){return l},scheduleImmediate:function(){return i},scheduleOnNextTick:function(){return a},waitAtLeastOneReactRenderTask:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},i=e=>{setImmediate(e)};function l(){return new Promise(e=>i(e))}function s(){return new Promise(e=>setImmediate(e))}},93501,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={RenderStage:function(){return l},StagedRenderingController:function(){return s}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let a=e.r(84524),i=e.r(59162);var l=((n={})[n.Static=1]="Static",n[n.Runtime=2]="Runtime",n[n.Dynamic=3]="Dynamic",n);class s{constructor(e=null){this.abortSignal=e,this.currentStage=1,this.runtimeStagePromise=(0,i.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,i.createPromiseWithResolvers)(),e&&e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<2&&(this.runtimeStagePromise.promise.catch(c),this.runtimeStagePromise.reject(t)),this.currentStage<3&&(this.dynamicStagePromise.promise.catch(c),this.dynamicStagePromise.reject(t))},{once:!0})}advanceStage(e){!(this.currentStage>=e)&&(this.currentStage=e,e>=2&&this.runtimeStagePromise.resolve(),e>=3&&this.dynamicStagePromise.resolve())}getStagePromise(e){switch(e){case 2:return this.runtimeStagePromise.promise;case 3:return this.dynamicStagePromise.promise;default:throw Object.defineProperty(new a.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}}waitForStage(e){return this.getStagePromise(e)}delayUntilStage(e,t,r){var n,o,u;let a,i=(n=this.getStagePromise(e),o=t,u=r,a=new Promise((e,t)=>{n.then(e.bind(null,u),t)}),void 0!==o&&(a.displayName=o),a);return this.abortSignal&&i.catch(c),i}}function c(){}},93869,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o,u={Postpone:function(){return A},PreludeState:function(){return J},abortAndThrowOnSynchronousRequestDataAccess:function(){return T},abortOnSynchronousPlatformIOAccess:function(){return j},accessedDynamicData:function(){return I},annotateDynamicAccess:function(){return B},consumeDynamicAccess:function(){return L},createDynamicTrackingState:function(){return v},createDynamicValidationState:function(){return m},createHangingInputAbortSignal:function(){return H},createRenderInBrowserAbortSignal:function(){return F},delayUntilRuntimeStage:function(){return ee},formatDynamicAPIAccesses:function(){return $},getFirstDynamicReason:function(){return E},isDynamicPostpone:function(){return N},isPrerenderInterruptedError:function(){return U},logDisallowedDynamicError:function(){return Q},markCurrentScopeAsDynamic:function(){return R},postponeWithTracking:function(){return M},throwIfDisallowedDynamic:function(){return Z},throwToInterruptStaticGeneration:function(){return O},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return S},trackSynchronousPlatformIOAccessInDev:function(){return w},useDynamicRouteParams:function(){return X},useDynamicSearchParams:function(){return W}};for(var a in u)Object.defineProperty(r,a,{enumerable:!0,get:u[a]});let i=(n=e.r(30668))&&n.__esModule?n:{default:n},l=e.r(61541),s=e.r(16819),c=e.r(63416),f=e.r(26628),d=e.r(64265),p=e.r(66251),h=e.r(25992),_=e.r(19551),y=e.r(84524),b=e.r(93501),g="function"==typeof i.default.unstable_postpone;function v(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function m(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function E(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function R(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new s.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return M(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new l.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function O(e,t,r){let n=Object.defineProperty(new l.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function S(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function P(e,t,r){let n=k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let o=r.dynamicTracking;o&&o.dynamicAccesses.push({stack:o.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function j(e,t,r,n){let o=n.dynamicTracking;P(e,t,n),o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}function w(e){e.stagedRendering&&e.stagedRendering.advanceStage(b.RenderStage.Dynamic)}function T(e,t,r,n){if(!1===n.controller.signal.aborted){P(e,t,n);let o=n.dynamicTracking;o&&null===o.syncDynamicErrorWithStack&&(o.syncDynamicErrorWithStack=r)}throw k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function A({reason:e,route:t}){let r=c.workUnitAsyncStorage.getStore();M(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function M(e,t,r){(function(){if(!g)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),i.default.unstable_postpone(D(e,t))}function D(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function N(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&x(e.message)}function x(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===x(D("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let C="NEXT_PRERENDER_INTERRUPTED";function k(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=C,t}function U(e){return"object"==typeof e&&null!==e&&e.digest===C&&"name"in e&&"message"in e&&e instanceof Error}function I(e){return e.length>0}function L(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function $(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: -${t}`))}function F(){let e=new AbortController;return e.abort(Object.defineProperty(new _.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function H(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,c.getRuntimeStagePromise)(e);r?r.then(()=>(0,h.scheduleOnNextTick)(()=>t.abort())):(0,h.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function B(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function X(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return M(t.route,e,r.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function W(e){let t=f.workAsyncStorage.getStore(),r=c.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,c.throwForMissingRequestStore)(e),r.type){case"prerender-client":i.default.use((0,d.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new _.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let G=/\n\s+at Suspense \(\)/,Y=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${p.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),q=RegExp(`\\n\\s+at ${p.METADATA_BOUNDARY_NAME}[\\n\\s]`),K=RegExp(`\\n\\s+at ${p.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),z=RegExp(`\\n\\s+at ${p.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function V(e,t,r,n){if(!z.test(t)){if(q.test(t)){r.hasDynamicMetadata=!0;return}if(K.test(t)){r.hasDynamicViewport=!0;return}if(Y.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(G.test(t)){r.hasAllowedDynamic=!0;return}else{var o,u;let a;if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let i=(o=`Route "${e.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,u=t,(a=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})).stack=a.name+": "+o+u,a);return void r.dynamicErrors.push(i)}}}var J=((o={})[o.Full=0]="Full",o[o.Empty=1]="Empty",o[o.Errored=2]="Errored",o);function Q(e,t){console.error(t),e.dev||(e.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: - - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error. - - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function Z(e,t,r,n){if(n.syncDynamicErrorWithStack)throw Q(e,n.syncDynamicErrorWithStack),new s.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;tt):t}},57617,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,u.isBailoutToCSRError)(t)||(0,l.isDynamicServerError)(t)||(0,i.isDynamicPostpone)(t)||(0,o.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,i.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(64265),o=e.r(67867),u=e.r(19551),a=e.r(31028),i=e.r(93869),l=e.r(61541);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},60516,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="undefined"==typeof window?e.r(57617).unstable_rethrow:e.r(33517).unstable_rethrow;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},8e3,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return i.RedirectType},forbidden:function(){return s.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return a.permanentRedirect},redirect:function(){return a.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return f.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(13058),a=e.r(44216),i=e.r(84628),l=e.r(48918),s=e.r(92881),c=e.r(24673),f=e.r(60516);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},9187,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return d.ReadonlyURLSearchParams},RedirectType:function(){return d.RedirectType},ServerInsertedHTMLContext:function(){return c.ServerInsertedHTMLContext},forbidden:function(){return d.forbidden},notFound:function(){return d.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return d.unauthorized},unstable_isUnrecognizedActionError:function(){return f.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return d.unstable_rethrow},useParams:function(){return g},usePathname:function(){return y},useRouter:function(){return b},useSearchParams:function(){return _},useSelectedLayoutSegment:function(){return m},useSelectedLayoutSegments:function(){return v},useServerInsertedHTML:function(){return c.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909)._(e.r(30668)),a=e.r(45243),i=e.r(69370),l=e.r(91395),s=e.r(13058),c=e.r(98680),f=e.r(40288),d=e.r(8e3),p="undefined"==typeof window?e.r(93869).useDynamicRouteParams:void 0,h="undefined"==typeof window?e.r(93869).useDynamicSearchParams:void 0;function _(){h?.("useSearchParams()");let e=(0,u.useContext)(i.SearchParamsContext);return(0,u.useMemo)(()=>e?new s.ReadonlyURLSearchParams(e):null,[e])}function y(){return p?.("usePathname()"),(0,u.useContext)(i.PathnameContext)}function b(){let e=(0,u.useContext)(a.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function g(){return p?.("useParams()"),(0,u.useContext)(i.PathParamsContext)}function v(e="children"){p?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(a.LayoutRouterContext);return t?(0,l.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function m(e="children"){p?.("useSelectedLayoutSegment()"),(0,u.useContext)(i.NavigationPromisesContext);let t=v(e);return(0,l.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},2188,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(61909),a=e.r(48277),i=u._(e.r(30668)),l=e.r(9187),s=e.r(44216),c=e.r(84628);function f({redirect:e,reset:t,redirectType:r}){let n=(0,l.useRouter)();return(0,i.useEffect)(()=>{i.default.startTransition(()=>{r===c.RedirectType.push?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends i.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,s.getURLFromRedirectError)(e),r=(0,s.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,a.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,l.useRouter)();return(0,a.jsx)(d,{router:t,children:e})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},83648,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unresolvedThenable",{enumerable:!0,get:function(){return n}});let n={then:()=>{}};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},64381,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={MetadataBoundary:function(){return i},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(66251),a={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},i=a[u.METADATA_BOUNDARY_NAME.slice(0)],l=a[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=a[u.OUTLET_BOUNDARY_NAME.slice(0)],c=a[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},20017,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=e.r(50864);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/chunks/turbopack-904be3b11442f4b8.js b/src/hyperview/server/static/_next/static/chunks/turbopack-904be3b11442f4b8.js deleted file mode 100644 index 01eff51..0000000 --- a/src/hyperview/server/static/_next/static/chunks/turbopack-904be3b11442f4b8.js +++ /dev/null @@ -1,3 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/10c3a2ade180023c.js","static/chunks/b96ffc94b0d8fbba.js","static/chunks/f89d541331847b49.js"],runtimeModuleIds:[24153]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),c(t,n),t}function d(e){let t=N(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return N(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C,U=((C=U||{})[C.Runtime=0]="Runtime",C[C.Parent=1]="Parent",C[C.Update=2]="Update",C);let k=new Map;o.M=k;let v=new Map,_=new Map;async function P(e,t,r){let n;if("string"==typeof r)return A(e,t,S(r));let o=r.included||[],l=o.map(e=>!!k.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=A(e,t,S(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=A(e,t,S(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)v.has(e)||v.set(e,n);await n}R.l=function(e){return P(1,this.m.id,e)};let $=Promise.resolve(void 0),T=new WeakMap;function A(t,r,n){let o=e.loadChunkCached(t,n),l=T.get(o);if(void 0===l){let e=T.set.bind(T,o,$);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),T.set(o,l)}return l}function S(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return A(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)}; -self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(S),null,2)}; -importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let E=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function x(e){return K.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let M={};o.c=M;let N=(e,t)=>{let r=M[e];if(r){if(r.error)throw r.error;return r}return L(e,U.Parent,t.id)};function L(e,t,r){let o=k.get(e);if("function"!=typeof o)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;M[e]=l;let s=new n(l,i);try{o(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function q(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}e={async registerChunk(e,t){if(W(S(e)).resolve(),null!=t){for(let e of t.otherChunks)W(S("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>P(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=M[t];if(r){if(r.error)throw r.error;return}L(t,U.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=W(t);if(r.loadingStarted)return r.promise;if(e===U.Runtime)return r.loadingStarted=!0,x(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(x(t));else if(E.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(x(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(E.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(S(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(S(r));return await WebAssembly.compileStreaming(o)}};let I=globalThis.TURBOPACK;globalThis.TURBOPACK={push:q},I.forEach(q)})(); \ No newline at end of file diff --git a/src/hyperview/server/static/_next/static/media/1bffadaabf893a1e-s.7cd81963.woff2 b/src/hyperview/server/static/_next/static/media/1bffadaabf893a1e-s.7cd81963.woff2 deleted file mode 100644 index 57da6f8d46e2e42d0fd7d8b1d69d39b3b5fda6d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85272 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

uw6FG`p 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 diff --git a/src/hyperview/server/static/_next/static/media/2c55a0e60120577a-s.2a48534a.woff2 b/src/hyperview/server/static/_next/static/media/2c55a0e60120577a-s.2a48534a.woff2 deleted file mode 100644 index 2cd45edf43e09cc2a636223245f0563655d0cc0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25844 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 P#+t~*HNku1{Iy>IQ=4P} diff --git a/src/hyperview/server/static/_next/static/media/5476f68d60460930-s.c995e352.woff2 b/src/hyperview/server/static/_next/static/media/5476f68d60460930-s.c995e352.woff2 deleted file mode 100644 index 9c71603a56134495cb3ace105a0928e9cc29a860..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19044 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 Tp~gD%=1~4;zp%;UV+#NP+I>lo diff --git a/src/hyperview/server/static/_next/static/media/9c72aa0f40e4eef8-s.18a48cbc.woff2 b/src/hyperview/server/static/_next/static/media/9c72aa0f40e4eef8-s.18a48cbc.woff2 deleted file mode 100644 index bc0e0ab261be55e60502e8f0ab104faeb84c3888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18744 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


v9OW5GIC=qo>qH$Tj1ceN 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 diff --git a/src/hyperview/server/static/_not-found/__next._full.txt b/src/hyperview/server/static/_not-found/__next._full.txt deleted file mode 100644 index ede12e0..0000000 --- a/src/hyperview/server/static/_not-found/__next._full.txt +++ /dev/null @@ -1,13 +0,0 @@ -1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -4:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] -5:"$Sreact.suspense" -7:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] -9:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] -b:I[75115,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] -0:{"P":null,"b":"U-zHksGY4392lcZLjE49t","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/cb115cad1deddecd.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} -8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] -a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] -6:null diff --git a/src/hyperview/server/static/_not-found/__next._head.txt b/src/hyperview/server/static/_not-found/__next._head.txt deleted file mode 100644 index 60e4721..0000000 --- a/src/hyperview/server/static/_not-found/__next._head.txt +++ /dev/null @@ -1,7 +0,0 @@ -1:"$Sreact.fragment" -2:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] -4:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] -5:"$Sreact.suspense" -0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":"$@3"}],["$","div",null,{"hidden":true,"children":["$","$L4",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@6"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} -3:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] -6:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] diff --git a/src/hyperview/server/static/_not-found/__next._index.txt b/src/hyperview/server/static/_not-found/__next._index.txt deleted file mode 100644 index 9514a5c..0000000 --- a/src/hyperview/server/static/_not-found/__next._index.txt +++ /dev/null @@ -1,5 +0,0 @@ -1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] -0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/cb115cad1deddecd.js","async":true}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt b/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt deleted file mode 100644 index ef84f5f..0000000 --- a/src/hyperview/server/static/_not-found/__next._not-found.__PAGE__.txt +++ /dev/null @@ -1,5 +0,0 @@ -1:"$Sreact.fragment" -2:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] -3:"$Sreact.suspense" -0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} -4:null diff --git a/src/hyperview/server/static/_not-found/__next._not-found.txt b/src/hyperview/server/static/_not-found/__next._not-found.txt deleted file mode 100644 index 86383ed..0000000 --- a/src/hyperview/server/static/_not-found/__next._not-found.txt +++ /dev/null @@ -1,4 +0,0 @@ -1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -0:{"buildId":"U-zHksGY4392lcZLjE49t","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/src/hyperview/server/static/_not-found/__next._tree.txt b/src/hyperview/server/static/_not-found/__next._tree.txt deleted file mode 100644 index f8c0d17..0000000 --- a/src/hyperview/server/static/_not-found/__next._tree.txt +++ /dev/null @@ -1,2 +0,0 @@ -:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] -0:{"buildId":"U-zHksGY4392lcZLjE49t","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/src/hyperview/server/static/_not-found/index.html b/src/hyperview/server/static/_not-found/index.html deleted file mode 100644 index 1538a55..0000000 --- a/src/hyperview/server/static/_not-found/index.html +++ /dev/null @@ -1 +0,0 @@ -404: This page could not be found.HyperView

404

This page could not be found.

\ No newline at end of file diff --git a/src/hyperview/server/static/_not-found/index.txt b/src/hyperview/server/static/_not-found/index.txt deleted file mode 100644 index ede12e0..0000000 --- a/src/hyperview/server/static/_not-found/index.txt +++ /dev/null @@ -1,13 +0,0 @@ -1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -4:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] -5:"$Sreact.suspense" -7:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] -9:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] -b:I[75115,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] -0:{"P":null,"b":"U-zHksGY4392lcZLjE49t","c":["","_not-found",""],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/cb115cad1deddecd.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$@8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$@a"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} -8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] -a:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] -6:null diff --git a/src/hyperview/server/static/index.html b/src/hyperview/server/static/index.html deleted file mode 100644 index d4b14f7..0000000 --- a/src/hyperview/server/static/index.html +++ /dev/null @@ -1 +0,0 @@ -HyperView
\ No newline at end of file diff --git a/src/hyperview/server/static/index.txt b/src/hyperview/server/static/index.txt deleted file mode 100644 index e6a1c77..0000000 --- a/src/hyperview/server/static/index.txt +++ /dev/null @@ -1,18 +0,0 @@ -1:"$Sreact.fragment" -2:I[32035,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -3:I[91168,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -4:I[73440,["/_next/static/chunks/cb115cad1deddecd.js"],"ClientPageRoot"] -5:I[50912,["/_next/static/chunks/b3cfdd883c96563c.js","/_next/static/chunks/2eaa7c8c8b6f5b3b.js"],"default"] -8:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"OutletBoundary"] -9:"$Sreact.suspense" -b:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"ViewportBoundary"] -d:I[64381,["/_next/static/chunks/cb115cad1deddecd.js"],"MetadataBoundary"] -f:I[75115,["/_next/static/chunks/cb115cad1deddecd.js"],"default"] -:HL["/_next/static/chunks/e7ae0fd4a43b4ae1.css","style"] -:HL["/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2","font",{"crossOrigin":"","type":"font/woff2"}] -0:{"P":null,"b":"U-zHksGY4392lcZLjE49t","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/e7ae0fd4a43b4ae1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"h-full","children":["$","body",null,{"className":"inter_c50830d4-module__9YwRda__className antialiased h-full","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/b3cfdd883c96563c.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/2eaa7c8c8b6f5b3b.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$@c"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$@e"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[]],"S":true} -6:{} -7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" -c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] -e:[["$","title","0",{"children":"HyperView"}],["$","meta","1",{"name":"description","content":"Dataset visualization with hyperbolic embeddings"}]] -a:null From a791a590119c6b02ec3794b651ad5d3f407affd7 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 17:41:12 +0100 Subject: [PATCH 51/75] Fix frontend package-lock to resolve hyper-scatter from npm --- frontend/package-lock.json | 358 ++++++++++++++++--------------------- 1 file changed, 159 insertions(+), 199 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 451ac55..399c8d5 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -47,29 +47,6 @@ "typescript": "^5.6.3" } }, - "../hyper-scatter": { - "version": "0.1.0", - "license": "MIT", - "devDependencies": { - "@types/node": "^20.10.0", - "puppeteer": "^24.34.0", - "tsx": "^4.7.0", - "typescript": "^5.3.0", - "vite": "^5.0.0" - } - }, - "../viz_impl": { - "name": "hyper-scatter", - "version": "0.1.0", - "extraneous": true, - "devDependencies": { - "@types/node": "^20.10.0", - "puppeteer": "^24.34.0", - "tsx": "^4.7.0", - "typescript": "^5.3.0", - "vite": "^5.0.0" - } - }, "node_modules/@alloc/quick-lru": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", @@ -83,9 +60,9 @@ } }, "node_modules/@emnapi/core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", - "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", "dev": true, "license": "MIT", "optional": true, @@ -95,9 +72,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", "license": "MIT", "optional": true, "dependencies": { @@ -116,9 +93,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", - "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -223,9 +200,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", - "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -260,31 +237,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", - "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", + "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/dom": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", - "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", + "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.3", + "@floating-ui/core": "^1.7.4", "@floating-ui/utils": "^0.2.10" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.6.tgz", - "integrity": "sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", + "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", "license": "MIT", "dependencies": { - "@floating-ui/dom": "^1.7.4" + "@floating-ui/dom": "^1.7.5" }, "peerDependencies": { "react": ">=16.8.0", @@ -2061,12 +2038,12 @@ } }, "node_modules/@tanstack/react-virtual": { - "version": "3.13.12", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.12.tgz", - "integrity": "sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==", + "version": "3.13.18", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.13.18.tgz", + "integrity": "sha512-dZkhyfahpvlaV0rIKnvQiVoWPyURppl6w4m9IwMDpuIjcJ1sD9YGWrt0wISvgU7ewACXx2Ct46WPgI6qAD4v6A==", "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.13.12" + "@tanstack/virtual-core": "3.13.18" }, "funding": { "type": "github", @@ -2078,9 +2055,9 @@ } }, "node_modules/@tanstack/virtual-core": { - "version": "3.13.12", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.12.tgz", - "integrity": "sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==", + "version": "3.13.18", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.13.18.tgz", + "integrity": "sha512-Mx86Hqu1k39icq2Zusq+Ey2J6dDWTjDvEv43PJtRCoEYTLyfaPnxIQ6iy7YAOK0NV/qOEmZQ/uCufrppZxTgcg==", "license": "MIT", "funding": { "type": "github", @@ -2127,9 +2104,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.19.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", - "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", + "version": "22.19.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", + "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", "dev": true, "license": "MIT", "dependencies": { @@ -2165,21 +2142,20 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz", - "integrity": "sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.54.0.tgz", + "integrity": "sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/type-utils": "8.48.1", - "@typescript-eslint/utils": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", - "graphemer": "^1.4.0", - "ignore": "^7.0.0", + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.54.0", + "@typescript-eslint/type-utils": "8.54.0", + "@typescript-eslint/utils": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0", + "ignore": "^7.0.5", "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2189,7 +2165,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.48.1", + "@typescript-eslint/parser": "^8.54.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -2205,17 +2181,17 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.1.tgz", - "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.54.0.tgz", + "integrity": "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", - "debug": "^4.3.4" + "@typescript-eslint/scope-manager": "8.54.0", + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/typescript-estree": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2230,15 +2206,15 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.1.tgz", - "integrity": "sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.54.0.tgz", + "integrity": "sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.48.1", - "@typescript-eslint/types": "^8.48.1", - "debug": "^4.3.4" + "@typescript-eslint/tsconfig-utils": "^8.54.0", + "@typescript-eslint/types": "^8.54.0", + "debug": "^4.4.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2252,14 +2228,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz", - "integrity": "sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.54.0.tgz", + "integrity": "sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1" + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2270,9 +2246,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz", - "integrity": "sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.54.0.tgz", + "integrity": "sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==", "dev": true, "license": "MIT", "engines": { @@ -2287,17 +2263,17 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz", - "integrity": "sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.54.0.tgz", + "integrity": "sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1", - "@typescript-eslint/utils": "8.48.1", - "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/typescript-estree": "8.54.0", + "@typescript-eslint/utils": "8.54.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2312,9 +2288,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz", - "integrity": "sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.54.0.tgz", + "integrity": "sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==", "dev": true, "license": "MIT", "engines": { @@ -2326,21 +2302,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz", - "integrity": "sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.54.0.tgz", + "integrity": "sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.48.1", - "@typescript-eslint/tsconfig-utils": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/visitor-keys": "8.48.1", - "debug": "^4.3.4", - "minimatch": "^9.0.4", - "semver": "^7.6.0", + "@typescript-eslint/project-service": "8.54.0", + "@typescript-eslint/tsconfig-utils": "8.54.0", + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/visitor-keys": "8.54.0", + "debug": "^4.4.3", + "minimatch": "^9.0.5", + "semver": "^7.7.3", "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.1.0" + "ts-api-utils": "^2.4.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2380,16 +2356,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.1.tgz", - "integrity": "sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.54.0.tgz", + "integrity": "sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.48.1", - "@typescript-eslint/types": "8.48.1", - "@typescript-eslint/typescript-estree": "8.48.1" + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.54.0", + "@typescript-eslint/types": "8.54.0", + "@typescript-eslint/typescript-estree": "8.54.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2404,13 +2380,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.48.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz", - "integrity": "sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==", + "version": "8.54.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.54.0.tgz", + "integrity": "sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/types": "8.54.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -2978,9 +2954,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.22", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.22.tgz", - "integrity": "sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==", + "version": "10.4.24", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.24.tgz", + "integrity": "sha512-uHZg7N9ULTVbutaIsDRoUkoS8/h3bdsmVJYZ5l3wv8Cp/6UIIoRDm90hZ+BwxUj/hGBEzLxdHNSKuFpn8WOyZw==", "dev": true, "funding": [ { @@ -2998,10 +2974,9 @@ ], "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "caniuse-lite": "^1.0.30001754", + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001766", "fraction.js": "^5.3.4", - "normalize-range": "^0.1.2", "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, @@ -3032,9 +3007,9 @@ } }, "node_modules/axe-core": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.0.tgz", - "integrity": "sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", + "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", "dev": true, "license": "MPL-2.0", "engines": { @@ -3059,9 +3034,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.2.tgz", - "integrity": "sha512-PxSsosKQjI38iXkmb3d0Y32efqyA0uW4s41u4IVBsLlWLhCiYNpH/AfNOVWRqCQBlD8TFJTz6OUWNd4DFJCnmw==", + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -3206,9 +3181,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001759", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", - "integrity": "sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==", + "version": "1.0.30001766", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001766.tgz", + "integrity": "sha512-4C0lfJ0/YPjJQHagaE9x2Elb69CIqEPZeG0anQt9SIvIoOH4a4uaRl73IavyO+0qZh6MDLH//DrXThEYKHkmYA==", "funding": [ { "type": "opencollective", @@ -3588,9 +3563,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.265", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.265.tgz", - "integrity": "sha512-B7IkLR1/AE+9jR2LtVF/1/6PFhY5TlnEHnlrKmGk7PvkJibg5jr+mLXLLzq3QYl6PA1T/vLDthQPqIPAlS/PPA==", + "version": "1.5.283", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.283.tgz", + "integrity": "sha512-3vifjt1HgrGW/h76UEeny+adYApveS9dH2h3p57JYzBSXJIKUJAvtmIytDKjcSCt9xHfrNCFJ7gts6vkhuq++w==", "dev": true, "license": "ISC" }, @@ -3602,9 +3577,9 @@ "license": "MIT" }, "node_modules/es-abstract": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", - "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", "dev": true, "license": "MIT", "dependencies": { @@ -3691,27 +3666,27 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", + "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.8", - "call-bound": "^1.0.3", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", + "es-abstract": "^1.24.1", "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", + "es-set-tostringtag": "^2.1.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", + "get-intrinsic": "^1.3.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", "has-proto": "^1.2.0", "has-symbols": "^1.1.0", "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", + "iterator.prototype": "^1.1.5", "safe-array-concat": "^1.1.3" }, "engines": { @@ -3802,9 +3777,9 @@ } }, "node_modules/eslint": { - "version": "9.39.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", - "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "dependencies": { @@ -3814,7 +3789,7 @@ "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.1", + "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -4181,9 +4156,9 @@ } }, "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4278,9 +4253,9 @@ "license": "MIT" }, "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -4510,9 +4485,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", - "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.1.tgz", + "integrity": "sha512-EoY1N2xCn44xU6750Sx7OjOIT59FkmstNc3X6y5xpz7D5cBtZRe/3pSlTkDJgqsOk3WwZPkWfonhhUJfttQo3w==", "dev": true, "license": "MIT", "dependencies": { @@ -4577,13 +4552,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", @@ -4678,8 +4646,10 @@ } }, "node_modules/hyper-scatter": { - "resolved": "../hyper-scatter", - "link": true + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/hyper-scatter/-/hyper-scatter-0.1.0.tgz", + "integrity": "sha512-bsNklPi52mY/St0UdIwHkyW9tt2d2j57QXKi6orT1ji0FL6oYKT0wuoFaHgZ3ioMH+asE1Cl1SGS0x49sEPZkw==", + "license": "MIT" }, "node_modules/ignore": { "version": "5.3.2", @@ -5576,16 +5546,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6834,9 +6794,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.4.18", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.18.tgz", - "integrity": "sha512-6A2rnmW5xZMdw11LYjhcI5846rt9pbLSabY5XPxo+XWdxwZaFEn47Go4NzFiHu9sNNmr/kXivP1vStfvMaK1GQ==", + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", "license": "MIT", "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -6986,9 +6946,9 @@ } }, "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { @@ -7190,9 +7150,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", - "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -7363,9 +7323,9 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "dev": true, "license": "MIT", "dependencies": { @@ -7408,9 +7368,9 @@ } }, "node_modules/zustand": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.9.tgz", - "integrity": "sha512-ALBtUj0AfjJt3uNRQoL1tL2tMvj6Gp/6e39dnfT6uzpelGru8v1tPOGBzayOWbPJvujM8JojDk3E1LxeFisBNg==", + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.10.tgz", + "integrity": "sha512-U1AiltS1O9hSy3rul+Ub82ut2fqIAefiSuwECWt6jlMVUGejvf+5omLcRBSzqbRagSM3hQZbtzdeRc6QVScXTg==", "license": "MIT", "engines": { "node": ">=12.20.0" From 9fb0dbe3569b4a81f446f5295f11123c1c321f7a Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 17:51:48 +0100 Subject: [PATCH 52/75] Fix: include frontend static assets in sdist for wheel builds --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 58f80e7..d687f7d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -75,6 +75,7 @@ version-file = "src/hyperview/_version.py" [tool.hatch.build.targets.wheel] packages = ["src/hyperview"] # Include frontend static assets (pre-built before packaging) +# artifacts is for untracked files that exist; force-include ensures they're packaged artifacts = ["src/hyperview/server/static/**"] [tool.hatch.build.targets.sdist] @@ -83,6 +84,8 @@ include = [ "/README.md", "/LICENSE", ] +# Include built frontend for reproducible source builds +artifacts = ["src/hyperview/server/static/**"] [tool.ruff] line-length = 100 From c73eeeb4a45508862af0d1bbf66c26caf9106e91 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 17:57:44 +0100 Subject: [PATCH 53/75] Remove require_frontend_export workflow (frontend now built in CI) --- .github/workflows/require_frontend_export.yml | 106 ------------------ notebooks/hyperview_clip_umap.py | 75 +++++++++++++ 2 files changed, 75 insertions(+), 106 deletions(-) delete mode 100644 .github/workflows/require_frontend_export.yml create mode 100644 notebooks/hyperview_clip_umap.py diff --git a/.github/workflows/require_frontend_export.yml b/.github/workflows/require_frontend_export.yml deleted file mode 100644 index f97688d..0000000 --- a/.github/workflows/require_frontend_export.yml +++ /dev/null @@ -1,106 +0,0 @@ -name: Require Frontend Export - -on: - pull_request: - types: [opened, synchronize, reopened] - paths: - - "frontend/**" - - "scripts/export_frontend.sh" - - "src/hyperview/server/static/**" - push: - paths: - - "frontend/**" - - "scripts/export_frontend.sh" - - "src/hyperview/server/static/**" - -jobs: - require-frontend-export: - runs-on: ubuntu-latest - # Skip if the push was made by github-actions to avoid loops - if: github.actor != 'github-actions[bot]' - permissions: - contents: write - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Detect frontend and static changes - id: changes - run: | - set -euo pipefail - - # Determine base and head SHAs based on event type - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - base_sha="${{ github.event.pull_request.base.sha }}" - head_sha="${{ github.event.pull_request.head.sha }}" - else - # For push events, compare with the previous commit - head_sha="${{ github.sha }}" - base_sha="${{ github.event.before }}" - # Handle initial push (no previous commit) - if [[ "$base_sha" == "0000000000000000000000000000000000000000" ]]; then - echo "Initial push - skipping check" - echo "needs_export=false" >> "$GITHUB_OUTPUT" - exit 0 - fi - fi - - changed_files="$(git diff --name-only "$base_sha" "$head_sha")" - - echo "Changed files:" - echo "$changed_files" - - frontend_changed="false" - static_changed="false" - - if echo "$changed_files" | grep -qE '^(frontend/|scripts/export_frontend\.sh$)'; then - frontend_changed="true" - fi - - if echo "$changed_files" | grep -q '^src/hyperview/server/static/'; then - static_changed="true" - fi - - needs_export="false" - if [[ "$frontend_changed" == "true" && "$static_changed" != "true" ]]; then - needs_export="true" - fi - - { - echo "frontend_changed=$frontend_changed" - echo "static_changed=$static_changed" - echo "needs_export=$needs_export" - } >> "$GITHUB_OUTPUT" - - - name: Set up Node - if: github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' - uses: actions/setup-node@v4 - with: - node-version: 20 - - - name: Export frontend - if: github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' - run: bash scripts/export_frontend.sh - - - name: Commit and push exported static assets - if: github.event_name == 'push' && steps.changes.outputs.needs_export == 'true' - uses: stefanzweifel/git-auto-commit-action@v7 - with: - commit_message: "chore: export frontend static assets [skip ci]" - file_pattern: "src/hyperview/server/static/**" - - - name: Fail PR if frontend changed without static export - if: github.event_name == 'pull_request' && steps.changes.outputs.needs_export == 'true' - run: | - echo "" - echo "ERROR: frontend/ changed but src/hyperview/server/static/ was not updated." - echo "" - echo "Run locally:" - echo " bash scripts/export_frontend.sh" - echo " git add src/hyperview/server/static" - echo " git commit -m 'chore: export frontend static assets'" - echo "" - exit 1 diff --git a/notebooks/hyperview_clip_umap.py b/notebooks/hyperview_clip_umap.py new file mode 100644 index 0000000..e6b5c8d --- /dev/null +++ b/notebooks/hyperview_clip_umap.py @@ -0,0 +1,75 @@ +# %% [markdown] +# # HyperView Demo: Image Embeddings + UMAP Visualization +# +# Demonstrates computing image embeddings and visualizing them in 2D using UMAP +# with the HyperView Dataset API. Supports CLIP and SigLip models. + +# %% +import json +import random +import urllib.parse +import urllib.request +from pathlib import Path + +import hyperview as hv + +# %% [markdown] +# ## Download Random Space Images (NASA, Public Domain) +# +# This demo downloads a random set of space images from NASA's Images and Video Library +# (https://images.nasa.gov). NASA imagery is generally public domain (US Government work). + +# %% +NUM_IMAGES = 48 +CACHE_DIR = Path(__file__).parent / "_nasa_space_images" +RANDOM_SEED = None # Set to an int (e.g. 0) for reproducible sampling +NASA_QUERIES = ["black hole", "nebula", "galaxy", "jwst", "hubble"] + + +CACHE_DIR.mkdir(parents=True, exist_ok=True) +image_files = [ + p + for p in CACHE_DIR.iterdir() + if p.is_file() and p.suffix.lower() in {".jpg", ".jpeg", ".png", ".webp", ".tif", ".tiff"} +] +if len(image_files) < NUM_IMAGES: + rng = random.Random(RANDOM_SEED) + query = rng.choice(NASA_QUERIES) + params = {"q": query, "media_type": "image", "page": "1"} + api_url = f"https://images-api.nasa.gov/search?{urllib.parse.urlencode(params)}" + items = json.load(urllib.request.urlopen(api_url))["collection"]["items"] + rng.shuffle(items) + + for i, item in enumerate(items[:NUM_IMAGES]): + href = item["links"][0]["href"] + ext = Path(urllib.parse.urlparse(href).path).suffix or ".jpg" + urllib.request.urlretrieve(href, CACHE_DIR / f"nasa_{i:03d}{ext}") + +dataset = hv.Dataset("nasa_space_demo", persist=False) +added, skipped = dataset.add_images_dir(str(CACHE_DIR), label_from_folder=False) +print(f"✓ Loaded {added} NASA space images" + (f" ({skipped} already present)" if skipped else "")) + +# %% [markdown] +# ## Compute Embeddings & UMAP Projection +# +# EmbedAnything supports many HuggingFace vision models, but not all. +# For example, `microsoft/resnet-18` is currently rejected by EmbedAnything +# ("Model not supported"). Common choices that work: +# - CLIP: openai/clip-vit-base-patch32, openai/clip-vit-base-patch16, etc. +# - SigLip: google/siglip-base-patch16-224, google/siglip-large-patch16-384 +# - Jina CLIP: jinaai/jina-clip-v2 + +# %% +# Use any HuggingFace model supported by EmbedAnything +MODEL = "google/siglip-base-patch16-224" + +dataset.compute_embeddings(model=MODEL, show_progress=True) +dataset.compute_visualization() + +# %% [markdown] +# ## Launch HyperView + +# %% +hv.launch(dataset, port=6262, open_browser=True) + + From d8fde182c588f0d1e532ca5f6ec2e8273ff3e9eb Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 31 Jan 2026 19:23:30 +0100 Subject: [PATCH 54/75] Fix: update Colab smoke test to download NASA images and compute real embeddings --- notebooks/colab_smoke_test.ipynb | 94 ++++++++++++++++---------------- 1 file changed, 48 insertions(+), 46 deletions(-) diff --git a/notebooks/colab_smoke_test.ipynb b/notebooks/colab_smoke_test.ipynb index b60a470..0cea259 100644 --- a/notebooks/colab_smoke_test.ipynb +++ b/notebooks/colab_smoke_test.ipynb @@ -9,7 +9,7 @@ "\n", "This notebook verifies that HyperView can launch inside Google Colab and open the UI in a new browser tab.\n", "\n", - "The smoke test uses a synthetic dataset (random images + precomputed 2D coordinates), so it does not download models or run embedding computation." + "The smoke test downloads a small set of public-domain NASA images and computes real embeddings using a lightweight model." ] }, { @@ -17,27 +17,19 @@ "execution_count": null, "id": "945a1017", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "zsh:1: command not found: pip\n", - "Cloning into 'HyperView'...\n", - "remote: Enumerating objects: 577, done.\u001b[K\n", - "remote: Counting objects: 100% (577/577), done.\u001b[K\n", - "remote: Compressing objects: 100% (328/328), done.\u001b[K\n", - "remote: Total 577 (delta 240), reused 518 (delta 193), pack-reused 0 (from 0)\u001b[K\n", - "Receiving objects: 100% (577/577), 4.29 MiB | 8.76 MiB/s, done.\n", - "Resolving deltas: 100% (240/240), done.\n", - "/Users/matin/hyperview_org/HyperView/notebooks/HyperView\n", - "\u001b[2mUsing Python 3.12.8 environment at: /Users/matin/hyperview_org/HyperView/.venv\u001b[0m\n", - "\u001b[2K\u001b[1m\u001b[31merror\u001b[39m\u001b[0m: /Users/matin/hyperview_org/HyperView/notebooks/HyperView does not appear to be a Python project, as neither `pyproject.toml` nor `setup.py` are present in the directory\n" - ] - } - ], + "outputs": [], + "source": [ + "%pip install hyperview" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "856febf3", + "metadata": {}, + "outputs": [], "source": [ - "%pip install -q git+https://github.com/HackerRoomAI/HyperView.git@hyperview-base" + "import hyperview as hv" ] }, { @@ -47,36 +39,46 @@ "metadata": {}, "outputs": [], "source": [ - "import numpy as np\n", + "import json\n", + "import random\n", + "import urllib.parse\n", + "import urllib.request\n", + "from pathlib import Path\n", "\n", - "import hyperview as hv\n", - "from hyperview.core.sample import SampleFromArray\n", - "\n", - "dataset = hv.Dataset(\"colab_smoke\", persist=False)\n", + "# Download a small set of NASA space images (public domain)\n", + "NUM_IMAGES = 24\n", + "CACHE_DIR = Path(\"/tmp/_nasa_smoke_images\")\n", + "NASA_QUERIES = [\"black hole\", \"nebula\", \"galaxy\", \"jwst\", \"hubble\"]\n", "\n", - "rng = np.random.default_rng(0)\n", - "num_samples = 200\n", + "CACHE_DIR.mkdir(parents=True, exist_ok=True)\n", + "image_files = [\n", + " p for p in CACHE_DIR.iterdir()\n", + " if p.is_file() and p.suffix.lower() in {\".jpg\", \".jpeg\", \".png\", \".webp\"}\n", + "]\n", + "if len(image_files) < NUM_IMAGES:\n", + " rng = random.Random(42)\n", + " query = rng.choice(NASA_QUERIES)\n", + " params = {\"q\": query, \"media_type\": \"image\", \"page\": \"1\"}\n", + " api_url = f\"https://images-api.nasa.gov/search?{urllib.parse.urlencode(params)}\"\n", + " items = json.load(urllib.request.urlopen(api_url))[\"collection\"][\"items\"]\n", + " rng.shuffle(items)\n", "\n", - "for i in range(num_samples):\n", - " img = (rng.random((64, 64, 3)) * 255).astype(np.uint8)\n", + " for i, item in enumerate(items[:NUM_IMAGES]):\n", + " href = item[\"links\"][0][\"href\"]\n", + " ext = Path(urllib.parse.urlparse(href).path).suffix or \".jpg\"\n", + " urllib.request.urlretrieve(href, CACHE_DIR / f\"nasa_{i:03d}{ext}\")\n", "\n", - " sample = SampleFromArray.from_array(\n", - " id=f\"s{i}\",\n", - " image_array=img,\n", - " label=f\"class_{i % 10}\",\n", - " metadata={\"i\": i},\n", - " )\n", - "\n", - " # Precomputed 2D Euclidean projection\n", - " sample.embedding_2d = [float(rng.normal()), float(rng.normal())]\n", - "\n", - " # Precomputed 2D hyperbolic projection (inside unit disk)\n", - " r = float(rng.random() * 0.95)\n", - " theta = float(rng.random() * 2 * np.pi)\n", - " sample.embedding_2d_hyperbolic = [float(r * np.cos(theta)), float(r * np.sin(theta))]\n", + "# Create dataset and add images\n", + "dataset = hv.Dataset(\"colab_smoke\", persist=False)\n", + "added, skipped = dataset.add_images_dir(str(CACHE_DIR), label_from_folder=False)\n", + "print(f\"✓ Loaded {added} NASA images\" + (f\" ({skipped} already present)\" if skipped else \"\"))\n", "\n", - " dataset.add_sample(sample)\n", + "# Compute embeddings with a lightweight model\n", + "MODEL = \"google/siglip-base-patch16-224\"\n", + "dataset.compute_embeddings(model=MODEL, show_progress=True)\n", + "dataset.compute_visualization()\n", "\n", + "# Launch HyperView\n", "hv.launch(dataset, port=6262)" ] }, @@ -85,7 +87,7 @@ "id": "b1cb3148", "metadata": {}, "source": [ - "Click the link printed above to open HyperView in a new tab. If needed, copy/paste the URL." + "Click the link printed above to open HyperView in a new tab. In Colab, you may need to copy/paste the URL." ] } ], From 2f4a81e39c9b1def3d5d3f5aa1af42699d65abea Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sun, 1 Feb 2026 12:06:22 +0100 Subject: [PATCH 55/75] cifar-100 colab notebook --- ...yperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb | 3030 +++++++++++++++++ 1 file changed, 3030 insertions(+) create mode 100644 notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb diff --git a/notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb b/notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb new file mode 100644 index 0000000..3fa96fe --- /dev/null +++ b/notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb @@ -0,0 +1,3030 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "47ee06e6", + "metadata": { + "id": "47ee06e6" + }, + "source": [ + "# HyperView: CLIP vs HyCoCLIP with 2D UMAP Projection on CIFAR-100\n", + "\n", + "This notebook compares two embedding spaces on the same image set.\n", + "\n", + "- [**CLIP**](https://github.com/openai/CLIP) maps images and text into one shared vector space.\n", + " \n", + "- [**HyCoCLIP**](https://github.com/PalAvik/hycoclip) maps images into a space designed for hierarchy and tree like structure.\n", + " \n", + "- We then compute a **2D projection** of each embedding space with [UMAP](https://umap-learn.readthedocs.io/en/latest/) so we can inspect clusters and label structure.\n", + " \n", + "\n", + "HyperView allows us to compare the embedding spaces of these different geometries.\n", + "\n", + "In this demo, we use the [CIFAR-100](https://huggingface.co/datasets/uoft-cs/cifar100) dataset of tiny images, available through HuggingFace." + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Install\n", + "\n", + "HyperView is a library for dataset curation and model analysis. It provides tools for interactive visualization of the embedding space." + ], + "metadata": { + "id": "hyaagNXkyUBN" + }, + "id": "hyaagNXkyUBN" + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "945a1017", + "metadata": { + "id": "945a1017" + }, + "outputs": [], + "source": [ + "%%capture\n", + "# If you run this in Google Colab, install HyperView with this command.\n", + "!uv pip install hyperview" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Import HyperView" + ], + "metadata": { + "id": "hYtO76VBy7C9" + }, + "id": "hYtO76VBy7C9" + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "We import HyperView and use it as the main interface for:\n", + "\n", + "- reading data\n", + " \n", + "- computing embeddings with pretrained models\n", + " \n", + "- computing a 2D projection for visualization\n", + " \n", + "- launching the interactive viewer\n", + " " + ], + "metadata": { + "id": "v-TvwC2Qyw42" + }, + "id": "v-TvwC2Qyw42" + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "58b82256", + "metadata": { + "id": "58b82256" + }, + "outputs": [], + "source": [ + "import hyperview as hv" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Configuration" + ], + "metadata": { + "id": "nH4CjViEy-U4" + }, + "id": "nH4CjViEy-U4" + }, + { + "cell_type": "markdown", + "source": [ + "We specify the dataset and model settings in a single dictionary.\n", + "\n", + "### Data source\n", + "\n", + "- We load **CIFAR-100** from Hugging Face.\n", + " \n", + "- We use the **test** split.\n", + " \n", + "- `img` is the image field.\n", + " \n", + "- We use `coarse_label` for labels." + ], + "metadata": { + "id": "36tl8PxjzBT6" + }, + "id": "36tl8PxjzBT6" + }, + { + "cell_type": "markdown", + "source": [ + "Why coarse labels:\n", + "\n", + "- HyperView disables distinct label coloring when there are more than 20 labels.\n", + " \n", + "- CIFAR-100 has 100 fine labels, but 20 coarse labels.\n", + " \n", + "- Using coarse labels keeps label coloring useful in the viewer.\n", + " " + ], + "metadata": { + "id": "SIR8CsvfzW3I" + }, + "id": "SIR8CsvfzW3I" + }, + { + "cell_type": "markdown", + "source": [ + "### Sampling\n", + "\n", + "- `NUM_SAMPLES = 200` keeps embedding and layout computation fast enough for a demo.\n", + " \n", + "- Increase this if you want denser clusters, but expect more compute time.\n", + " " + ], + "metadata": { + "id": "tXpwwCXozezd" + }, + "id": "tXpwwCXozezd" + }, + { + "cell_type": "markdown", + "source": [ + "### Models\n", + "\n", + "- `openai/clip-vit-base-patch32` is a common CLIP baseline.\n", + " \n", + "- `hycoclip-vit-s` is a HyCoCLIP model that targets hierarchical structure." + ], + "metadata": { + "id": "NCtE2BN0zk3G" + }, + "id": "NCtE2BN0zk3G" + }, + { + "cell_type": "code", + "source": [ + "DATASET_NAME = \"cifar100_coarse_clip_hyper_models\"\n", + "HF_DATASET = \"uoft-cs/cifar100\"\n", + "HF_SPLIT = \"test\"\n", + "HF_IMAGE_KEY = \"img\"\n", + "# NOTE: HyperView disables distinct label coloring when there are >20 labels.\n", + "# CIFAR-100 has 100 fine labels, but only 20 coarse labels.\n", + "HF_LABEL_KEY = \"coarse_label\"\n", + "NUM_SAMPLES = 200\n", + "CLIP_MODEL_ID = \"openai/clip-vit-base-patch32\"\n", + "HYPER_MODELS_MODEL_ID = \"hycoclip-vit-s\"" + ], + "metadata": { + "id": "Wto-RfOFzCdJ" + }, + "id": "Wto-RfOFzCdJ", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Load CIFAR-100 into a HyperView dataset\n", + "\n", + "We create a HyperView `Dataset` object and then import samples from Hugging Face.\n", + "\n", + "Key parameters:\n", + "\n", + "- `persist=False` keeps this dataset in memory for this run.\n", + " \n", + "- `max_samples=NUM_SAMPLES` subsamples the split.\n", + " \n", + "\n", + "At the end, `len(dataset)` is the number of loaded examples." + ], + "metadata": { + "id": "nEdV-nZTzs3G" + }, + "id": "nEdV-nZTzs3G" + }, + { + "cell_type": "code", + "source": [ + "print(\"Loading CIFAR-100 from Hugging Face...\")\n", + "dataset = hv.Dataset(DATASET_NAME, persist=False)\n", + "dataset.add_from_huggingface(\n", + " HF_DATASET,\n", + " split=HF_SPLIT,\n", + " image_key=HF_IMAGE_KEY,\n", + " label_key=HF_LABEL_KEY,\n", + " max_samples=NUM_SAMPLES,\n", + ")\n", + "print(f\"Loaded {len(dataset)} samples\")\n", + "\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 506, + "referenced_widgets": [ + "162a6522d4a246b78865ab61ca713730", + "e40b36bfd1f64d129f17ee0bb4aef334", + "fc5fe01c2fc64bbb8f9b7adba05cf789", + "187ce225eb4041299d9233cee10f198f", + "c863c8acaef84e488a5016b6869888fe", + "f6137d250fa044d393e65d3443a63f23", + "698107a8b57d4746bc299795c75a5234", + "b4b55da4f86a4c229e5d2b2129353c0a", + "ef34f8327ba943629f00788360462e2a", + "89a229a5967d4b80ac9c031e980300a9", + "5cdbe6ac7f514818be2ae019cb430d94", + "b18ef99b82b244099c5c2843f1109136", + "534bbfee2fbb4adfa5e986e57a7ae613", + "842ae4c3bb17440f837bf284babdc261", + "4a4d809d0c8440a38cc9d3a978a30316", + "5ba55ab80c3d44779c0466b085d567e5", + "2f2d2700b29f4541b090e193e367559d", + "45375a63674841588e0b9169e7ba7b17", + "d5fe34a8c44b44768b703d8ccf0a3549", + "e497698fa57c499b8b4d2c6864136c0c", + "422692f8f08842328e6ff4d34698bc34", + "c3e8e8bba2f54a95ab0893ea04125edb", + "b748f1d618be4cca90200b051d0a7f69", + "00679cf77043425293f9fb3c554b5608", + "6817055ed9794a2d8cd3b8c921a917ea", + "80b7937194644630ae5f71bed76ec0ee", + "60aed7458089444f8325bafcde96d813", + "4bc18efc1b564f518c17d124af5b6995", + "1b32afe6b2334dd2ac4ff8160f88aa43", + "e97554397b7f4011b163eee7d979c2ba", + "96498aacc1c1480f8635f670a160c1e0", + "2748e8a5c99e410695169ad6d1c4a010", + "bd827ff163284cfcbb1813b26df5f695", + "5d3e5a992e534310bfacce79ed5391c9", + "50cc2ef24f0c4a9e81f56f6e91fab554", + "4865b99bd6894a0aba10c1e10c1937bb", + "4584a17302694197a04cfaf107658fbb", + "96c3a505798c4024837725c34a9f2309", + "c5a70942735b4bba9f2241d1e87d0195", + "45386697f14341c48b1742ff4ebdb5d3", + "1f349d114181470c92088a7335ab9c20", + "892c59943df44b4da5385d6594b01e8e", + "136265786c10498982c01adc28b5ac65", + "624f0c5c1d3b4199a487cf13b18d5a1e", + "83e5b4f9f2214d3d8fdfb5ffd95d7629", + "75c1cb8a5cb14aa1bd1426a646094631", + "4c145ba110294cf8a92f26fa6fe0de7f", + "cfc142d207904cbfa7ad5ff58a7b9fd3", + "38df7262af124ae893d8cc8263d8afc9", + "2c0ea2a0d2214a44a7d7d91d88bfb8e0", + "64d26f0a807444b6850a1c033f5323c2", + "88c43dabc79f45e297096e7f2a241e2b", + "3c3f7f99d44d4c7998fad31be0267167", + "0156fafe07c74344847e7d2ef98df79e", + "4888ca39fc2c48c1a9ac89b2c9b717eb", + "0936aef0918a48d7af069acf75ae1728", + "921a9a0e6e334cc98578f2051d62ab68", + "3f1af733e6794cdcb04f5f496775130b", + "a9400f02a14d4410887dd5ce623d8098", + "abbafd4c454e473cb40729a6962de80f", + "719c39267fb349f88bc010bc7bd2a6e5", + "df4b55aa4cef404f89337a974da48576", + "17490f8197db4e9bb1ba9f12a3430cc4", + "32d8adf127bf42639cc077c83d4a5707", + "0096a993f5754a48a1f68cd299116546", + "b42b16b966ab42ce906dabd7c04dea17", + "b4a6046c98254d94ae5a17a7b884913e", + "f2c579087838472aa1cdc786be6d4fa3", + "5cd1fee124ae4e25a1777d6602ede2c7", + "25e14b4c5f224b31ae42bff17b4c7231", + "073dc6532acb4decaca8865423ec7c52", + "6e8faea248994e4a937fb787162444ab", + "b47d59803ea24037ac6acda5120454a6", + "a12258a724be4a75981bc286acbb6e77", + "68b8853ae56740f683c56cd428de6313", + "a57fadb49a6a4ff599457c842d1c81a7", + "00e09f322dae4acb9ac6023ef3c7b72a" + ] + }, + "id": "Vb0PAH7gvsP7", + "outputId": "7520b34f-6c86-4125-e0d8-9dc69736d594" + }, + "id": "Vb0PAH7gvsP7", + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Loading CIFAR-100 from Hugging Face...\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "README.md: 0.00B [00:00, ?B/s]" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "162a6522d4a246b78865ab61ca713730" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "cifar100/train-00000-of-00001.parquet: 0%| | 0.00/119M [00:00" + ], + "text/html": [ + "

HyperView is running in Colab. Open HyperView in a new tab.

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "

https://6262-gpu-t4-hm-kg95f2888y5u-c.europe-west4-1.prod.colab.dev/

" + ] + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 3 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Compute CLIP embeddings\n", + "\n", + "### What CLIP embeddings represent\n", + "\n", + "CLIP trains an image encoder and a text encoder so that matching image text pairs have nearby vectors. When we compute image embeddings here, each image becomes a single vector in a shared space that also supports text vectors.\n", + "\n", + "### What we do in code\n", + "\n", + "- `compute_embeddings(CLIP_MODEL_ID)` runs the CLIP image encoder and stores one vector per image.\n", + " \n", + "- The returned `space_key` is a handle to that embedding space inside HyperView.\n", + " \n", + "\n", + "### Why we compute a 2D visualization\n", + "\n", + "High dimensional vectors are hard to inspect. We compute a 2D layout so we can see neighborhood structure.\n", + "\n", + "- `compute_visualization(..., geometry=\"euclidean\")` treats the embedding space as Euclidean.\n", + " \n", + "- This matches how CLIP vectors are often used with cosine similarity or dot product in a flat vector space.\n", + " \n", + "\n", + "Note on “UMAP” \n", + "This notebook focuses on a 2D projection step. HyperView computes a 2D layout for the viewer. The title calls this UMAP. In practice, you should treat this as a nonlinear projection that preserves local neighborhoods better than PCA." + ], + "metadata": { + "id": "xvAMFY_Dz71Z" + }, + "id": "xvAMFY_Dz71Z" + }, + { + "cell_type": "markdown", + "source": [ + "## Compute HyCoCLIP embeddings\n", + "\n", + "### Why a different geometry\n", + "\n", + "Some datasets have hierarchical label structure. A tree structure is hard to represent in Euclidean space without distortion.\n", + "\n", + "Hyperbolic spaces can represent tree growth patterns with less distortion than Euclidean spaces. A common model is the **Poincaré ball**, which is a way to work with hyperbolic geometry in a bounded region.\n", + "\n", + "### What we do in code\n", + "\n", + "- `compute_embeddings(model=HYPER_MODELS_MODEL_ID)` computes embeddings from the HyCoCLIP model.\n", + " \n", + "- `compute_visualization(..., geometry=\"poincare\")` tells HyperView to treat distances and neighborhoods using Poincaré geometry.\n", + " \n", + "\n", + "How to read the plot\n", + "\n", + "- In Poincaré style layouts, points near the center and points near the boundary can have different distance behavior than Euclidean layouts.\n", + " \n", + "- Focus on neighborhood membership and cluster separation rather than raw coordinate scale." + ], + "metadata": { + "id": "zEkSKKPN0GZz" + }, + "id": "zEkSKKPN0GZz" + }, + { + "cell_type": "code", + "source": [ + "clip_space = dataset.compute_embeddings(CLIP_MODEL_ID)\n", + "dataset.compute_visualization(space_key=clip_space, geometry=\"euclidean\")\n", + "hyper_space = dataset.compute_embeddings(model=HYPER_MODELS_MODEL_ID)\n", + "dataset.compute_visualization(space_key=hyper_space, geometry=\"poincare\")" + ], + "metadata": { + "id": "rXl9yJKyx3hQ" + }, + "id": "rXl9yJKyx3hQ", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Launch the interactive viewer\n", + "\n", + "`hv.launch(dataset, open_browser=True)` starts a local server and opens the viewer.\n", + "\n", + "In the UI, you should be able to:\n", + "\n", + "- switch between embedding spaces (CLIP vs HyCoCLIP)\n", + " \n", + "- inspect image thumbnails for selected points\n", + " \n", + "- compare how coarse labels cluster under each geometry\n", + " \n" + ], + "metadata": { + "id": "rGEUqA0W0O4g" + }, + "id": "rGEUqA0W0O4g" + }, + { + "cell_type": "code", + "source": [ + "hv.launch(dataset, open_browser=True)" + ], + "metadata": { + "id": "o3TdCwD2wIf2" + }, + "id": "o3TdCwD2wIf2", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Suggested checks\n", + "\n", + "- Are nearest neighbors under Euclidean CLIP similar to nearest neighbors under Poincaré HyCoCLIP?\n", + "\n", + "\n", + " " + ], + "metadata": { + "id": "FRjieuy10Yed" + }, + "id": "FRjieuy10Yed" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.8" + }, + "colab": { + "provenance": [], + "machine_shape": "hm", + "gpuType": "T4" + }, + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "162a6522d4a246b78865ab61ca713730": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_e40b36bfd1f64d129f17ee0bb4aef334", + "IPY_MODEL_fc5fe01c2fc64bbb8f9b7adba05cf789", + "IPY_MODEL_187ce225eb4041299d9233cee10f198f" + ], + "layout": "IPY_MODEL_c863c8acaef84e488a5016b6869888fe" + } + }, + "e40b36bfd1f64d129f17ee0bb4aef334": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f6137d250fa044d393e65d3443a63f23", + "placeholder": "​", + "style": "IPY_MODEL_698107a8b57d4746bc299795c75a5234", + "value": "README.md: " + } + }, + "fc5fe01c2fc64bbb8f9b7adba05cf789": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b4b55da4f86a4c229e5d2b2129353c0a", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ef34f8327ba943629f00788360462e2a", + "value": 1 + } + }, + "187ce225eb4041299d9233cee10f198f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_89a229a5967d4b80ac9c031e980300a9", + "placeholder": "​", + "style": "IPY_MODEL_5cdbe6ac7f514818be2ae019cb430d94", + "value": " 9.98k/? [00:00<00:00, 942kB/s]" + } + }, + "c863c8acaef84e488a5016b6869888fe": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f6137d250fa044d393e65d3443a63f23": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "698107a8b57d4746bc299795c75a5234": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b4b55da4f86a4c229e5d2b2129353c0a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "20px" + } + }, + "ef34f8327ba943629f00788360462e2a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "89a229a5967d4b80ac9c031e980300a9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5cdbe6ac7f514818be2ae019cb430d94": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b18ef99b82b244099c5c2843f1109136": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_534bbfee2fbb4adfa5e986e57a7ae613", + "IPY_MODEL_842ae4c3bb17440f837bf284babdc261", + "IPY_MODEL_4a4d809d0c8440a38cc9d3a978a30316" + ], + "layout": "IPY_MODEL_5ba55ab80c3d44779c0466b085d567e5" + } + }, + "534bbfee2fbb4adfa5e986e57a7ae613": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2f2d2700b29f4541b090e193e367559d", + "placeholder": "​", + "style": "IPY_MODEL_45375a63674841588e0b9169e7ba7b17", + "value": "cifar100/train-00000-of-00001.parquet: 100%" + } + }, + "842ae4c3bb17440f837bf284babdc261": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d5fe34a8c44b44768b703d8ccf0a3549", + "max": 118518617, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e497698fa57c499b8b4d2c6864136c0c", + "value": 118518617 + } + }, + "4a4d809d0c8440a38cc9d3a978a30316": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_422692f8f08842328e6ff4d34698bc34", + "placeholder": "​", + "style": "IPY_MODEL_c3e8e8bba2f54a95ab0893ea04125edb", + "value": " 119M/119M [00:03<00:00, 28.6MB/s]" + } + }, + "5ba55ab80c3d44779c0466b085d567e5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2f2d2700b29f4541b090e193e367559d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "45375a63674841588e0b9169e7ba7b17": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d5fe34a8c44b44768b703d8ccf0a3549": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e497698fa57c499b8b4d2c6864136c0c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "422692f8f08842328e6ff4d34698bc34": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c3e8e8bba2f54a95ab0893ea04125edb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b748f1d618be4cca90200b051d0a7f69": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_00679cf77043425293f9fb3c554b5608", + "IPY_MODEL_6817055ed9794a2d8cd3b8c921a917ea", + "IPY_MODEL_80b7937194644630ae5f71bed76ec0ee" + ], + "layout": "IPY_MODEL_60aed7458089444f8325bafcde96d813" + } + }, + "00679cf77043425293f9fb3c554b5608": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4bc18efc1b564f518c17d124af5b6995", + "placeholder": "​", + "style": "IPY_MODEL_1b32afe6b2334dd2ac4ff8160f88aa43", + "value": "cifar100/test-00000-of-00001.parquet: 100%" + } + }, + "6817055ed9794a2d8cd3b8c921a917ea": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e97554397b7f4011b163eee7d979c2ba", + "max": 23772751, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_96498aacc1c1480f8635f670a160c1e0", + "value": 23772751 + } + }, + "80b7937194644630ae5f71bed76ec0ee": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2748e8a5c99e410695169ad6d1c4a010", + "placeholder": "​", + "style": "IPY_MODEL_bd827ff163284cfcbb1813b26df5f695", + "value": " 23.8M/23.8M [00:03<00:00, 14.7MB/s]" + } + }, + "60aed7458089444f8325bafcde96d813": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4bc18efc1b564f518c17d124af5b6995": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1b32afe6b2334dd2ac4ff8160f88aa43": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e97554397b7f4011b163eee7d979c2ba": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "96498aacc1c1480f8635f670a160c1e0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "2748e8a5c99e410695169ad6d1c4a010": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bd827ff163284cfcbb1813b26df5f695": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5d3e5a992e534310bfacce79ed5391c9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_50cc2ef24f0c4a9e81f56f6e91fab554", + "IPY_MODEL_4865b99bd6894a0aba10c1e10c1937bb", + "IPY_MODEL_4584a17302694197a04cfaf107658fbb" + ], + "layout": "IPY_MODEL_96c3a505798c4024837725c34a9f2309" + } + }, + "50cc2ef24f0c4a9e81f56f6e91fab554": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c5a70942735b4bba9f2241d1e87d0195", + "placeholder": "​", + "style": "IPY_MODEL_45386697f14341c48b1742ff4ebdb5d3", + "value": "Generating train split: 100%" + } + }, + "4865b99bd6894a0aba10c1e10c1937bb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1f349d114181470c92088a7335ab9c20", + "max": 50000, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_892c59943df44b4da5385d6594b01e8e", + "value": 50000 + } + }, + "4584a17302694197a04cfaf107658fbb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_136265786c10498982c01adc28b5ac65", + "placeholder": "​", + "style": "IPY_MODEL_624f0c5c1d3b4199a487cf13b18d5a1e", + "value": " 50000/50000 [00:00<00:00, 168425.02 examples/s]" + } + }, + "96c3a505798c4024837725c34a9f2309": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c5a70942735b4bba9f2241d1e87d0195": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "45386697f14341c48b1742ff4ebdb5d3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1f349d114181470c92088a7335ab9c20": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "892c59943df44b4da5385d6594b01e8e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "136265786c10498982c01adc28b5ac65": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "624f0c5c1d3b4199a487cf13b18d5a1e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "83e5b4f9f2214d3d8fdfb5ffd95d7629": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_75c1cb8a5cb14aa1bd1426a646094631", + "IPY_MODEL_4c145ba110294cf8a92f26fa6fe0de7f", + "IPY_MODEL_cfc142d207904cbfa7ad5ff58a7b9fd3" + ], + "layout": "IPY_MODEL_38df7262af124ae893d8cc8263d8afc9" + } + }, + "75c1cb8a5cb14aa1bd1426a646094631": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2c0ea2a0d2214a44a7d7d91d88bfb8e0", + "placeholder": "​", + "style": "IPY_MODEL_64d26f0a807444b6850a1c033f5323c2", + "value": "Generating test split: 100%" + } + }, + "4c145ba110294cf8a92f26fa6fe0de7f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_88c43dabc79f45e297096e7f2a241e2b", + "max": 10000, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3c3f7f99d44d4c7998fad31be0267167", + "value": 10000 + } + }, + "cfc142d207904cbfa7ad5ff58a7b9fd3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0156fafe07c74344847e7d2ef98df79e", + "placeholder": "​", + "style": "IPY_MODEL_4888ca39fc2c48c1a9ac89b2c9b717eb", + "value": " 10000/10000 [00:00<00:00, 154284.03 examples/s]" + } + }, + "38df7262af124ae893d8cc8263d8afc9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2c0ea2a0d2214a44a7d7d91d88bfb8e0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "64d26f0a807444b6850a1c033f5323c2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "88c43dabc79f45e297096e7f2a241e2b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3c3f7f99d44d4c7998fad31be0267167": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "0156fafe07c74344847e7d2ef98df79e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4888ca39fc2c48c1a9ac89b2c9b717eb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "0936aef0918a48d7af069acf75ae1728": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_921a9a0e6e334cc98578f2051d62ab68", + "IPY_MODEL_3f1af733e6794cdcb04f5f496775130b", + "IPY_MODEL_a9400f02a14d4410887dd5ce623d8098" + ], + "layout": "IPY_MODEL_abbafd4c454e473cb40729a6962de80f" + } + }, + "921a9a0e6e334cc98578f2051d62ab68": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_719c39267fb349f88bc010bc7bd2a6e5", + "placeholder": "​", + "style": "IPY_MODEL_df4b55aa4cef404f89337a974da48576", + "value": "Download complete: 100%" + } + }, + "3f1af733e6794cdcb04f5f496775130b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_17490f8197db4e9bb1ba9f12a3430cc4", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_32d8adf127bf42639cc077c83d4a5707", + "value": 1 + } + }, + "a9400f02a14d4410887dd5ce623d8098": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0096a993f5754a48a1f68cd299116546", + "placeholder": "​", + "style": "IPY_MODEL_b42b16b966ab42ce906dabd7c04dea17", + "value": " 88.5M/88.5M [00:11<00:00, 43.0MB/s]" + } + }, + "abbafd4c454e473cb40729a6962de80f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "719c39267fb349f88bc010bc7bd2a6e5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "df4b55aa4cef404f89337a974da48576": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "17490f8197db4e9bb1ba9f12a3430cc4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "20px" + } + }, + "32d8adf127bf42639cc077c83d4a5707": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "0096a993f5754a48a1f68cd299116546": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b42b16b966ab42ce906dabd7c04dea17": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b4a6046c98254d94ae5a17a7b884913e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_f2c579087838472aa1cdc786be6d4fa3", + "IPY_MODEL_5cd1fee124ae4e25a1777d6602ede2c7", + "IPY_MODEL_25e14b4c5f224b31ae42bff17b4c7231" + ], + "layout": "IPY_MODEL_073dc6532acb4decaca8865423ec7c52" + } + }, + "f2c579087838472aa1cdc786be6d4fa3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6e8faea248994e4a937fb787162444ab", + "placeholder": "​", + "style": "IPY_MODEL_b47d59803ea24037ac6acda5120454a6", + "value": "Fetching 2 files: 100%" + } + }, + "5cd1fee124ae4e25a1777d6602ede2c7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a12258a724be4a75981bc286acbb6e77", + "max": 2, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_68b8853ae56740f683c56cd428de6313", + "value": 2 + } + }, + "25e14b4c5f224b31ae42bff17b4c7231": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a57fadb49a6a4ff599457c842d1c81a7", + "placeholder": "​", + "style": "IPY_MODEL_00e09f322dae4acb9ac6023ef3c7b72a", + "value": " 2/2 [00:02<00:00,  1.28s/it]" + } + }, + "073dc6532acb4decaca8865423ec7c52": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6e8faea248994e4a937fb787162444ab": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b47d59803ea24037ac6acda5120454a6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a12258a724be4a75981bc286acbb6e77": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "68b8853ae56740f683c56cd428de6313": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "a57fadb49a6a4ff599457c842d1c81a7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "00e09f322dae4acb9ac6023ef3c7b72a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file From 9e043f3d8f71ea2a091c2d17c052de0a78fde25e Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sun, 1 Feb 2026 12:06:51 +0100 Subject: [PATCH 56/75] Delete notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb --- ...yperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb | 3030 ----------------- 1 file changed, 3030 deletions(-) delete mode 100644 notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb diff --git a/notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb b/notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb deleted file mode 100644 index 3fa96fe..0000000 --- a/notebooks/HyperView_CLIP_HyCoCLIP_UMAP_CIFAR100.ipynb +++ /dev/null @@ -1,3030 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "47ee06e6", - "metadata": { - "id": "47ee06e6" - }, - "source": [ - "# HyperView: CLIP vs HyCoCLIP with 2D UMAP Projection on CIFAR-100\n", - "\n", - "This notebook compares two embedding spaces on the same image set.\n", - "\n", - "- [**CLIP**](https://github.com/openai/CLIP) maps images and text into one shared vector space.\n", - " \n", - "- [**HyCoCLIP**](https://github.com/PalAvik/hycoclip) maps images into a space designed for hierarchy and tree like structure.\n", - " \n", - "- We then compute a **2D projection** of each embedding space with [UMAP](https://umap-learn.readthedocs.io/en/latest/) so we can inspect clusters and label structure.\n", - " \n", - "\n", - "HyperView allows us to compare the embedding spaces of these different geometries.\n", - "\n", - "In this demo, we use the [CIFAR-100](https://huggingface.co/datasets/uoft-cs/cifar100) dataset of tiny images, available through HuggingFace." - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Install\n", - "\n", - "HyperView is a library for dataset curation and model analysis. It provides tools for interactive visualization of the embedding space." - ], - "metadata": { - "id": "hyaagNXkyUBN" - }, - "id": "hyaagNXkyUBN" - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "945a1017", - "metadata": { - "id": "945a1017" - }, - "outputs": [], - "source": [ - "%%capture\n", - "# If you run this in Google Colab, install HyperView with this command.\n", - "!uv pip install hyperview" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Import HyperView" - ], - "metadata": { - "id": "hYtO76VBy7C9" - }, - "id": "hYtO76VBy7C9" - }, - { - "cell_type": "markdown", - "source": [ - "\n", - "We import HyperView and use it as the main interface for:\n", - "\n", - "- reading data\n", - " \n", - "- computing embeddings with pretrained models\n", - " \n", - "- computing a 2D projection for visualization\n", - " \n", - "- launching the interactive viewer\n", - " " - ], - "metadata": { - "id": "v-TvwC2Qyw42" - }, - "id": "v-TvwC2Qyw42" - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "58b82256", - "metadata": { - "id": "58b82256" - }, - "outputs": [], - "source": [ - "import hyperview as hv" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Configuration" - ], - "metadata": { - "id": "nH4CjViEy-U4" - }, - "id": "nH4CjViEy-U4" - }, - { - "cell_type": "markdown", - "source": [ - "We specify the dataset and model settings in a single dictionary.\n", - "\n", - "### Data source\n", - "\n", - "- We load **CIFAR-100** from Hugging Face.\n", - " \n", - "- We use the **test** split.\n", - " \n", - "- `img` is the image field.\n", - " \n", - "- We use `coarse_label` for labels." - ], - "metadata": { - "id": "36tl8PxjzBT6" - }, - "id": "36tl8PxjzBT6" - }, - { - "cell_type": "markdown", - "source": [ - "Why coarse labels:\n", - "\n", - "- HyperView disables distinct label coloring when there are more than 20 labels.\n", - " \n", - "- CIFAR-100 has 100 fine labels, but 20 coarse labels.\n", - " \n", - "- Using coarse labels keeps label coloring useful in the viewer.\n", - " " - ], - "metadata": { - "id": "SIR8CsvfzW3I" - }, - "id": "SIR8CsvfzW3I" - }, - { - "cell_type": "markdown", - "source": [ - "### Sampling\n", - "\n", - "- `NUM_SAMPLES = 200` keeps embedding and layout computation fast enough for a demo.\n", - " \n", - "- Increase this if you want denser clusters, but expect more compute time.\n", - " " - ], - "metadata": { - "id": "tXpwwCXozezd" - }, - "id": "tXpwwCXozezd" - }, - { - "cell_type": "markdown", - "source": [ - "### Models\n", - "\n", - "- `openai/clip-vit-base-patch32` is a common CLIP baseline.\n", - " \n", - "- `hycoclip-vit-s` is a HyCoCLIP model that targets hierarchical structure." - ], - "metadata": { - "id": "NCtE2BN0zk3G" - }, - "id": "NCtE2BN0zk3G" - }, - { - "cell_type": "code", - "source": [ - "DATASET_NAME = \"cifar100_coarse_clip_hyper_models\"\n", - "HF_DATASET = \"uoft-cs/cifar100\"\n", - "HF_SPLIT = \"test\"\n", - "HF_IMAGE_KEY = \"img\"\n", - "# NOTE: HyperView disables distinct label coloring when there are >20 labels.\n", - "# CIFAR-100 has 100 fine labels, but only 20 coarse labels.\n", - "HF_LABEL_KEY = \"coarse_label\"\n", - "NUM_SAMPLES = 200\n", - "CLIP_MODEL_ID = \"openai/clip-vit-base-patch32\"\n", - "HYPER_MODELS_MODEL_ID = \"hycoclip-vit-s\"" - ], - "metadata": { - "id": "Wto-RfOFzCdJ" - }, - "id": "Wto-RfOFzCdJ", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Load CIFAR-100 into a HyperView dataset\n", - "\n", - "We create a HyperView `Dataset` object and then import samples from Hugging Face.\n", - "\n", - "Key parameters:\n", - "\n", - "- `persist=False` keeps this dataset in memory for this run.\n", - " \n", - "- `max_samples=NUM_SAMPLES` subsamples the split.\n", - " \n", - "\n", - "At the end, `len(dataset)` is the number of loaded examples." - ], - "metadata": { - "id": "nEdV-nZTzs3G" - }, - "id": "nEdV-nZTzs3G" - }, - { - "cell_type": "code", - "source": [ - "print(\"Loading CIFAR-100 from Hugging Face...\")\n", - "dataset = hv.Dataset(DATASET_NAME, persist=False)\n", - "dataset.add_from_huggingface(\n", - " HF_DATASET,\n", - " split=HF_SPLIT,\n", - " image_key=HF_IMAGE_KEY,\n", - " label_key=HF_LABEL_KEY,\n", - " max_samples=NUM_SAMPLES,\n", - ")\n", - "print(f\"Loaded {len(dataset)} samples\")\n", - "\n" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 506, - "referenced_widgets": [ - "162a6522d4a246b78865ab61ca713730", - "e40b36bfd1f64d129f17ee0bb4aef334", - "fc5fe01c2fc64bbb8f9b7adba05cf789", - "187ce225eb4041299d9233cee10f198f", - "c863c8acaef84e488a5016b6869888fe", - "f6137d250fa044d393e65d3443a63f23", - "698107a8b57d4746bc299795c75a5234", - "b4b55da4f86a4c229e5d2b2129353c0a", - "ef34f8327ba943629f00788360462e2a", - "89a229a5967d4b80ac9c031e980300a9", - "5cdbe6ac7f514818be2ae019cb430d94", - "b18ef99b82b244099c5c2843f1109136", - "534bbfee2fbb4adfa5e986e57a7ae613", - "842ae4c3bb17440f837bf284babdc261", - "4a4d809d0c8440a38cc9d3a978a30316", - "5ba55ab80c3d44779c0466b085d567e5", - "2f2d2700b29f4541b090e193e367559d", - "45375a63674841588e0b9169e7ba7b17", - "d5fe34a8c44b44768b703d8ccf0a3549", - "e497698fa57c499b8b4d2c6864136c0c", - "422692f8f08842328e6ff4d34698bc34", - "c3e8e8bba2f54a95ab0893ea04125edb", - "b748f1d618be4cca90200b051d0a7f69", - "00679cf77043425293f9fb3c554b5608", - "6817055ed9794a2d8cd3b8c921a917ea", - "80b7937194644630ae5f71bed76ec0ee", - "60aed7458089444f8325bafcde96d813", - "4bc18efc1b564f518c17d124af5b6995", - "1b32afe6b2334dd2ac4ff8160f88aa43", - "e97554397b7f4011b163eee7d979c2ba", - "96498aacc1c1480f8635f670a160c1e0", - "2748e8a5c99e410695169ad6d1c4a010", - "bd827ff163284cfcbb1813b26df5f695", - "5d3e5a992e534310bfacce79ed5391c9", - "50cc2ef24f0c4a9e81f56f6e91fab554", - "4865b99bd6894a0aba10c1e10c1937bb", - "4584a17302694197a04cfaf107658fbb", - "96c3a505798c4024837725c34a9f2309", - "c5a70942735b4bba9f2241d1e87d0195", - "45386697f14341c48b1742ff4ebdb5d3", - "1f349d114181470c92088a7335ab9c20", - "892c59943df44b4da5385d6594b01e8e", - "136265786c10498982c01adc28b5ac65", - "624f0c5c1d3b4199a487cf13b18d5a1e", - "83e5b4f9f2214d3d8fdfb5ffd95d7629", - "75c1cb8a5cb14aa1bd1426a646094631", - "4c145ba110294cf8a92f26fa6fe0de7f", - "cfc142d207904cbfa7ad5ff58a7b9fd3", - "38df7262af124ae893d8cc8263d8afc9", - "2c0ea2a0d2214a44a7d7d91d88bfb8e0", - "64d26f0a807444b6850a1c033f5323c2", - "88c43dabc79f45e297096e7f2a241e2b", - "3c3f7f99d44d4c7998fad31be0267167", - "0156fafe07c74344847e7d2ef98df79e", - "4888ca39fc2c48c1a9ac89b2c9b717eb", - "0936aef0918a48d7af069acf75ae1728", - "921a9a0e6e334cc98578f2051d62ab68", - "3f1af733e6794cdcb04f5f496775130b", - "a9400f02a14d4410887dd5ce623d8098", - "abbafd4c454e473cb40729a6962de80f", - "719c39267fb349f88bc010bc7bd2a6e5", - "df4b55aa4cef404f89337a974da48576", - "17490f8197db4e9bb1ba9f12a3430cc4", - "32d8adf127bf42639cc077c83d4a5707", - "0096a993f5754a48a1f68cd299116546", - "b42b16b966ab42ce906dabd7c04dea17", - "b4a6046c98254d94ae5a17a7b884913e", - "f2c579087838472aa1cdc786be6d4fa3", - "5cd1fee124ae4e25a1777d6602ede2c7", - "25e14b4c5f224b31ae42bff17b4c7231", - "073dc6532acb4decaca8865423ec7c52", - "6e8faea248994e4a937fb787162444ab", - "b47d59803ea24037ac6acda5120454a6", - "a12258a724be4a75981bc286acbb6e77", - "68b8853ae56740f683c56cd428de6313", - "a57fadb49a6a4ff599457c842d1c81a7", - "00e09f322dae4acb9ac6023ef3c7b72a" - ] - }, - "id": "Vb0PAH7gvsP7", - "outputId": "7520b34f-6c86-4125-e0d8-9dc69736d594" - }, - "id": "Vb0PAH7gvsP7", - "execution_count": 3, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Loading CIFAR-100 from Hugging Face...\n" - ] - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "README.md: 0.00B [00:00, ?B/s]" - ], - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "162a6522d4a246b78865ab61ca713730" - } - }, - "metadata": {} - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "cifar100/train-00000-of-00001.parquet: 0%| | 0.00/119M [00:00" - ], - "text/html": [ - "

HyperView is running in Colab. Open HyperView in a new tab.

" - ] - }, - "metadata": {} - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "

https://6262-gpu-t4-hm-kg95f2888y5u-c.europe-west4-1.prod.colab.dev/

" - ] - }, - "metadata": {} - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ] - }, - "metadata": {}, - "execution_count": 3 - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Compute CLIP embeddings\n", - "\n", - "### What CLIP embeddings represent\n", - "\n", - "CLIP trains an image encoder and a text encoder so that matching image text pairs have nearby vectors. When we compute image embeddings here, each image becomes a single vector in a shared space that also supports text vectors.\n", - "\n", - "### What we do in code\n", - "\n", - "- `compute_embeddings(CLIP_MODEL_ID)` runs the CLIP image encoder and stores one vector per image.\n", - " \n", - "- The returned `space_key` is a handle to that embedding space inside HyperView.\n", - " \n", - "\n", - "### Why we compute a 2D visualization\n", - "\n", - "High dimensional vectors are hard to inspect. We compute a 2D layout so we can see neighborhood structure.\n", - "\n", - "- `compute_visualization(..., geometry=\"euclidean\")` treats the embedding space as Euclidean.\n", - " \n", - "- This matches how CLIP vectors are often used with cosine similarity or dot product in a flat vector space.\n", - " \n", - "\n", - "Note on “UMAP” \n", - "This notebook focuses on a 2D projection step. HyperView computes a 2D layout for the viewer. The title calls this UMAP. In practice, you should treat this as a nonlinear projection that preserves local neighborhoods better than PCA." - ], - "metadata": { - "id": "xvAMFY_Dz71Z" - }, - "id": "xvAMFY_Dz71Z" - }, - { - "cell_type": "markdown", - "source": [ - "## Compute HyCoCLIP embeddings\n", - "\n", - "### Why a different geometry\n", - "\n", - "Some datasets have hierarchical label structure. A tree structure is hard to represent in Euclidean space without distortion.\n", - "\n", - "Hyperbolic spaces can represent tree growth patterns with less distortion than Euclidean spaces. A common model is the **Poincaré ball**, which is a way to work with hyperbolic geometry in a bounded region.\n", - "\n", - "### What we do in code\n", - "\n", - "- `compute_embeddings(model=HYPER_MODELS_MODEL_ID)` computes embeddings from the HyCoCLIP model.\n", - " \n", - "- `compute_visualization(..., geometry=\"poincare\")` tells HyperView to treat distances and neighborhoods using Poincaré geometry.\n", - " \n", - "\n", - "How to read the plot\n", - "\n", - "- In Poincaré style layouts, points near the center and points near the boundary can have different distance behavior than Euclidean layouts.\n", - " \n", - "- Focus on neighborhood membership and cluster separation rather than raw coordinate scale." - ], - "metadata": { - "id": "zEkSKKPN0GZz" - }, - "id": "zEkSKKPN0GZz" - }, - { - "cell_type": "code", - "source": [ - "clip_space = dataset.compute_embeddings(CLIP_MODEL_ID)\n", - "dataset.compute_visualization(space_key=clip_space, geometry=\"euclidean\")\n", - "hyper_space = dataset.compute_embeddings(model=HYPER_MODELS_MODEL_ID)\n", - "dataset.compute_visualization(space_key=hyper_space, geometry=\"poincare\")" - ], - "metadata": { - "id": "rXl9yJKyx3hQ" - }, - "id": "rXl9yJKyx3hQ", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Launch the interactive viewer\n", - "\n", - "`hv.launch(dataset, open_browser=True)` starts a local server and opens the viewer.\n", - "\n", - "In the UI, you should be able to:\n", - "\n", - "- switch between embedding spaces (CLIP vs HyCoCLIP)\n", - " \n", - "- inspect image thumbnails for selected points\n", - " \n", - "- compare how coarse labels cluster under each geometry\n", - " \n" - ], - "metadata": { - "id": "rGEUqA0W0O4g" - }, - "id": "rGEUqA0W0O4g" - }, - { - "cell_type": "code", - "source": [ - "hv.launch(dataset, open_browser=True)" - ], - "metadata": { - "id": "o3TdCwD2wIf2" - }, - "id": "o3TdCwD2wIf2", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Suggested checks\n", - "\n", - "- Are nearest neighbors under Euclidean CLIP similar to nearest neighbors under Poincaré HyCoCLIP?\n", - "\n", - "\n", - " " - ], - "metadata": { - "id": "FRjieuy10Yed" - }, - "id": "FRjieuy10Yed" - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.8" - }, - "colab": { - "provenance": [], - "machine_shape": "hm", - "gpuType": "T4" - }, - "accelerator": "GPU", - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "162a6522d4a246b78865ab61ca713730": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_e40b36bfd1f64d129f17ee0bb4aef334", - "IPY_MODEL_fc5fe01c2fc64bbb8f9b7adba05cf789", - "IPY_MODEL_187ce225eb4041299d9233cee10f198f" - ], - "layout": "IPY_MODEL_c863c8acaef84e488a5016b6869888fe" - } - }, - "e40b36bfd1f64d129f17ee0bb4aef334": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_f6137d250fa044d393e65d3443a63f23", - "placeholder": "​", - "style": "IPY_MODEL_698107a8b57d4746bc299795c75a5234", - "value": "README.md: " - } - }, - "fc5fe01c2fc64bbb8f9b7adba05cf789": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_b4b55da4f86a4c229e5d2b2129353c0a", - "max": 1, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_ef34f8327ba943629f00788360462e2a", - "value": 1 - } - }, - "187ce225eb4041299d9233cee10f198f": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_89a229a5967d4b80ac9c031e980300a9", - "placeholder": "​", - "style": "IPY_MODEL_5cdbe6ac7f514818be2ae019cb430d94", - "value": " 9.98k/? [00:00<00:00, 942kB/s]" - } - }, - "c863c8acaef84e488a5016b6869888fe": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "f6137d250fa044d393e65d3443a63f23": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "698107a8b57d4746bc299795c75a5234": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b4b55da4f86a4c229e5d2b2129353c0a": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": "20px" - } - }, - "ef34f8327ba943629f00788360462e2a": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "89a229a5967d4b80ac9c031e980300a9": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "5cdbe6ac7f514818be2ae019cb430d94": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b18ef99b82b244099c5c2843f1109136": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_534bbfee2fbb4adfa5e986e57a7ae613", - "IPY_MODEL_842ae4c3bb17440f837bf284babdc261", - "IPY_MODEL_4a4d809d0c8440a38cc9d3a978a30316" - ], - "layout": "IPY_MODEL_5ba55ab80c3d44779c0466b085d567e5" - } - }, - "534bbfee2fbb4adfa5e986e57a7ae613": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2f2d2700b29f4541b090e193e367559d", - "placeholder": "​", - "style": "IPY_MODEL_45375a63674841588e0b9169e7ba7b17", - "value": "cifar100/train-00000-of-00001.parquet: 100%" - } - }, - "842ae4c3bb17440f837bf284babdc261": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_d5fe34a8c44b44768b703d8ccf0a3549", - "max": 118518617, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_e497698fa57c499b8b4d2c6864136c0c", - "value": 118518617 - } - }, - "4a4d809d0c8440a38cc9d3a978a30316": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_422692f8f08842328e6ff4d34698bc34", - "placeholder": "​", - "style": "IPY_MODEL_c3e8e8bba2f54a95ab0893ea04125edb", - "value": " 119M/119M [00:03<00:00, 28.6MB/s]" - } - }, - "5ba55ab80c3d44779c0466b085d567e5": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "2f2d2700b29f4541b090e193e367559d": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "45375a63674841588e0b9169e7ba7b17": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "d5fe34a8c44b44768b703d8ccf0a3549": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "e497698fa57c499b8b4d2c6864136c0c": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "422692f8f08842328e6ff4d34698bc34": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c3e8e8bba2f54a95ab0893ea04125edb": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b748f1d618be4cca90200b051d0a7f69": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_00679cf77043425293f9fb3c554b5608", - "IPY_MODEL_6817055ed9794a2d8cd3b8c921a917ea", - "IPY_MODEL_80b7937194644630ae5f71bed76ec0ee" - ], - "layout": "IPY_MODEL_60aed7458089444f8325bafcde96d813" - } - }, - "00679cf77043425293f9fb3c554b5608": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_4bc18efc1b564f518c17d124af5b6995", - "placeholder": "​", - "style": "IPY_MODEL_1b32afe6b2334dd2ac4ff8160f88aa43", - "value": "cifar100/test-00000-of-00001.parquet: 100%" - } - }, - "6817055ed9794a2d8cd3b8c921a917ea": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_e97554397b7f4011b163eee7d979c2ba", - "max": 23772751, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_96498aacc1c1480f8635f670a160c1e0", - "value": 23772751 - } - }, - "80b7937194644630ae5f71bed76ec0ee": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2748e8a5c99e410695169ad6d1c4a010", - "placeholder": "​", - "style": "IPY_MODEL_bd827ff163284cfcbb1813b26df5f695", - "value": " 23.8M/23.8M [00:03<00:00, 14.7MB/s]" - } - }, - "60aed7458089444f8325bafcde96d813": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "4bc18efc1b564f518c17d124af5b6995": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "1b32afe6b2334dd2ac4ff8160f88aa43": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "e97554397b7f4011b163eee7d979c2ba": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "96498aacc1c1480f8635f670a160c1e0": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "2748e8a5c99e410695169ad6d1c4a010": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "bd827ff163284cfcbb1813b26df5f695": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "5d3e5a992e534310bfacce79ed5391c9": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_50cc2ef24f0c4a9e81f56f6e91fab554", - "IPY_MODEL_4865b99bd6894a0aba10c1e10c1937bb", - "IPY_MODEL_4584a17302694197a04cfaf107658fbb" - ], - "layout": "IPY_MODEL_96c3a505798c4024837725c34a9f2309" - } - }, - "50cc2ef24f0c4a9e81f56f6e91fab554": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_c5a70942735b4bba9f2241d1e87d0195", - "placeholder": "​", - "style": "IPY_MODEL_45386697f14341c48b1742ff4ebdb5d3", - "value": "Generating train split: 100%" - } - }, - "4865b99bd6894a0aba10c1e10c1937bb": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_1f349d114181470c92088a7335ab9c20", - "max": 50000, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_892c59943df44b4da5385d6594b01e8e", - "value": 50000 - } - }, - "4584a17302694197a04cfaf107658fbb": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_136265786c10498982c01adc28b5ac65", - "placeholder": "​", - "style": "IPY_MODEL_624f0c5c1d3b4199a487cf13b18d5a1e", - "value": " 50000/50000 [00:00<00:00, 168425.02 examples/s]" - } - }, - "96c3a505798c4024837725c34a9f2309": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c5a70942735b4bba9f2241d1e87d0195": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "45386697f14341c48b1742ff4ebdb5d3": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "1f349d114181470c92088a7335ab9c20": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "892c59943df44b4da5385d6594b01e8e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "136265786c10498982c01adc28b5ac65": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "624f0c5c1d3b4199a487cf13b18d5a1e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "83e5b4f9f2214d3d8fdfb5ffd95d7629": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_75c1cb8a5cb14aa1bd1426a646094631", - "IPY_MODEL_4c145ba110294cf8a92f26fa6fe0de7f", - "IPY_MODEL_cfc142d207904cbfa7ad5ff58a7b9fd3" - ], - "layout": "IPY_MODEL_38df7262af124ae893d8cc8263d8afc9" - } - }, - "75c1cb8a5cb14aa1bd1426a646094631": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2c0ea2a0d2214a44a7d7d91d88bfb8e0", - "placeholder": "​", - "style": "IPY_MODEL_64d26f0a807444b6850a1c033f5323c2", - "value": "Generating test split: 100%" - } - }, - "4c145ba110294cf8a92f26fa6fe0de7f": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_88c43dabc79f45e297096e7f2a241e2b", - "max": 10000, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_3c3f7f99d44d4c7998fad31be0267167", - "value": 10000 - } - }, - "cfc142d207904cbfa7ad5ff58a7b9fd3": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_0156fafe07c74344847e7d2ef98df79e", - "placeholder": "​", - "style": "IPY_MODEL_4888ca39fc2c48c1a9ac89b2c9b717eb", - "value": " 10000/10000 [00:00<00:00, 154284.03 examples/s]" - } - }, - "38df7262af124ae893d8cc8263d8afc9": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "2c0ea2a0d2214a44a7d7d91d88bfb8e0": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "64d26f0a807444b6850a1c033f5323c2": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "88c43dabc79f45e297096e7f2a241e2b": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "3c3f7f99d44d4c7998fad31be0267167": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "0156fafe07c74344847e7d2ef98df79e": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "4888ca39fc2c48c1a9ac89b2c9b717eb": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "0936aef0918a48d7af069acf75ae1728": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_921a9a0e6e334cc98578f2051d62ab68", - "IPY_MODEL_3f1af733e6794cdcb04f5f496775130b", - "IPY_MODEL_a9400f02a14d4410887dd5ce623d8098" - ], - "layout": "IPY_MODEL_abbafd4c454e473cb40729a6962de80f" - } - }, - "921a9a0e6e334cc98578f2051d62ab68": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_719c39267fb349f88bc010bc7bd2a6e5", - "placeholder": "​", - "style": "IPY_MODEL_df4b55aa4cef404f89337a974da48576", - "value": "Download complete: 100%" - } - }, - "3f1af733e6794cdcb04f5f496775130b": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_17490f8197db4e9bb1ba9f12a3430cc4", - "max": 1, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_32d8adf127bf42639cc077c83d4a5707", - "value": 1 - } - }, - "a9400f02a14d4410887dd5ce623d8098": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_0096a993f5754a48a1f68cd299116546", - "placeholder": "​", - "style": "IPY_MODEL_b42b16b966ab42ce906dabd7c04dea17", - "value": " 88.5M/88.5M [00:11<00:00, 43.0MB/s]" - } - }, - "abbafd4c454e473cb40729a6962de80f": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "719c39267fb349f88bc010bc7bd2a6e5": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "df4b55aa4cef404f89337a974da48576": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "17490f8197db4e9bb1ba9f12a3430cc4": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": "20px" - } - }, - "32d8adf127bf42639cc077c83d4a5707": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "0096a993f5754a48a1f68cd299116546": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "b42b16b966ab42ce906dabd7c04dea17": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b4a6046c98254d94ae5a17a7b884913e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_f2c579087838472aa1cdc786be6d4fa3", - "IPY_MODEL_5cd1fee124ae4e25a1777d6602ede2c7", - "IPY_MODEL_25e14b4c5f224b31ae42bff17b4c7231" - ], - "layout": "IPY_MODEL_073dc6532acb4decaca8865423ec7c52" - } - }, - "f2c579087838472aa1cdc786be6d4fa3": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_6e8faea248994e4a937fb787162444ab", - "placeholder": "​", - "style": "IPY_MODEL_b47d59803ea24037ac6acda5120454a6", - "value": "Fetching 2 files: 100%" - } - }, - "5cd1fee124ae4e25a1777d6602ede2c7": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_a12258a724be4a75981bc286acbb6e77", - "max": 2, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_68b8853ae56740f683c56cd428de6313", - "value": 2 - } - }, - "25e14b4c5f224b31ae42bff17b4c7231": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_a57fadb49a6a4ff599457c842d1c81a7", - "placeholder": "​", - "style": "IPY_MODEL_00e09f322dae4acb9ac6023ef3c7b72a", - "value": " 2/2 [00:02<00:00,  1.28s/it]" - } - }, - "073dc6532acb4decaca8865423ec7c52": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "6e8faea248994e4a937fb787162444ab": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "b47d59803ea24037ac6acda5120454a6": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "a12258a724be4a75981bc286acbb6e77": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "68b8853ae56740f683c56cd428de6313": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "a57fadb49a6a4ff599457c842d1c81a7": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "00e09f322dae4acb9ac6023ef3c7b72a": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - } - } - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file From bdac3557fe1afe619f53020981dc40849396e5f8 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sun, 1 Feb 2026 12:07:59 +0100 Subject: [PATCH 57/75] added quickstart cifar-100 --- notebooks/quickstart_cifar_100.ipynb | 3030 ++++++++++++++++++++++++++ 1 file changed, 3030 insertions(+) create mode 100644 notebooks/quickstart_cifar_100.ipynb diff --git a/notebooks/quickstart_cifar_100.ipynb b/notebooks/quickstart_cifar_100.ipynb new file mode 100644 index 0000000..3fa96fe --- /dev/null +++ b/notebooks/quickstart_cifar_100.ipynb @@ -0,0 +1,3030 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "47ee06e6", + "metadata": { + "id": "47ee06e6" + }, + "source": [ + "# HyperView: CLIP vs HyCoCLIP with 2D UMAP Projection on CIFAR-100\n", + "\n", + "This notebook compares two embedding spaces on the same image set.\n", + "\n", + "- [**CLIP**](https://github.com/openai/CLIP) maps images and text into one shared vector space.\n", + " \n", + "- [**HyCoCLIP**](https://github.com/PalAvik/hycoclip) maps images into a space designed for hierarchy and tree like structure.\n", + " \n", + "- We then compute a **2D projection** of each embedding space with [UMAP](https://umap-learn.readthedocs.io/en/latest/) so we can inspect clusters and label structure.\n", + " \n", + "\n", + "HyperView allows us to compare the embedding spaces of these different geometries.\n", + "\n", + "In this demo, we use the [CIFAR-100](https://huggingface.co/datasets/uoft-cs/cifar100) dataset of tiny images, available through HuggingFace." + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Install\n", + "\n", + "HyperView is a library for dataset curation and model analysis. It provides tools for interactive visualization of the embedding space." + ], + "metadata": { + "id": "hyaagNXkyUBN" + }, + "id": "hyaagNXkyUBN" + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "945a1017", + "metadata": { + "id": "945a1017" + }, + "outputs": [], + "source": [ + "%%capture\n", + "# If you run this in Google Colab, install HyperView with this command.\n", + "!uv pip install hyperview" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Import HyperView" + ], + "metadata": { + "id": "hYtO76VBy7C9" + }, + "id": "hYtO76VBy7C9" + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "We import HyperView and use it as the main interface for:\n", + "\n", + "- reading data\n", + " \n", + "- computing embeddings with pretrained models\n", + " \n", + "- computing a 2D projection for visualization\n", + " \n", + "- launching the interactive viewer\n", + " " + ], + "metadata": { + "id": "v-TvwC2Qyw42" + }, + "id": "v-TvwC2Qyw42" + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "58b82256", + "metadata": { + "id": "58b82256" + }, + "outputs": [], + "source": [ + "import hyperview as hv" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Configuration" + ], + "metadata": { + "id": "nH4CjViEy-U4" + }, + "id": "nH4CjViEy-U4" + }, + { + "cell_type": "markdown", + "source": [ + "We specify the dataset and model settings in a single dictionary.\n", + "\n", + "### Data source\n", + "\n", + "- We load **CIFAR-100** from Hugging Face.\n", + " \n", + "- We use the **test** split.\n", + " \n", + "- `img` is the image field.\n", + " \n", + "- We use `coarse_label` for labels." + ], + "metadata": { + "id": "36tl8PxjzBT6" + }, + "id": "36tl8PxjzBT6" + }, + { + "cell_type": "markdown", + "source": [ + "Why coarse labels:\n", + "\n", + "- HyperView disables distinct label coloring when there are more than 20 labels.\n", + " \n", + "- CIFAR-100 has 100 fine labels, but 20 coarse labels.\n", + " \n", + "- Using coarse labels keeps label coloring useful in the viewer.\n", + " " + ], + "metadata": { + "id": "SIR8CsvfzW3I" + }, + "id": "SIR8CsvfzW3I" + }, + { + "cell_type": "markdown", + "source": [ + "### Sampling\n", + "\n", + "- `NUM_SAMPLES = 200` keeps embedding and layout computation fast enough for a demo.\n", + " \n", + "- Increase this if you want denser clusters, but expect more compute time.\n", + " " + ], + "metadata": { + "id": "tXpwwCXozezd" + }, + "id": "tXpwwCXozezd" + }, + { + "cell_type": "markdown", + "source": [ + "### Models\n", + "\n", + "- `openai/clip-vit-base-patch32` is a common CLIP baseline.\n", + " \n", + "- `hycoclip-vit-s` is a HyCoCLIP model that targets hierarchical structure." + ], + "metadata": { + "id": "NCtE2BN0zk3G" + }, + "id": "NCtE2BN0zk3G" + }, + { + "cell_type": "code", + "source": [ + "DATASET_NAME = \"cifar100_coarse_clip_hyper_models\"\n", + "HF_DATASET = \"uoft-cs/cifar100\"\n", + "HF_SPLIT = \"test\"\n", + "HF_IMAGE_KEY = \"img\"\n", + "# NOTE: HyperView disables distinct label coloring when there are >20 labels.\n", + "# CIFAR-100 has 100 fine labels, but only 20 coarse labels.\n", + "HF_LABEL_KEY = \"coarse_label\"\n", + "NUM_SAMPLES = 200\n", + "CLIP_MODEL_ID = \"openai/clip-vit-base-patch32\"\n", + "HYPER_MODELS_MODEL_ID = \"hycoclip-vit-s\"" + ], + "metadata": { + "id": "Wto-RfOFzCdJ" + }, + "id": "Wto-RfOFzCdJ", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Load CIFAR-100 into a HyperView dataset\n", + "\n", + "We create a HyperView `Dataset` object and then import samples from Hugging Face.\n", + "\n", + "Key parameters:\n", + "\n", + "- `persist=False` keeps this dataset in memory for this run.\n", + " \n", + "- `max_samples=NUM_SAMPLES` subsamples the split.\n", + " \n", + "\n", + "At the end, `len(dataset)` is the number of loaded examples." + ], + "metadata": { + "id": "nEdV-nZTzs3G" + }, + "id": "nEdV-nZTzs3G" + }, + { + "cell_type": "code", + "source": [ + "print(\"Loading CIFAR-100 from Hugging Face...\")\n", + "dataset = hv.Dataset(DATASET_NAME, persist=False)\n", + "dataset.add_from_huggingface(\n", + " HF_DATASET,\n", + " split=HF_SPLIT,\n", + " image_key=HF_IMAGE_KEY,\n", + " label_key=HF_LABEL_KEY,\n", + " max_samples=NUM_SAMPLES,\n", + ")\n", + "print(f\"Loaded {len(dataset)} samples\")\n", + "\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 506, + "referenced_widgets": [ + "162a6522d4a246b78865ab61ca713730", + "e40b36bfd1f64d129f17ee0bb4aef334", + "fc5fe01c2fc64bbb8f9b7adba05cf789", + "187ce225eb4041299d9233cee10f198f", + "c863c8acaef84e488a5016b6869888fe", + "f6137d250fa044d393e65d3443a63f23", + "698107a8b57d4746bc299795c75a5234", + "b4b55da4f86a4c229e5d2b2129353c0a", + "ef34f8327ba943629f00788360462e2a", + "89a229a5967d4b80ac9c031e980300a9", + "5cdbe6ac7f514818be2ae019cb430d94", + "b18ef99b82b244099c5c2843f1109136", + "534bbfee2fbb4adfa5e986e57a7ae613", + "842ae4c3bb17440f837bf284babdc261", + "4a4d809d0c8440a38cc9d3a978a30316", + "5ba55ab80c3d44779c0466b085d567e5", + "2f2d2700b29f4541b090e193e367559d", + "45375a63674841588e0b9169e7ba7b17", + "d5fe34a8c44b44768b703d8ccf0a3549", + "e497698fa57c499b8b4d2c6864136c0c", + "422692f8f08842328e6ff4d34698bc34", + "c3e8e8bba2f54a95ab0893ea04125edb", + "b748f1d618be4cca90200b051d0a7f69", + "00679cf77043425293f9fb3c554b5608", + "6817055ed9794a2d8cd3b8c921a917ea", + "80b7937194644630ae5f71bed76ec0ee", + "60aed7458089444f8325bafcde96d813", + "4bc18efc1b564f518c17d124af5b6995", + "1b32afe6b2334dd2ac4ff8160f88aa43", + "e97554397b7f4011b163eee7d979c2ba", + "96498aacc1c1480f8635f670a160c1e0", + "2748e8a5c99e410695169ad6d1c4a010", + "bd827ff163284cfcbb1813b26df5f695", + "5d3e5a992e534310bfacce79ed5391c9", + "50cc2ef24f0c4a9e81f56f6e91fab554", + "4865b99bd6894a0aba10c1e10c1937bb", + "4584a17302694197a04cfaf107658fbb", + "96c3a505798c4024837725c34a9f2309", + "c5a70942735b4bba9f2241d1e87d0195", + "45386697f14341c48b1742ff4ebdb5d3", + "1f349d114181470c92088a7335ab9c20", + "892c59943df44b4da5385d6594b01e8e", + "136265786c10498982c01adc28b5ac65", + "624f0c5c1d3b4199a487cf13b18d5a1e", + "83e5b4f9f2214d3d8fdfb5ffd95d7629", + "75c1cb8a5cb14aa1bd1426a646094631", + "4c145ba110294cf8a92f26fa6fe0de7f", + "cfc142d207904cbfa7ad5ff58a7b9fd3", + "38df7262af124ae893d8cc8263d8afc9", + "2c0ea2a0d2214a44a7d7d91d88bfb8e0", + "64d26f0a807444b6850a1c033f5323c2", + "88c43dabc79f45e297096e7f2a241e2b", + "3c3f7f99d44d4c7998fad31be0267167", + "0156fafe07c74344847e7d2ef98df79e", + "4888ca39fc2c48c1a9ac89b2c9b717eb", + "0936aef0918a48d7af069acf75ae1728", + "921a9a0e6e334cc98578f2051d62ab68", + "3f1af733e6794cdcb04f5f496775130b", + "a9400f02a14d4410887dd5ce623d8098", + "abbafd4c454e473cb40729a6962de80f", + "719c39267fb349f88bc010bc7bd2a6e5", + "df4b55aa4cef404f89337a974da48576", + "17490f8197db4e9bb1ba9f12a3430cc4", + "32d8adf127bf42639cc077c83d4a5707", + "0096a993f5754a48a1f68cd299116546", + "b42b16b966ab42ce906dabd7c04dea17", + "b4a6046c98254d94ae5a17a7b884913e", + "f2c579087838472aa1cdc786be6d4fa3", + "5cd1fee124ae4e25a1777d6602ede2c7", + "25e14b4c5f224b31ae42bff17b4c7231", + "073dc6532acb4decaca8865423ec7c52", + "6e8faea248994e4a937fb787162444ab", + "b47d59803ea24037ac6acda5120454a6", + "a12258a724be4a75981bc286acbb6e77", + "68b8853ae56740f683c56cd428de6313", + "a57fadb49a6a4ff599457c842d1c81a7", + "00e09f322dae4acb9ac6023ef3c7b72a" + ] + }, + "id": "Vb0PAH7gvsP7", + "outputId": "7520b34f-6c86-4125-e0d8-9dc69736d594" + }, + "id": "Vb0PAH7gvsP7", + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Loading CIFAR-100 from Hugging Face...\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "README.md: 0.00B [00:00, ?B/s]" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "162a6522d4a246b78865ab61ca713730" + } + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "cifar100/train-00000-of-00001.parquet: 0%| | 0.00/119M [00:00" + ], + "text/html": [ + "

HyperView is running in Colab. Open HyperView in a new tab.

" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "

https://6262-gpu-t4-hm-kg95f2888y5u-c.europe-west4-1.prod.colab.dev/

" + ] + }, + "metadata": {} + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 3 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Compute CLIP embeddings\n", + "\n", + "### What CLIP embeddings represent\n", + "\n", + "CLIP trains an image encoder and a text encoder so that matching image text pairs have nearby vectors. When we compute image embeddings here, each image becomes a single vector in a shared space that also supports text vectors.\n", + "\n", + "### What we do in code\n", + "\n", + "- `compute_embeddings(CLIP_MODEL_ID)` runs the CLIP image encoder and stores one vector per image.\n", + " \n", + "- The returned `space_key` is a handle to that embedding space inside HyperView.\n", + " \n", + "\n", + "### Why we compute a 2D visualization\n", + "\n", + "High dimensional vectors are hard to inspect. We compute a 2D layout so we can see neighborhood structure.\n", + "\n", + "- `compute_visualization(..., geometry=\"euclidean\")` treats the embedding space as Euclidean.\n", + " \n", + "- This matches how CLIP vectors are often used with cosine similarity or dot product in a flat vector space.\n", + " \n", + "\n", + "Note on “UMAP” \n", + "This notebook focuses on a 2D projection step. HyperView computes a 2D layout for the viewer. The title calls this UMAP. In practice, you should treat this as a nonlinear projection that preserves local neighborhoods better than PCA." + ], + "metadata": { + "id": "xvAMFY_Dz71Z" + }, + "id": "xvAMFY_Dz71Z" + }, + { + "cell_type": "markdown", + "source": [ + "## Compute HyCoCLIP embeddings\n", + "\n", + "### Why a different geometry\n", + "\n", + "Some datasets have hierarchical label structure. A tree structure is hard to represent in Euclidean space without distortion.\n", + "\n", + "Hyperbolic spaces can represent tree growth patterns with less distortion than Euclidean spaces. A common model is the **Poincaré ball**, which is a way to work with hyperbolic geometry in a bounded region.\n", + "\n", + "### What we do in code\n", + "\n", + "- `compute_embeddings(model=HYPER_MODELS_MODEL_ID)` computes embeddings from the HyCoCLIP model.\n", + " \n", + "- `compute_visualization(..., geometry=\"poincare\")` tells HyperView to treat distances and neighborhoods using Poincaré geometry.\n", + " \n", + "\n", + "How to read the plot\n", + "\n", + "- In Poincaré style layouts, points near the center and points near the boundary can have different distance behavior than Euclidean layouts.\n", + " \n", + "- Focus on neighborhood membership and cluster separation rather than raw coordinate scale." + ], + "metadata": { + "id": "zEkSKKPN0GZz" + }, + "id": "zEkSKKPN0GZz" + }, + { + "cell_type": "code", + "source": [ + "clip_space = dataset.compute_embeddings(CLIP_MODEL_ID)\n", + "dataset.compute_visualization(space_key=clip_space, geometry=\"euclidean\")\n", + "hyper_space = dataset.compute_embeddings(model=HYPER_MODELS_MODEL_ID)\n", + "dataset.compute_visualization(space_key=hyper_space, geometry=\"poincare\")" + ], + "metadata": { + "id": "rXl9yJKyx3hQ" + }, + "id": "rXl9yJKyx3hQ", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Launch the interactive viewer\n", + "\n", + "`hv.launch(dataset, open_browser=True)` starts a local server and opens the viewer.\n", + "\n", + "In the UI, you should be able to:\n", + "\n", + "- switch between embedding spaces (CLIP vs HyCoCLIP)\n", + " \n", + "- inspect image thumbnails for selected points\n", + " \n", + "- compare how coarse labels cluster under each geometry\n", + " \n" + ], + "metadata": { + "id": "rGEUqA0W0O4g" + }, + "id": "rGEUqA0W0O4g" + }, + { + "cell_type": "code", + "source": [ + "hv.launch(dataset, open_browser=True)" + ], + "metadata": { + "id": "o3TdCwD2wIf2" + }, + "id": "o3TdCwD2wIf2", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Suggested checks\n", + "\n", + "- Are nearest neighbors under Euclidean CLIP similar to nearest neighbors under Poincaré HyCoCLIP?\n", + "\n", + "\n", + " " + ], + "metadata": { + "id": "FRjieuy10Yed" + }, + "id": "FRjieuy10Yed" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.8" + }, + "colab": { + "provenance": [], + "machine_shape": "hm", + "gpuType": "T4" + }, + "accelerator": "GPU", + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "162a6522d4a246b78865ab61ca713730": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_e40b36bfd1f64d129f17ee0bb4aef334", + "IPY_MODEL_fc5fe01c2fc64bbb8f9b7adba05cf789", + "IPY_MODEL_187ce225eb4041299d9233cee10f198f" + ], + "layout": "IPY_MODEL_c863c8acaef84e488a5016b6869888fe" + } + }, + "e40b36bfd1f64d129f17ee0bb4aef334": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f6137d250fa044d393e65d3443a63f23", + "placeholder": "​", + "style": "IPY_MODEL_698107a8b57d4746bc299795c75a5234", + "value": "README.md: " + } + }, + "fc5fe01c2fc64bbb8f9b7adba05cf789": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_b4b55da4f86a4c229e5d2b2129353c0a", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ef34f8327ba943629f00788360462e2a", + "value": 1 + } + }, + "187ce225eb4041299d9233cee10f198f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_89a229a5967d4b80ac9c031e980300a9", + "placeholder": "​", + "style": "IPY_MODEL_5cdbe6ac7f514818be2ae019cb430d94", + "value": " 9.98k/? [00:00<00:00, 942kB/s]" + } + }, + "c863c8acaef84e488a5016b6869888fe": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f6137d250fa044d393e65d3443a63f23": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "698107a8b57d4746bc299795c75a5234": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b4b55da4f86a4c229e5d2b2129353c0a": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "20px" + } + }, + "ef34f8327ba943629f00788360462e2a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "89a229a5967d4b80ac9c031e980300a9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5cdbe6ac7f514818be2ae019cb430d94": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b18ef99b82b244099c5c2843f1109136": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_534bbfee2fbb4adfa5e986e57a7ae613", + "IPY_MODEL_842ae4c3bb17440f837bf284babdc261", + "IPY_MODEL_4a4d809d0c8440a38cc9d3a978a30316" + ], + "layout": "IPY_MODEL_5ba55ab80c3d44779c0466b085d567e5" + } + }, + "534bbfee2fbb4adfa5e986e57a7ae613": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2f2d2700b29f4541b090e193e367559d", + "placeholder": "​", + "style": "IPY_MODEL_45375a63674841588e0b9169e7ba7b17", + "value": "cifar100/train-00000-of-00001.parquet: 100%" + } + }, + "842ae4c3bb17440f837bf284babdc261": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d5fe34a8c44b44768b703d8ccf0a3549", + "max": 118518617, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_e497698fa57c499b8b4d2c6864136c0c", + "value": 118518617 + } + }, + "4a4d809d0c8440a38cc9d3a978a30316": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_422692f8f08842328e6ff4d34698bc34", + "placeholder": "​", + "style": "IPY_MODEL_c3e8e8bba2f54a95ab0893ea04125edb", + "value": " 119M/119M [00:03<00:00, 28.6MB/s]" + } + }, + "5ba55ab80c3d44779c0466b085d567e5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2f2d2700b29f4541b090e193e367559d": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "45375a63674841588e0b9169e7ba7b17": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "d5fe34a8c44b44768b703d8ccf0a3549": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "e497698fa57c499b8b4d2c6864136c0c": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "422692f8f08842328e6ff4d34698bc34": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c3e8e8bba2f54a95ab0893ea04125edb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b748f1d618be4cca90200b051d0a7f69": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_00679cf77043425293f9fb3c554b5608", + "IPY_MODEL_6817055ed9794a2d8cd3b8c921a917ea", + "IPY_MODEL_80b7937194644630ae5f71bed76ec0ee" + ], + "layout": "IPY_MODEL_60aed7458089444f8325bafcde96d813" + } + }, + "00679cf77043425293f9fb3c554b5608": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4bc18efc1b564f518c17d124af5b6995", + "placeholder": "​", + "style": "IPY_MODEL_1b32afe6b2334dd2ac4ff8160f88aa43", + "value": "cifar100/test-00000-of-00001.parquet: 100%" + } + }, + "6817055ed9794a2d8cd3b8c921a917ea": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_e97554397b7f4011b163eee7d979c2ba", + "max": 23772751, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_96498aacc1c1480f8635f670a160c1e0", + "value": 23772751 + } + }, + "80b7937194644630ae5f71bed76ec0ee": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2748e8a5c99e410695169ad6d1c4a010", + "placeholder": "​", + "style": "IPY_MODEL_bd827ff163284cfcbb1813b26df5f695", + "value": " 23.8M/23.8M [00:03<00:00, 14.7MB/s]" + } + }, + "60aed7458089444f8325bafcde96d813": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4bc18efc1b564f518c17d124af5b6995": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1b32afe6b2334dd2ac4ff8160f88aa43": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e97554397b7f4011b163eee7d979c2ba": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "96498aacc1c1480f8635f670a160c1e0": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "2748e8a5c99e410695169ad6d1c4a010": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "bd827ff163284cfcbb1813b26df5f695": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5d3e5a992e534310bfacce79ed5391c9": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_50cc2ef24f0c4a9e81f56f6e91fab554", + "IPY_MODEL_4865b99bd6894a0aba10c1e10c1937bb", + "IPY_MODEL_4584a17302694197a04cfaf107658fbb" + ], + "layout": "IPY_MODEL_96c3a505798c4024837725c34a9f2309" + } + }, + "50cc2ef24f0c4a9e81f56f6e91fab554": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c5a70942735b4bba9f2241d1e87d0195", + "placeholder": "​", + "style": "IPY_MODEL_45386697f14341c48b1742ff4ebdb5d3", + "value": "Generating train split: 100%" + } + }, + "4865b99bd6894a0aba10c1e10c1937bb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1f349d114181470c92088a7335ab9c20", + "max": 50000, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_892c59943df44b4da5385d6594b01e8e", + "value": 50000 + } + }, + "4584a17302694197a04cfaf107658fbb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_136265786c10498982c01adc28b5ac65", + "placeholder": "​", + "style": "IPY_MODEL_624f0c5c1d3b4199a487cf13b18d5a1e", + "value": " 50000/50000 [00:00<00:00, 168425.02 examples/s]" + } + }, + "96c3a505798c4024837725c34a9f2309": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c5a70942735b4bba9f2241d1e87d0195": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "45386697f14341c48b1742ff4ebdb5d3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "1f349d114181470c92088a7335ab9c20": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "892c59943df44b4da5385d6594b01e8e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "136265786c10498982c01adc28b5ac65": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "624f0c5c1d3b4199a487cf13b18d5a1e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "83e5b4f9f2214d3d8fdfb5ffd95d7629": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_75c1cb8a5cb14aa1bd1426a646094631", + "IPY_MODEL_4c145ba110294cf8a92f26fa6fe0de7f", + "IPY_MODEL_cfc142d207904cbfa7ad5ff58a7b9fd3" + ], + "layout": "IPY_MODEL_38df7262af124ae893d8cc8263d8afc9" + } + }, + "75c1cb8a5cb14aa1bd1426a646094631": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2c0ea2a0d2214a44a7d7d91d88bfb8e0", + "placeholder": "​", + "style": "IPY_MODEL_64d26f0a807444b6850a1c033f5323c2", + "value": "Generating test split: 100%" + } + }, + "4c145ba110294cf8a92f26fa6fe0de7f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_88c43dabc79f45e297096e7f2a241e2b", + "max": 10000, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_3c3f7f99d44d4c7998fad31be0267167", + "value": 10000 + } + }, + "cfc142d207904cbfa7ad5ff58a7b9fd3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0156fafe07c74344847e7d2ef98df79e", + "placeholder": "​", + "style": "IPY_MODEL_4888ca39fc2c48c1a9ac89b2c9b717eb", + "value": " 10000/10000 [00:00<00:00, 154284.03 examples/s]" + } + }, + "38df7262af124ae893d8cc8263d8afc9": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2c0ea2a0d2214a44a7d7d91d88bfb8e0": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "64d26f0a807444b6850a1c033f5323c2": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "88c43dabc79f45e297096e7f2a241e2b": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3c3f7f99d44d4c7998fad31be0267167": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "0156fafe07c74344847e7d2ef98df79e": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4888ca39fc2c48c1a9ac89b2c9b717eb": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "0936aef0918a48d7af069acf75ae1728": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_921a9a0e6e334cc98578f2051d62ab68", + "IPY_MODEL_3f1af733e6794cdcb04f5f496775130b", + "IPY_MODEL_a9400f02a14d4410887dd5ce623d8098" + ], + "layout": "IPY_MODEL_abbafd4c454e473cb40729a6962de80f" + } + }, + "921a9a0e6e334cc98578f2051d62ab68": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_719c39267fb349f88bc010bc7bd2a6e5", + "placeholder": "​", + "style": "IPY_MODEL_df4b55aa4cef404f89337a974da48576", + "value": "Download complete: 100%" + } + }, + "3f1af733e6794cdcb04f5f496775130b": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_17490f8197db4e9bb1ba9f12a3430cc4", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_32d8adf127bf42639cc077c83d4a5707", + "value": 1 + } + }, + "a9400f02a14d4410887dd5ce623d8098": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0096a993f5754a48a1f68cd299116546", + "placeholder": "​", + "style": "IPY_MODEL_b42b16b966ab42ce906dabd7c04dea17", + "value": " 88.5M/88.5M [00:11<00:00, 43.0MB/s]" + } + }, + "abbafd4c454e473cb40729a6962de80f": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "719c39267fb349f88bc010bc7bd2a6e5": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "df4b55aa4cef404f89337a974da48576": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "17490f8197db4e9bb1ba9f12a3430cc4": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "20px" + } + }, + "32d8adf127bf42639cc077c83d4a5707": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "0096a993f5754a48a1f68cd299116546": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b42b16b966ab42ce906dabd7c04dea17": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b4a6046c98254d94ae5a17a7b884913e": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_f2c579087838472aa1cdc786be6d4fa3", + "IPY_MODEL_5cd1fee124ae4e25a1777d6602ede2c7", + "IPY_MODEL_25e14b4c5f224b31ae42bff17b4c7231" + ], + "layout": "IPY_MODEL_073dc6532acb4decaca8865423ec7c52" + } + }, + "f2c579087838472aa1cdc786be6d4fa3": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6e8faea248994e4a937fb787162444ab", + "placeholder": "​", + "style": "IPY_MODEL_b47d59803ea24037ac6acda5120454a6", + "value": "Fetching 2 files: 100%" + } + }, + "5cd1fee124ae4e25a1777d6602ede2c7": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a12258a724be4a75981bc286acbb6e77", + "max": 2, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_68b8853ae56740f683c56cd428de6313", + "value": 2 + } + }, + "25e14b4c5f224b31ae42bff17b4c7231": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a57fadb49a6a4ff599457c842d1c81a7", + "placeholder": "​", + "style": "IPY_MODEL_00e09f322dae4acb9ac6023ef3c7b72a", + "value": " 2/2 [00:02<00:00,  1.28s/it]" + } + }, + "073dc6532acb4decaca8865423ec7c52": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6e8faea248994e4a937fb787162444ab": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b47d59803ea24037ac6acda5120454a6": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a12258a724be4a75981bc286acbb6e77": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "68b8853ae56740f683c56cd428de6313": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "a57fadb49a6a4ff599457c842d1c81a7": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "00e09f322dae4acb9ac6023ef3c7b72a": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file From c935e9afb3fa93e6d77b7aec5dc77e1758c3cce1 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sun, 1 Feb 2026 13:04:45 +0100 Subject: [PATCH 58/75] Delete notebooks/quickstart_cifar_100.ipynb --- notebooks/quickstart_cifar_100.ipynb | 3030 -------------------------- 1 file changed, 3030 deletions(-) delete mode 100644 notebooks/quickstart_cifar_100.ipynb diff --git a/notebooks/quickstart_cifar_100.ipynb b/notebooks/quickstart_cifar_100.ipynb deleted file mode 100644 index 3fa96fe..0000000 --- a/notebooks/quickstart_cifar_100.ipynb +++ /dev/null @@ -1,3030 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "47ee06e6", - "metadata": { - "id": "47ee06e6" - }, - "source": [ - "# HyperView: CLIP vs HyCoCLIP with 2D UMAP Projection on CIFAR-100\n", - "\n", - "This notebook compares two embedding spaces on the same image set.\n", - "\n", - "- [**CLIP**](https://github.com/openai/CLIP) maps images and text into one shared vector space.\n", - " \n", - "- [**HyCoCLIP**](https://github.com/PalAvik/hycoclip) maps images into a space designed for hierarchy and tree like structure.\n", - " \n", - "- We then compute a **2D projection** of each embedding space with [UMAP](https://umap-learn.readthedocs.io/en/latest/) so we can inspect clusters and label structure.\n", - " \n", - "\n", - "HyperView allows us to compare the embedding spaces of these different geometries.\n", - "\n", - "In this demo, we use the [CIFAR-100](https://huggingface.co/datasets/uoft-cs/cifar100) dataset of tiny images, available through HuggingFace." - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Install\n", - "\n", - "HyperView is a library for dataset curation and model analysis. It provides tools for interactive visualization of the embedding space." - ], - "metadata": { - "id": "hyaagNXkyUBN" - }, - "id": "hyaagNXkyUBN" - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "945a1017", - "metadata": { - "id": "945a1017" - }, - "outputs": [], - "source": [ - "%%capture\n", - "# If you run this in Google Colab, install HyperView with this command.\n", - "!uv pip install hyperview" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Import HyperView" - ], - "metadata": { - "id": "hYtO76VBy7C9" - }, - "id": "hYtO76VBy7C9" - }, - { - "cell_type": "markdown", - "source": [ - "\n", - "We import HyperView and use it as the main interface for:\n", - "\n", - "- reading data\n", - " \n", - "- computing embeddings with pretrained models\n", - " \n", - "- computing a 2D projection for visualization\n", - " \n", - "- launching the interactive viewer\n", - " " - ], - "metadata": { - "id": "v-TvwC2Qyw42" - }, - "id": "v-TvwC2Qyw42" - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "58b82256", - "metadata": { - "id": "58b82256" - }, - "outputs": [], - "source": [ - "import hyperview as hv" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Configuration" - ], - "metadata": { - "id": "nH4CjViEy-U4" - }, - "id": "nH4CjViEy-U4" - }, - { - "cell_type": "markdown", - "source": [ - "We specify the dataset and model settings in a single dictionary.\n", - "\n", - "### Data source\n", - "\n", - "- We load **CIFAR-100** from Hugging Face.\n", - " \n", - "- We use the **test** split.\n", - " \n", - "- `img` is the image field.\n", - " \n", - "- We use `coarse_label` for labels." - ], - "metadata": { - "id": "36tl8PxjzBT6" - }, - "id": "36tl8PxjzBT6" - }, - { - "cell_type": "markdown", - "source": [ - "Why coarse labels:\n", - "\n", - "- HyperView disables distinct label coloring when there are more than 20 labels.\n", - " \n", - "- CIFAR-100 has 100 fine labels, but 20 coarse labels.\n", - " \n", - "- Using coarse labels keeps label coloring useful in the viewer.\n", - " " - ], - "metadata": { - "id": "SIR8CsvfzW3I" - }, - "id": "SIR8CsvfzW3I" - }, - { - "cell_type": "markdown", - "source": [ - "### Sampling\n", - "\n", - "- `NUM_SAMPLES = 200` keeps embedding and layout computation fast enough for a demo.\n", - " \n", - "- Increase this if you want denser clusters, but expect more compute time.\n", - " " - ], - "metadata": { - "id": "tXpwwCXozezd" - }, - "id": "tXpwwCXozezd" - }, - { - "cell_type": "markdown", - "source": [ - "### Models\n", - "\n", - "- `openai/clip-vit-base-patch32` is a common CLIP baseline.\n", - " \n", - "- `hycoclip-vit-s` is a HyCoCLIP model that targets hierarchical structure." - ], - "metadata": { - "id": "NCtE2BN0zk3G" - }, - "id": "NCtE2BN0zk3G" - }, - { - "cell_type": "code", - "source": [ - "DATASET_NAME = \"cifar100_coarse_clip_hyper_models\"\n", - "HF_DATASET = \"uoft-cs/cifar100\"\n", - "HF_SPLIT = \"test\"\n", - "HF_IMAGE_KEY = \"img\"\n", - "# NOTE: HyperView disables distinct label coloring when there are >20 labels.\n", - "# CIFAR-100 has 100 fine labels, but only 20 coarse labels.\n", - "HF_LABEL_KEY = \"coarse_label\"\n", - "NUM_SAMPLES = 200\n", - "CLIP_MODEL_ID = \"openai/clip-vit-base-patch32\"\n", - "HYPER_MODELS_MODEL_ID = \"hycoclip-vit-s\"" - ], - "metadata": { - "id": "Wto-RfOFzCdJ" - }, - "id": "Wto-RfOFzCdJ", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Load CIFAR-100 into a HyperView dataset\n", - "\n", - "We create a HyperView `Dataset` object and then import samples from Hugging Face.\n", - "\n", - "Key parameters:\n", - "\n", - "- `persist=False` keeps this dataset in memory for this run.\n", - " \n", - "- `max_samples=NUM_SAMPLES` subsamples the split.\n", - " \n", - "\n", - "At the end, `len(dataset)` is the number of loaded examples." - ], - "metadata": { - "id": "nEdV-nZTzs3G" - }, - "id": "nEdV-nZTzs3G" - }, - { - "cell_type": "code", - "source": [ - "print(\"Loading CIFAR-100 from Hugging Face...\")\n", - "dataset = hv.Dataset(DATASET_NAME, persist=False)\n", - "dataset.add_from_huggingface(\n", - " HF_DATASET,\n", - " split=HF_SPLIT,\n", - " image_key=HF_IMAGE_KEY,\n", - " label_key=HF_LABEL_KEY,\n", - " max_samples=NUM_SAMPLES,\n", - ")\n", - "print(f\"Loaded {len(dataset)} samples\")\n", - "\n" - ], - "metadata": { - "colab": { - "base_uri": "https://localhost:8080/", - "height": 506, - "referenced_widgets": [ - "162a6522d4a246b78865ab61ca713730", - "e40b36bfd1f64d129f17ee0bb4aef334", - "fc5fe01c2fc64bbb8f9b7adba05cf789", - "187ce225eb4041299d9233cee10f198f", - "c863c8acaef84e488a5016b6869888fe", - "f6137d250fa044d393e65d3443a63f23", - "698107a8b57d4746bc299795c75a5234", - "b4b55da4f86a4c229e5d2b2129353c0a", - "ef34f8327ba943629f00788360462e2a", - "89a229a5967d4b80ac9c031e980300a9", - "5cdbe6ac7f514818be2ae019cb430d94", - "b18ef99b82b244099c5c2843f1109136", - "534bbfee2fbb4adfa5e986e57a7ae613", - "842ae4c3bb17440f837bf284babdc261", - "4a4d809d0c8440a38cc9d3a978a30316", - "5ba55ab80c3d44779c0466b085d567e5", - "2f2d2700b29f4541b090e193e367559d", - "45375a63674841588e0b9169e7ba7b17", - "d5fe34a8c44b44768b703d8ccf0a3549", - "e497698fa57c499b8b4d2c6864136c0c", - "422692f8f08842328e6ff4d34698bc34", - "c3e8e8bba2f54a95ab0893ea04125edb", - "b748f1d618be4cca90200b051d0a7f69", - "00679cf77043425293f9fb3c554b5608", - "6817055ed9794a2d8cd3b8c921a917ea", - "80b7937194644630ae5f71bed76ec0ee", - "60aed7458089444f8325bafcde96d813", - "4bc18efc1b564f518c17d124af5b6995", - "1b32afe6b2334dd2ac4ff8160f88aa43", - "e97554397b7f4011b163eee7d979c2ba", - "96498aacc1c1480f8635f670a160c1e0", - "2748e8a5c99e410695169ad6d1c4a010", - "bd827ff163284cfcbb1813b26df5f695", - "5d3e5a992e534310bfacce79ed5391c9", - "50cc2ef24f0c4a9e81f56f6e91fab554", - "4865b99bd6894a0aba10c1e10c1937bb", - "4584a17302694197a04cfaf107658fbb", - "96c3a505798c4024837725c34a9f2309", - "c5a70942735b4bba9f2241d1e87d0195", - "45386697f14341c48b1742ff4ebdb5d3", - "1f349d114181470c92088a7335ab9c20", - "892c59943df44b4da5385d6594b01e8e", - "136265786c10498982c01adc28b5ac65", - "624f0c5c1d3b4199a487cf13b18d5a1e", - "83e5b4f9f2214d3d8fdfb5ffd95d7629", - "75c1cb8a5cb14aa1bd1426a646094631", - "4c145ba110294cf8a92f26fa6fe0de7f", - "cfc142d207904cbfa7ad5ff58a7b9fd3", - "38df7262af124ae893d8cc8263d8afc9", - "2c0ea2a0d2214a44a7d7d91d88bfb8e0", - "64d26f0a807444b6850a1c033f5323c2", - "88c43dabc79f45e297096e7f2a241e2b", - "3c3f7f99d44d4c7998fad31be0267167", - "0156fafe07c74344847e7d2ef98df79e", - "4888ca39fc2c48c1a9ac89b2c9b717eb", - "0936aef0918a48d7af069acf75ae1728", - "921a9a0e6e334cc98578f2051d62ab68", - "3f1af733e6794cdcb04f5f496775130b", - "a9400f02a14d4410887dd5ce623d8098", - "abbafd4c454e473cb40729a6962de80f", - "719c39267fb349f88bc010bc7bd2a6e5", - "df4b55aa4cef404f89337a974da48576", - "17490f8197db4e9bb1ba9f12a3430cc4", - "32d8adf127bf42639cc077c83d4a5707", - "0096a993f5754a48a1f68cd299116546", - "b42b16b966ab42ce906dabd7c04dea17", - "b4a6046c98254d94ae5a17a7b884913e", - "f2c579087838472aa1cdc786be6d4fa3", - "5cd1fee124ae4e25a1777d6602ede2c7", - "25e14b4c5f224b31ae42bff17b4c7231", - "073dc6532acb4decaca8865423ec7c52", - "6e8faea248994e4a937fb787162444ab", - "b47d59803ea24037ac6acda5120454a6", - "a12258a724be4a75981bc286acbb6e77", - "68b8853ae56740f683c56cd428de6313", - "a57fadb49a6a4ff599457c842d1c81a7", - "00e09f322dae4acb9ac6023ef3c7b72a" - ] - }, - "id": "Vb0PAH7gvsP7", - "outputId": "7520b34f-6c86-4125-e0d8-9dc69736d594" - }, - "id": "Vb0PAH7gvsP7", - "execution_count": 3, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Loading CIFAR-100 from Hugging Face...\n" - ] - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "README.md: 0.00B [00:00, ?B/s]" - ], - "application/vnd.jupyter.widget-view+json": { - "version_major": 2, - "version_minor": 0, - "model_id": "162a6522d4a246b78865ab61ca713730" - } - }, - "metadata": {} - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "cifar100/train-00000-of-00001.parquet: 0%| | 0.00/119M [00:00" - ], - "text/html": [ - "

HyperView is running in Colab. Open HyperView in a new tab.

" - ] - }, - "metadata": {} - }, - { - "output_type": "display_data", - "data": { - "text/plain": [ - "" - ], - "text/html": [ - "

https://6262-gpu-t4-hm-kg95f2888y5u-c.europe-west4-1.prod.colab.dev/

" - ] - }, - "metadata": {} - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ] - }, - "metadata": {}, - "execution_count": 3 - } - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Compute CLIP embeddings\n", - "\n", - "### What CLIP embeddings represent\n", - "\n", - "CLIP trains an image encoder and a text encoder so that matching image text pairs have nearby vectors. When we compute image embeddings here, each image becomes a single vector in a shared space that also supports text vectors.\n", - "\n", - "### What we do in code\n", - "\n", - "- `compute_embeddings(CLIP_MODEL_ID)` runs the CLIP image encoder and stores one vector per image.\n", - " \n", - "- The returned `space_key` is a handle to that embedding space inside HyperView.\n", - " \n", - "\n", - "### Why we compute a 2D visualization\n", - "\n", - "High dimensional vectors are hard to inspect. We compute a 2D layout so we can see neighborhood structure.\n", - "\n", - "- `compute_visualization(..., geometry=\"euclidean\")` treats the embedding space as Euclidean.\n", - " \n", - "- This matches how CLIP vectors are often used with cosine similarity or dot product in a flat vector space.\n", - " \n", - "\n", - "Note on “UMAP” \n", - "This notebook focuses on a 2D projection step. HyperView computes a 2D layout for the viewer. The title calls this UMAP. In practice, you should treat this as a nonlinear projection that preserves local neighborhoods better than PCA." - ], - "metadata": { - "id": "xvAMFY_Dz71Z" - }, - "id": "xvAMFY_Dz71Z" - }, - { - "cell_type": "markdown", - "source": [ - "## Compute HyCoCLIP embeddings\n", - "\n", - "### Why a different geometry\n", - "\n", - "Some datasets have hierarchical label structure. A tree structure is hard to represent in Euclidean space without distortion.\n", - "\n", - "Hyperbolic spaces can represent tree growth patterns with less distortion than Euclidean spaces. A common model is the **Poincaré ball**, which is a way to work with hyperbolic geometry in a bounded region.\n", - "\n", - "### What we do in code\n", - "\n", - "- `compute_embeddings(model=HYPER_MODELS_MODEL_ID)` computes embeddings from the HyCoCLIP model.\n", - " \n", - "- `compute_visualization(..., geometry=\"poincare\")` tells HyperView to treat distances and neighborhoods using Poincaré geometry.\n", - " \n", - "\n", - "How to read the plot\n", - "\n", - "- In Poincaré style layouts, points near the center and points near the boundary can have different distance behavior than Euclidean layouts.\n", - " \n", - "- Focus on neighborhood membership and cluster separation rather than raw coordinate scale." - ], - "metadata": { - "id": "zEkSKKPN0GZz" - }, - "id": "zEkSKKPN0GZz" - }, - { - "cell_type": "code", - "source": [ - "clip_space = dataset.compute_embeddings(CLIP_MODEL_ID)\n", - "dataset.compute_visualization(space_key=clip_space, geometry=\"euclidean\")\n", - "hyper_space = dataset.compute_embeddings(model=HYPER_MODELS_MODEL_ID)\n", - "dataset.compute_visualization(space_key=hyper_space, geometry=\"poincare\")" - ], - "metadata": { - "id": "rXl9yJKyx3hQ" - }, - "id": "rXl9yJKyx3hQ", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Launch the interactive viewer\n", - "\n", - "`hv.launch(dataset, open_browser=True)` starts a local server and opens the viewer.\n", - "\n", - "In the UI, you should be able to:\n", - "\n", - "- switch between embedding spaces (CLIP vs HyCoCLIP)\n", - " \n", - "- inspect image thumbnails for selected points\n", - " \n", - "- compare how coarse labels cluster under each geometry\n", - " \n" - ], - "metadata": { - "id": "rGEUqA0W0O4g" - }, - "id": "rGEUqA0W0O4g" - }, - { - "cell_type": "code", - "source": [ - "hv.launch(dataset, open_browser=True)" - ], - "metadata": { - "id": "o3TdCwD2wIf2" - }, - "id": "o3TdCwD2wIf2", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Suggested checks\n", - "\n", - "- Are nearest neighbors under Euclidean CLIP similar to nearest neighbors under Poincaré HyCoCLIP?\n", - "\n", - "\n", - " " - ], - "metadata": { - "id": "FRjieuy10Yed" - }, - "id": "FRjieuy10Yed" - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.8" - }, - "colab": { - "provenance": [], - "machine_shape": "hm", - "gpuType": "T4" - }, - "accelerator": "GPU", - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "162a6522d4a246b78865ab61ca713730": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_e40b36bfd1f64d129f17ee0bb4aef334", - "IPY_MODEL_fc5fe01c2fc64bbb8f9b7adba05cf789", - "IPY_MODEL_187ce225eb4041299d9233cee10f198f" - ], - "layout": "IPY_MODEL_c863c8acaef84e488a5016b6869888fe" - } - }, - "e40b36bfd1f64d129f17ee0bb4aef334": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_f6137d250fa044d393e65d3443a63f23", - "placeholder": "​", - "style": "IPY_MODEL_698107a8b57d4746bc299795c75a5234", - "value": "README.md: " - } - }, - "fc5fe01c2fc64bbb8f9b7adba05cf789": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_b4b55da4f86a4c229e5d2b2129353c0a", - "max": 1, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_ef34f8327ba943629f00788360462e2a", - "value": 1 - } - }, - "187ce225eb4041299d9233cee10f198f": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_89a229a5967d4b80ac9c031e980300a9", - "placeholder": "​", - "style": "IPY_MODEL_5cdbe6ac7f514818be2ae019cb430d94", - "value": " 9.98k/? [00:00<00:00, 942kB/s]" - } - }, - "c863c8acaef84e488a5016b6869888fe": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "f6137d250fa044d393e65d3443a63f23": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "698107a8b57d4746bc299795c75a5234": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b4b55da4f86a4c229e5d2b2129353c0a": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": "20px" - } - }, - "ef34f8327ba943629f00788360462e2a": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "89a229a5967d4b80ac9c031e980300a9": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "5cdbe6ac7f514818be2ae019cb430d94": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b18ef99b82b244099c5c2843f1109136": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_534bbfee2fbb4adfa5e986e57a7ae613", - "IPY_MODEL_842ae4c3bb17440f837bf284babdc261", - "IPY_MODEL_4a4d809d0c8440a38cc9d3a978a30316" - ], - "layout": "IPY_MODEL_5ba55ab80c3d44779c0466b085d567e5" - } - }, - "534bbfee2fbb4adfa5e986e57a7ae613": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2f2d2700b29f4541b090e193e367559d", - "placeholder": "​", - "style": "IPY_MODEL_45375a63674841588e0b9169e7ba7b17", - "value": "cifar100/train-00000-of-00001.parquet: 100%" - } - }, - "842ae4c3bb17440f837bf284babdc261": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_d5fe34a8c44b44768b703d8ccf0a3549", - "max": 118518617, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_e497698fa57c499b8b4d2c6864136c0c", - "value": 118518617 - } - }, - "4a4d809d0c8440a38cc9d3a978a30316": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_422692f8f08842328e6ff4d34698bc34", - "placeholder": "​", - "style": "IPY_MODEL_c3e8e8bba2f54a95ab0893ea04125edb", - "value": " 119M/119M [00:03<00:00, 28.6MB/s]" - } - }, - "5ba55ab80c3d44779c0466b085d567e5": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "2f2d2700b29f4541b090e193e367559d": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "45375a63674841588e0b9169e7ba7b17": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "d5fe34a8c44b44768b703d8ccf0a3549": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "e497698fa57c499b8b4d2c6864136c0c": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "422692f8f08842328e6ff4d34698bc34": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c3e8e8bba2f54a95ab0893ea04125edb": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b748f1d618be4cca90200b051d0a7f69": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_00679cf77043425293f9fb3c554b5608", - "IPY_MODEL_6817055ed9794a2d8cd3b8c921a917ea", - "IPY_MODEL_80b7937194644630ae5f71bed76ec0ee" - ], - "layout": "IPY_MODEL_60aed7458089444f8325bafcde96d813" - } - }, - "00679cf77043425293f9fb3c554b5608": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_4bc18efc1b564f518c17d124af5b6995", - "placeholder": "​", - "style": "IPY_MODEL_1b32afe6b2334dd2ac4ff8160f88aa43", - "value": "cifar100/test-00000-of-00001.parquet: 100%" - } - }, - "6817055ed9794a2d8cd3b8c921a917ea": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_e97554397b7f4011b163eee7d979c2ba", - "max": 23772751, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_96498aacc1c1480f8635f670a160c1e0", - "value": 23772751 - } - }, - "80b7937194644630ae5f71bed76ec0ee": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2748e8a5c99e410695169ad6d1c4a010", - "placeholder": "​", - "style": "IPY_MODEL_bd827ff163284cfcbb1813b26df5f695", - "value": " 23.8M/23.8M [00:03<00:00, 14.7MB/s]" - } - }, - "60aed7458089444f8325bafcde96d813": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "4bc18efc1b564f518c17d124af5b6995": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "1b32afe6b2334dd2ac4ff8160f88aa43": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "e97554397b7f4011b163eee7d979c2ba": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "96498aacc1c1480f8635f670a160c1e0": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "2748e8a5c99e410695169ad6d1c4a010": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "bd827ff163284cfcbb1813b26df5f695": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "5d3e5a992e534310bfacce79ed5391c9": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_50cc2ef24f0c4a9e81f56f6e91fab554", - "IPY_MODEL_4865b99bd6894a0aba10c1e10c1937bb", - "IPY_MODEL_4584a17302694197a04cfaf107658fbb" - ], - "layout": "IPY_MODEL_96c3a505798c4024837725c34a9f2309" - } - }, - "50cc2ef24f0c4a9e81f56f6e91fab554": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_c5a70942735b4bba9f2241d1e87d0195", - "placeholder": "​", - "style": "IPY_MODEL_45386697f14341c48b1742ff4ebdb5d3", - "value": "Generating train split: 100%" - } - }, - "4865b99bd6894a0aba10c1e10c1937bb": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_1f349d114181470c92088a7335ab9c20", - "max": 50000, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_892c59943df44b4da5385d6594b01e8e", - "value": 50000 - } - }, - "4584a17302694197a04cfaf107658fbb": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_136265786c10498982c01adc28b5ac65", - "placeholder": "​", - "style": "IPY_MODEL_624f0c5c1d3b4199a487cf13b18d5a1e", - "value": " 50000/50000 [00:00<00:00, 168425.02 examples/s]" - } - }, - "96c3a505798c4024837725c34a9f2309": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "c5a70942735b4bba9f2241d1e87d0195": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "45386697f14341c48b1742ff4ebdb5d3": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "1f349d114181470c92088a7335ab9c20": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "892c59943df44b4da5385d6594b01e8e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "136265786c10498982c01adc28b5ac65": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "624f0c5c1d3b4199a487cf13b18d5a1e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "83e5b4f9f2214d3d8fdfb5ffd95d7629": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_75c1cb8a5cb14aa1bd1426a646094631", - "IPY_MODEL_4c145ba110294cf8a92f26fa6fe0de7f", - "IPY_MODEL_cfc142d207904cbfa7ad5ff58a7b9fd3" - ], - "layout": "IPY_MODEL_38df7262af124ae893d8cc8263d8afc9" - } - }, - "75c1cb8a5cb14aa1bd1426a646094631": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_2c0ea2a0d2214a44a7d7d91d88bfb8e0", - "placeholder": "​", - "style": "IPY_MODEL_64d26f0a807444b6850a1c033f5323c2", - "value": "Generating test split: 100%" - } - }, - "4c145ba110294cf8a92f26fa6fe0de7f": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_88c43dabc79f45e297096e7f2a241e2b", - "max": 10000, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_3c3f7f99d44d4c7998fad31be0267167", - "value": 10000 - } - }, - "cfc142d207904cbfa7ad5ff58a7b9fd3": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_0156fafe07c74344847e7d2ef98df79e", - "placeholder": "​", - "style": "IPY_MODEL_4888ca39fc2c48c1a9ac89b2c9b717eb", - "value": " 10000/10000 [00:00<00:00, 154284.03 examples/s]" - } - }, - "38df7262af124ae893d8cc8263d8afc9": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "2c0ea2a0d2214a44a7d7d91d88bfb8e0": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "64d26f0a807444b6850a1c033f5323c2": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "88c43dabc79f45e297096e7f2a241e2b": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "3c3f7f99d44d4c7998fad31be0267167": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "0156fafe07c74344847e7d2ef98df79e": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "4888ca39fc2c48c1a9ac89b2c9b717eb": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "0936aef0918a48d7af069acf75ae1728": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_921a9a0e6e334cc98578f2051d62ab68", - "IPY_MODEL_3f1af733e6794cdcb04f5f496775130b", - "IPY_MODEL_a9400f02a14d4410887dd5ce623d8098" - ], - "layout": "IPY_MODEL_abbafd4c454e473cb40729a6962de80f" - } - }, - "921a9a0e6e334cc98578f2051d62ab68": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_719c39267fb349f88bc010bc7bd2a6e5", - "placeholder": "​", - "style": "IPY_MODEL_df4b55aa4cef404f89337a974da48576", - "value": "Download complete: 100%" - } - }, - "3f1af733e6794cdcb04f5f496775130b": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_17490f8197db4e9bb1ba9f12a3430cc4", - "max": 1, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_32d8adf127bf42639cc077c83d4a5707", - "value": 1 - } - }, - "a9400f02a14d4410887dd5ce623d8098": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_0096a993f5754a48a1f68cd299116546", - "placeholder": "​", - "style": "IPY_MODEL_b42b16b966ab42ce906dabd7c04dea17", - "value": " 88.5M/88.5M [00:11<00:00, 43.0MB/s]" - } - }, - "abbafd4c454e473cb40729a6962de80f": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "719c39267fb349f88bc010bc7bd2a6e5": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "df4b55aa4cef404f89337a974da48576": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "17490f8197db4e9bb1ba9f12a3430cc4": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": "20px" - } - }, - "32d8adf127bf42639cc077c83d4a5707": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "0096a993f5754a48a1f68cd299116546": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "b42b16b966ab42ce906dabd7c04dea17": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "b4a6046c98254d94ae5a17a7b884913e": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HBoxModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_f2c579087838472aa1cdc786be6d4fa3", - "IPY_MODEL_5cd1fee124ae4e25a1777d6602ede2c7", - "IPY_MODEL_25e14b4c5f224b31ae42bff17b4c7231" - ], - "layout": "IPY_MODEL_073dc6532acb4decaca8865423ec7c52" - } - }, - "f2c579087838472aa1cdc786be6d4fa3": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_6e8faea248994e4a937fb787162444ab", - "placeholder": "​", - "style": "IPY_MODEL_b47d59803ea24037ac6acda5120454a6", - "value": "Fetching 2 files: 100%" - } - }, - "5cd1fee124ae4e25a1777d6602ede2c7": { - "model_module": "@jupyter-widgets/controls", - "model_name": "FloatProgressModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "FloatProgressModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "ProgressView", - "bar_style": "success", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_a12258a724be4a75981bc286acbb6e77", - "max": 2, - "min": 0, - "orientation": "horizontal", - "style": "IPY_MODEL_68b8853ae56740f683c56cd428de6313", - "value": 2 - } - }, - "25e14b4c5f224b31ae42bff17b4c7231": { - "model_module": "@jupyter-widgets/controls", - "model_name": "HTMLModel", - "model_module_version": "1.5.0", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "HTMLModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "1.5.0", - "_view_name": "HTMLView", - "description": "", - "description_tooltip": null, - "layout": "IPY_MODEL_a57fadb49a6a4ff599457c842d1c81a7", - "placeholder": "​", - "style": "IPY_MODEL_00e09f322dae4acb9ac6023ef3c7b72a", - "value": " 2/2 [00:02<00:00,  1.28s/it]" - } - }, - "073dc6532acb4decaca8865423ec7c52": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "6e8faea248994e4a937fb787162444ab": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "b47d59803ea24037ac6acda5120454a6": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - }, - "a12258a724be4a75981bc286acbb6e77": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "68b8853ae56740f683c56cd428de6313": { - "model_module": "@jupyter-widgets/controls", - "model_name": "ProgressStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "ProgressStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "bar_color": null, - "description_width": "" - } - }, - "a57fadb49a6a4ff599457c842d1c81a7": { - "model_module": "@jupyter-widgets/base", - "model_name": "LayoutModel", - "model_module_version": "1.2.0", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "1.2.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "overflow_x": null, - "overflow_y": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "00e09f322dae4acb9ac6023ef3c7b72a": { - "model_module": "@jupyter-widgets/controls", - "model_name": "DescriptionStyleModel", - "model_module_version": "1.5.0", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "1.5.0", - "_model_name": "DescriptionStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "1.2.0", - "_view_name": "StyleView", - "description_width": "" - } - } - } - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file From ff41dd9e0bc9781e4ec4937744800aba7d966d44 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sun, 1 Feb 2026 13:06:47 +0100 Subject: [PATCH 59/75] umap tutorial --- notebooks/umap_tutorial.ipynb | 779 ++++++++++++++++++++++++++++++++++ 1 file changed, 779 insertions(+) create mode 100644 notebooks/umap_tutorial.ipynb diff --git a/notebooks/umap_tutorial.ipynb b/notebooks/umap_tutorial.ipynb new file mode 100644 index 0000000..39b0f75 --- /dev/null +++ b/notebooks/umap_tutorial.ipynb @@ -0,0 +1,779 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "47ee06e6", + "metadata": { + "id": "47ee06e6" + }, + "source": [ + "# HyperView: CLIP vs HyCoCLIP with 2D UMAP Projection on CIFAR-100\n", + "\n", + "This notebook compares two embedding spaces on the same image set.\n", + "\n", + "- [**CLIP**](https://github.com/openai/CLIP) maps images and text into one shared vector space.\n", + " \n", + "- [**HyCoCLIP**](https://github.com/PalAvik/hycoclip) maps images into a space designed for hierarchy and tree like structure.\n", + " \n", + "- We then compute a **2D projection** of each embedding space with [UMAP](https://umap-learn.readthedocs.io/en/latest/) so we can inspect clusters and label structure.\n", + " \n", + "\n", + "HyperView allows us to compare the embedding spaces of these different geometries.\n", + "\n", + "In this demo, we use the [CIFAR-100](https://huggingface.co/datasets/uoft-cs/cifar100) dataset of tiny images, available through HuggingFace." + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Install\n", + "\n", + "HyperView is a library for dataset curation and model analysis. It provides tools for interactive visualization of the embedding space." + ], + "metadata": { + "id": "hyaagNXkyUBN" + }, + "id": "hyaagNXkyUBN" + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "945a1017", + "metadata": { + "id": "945a1017" + }, + "outputs": [], + "source": [ + "%%capture\n", + "# If you run this in Google Colab, install HyperView with this command.\n", + "!uv pip install hyperview" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Import HyperView" + ], + "metadata": { + "id": "hYtO76VBy7C9" + }, + "id": "hYtO76VBy7C9" + }, + { + "cell_type": "markdown", + "source": [ + "\n", + "We import HyperView and use it as the main interface for:\n", + "\n", + "- reading data\n", + " \n", + "- computing embeddings with pretrained models\n", + " \n", + "- computing a 2D projection for visualization\n", + " \n", + "- launching the interactive viewer\n", + " " + ], + "metadata": { + "id": "v-TvwC2Qyw42" + }, + "id": "v-TvwC2Qyw42" + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "58b82256", + "metadata": { + "id": "58b82256" + }, + "outputs": [], + "source": [ + "import hyperview as hv" + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Configuration" + ], + "metadata": { + "id": "nH4CjViEy-U4" + }, + "id": "nH4CjViEy-U4" + }, + { + "cell_type": "markdown", + "source": [ + "We specify the dataset and model settings in a single dictionary.\n", + "\n", + "### Data source\n", + "\n", + "- We load **CIFAR-100** from Hugging Face.\n", + " \n", + "- We use the **test** split.\n", + " \n", + "- `img` is the image field.\n", + " \n", + "- We use `coarse_label` for labels." + ], + "metadata": { + "id": "36tl8PxjzBT6" + }, + "id": "36tl8PxjzBT6" + }, + { + "cell_type": "markdown", + "source": [ + "Why coarse labels:\n", + "\n", + "- HyperView disables distinct label coloring when there are more than 20 labels.\n", + " \n", + "- CIFAR-100 has 100 fine labels, but 20 coarse labels.\n", + " \n", + "- Using coarse labels keeps label coloring useful in the viewer.\n", + " " + ], + "metadata": { + "id": "SIR8CsvfzW3I" + }, + "id": "SIR8CsvfzW3I" + }, + { + "cell_type": "markdown", + "source": [ + "### Sampling\n", + "\n", + "- `NUM_SAMPLES = 200` keeps embedding and layout computation fast enough for a demo.\n", + " \n", + "- Increase this if you want denser clusters, but expect more compute time.\n", + " " + ], + "metadata": { + "id": "tXpwwCXozezd" + }, + "id": "tXpwwCXozezd" + }, + { + "cell_type": "markdown", + "source": [ + "### Models\n", + "\n", + "- `openai/clip-vit-base-patch32` is a common CLIP baseline.\n", + " \n", + "- `hycoclip-vit-s` is a HyCoCLIP model that targets hierarchical structure." + ], + "metadata": { + "id": "NCtE2BN0zk3G" + }, + "id": "NCtE2BN0zk3G" + }, + { + "cell_type": "code", + "source": [ + "DATASET_NAME = \"cifar100_coarse_clip_hyper_models\"\n", + "HF_DATASET = \"uoft-cs/cifar100\"\n", + "HF_SPLIT = \"test\"\n", + "HF_IMAGE_KEY = \"img\"\n", + "# NOTE: HyperView disables distinct label coloring when there are >20 labels.\n", + "# CIFAR-100 has 100 fine labels, but only 20 coarse labels.\n", + "HF_LABEL_KEY = \"coarse_label\"\n", + "NUM_SAMPLES = 200\n", + "CLIP_MODEL_ID = \"openai/clip-vit-base-patch32\"\n", + "HYPER_MODELS_MODEL_ID = \"hycoclip-vit-s\"" + ], + "metadata": { + "id": "Wto-RfOFzCdJ" + }, + "id": "Wto-RfOFzCdJ", + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Load CIFAR-100 into a HyperView dataset\n", + "\n", + "We create a HyperView `Dataset` object and then import samples from Hugging Face.\n", + "\n", + "Key parameters:\n", + "\n", + "- `persist=False` keeps this dataset in memory for this run.\n", + " \n", + "- `max_samples=NUM_SAMPLES` subsamples the split.\n", + " \n", + "\n", + "At the end, `len(dataset)` is the number of loaded examples." + ], + "metadata": { + "id": "nEdV-nZTzs3G" + }, + "id": "nEdV-nZTzs3G" + }, + { + "cell_type": "code", + "source": [ + "print(\"Loading CIFAR-100 from Hugging Face...\")\n", + "dataset = hv.Dataset(DATASET_NAME, persist=False)\n", + "dataset.add_from_huggingface(\n", + " HF_DATASET,\n", + " split=HF_SPLIT,\n", + " image_key=HF_IMAGE_KEY,\n", + " label_key=HF_LABEL_KEY,\n", + " max_samples=NUM_SAMPLES,\n", + ")\n", + "print(f\"Loaded {len(dataset)} samples\")\n", + "\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Vb0PAH7gvsP7", + "outputId": "953a9176-fa36-4874-9263-838df3bf0180" + }, + "id": "Vb0PAH7gvsP7", + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Loading CIFAR-100 from Hugging Face...\n", + "Loading 200 samples from uoft-cs/cifar100...\n", + "Images saved to: /root/.hyperview/media/huggingface/uoft-cs_cifar100/test\n", + "Loaded 200 samples\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Compute CLIP embeddings\n", + "\n", + "### What CLIP embeddings represent\n", + "\n", + "CLIP trains an image encoder and a text encoder so that matching image text pairs have nearby vectors. When we compute image embeddings here, each image becomes a single vector in a shared space that also supports text vectors.\n", + "\n", + "### What we do in code\n", + "\n", + "- `compute_embeddings(CLIP_MODEL_ID)` runs the CLIP image encoder and stores one vector per image.\n", + " \n", + "- The returned `space_key` is a handle to that embedding space inside HyperView.\n", + " \n", + "\n", + "### Why we compute a 2D visualization\n", + "\n", + "High dimensional vectors are hard to inspect. We compute a 2D layout so we can see neighborhood structure.\n", + "\n", + "- `compute_visualization(..., geometry=\"euclidean\")` treats the embedding space as Euclidean.\n", + " \n", + "- This matches how CLIP vectors are often used with cosine similarity or dot product in a flat vector space.\n", + " \n", + "\n", + "Note on “UMAP” \n", + "This notebook focuses on a 2D projection step. HyperView computes a 2D layout for the viewer. The title calls this UMAP. In practice, you should treat this as a nonlinear projection that preserves local neighborhoods better than PCA." + ], + "metadata": { + "id": "xvAMFY_Dz71Z" + }, + "id": "xvAMFY_Dz71Z" + }, + { + "cell_type": "markdown", + "source": [ + "## Compute HyCoCLIP embeddings\n", + "\n", + "### Why a different geometry\n", + "\n", + "Some datasets have hierarchical label structure. A tree structure is hard to represent in Euclidean space without distortion.\n", + "\n", + "Hyperbolic spaces can represent tree growth patterns with less distortion than Euclidean spaces. A common model is the **Poincaré ball**, which is a way to work with hyperbolic geometry in a bounded region.\n", + "\n", + "### What we do in code\n", + "\n", + "- `compute_embeddings(model=HYPER_MODELS_MODEL_ID)` computes embeddings from the HyCoCLIP model.\n", + " \n", + "- `compute_visualization(..., geometry=\"poincare\")` tells HyperView to treat distances and neighborhoods using Poincaré geometry.\n", + " \n", + "\n", + "How to read the plot\n", + "\n", + "- In Poincaré style layouts, points near the center and points near the boundary can have different distance behavior than Euclidean layouts.\n", + " \n", + "- Focus on neighborhood membership and cluster separation rather than raw coordinate scale." + ], + "metadata": { + "id": "zEkSKKPN0GZz" + }, + "id": "zEkSKKPN0GZz" + }, + { + "cell_type": "code", + "source": [ + "clip_space = dataset.compute_embeddings(CLIP_MODEL_ID)\n", + "clip_space" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 53 + }, + "id": "rXl9yJKyx3hQ", + "outputId": "472d1e1e-bde6-4b4c-cfe5-5485c7ca18bd" + }, + "id": "rXl9yJKyx3hQ", + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "All 200 samples already have embeddings in space 'embed-anything__openai_clip-vit-base-patch32__4771034973d8'\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'embed-anything__openai_clip-vit-base-patch32__4771034973d8'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "source": [ + "hyperbolic_clip_space = dataset.compute_embeddings(model=HYPER_MODELS_MODEL_ID)\n", + "hyperbolic_clip_space" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 53 + }, + "id": "bxivI8P79IiK", + "outputId": "16c01abb-848e-4915-c88b-4972a532c7eb" + }, + "id": "bxivI8P79IiK", + "execution_count": 10, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Computing embeddings for 200 samples...\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'hyper-models__hycoclip-vit-s__b63e9ee38a30'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## UMAP Parameters: `n_neighbors` and `min_dist`\n", + "\n", + "UMAP creates 2D visualizations through a two-phase process:\n", + "\n", + "1. **Local structure learning** (controlled by `n_neighbors`)\n", + "2. **Layout optimization** (controlled by `min_dist`)\n", + "\n", + "These parameters have different effects depending on whether you're working with Euclidean or hyperbolic embeddings.\n", + "\n", + "\n", + "## `n_neighbors`: Balancing Local vs Global Structure\n", + "\n", + "The `n_neighbors` parameter determines how many nearby points UMAP considers when learning the manifold structure.\n", + "\n", + "**Small values (5-15):**\n", + "- UMAP focuses on immediate neighbors\n", + "- Preserves fine-grained local structure\n", + "- Creates tight, distinct clusters\n", + "- May fragment large-scale patterns\n", + "- Better for finding small subgroups\n", + "\n", + "**Large values (30-100):**\n", + "- UMAP considers broader neighborhoods\n", + "- Captures global dataset organization\n", + "- Creates more connected layouts\n", + "- May blur boundaries between clusters\n", + "- Better for understanding overall structure\n", + "\n", + "**Technical detail:** UMAP constructs a k-nearest neighbor graph using this parameter. The graph encodes which points should remain close in the 2D projection.\n", + "\n", + "**Default: 15**, which is a middle ground that works for most datasets\n", + "\n", + "## `min_dist`: Controlling Point Spacing\n", + "\n", + "The `min_dist` parameter sets the minimum allowed distance between points in the final 2D layout. This is the distance that UMAP forces between **all points** in the 2D layout. When `min-dist` is large points that are in the samle cluster are pushed apart from each other. The visual effect is that we see more empty space everywhere in the plot.\n", + "\n", + "**Small values (0.0-0.1):**\n", + "- Points can be placed very close together\n", + "- Clusters appear dense and compact\n", + "- Easier to see cluster boundaries\n", + "- Can create overlapping point clouds, making them difficult to select with HyperView's lasso tool\n", + "- Good for large datasets where you want to see density\n", + "\n", + "**Large values (0.3-0.99):**\n", + "- Forces points to spread out\n", + "- Individual points are more visible and the layout appears less crowded\n", + "- May exaggerate distances between similar items\n", + "- Good for small datasets or when you need to see each point\n", + "\n", + "**Technical detail:** This parameter affects the \"attractive force\" in UMAP's layout.\n", + "\n", + "**Default: 0.1** (high density some clumping of embedding projections)" + ], + "metadata": { + "id": "PG3rQ6lNAoyV" + }, + "id": "PG3rQ6lNAoyV" + }, + { + "cell_type": "markdown", + "source": [ + "## Parameter Interaction in UMAP\n", + "\n", + "The two parameters work together to shape your visualization:\n", + "\n", + "**n_neighbors + min_dist together:**\n", + "\n", + "| n_neighbors | min_dist | Result |\n", + "|------------|----------|--------|\n", + "| Small (5) | Small (0.01) | Many tight, separated micro-clusters |\n", + "| Small (5) | Large (0.5) | Fragmented layout with forced spacing |\n", + "| Large (50) | Small (0.01) | Dense, continuous manifold structure |\n", + "| Large (50) | Large (0.5) | Smooth, evenly distributed layout |\n", + "\n", + "**Practical example:**\n", + "```python\n", + "# For finding fine subgroups in cell types\n", + "compute_visualization(n_neighbors=10, min_dist=0.05)\n", + "\n", + "# For understanding broad relationships in a corpus\n", + "compute_visualization(n_neighbors=50, min_dist=0.3)" + ], + "metadata": { + "id": "zV_EJELHBkKt" + }, + "id": "zV_EJELHBkKt" + }, + { + "cell_type": "markdown", + "source": [ + "## Parameter Interaction in UMAP\n", + "\n", + "The two parameters work together to shape your visualization:\n", + "\n", + "**n_neighbors + min_dist together:**\n", + "\n", + "| n_neighbors | min_dist | Result |\n", + "|------------|----------|--------|\n", + "| Small (5) | Small (0.01) | Many tight, separated and small clusters |\n", + "| Small (5) | Large (0.5) | Fragmented layout with forced spacing |\n", + "| Large (50) | Small (0.01) | Dense, continuous structure |\n", + "| Large (50) | Large (0.5) | Smooth, evenly distributed layout |\n", + "\n", + "**Snippets:**\n", + "```python\n", + "# For finding fine subgroups in cell types\n", + "compute_visualization(n_neighbors=10, min_dist=0.05)\n", + "\n", + "# For understanding broad relationships in a corpus\n", + "compute_visualization(n_neighbors=50, min_dist=0.3)\n", + "\n", + "\n", + "\n" + ], + "metadata": { + "id": "p4-fczUnDfds" + }, + "id": "p4-fczUnDfds" + }, + { + "cell_type": "markdown", + "source": [ + "### Euclidean UMAP (Standard Embeddings)\n", + "\n", + "```markdown\n", + "## UMAP on Euclidean Embeddings\n", + "\n", + "For standard models (CLIP, ResNet, etc.), embeddings live in flat Euclidean space.\n", + "\n", + "**What happens:**\n", + "1. UMAP measures distances using the specified metric (default: cosine)\n", + "2. Constructs a neighbor graph in the high-dimensional space\n", + "3. Optimizes a 2D layout in flat Euclidean space\n", + "4. Output coordinates are (x, y) pairs with no geometric constraints (can be as far away from each other as originally computed)\n", + "\n", + "**Metric choice matters:**\n", + "- `metric=\"cosine\"`: Best for normalized embeddings (CLIP, sentence transformers)\n", + "- `metric=\"euclidean\"`: Best for embeddings where magnitude matters\n", + "- `metric=\"manhattan\"`: Sometimes better for sparse or categorical data" + ], + "metadata": { + "id": "zXoChx71EfDP" + }, + "id": "zXoChx71EfDP" + }, + { + "cell_type": "code", + "source": [ + "dataset.compute_visualization(space_key=clip_space, # Which embedding space to project\n", + " method=\"umap\", # Projection method (only 'umap' supported)\n", + " geometry=\"euclidean\", # Output geometry: 'euclidean' or 'poincare'\n", + " n_neighbors=15, # UMAP: Number of neighbors (default: 15)\n", + " min_dist=0.1, # UMAP: Minimum distance (default: 0.1)\n", + " metric=\"cosine\", # UMAP: Distance metric (default: 'cosine')\n", + " force=True) # Force recomputation if layout exists\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 53 + }, + "id": "Fd50hTlc9K31", + "outputId": "7272fbef-0a2e-4d2c-8178-9b33764a20c2" + }, + "id": "Fd50hTlc9K31", + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Computing euclidean umap layout for 200 samples...\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'embed-anything__openai_clip-vit-base-patch32__4771034973d8__euclidean_umap_92b543de'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 9 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "### Cell 6: Hyperbolic UMAP (HyCoCLIP and Hyperboloid Embeddings)\n", + "\n", + "```markdown\n", + "## UMAP on Hyperbolic Embeddings\n", + "\n", + "For hyperbolic models (HyCoCLIP), embeddings live in curved hyperbolic space (hyperboloid model).\n", + "\n", + "**What happens:**\n", + "1. HyperView converts hyperboloid coordinates to the Poincaré ball (unit disk)\n", + "2. UMAP measures distances using Poincaré distance (hyperbolic geometry)\n", + "3. Optimizes a 2D layout using hyperbolic distance in the output space\n", + "4. Output coordinates are (x, y) pairs **constrained to the unit disk**\n", + "\n", + "**Key differences from Euclidean:**\n", + "- Distance metric is **automatically** \"poincare\" (you cannot override this)\n", + "- Points near the disk center have more \"room\" (hyperbolic space expands near edges)\n", + "- Same Euclidean distance means different hyperbolic distances at different radii\n", + "- Natural hierarchy: broader or more ambiguous concepts toward center, specific items toward edges. Mislabeled examples also appear near the center as they are hard to separate.\n", + "\n", + "**Parameter effects:**\n", + "- `n_neighbors`: Works the same as Euclidean (controls local vs global)\n", + "- `min_dist`: Interprets distances **in hyperbolic geometry**\n", + " - Same numeric value creates different visual spacing than in Euclidean\n", + " - Points near the boundary can appear closer in visual distance but farther in hyperbolic distance\n", + "\n", + "**Example:**\n", + "```python\n", + "# Hyperbolic CLIP embeddings\n", + "dataset.compute_embeddings(model=\"hycoclip-vit-s\") # Creates hyperboloid space\n", + "dataset.compute_visualization(\n", + " geometry=\"poincare\", # Output to Poincaré disk\n", + " # metric is automatically \"poincare\" (ignores what you pass)\n", + " n_neighbors=15,\n", + " min_dist=0.1\n", + ")" + ], + "metadata": { + "id": "etnAtM19EyUH" + }, + "id": "etnAtM19EyUH" + }, + { + "cell_type": "code", + "source": [ + "dataset.compute_visualization(space_key=hyperbolic_clip_space,\n", + " method=\"umap\",\n", + " geometry=\"poincare\", # Use Poincare ball method to project hyperbolic embedding to 2D plane\n", + " # metric is overriden to \"poincare\", see https://github.com/Hyper3Labs/HyperView/blob/main/src/hyperview/embeddings/projection.py#L102\n", + " n_neighbors=15,\n", + " min_dist=0.1,\n", + " )" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 53 + }, + "id": "tXWs_FXQ9OX2", + "outputId": "156e937b-8d5c-4321-872b-bce25de69648" + }, + "id": "tXWs_FXQ9OX2", + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Computing poincare umap layout for 200 samples...\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'hyper-models__hycoclip-vit-s__b63e9ee38a30__poincare_umap_92b543de'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 15 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "## Launch the interactive app in HyperView\n", + "\n", + "`hv.launch(dataset, open_browser=True)` starts a local server and opens the viewer.\n", + "\n", + "In the UI, you should be able to:\n", + "\n", + "- switch between embedding spaces (CLIP vs HyCoCLIP)\n", + " \n", + "- inspect image thumbnails for selected points\n", + " \n", + "- compare how coarse labels cluster under each geometry\n", + " \n" + ], + "metadata": { + "id": "rGEUqA0W0O4g" + }, + "id": "rGEUqA0W0O4g" + }, + { + "cell_type": "code", + "source": [ + "hv.launch(dataset, open_browser=True)" + ], + "metadata": { + "id": "o3TdCwD2wIf2" + }, + "id": "o3TdCwD2wIf2", + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Euclidean vs Poincaré: Visual Differences\n", + "\n", + "**Euclidean geometry (`geometry=\"euclidean\"`):**\n", + "- Points spread across an unbounded 2D plane\n", + "- Distance is uniform everywhere (1 unit = 1 unit, regardless of location)\n", + "- Typical output: points in a square/rectangular region\n", + "- Best for: Datasets without strong hierarchical structure\n", + "\n", + "**Poincaré geometry (`geometry=\"poincare\"`):**\n", + "- Points constrained to a unit disk (circle with radius 1)\n", + "- Distance is **non-uniform**: more space near edges, compressed near center\n", + "- Typical output: hierarchical organization\n", + " - General/abstract concepts cluster near the center\n", + " - Specific/detailed items pushed toward the boundary\n", + "- Best for: Datasets with natural hierarchies (taxonomies, concept trees)\n", + "\n", + "**When to use Poincaré output:**\n", + "1. You have hyperbolic embeddings (HyCoCLIP)\n", + "2. Your data has hierarchical structure (animal taxonomy, document topics)\n", + "3. You want to visualize relationships at multiple scales simultaneously\n", + "\n", + "**When to use Euclidean output:**\n", + "1. You have standard embeddings (CLIP, ResNet)\n", + "2. Your data has flat or network structure\n", + "3. You want familiar, intuitive spatial relationships\n", + "\n" + ], + "metadata": { + "id": "FqwDwyE9Fdpw" + }, + "id": "FqwDwyE9Fdpw" + }, + { + "cell_type": "markdown", + "source": [ + "## Suggested checks\n", + "\n", + "- Are nearest neighbors under Euclidean CLIP similar to nearest neighbors under Poincaré HyCoCLIP?\n", + "\n", + "\n", + " " + ], + "metadata": { + "id": "FRjieuy10Yed" + }, + "id": "FRjieuy10Yed" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.8" + }, + "colab": { + "provenance": [], + "machine_shape": "hm", + "gpuType": "T4" + }, + "accelerator": "GPU" + }, + "nbformat": 4, + "nbformat_minor": 5 +} \ No newline at end of file From 086b06309bc220cf67afcb33dea92f61871d0c20 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sun, 1 Feb 2026 13:33:12 +0100 Subject: [PATCH 60/75] Notebook installation guide for VSCode --- notebooks/INSTALLATION.md | 82 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 notebooks/INSTALLATION.md diff --git a/notebooks/INSTALLATION.md b/notebooks/INSTALLATION.md new file mode 100644 index 0000000..7101f11 --- /dev/null +++ b/notebooks/INSTALLATION.md @@ -0,0 +1,82 @@ +# Installation Instructions + +This guide shows how to set up and run the demo notebook in VSCode. + +## Prerequisites + +- [uv](https://docs.astral.sh/uv/) package manager installed +- VSCode with Python extension + +## Setup Steps + +### 1. Initialize the Project + +```bash +uv init +``` + +This creates a new project named `hyperview-demo-notebook`. + +### 2. Create Virtual Environment + +```bash +uv venv .venv +``` + +This creates a virtual environment using Python 3.13.2 in the `.venv` directory. + +### 3. Activate Virtual Environment + +```bash +source .venv/bin/activate +``` + +Your terminal prompt should now show `(.venv)` at the beginning. + +### 4. Install Required Packages + +Install the packages in the following order: + +```bash +uv pip install ipykernel +``` + +```bash +uv pip install jupyter +``` + +```bash +uv pip install hyperview +``` + +**Note:** Do not use commas between package names when installing multiple packages at once. Use spaces instead or install packages separately. + +## Verify Installation + +After installation, you should have: + +- Jupyter notebook support (68+ packages) +- IPython kernel for running notebooks (30+ packages) +- Hyperview and dependencies (59+ packages) + +## Running the Notebook + +1. Open the notebook file in VSCode +2. Select the Python interpreter from `.venv` when prompted +3. Run the notebook cells + +## Troubleshooting + +### Virtual Environment Not Activating + +If you see "no such file or directory" when activating, check the path: + +```bash +source .venv/bin/activate +``` + +Make sure you typed `activate` correctly (not `acticate`). + +### Package Installation Errors + +If you get parsing errors during installation, avoid using commas in the package list. Install packages separately or use spaces to separate package names. From 93f480922a41d320d91455b734f7b62b1d898173 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sun, 1 Feb 2026 15:41:58 +0100 Subject: [PATCH 61/75] Update README and demo script for CIFAR-100: fix image link, adjust dataset name and label key --- README.md | 29 +++++------------------------ assets/screenshot.png | Bin 1476413 -> 1479425 bytes scripts/demo_hyperbolic_clip.py | 6 ++++-- 3 files changed, 9 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 68f17d0..f228ad0 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@

- HyperView Screenshot + HyperView Screenshot
Watch the Demo Video @@ -28,13 +28,7 @@ ### Installation ```bash -git clone https://github.com/Hyper3Labs/HyperView.git -cd HyperView - -# Install with uv -uv venv .venv -source .venv/bin/activate -uv pip install -e ".[dev]" +pip install hyperview ``` ### Run the Demo @@ -79,26 +73,13 @@ hv.launch(dataset) # Opens http://127.0.0.1:6262 See [docs/colab.md](docs/colab.md) for a fast Colab smoke test and notebook-friendly launch behavior. -### Save and Load Datasets - -```python -# Save dataset with embeddings -dataset.save("my_dataset.json") - -# Load later -dataset = hv.Dataset.load("my_dataset.json") -hv.launch(dataset) -``` - ## Why Hyperbolic? -Traditional Euclidean embeddings struggle with hierarchical data. In Euclidean space, volume grows polynomially ($r^d$), causing **Representation Collapse** where minority classes get crushed together. +Traditional Euclidean embeddings struggle with hierarchical data. In Euclidean space, volume grows polynomially ($r^d$), causing **[Representation Collapse](https://hyper3labs.github.io/collapse)** where minority classes get crushed together. -**Hyperbolic space** (Poincaré disk) has exponential volume growth ($e^r$), naturally preserving hierarchical structure and keeping rare classes distinct. +**[Hyperbolic space](https://hyper3labs.github.io/warp)** (Poincaré disk) has exponential volume growth ($e^r$), naturally preserving hierarchical structure and keeping rare classes distinct. -

- Euclidean vs Hyperbolic -

+**[Try the live demo →](https://hyper3labs.github.io/HyperView/)** ## Contributing diff --git a/assets/screenshot.png b/assets/screenshot.png index 6e9b00b491d2758712e5d37724a597158b7df62e..92a7285ba1ea9b143e22c4156bdda0ae542b19c1 100644 GIT binary patch literal 1479425 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

    3WRAnlG#jCPx38<5ODc4~B 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�P0TR%ybB~kj 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

    `_F9%srt3Wy$>p+D#YE8|<7p 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℘|Y~MC6}a0&;OyhC*6WDU=x7|SOe$ijiT^m-(bBY#6}X?Dxo^73d2FS5 zxGkSFk^1It%}mU z_x%uc56wf+<-_@eAZcO9*DapTaEk^%2(4$d#r}55B!OV&72*SQTRp7nnx{>8{$Dvk z@lQy&#JOX||Myrqar_2ZC-Yoogom-bru>`2)_jiCyrO|Nu^&&^7D%lUj!`!1-NONC zl;C>17UDAs8|kU|%ZQZ0|0P+4EZg$#<3TY@D~lH{=^1Z}gB3523Nva`yrGOT(Bh*- zpib(J81)`xp;NDtopodx`z%49Sc%K@>=_!Iib3X5fxNvh>A@d7NEo*9jDO8VG^tN*HuAA;cl3YG49k*%D{?YR(We^q$7H;wz3_P4rg)((Teqpw*+a$OWFKj zxI1H!laxyAz>?Glp0Be+0+eBA(MYk4sHIG@U%mzcb-vC4l2zSBHCaMrzQm{HzXREx z>5%SMf?!_03V97r|Hl6%le0JaGa>D{Im{XPD42g=6;*bG0Du^+kWt*K)+=xj!N)3q z>;Pd1^$x4meFj4Ys(G{Y!grExRR-7N_OL7aLMmP-r`|H>ec(&H356uNAda>G@UMXv z1WJq8-7m#wJ2bFig#2q67da=$Akr(6?Bh8}{*TsgFWY?`Cj2BpH1I!job_;3hB(dY zL=>G1Qmb{`D|}`}xp!Fm?#?Sm*8b)fWZ%?Xs7OGIWzDdDRB$*_{AxcTpEte&wj4#p zkq+Ipfkf6m^&8xfd!!(~kp7Akwx94uqs$uXjSOMGowt8(fKnzf+z}WmK&lsmmHP|H zJKDl9_&&xTKgRVWhJe*ic_s}+HU3q@dc5Z;D8-{W1dsDLu4rv0X|%>~w(NGCG<-G$ksS|-aTh5H#n9wVMQTD;eCGgR`R`Rb=j zr58MfqqFgjMkg-J3_AdmLF}lh4Es2tO64!*X8!BKBb*Gu5=IBz8jPAg!ufkjs~Vh_ z+V2^=D+K4t*GqR0Q|dXNcJ8iFyum;X?Ht`j$Zx#;f~DhxKSFyQVSmPmKTk!~zRn*? z0ua}^vj5vNs}6(ia?d^M^M;ilc)vU@FL=!$BmlHW=?>6;S}x>#R0@7+DP z2-nVHI+3=YLt;yhtw)Tyc}5yM5D!9S>)XMH$)f zX0V1IHqfAJhUVzE)mTXyy)!$8ij&6t~-Z}6O+_Z7-Cf6%I(8(Poz{((+ zcW=p;l8v?6WNusAS>LKBfDe?k=58NOsV+$PKZIKnv~CDwo?>cqx4RVmzZE-dcqGux z&$hmk*f;MB2U^+6IaKm`D4DXe3ROl_i7!x+5GK~IYfgSw->KaAmT`M3`m&OW6DVpG z<-&?XPRNyPg_c1h7rCy?_ytUSn(%_=1ky(tfTe?Ym4l1XLtR&uSxY}N4;W6LW7jb0 ze>=lrc4wSKCPb3Dwoyj3XP9#=-kV^dS+bQtG^E~2ItxuMw&`A?+h+o+U=-t7+hWJi z;}-|+(&QkAk@_|nqv_5o4D2;Q_?x8LSIp7<^nhaYW+1KvE$i8LM%j7#vk$0_UrS@B zf>}@GP7;c+2wkA|>Q#G~;d0D7j*n-mpAK3Zo70MmCLK5pjaNhBx%{@j%6&@_&M07i zAMQM9b8aXl2^KDzv3r*h02|m|!*#(USD27&oV2W3sk=@{Vc)kiw~M0%Ak}|8j|8^d z$Gq^3@=FU11z`UfJGKsg6Wcurhl1v|8dM{$3HUaE5#{ptivh>*3rAom@OX5o)W2bR4)X{%jR&%afn^(j(Hn>E3db;P4COskK>1BvcUul|+bX_ZMwkLRHg0TS4?l;NE;%MyBnql%OKx1fWTnd6jw*z- zYOHjPEzNVyFFV$10O#0q�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 z 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�&v5+lP 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

    P{@i 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
    ~S)C>K6!EhE;@_Q%&I=b7a+$ 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

    s9{PAG=002GUbdwrSoH`j|?rJ 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

    Wp!=` zZDuX8?(^mcT$C~GG$^i1Ll!7T!>kN0A|DD5(4!1M0F1OG;ikwr6AV$Dr}Q8rrSvl7 zp_)Tsd#m)OTZ|MjqCAF;(iIR<<@;9=_Xj`k?feSIwqBF)k={9`rCZyBDK3JclDdf+ z<>f4T5&g0wP7d+*+bh@X+oEpurq|`=hXL6ANw)y&{xnmbma}cf%HHu;gGPSuZFMRl zcQ16r^+6rQ&%mKqSAs)HI&f(K<3vd~zTcO-fcw(CD!k`@?X}GCh(t#Az;e9glpxU_ zC0-fd*_uyAx0Jry$u51fNadYjEN5->h6aJXBL-D4E4>va*MnB~JW7y@kiII`$ZrdEe-dGcfWKdyiUBO+#kQk=^3zFEA5in_8)jk~0Tj)nPz@$WETf#@Q6d)a`<~QC z=5h`=S$dOGBH@|gqWG=rOq&duDADA3mA=hfNMru`Esb!{uVZh^oYlNO&*zrV;Oplx zg7M_jU1m=|7K!*@_JM7RM{{a-SLp@0ih#dMt7(u^sNDaC$uzmiLsZjuH=Hy+1^uI8=B(% z(~E?`dJ$Pnut`9lakQE?0Z+g%|A_@EP0dp>H3azDy{~{PF}w~f!)+FVqW^is??Fy( zO7@HPm&jKTw$}rto9tB;dStuvZ5cf-t*lJxPQO`*Rf4|ko7kjsn(Mu_>7zd9Lm$Oc zx|J~eocH|n(nio62qZHJZ1NwS=d?q+1jj>VtiAL3!a-8Ncx>*vJ$rlcEG<%N?>^ne zAF`h_`W8C);9_WIXRnq%J;nL;_7+OMH&xnK(|!|TI>A?Vit5^<9r4B{D<82ijgk~m zcMsDD)jt_?ZrmSJs{XY@kouZ*wSQIWR1sq=){Pv5sf=EXxLdjt4jw9}LuJ}rS_(HW zJp!{J*~7f0qC#Q-fgsquaIzL5l#%!cgXM9c9_!vXJii8FabtH&GSNz4K(HBjJLF!P zT9ttfpQr)VjMXKsv(I^e`3gPN<_Ty)%lF1*-tL4q>&eRIxz5jik-W1%r?l?d_GBHQ zkfV@TXfXNDE&oMGSChXSzLq>4Fz$SDB*=p3PnaYCAa^N-rV2p14qOFOhDPY=t41+g zBZ080IznQkE4{XQU;vu86w-I|Sieg#vT${BXJi>0>IiwZfWB^PGvT_OeE4ysxj*51943~F#bvge(Kv<3MmR>I=Om0w1(KZk0Ix#TgQ4`$wHSGp>WHY$|hUG!8}YfGy0*Sih-fYw83WZuy1w z$-~jUmU>4XH6*&gSph0%XPW5y-G`sPCvC}ByBOHvujGan;jg4@^uV4S^wOD!&bfGA zLY)1Y+veC*fhFO?4))t}bz!LsJSjr&@~@pP`M$nAHyA7SZ5oYO5+M%2; z0HWaRYk)17zva>Wd?WAl|F%Ms*#|HXXl20d)BAAePNSFtd;9jIc?Yejs!u75x)dAC zx7>!^a->I#C3*EWGj9uT?aU7V`h`Wzc+s8;7?!T@*Ly4#hv>(&93cPT-sLa@(d3!X z-*MA4r3lczYbtpNmgTrU=K__)?>$rmU)i8>>O-&VI2!SaORvj?Zwn3-@iyGAOUU2X zF&ZB)!t)*ON)~M_hN9F-26b{M1gl@W_dqd=5~y`_M(dPDep^7_=6(js_8x0XWGrNL zG`{{4N7C4rFG&6KswG%4fb*SAzCW(aCSLc)x0hf{B&u)u`#8Gh*%}OE1Z|F9?X2mJN2f{v1XBx8G3b^ z{}>R_oA1eGZkn^NTnZC4u;OfH-J8ovZV@-2sUg9EEfA1ENx+~Va7ayZG1^)hav1xE$ zl%P%|oe6Otfd6;TY|$Apd3GH)acoy#@^`jqa!uc~!5vev!<`y7sJeq)^TMp^r!=Z`5Jr;WQkn{AywmK)xs0G1TiZ$2}9MZz&PEFSdwyQj%d3WB^j-s z+qkn{xo~nBvuV=vzO&lDb>rT_4YKOH2?X_Glv^d`f3rMoyDqBwhLt>whV!lO`F_C2 zC!6-_juE4P&+qtlfKPFbHb{!-u<(AXZNR1vdkt!8`9n~lQK_Z*dN|6kimQ|lYq-OJ zvy@bFoaCrdXu3XFK_Jw1a8Fa2(k2bC$Eiy0LhhplRe8e3!*PARQ96%9HNeGi8f_^X z<;q2!SPcBcdT5<^j21{+Ii7E}q_6ZonaE;vsZ=veBfcm3k+9k3>)#MtVL#U_?tkzx zV*$8(RGox4t9*~WnC?>rrC3rNjMf7$VW-f`0GQ z-~JmNzeT{jg@Juz<7Tyr)wGQxPex5rlIRD}+p6i78&$-8ch20BLn_c1-lz>NS%e;$OqETc! z)ogEZM`lE^t}11e#>hNjb_(A7F=&%U+#P@+)xb$Md!5CWAz5$biR{n{+56p(Zh1E5 z608Uv1OXCgu3a07q?X}49SNr&#`bzjncVlYq|`cSV$P)!LNFsQ^Ikox;&3ZRoAAo~ zIcRE78k^AzVb*;!jR>c6SJG_(q=WuBDHlv!)!H4QjL8iI6N zlXWp*dcm%jRAb>Ois76e@5`9b*8#!k-AVLG=K?hKy}y@X)KN;Q9{zQlf8d!LvY2FE zBMK;@z)os8?RfpA)0bu#Q`M$Q0i*Za#u0gbJeF36A)|UURkSvakUw;2}y{}aY%Jb->A`MN@RiShB-DT6KPbk^#w|u?@ zG5x$Bbppj*rNyRW3WQmYNJzen-+2FUWyoJ(M)^cgWhLa}mS7ggC!LJTl7zIw^80=9 znOr&}j`I?Qkb1xG490yjhC)&tC1GS90S;U1SRdovjMQ`iraX!PCsPw60Re~pk+nbY_`LsS^_(2ChrXROG)-r3myq=>#6^(VM> zyoSpyZVa91OIQ1(%+LeZx2WoT#Y5q@!`)A|n49mg$89h3>+0iAy-y0{KNHby%VZGj z7{ZB{K+h!Gwfvdt`T-gDdZ{-oP^}7m zoB6Yj-tpDk{!#irWy*Hn<@67JbazxT80nS&{KLnfkuu7~lX6lkTxO0_`|T}O@){WY z{_i$U^e>phWr!J*G-aZh54i{~Vstz>iY007&!YObFQ>YE&%Y?0NfvAltuNE}IKOxJ zZNXD+pDHRy2&3GVi2qdm5d4|$3=u1n)^i?LFdp>%b4_kxkd2w?1{@CjuvzCD^YMoH z#G;>L@n1SF(v{K)FoO~bxt(pDC#trz$A>uwiW8RL>16@sxGY5&iyy5pz^l8y-Sc;9xrH#A_#^@mYlj8_y(VHq>21cssaTgEZ} z!=H!dPaQ@xYsth5h z2qQZc2>*&HrJzlwq-UH{5bMh*k{^u8lWY(>G(-sr3O9`v8gZhpwQ$iX(!279(YL%W z5m|@#rn&i5_zmFG*sh-h1qQz+kAZ>Y1WEbvhlCJ0d`}l4TsQkg8Opb_pnI6dY*Rc~ z6mja=NtS3x6qI9u!)&}WBg;I+x>qj_$EZ-#oTWX{CJ+m(H-Ir9?e@333Q~+H@?_$m z1T$7c7lT<{!NFI}(jkcG1{B|hNDy{*!TIk2!-J7+}|@mF09x zFQvnP{mO=^GEKs{y4Kd0?fKu7f>$Q88G`F)TwWYA#rNWc#;;ySyOSnY=vFi~lqYni zmw(&Px+JRp_|l_+Qa(-M~RdEuaTJvmDJ`JB_O#s=pB!f zuY<12tbtxbzOL95ULylT1W1ZBfbOX@lKnTLx?{_2>qNWgf)aQ2C`__Oa|oGG!8-d7 z5bf{CW%~=X&kyp93{DwuqeAAvww}rjv7fTC^FB#Ru^5K-b0bAWP%4StBguZH?x7kP z!a&tYeXRs{@8<9ZF5KXU`2FP|7MNAHG9Odvkz))`B2}^|O5Rq|B60d)eVkX1H=gYB zpw3c$qeEaM_-ZnN$a37RRiBJk_V6KBy^No2fYYw0sAfSLD!O+3uJY>lyWcMyh;LcH zMn>GgDa>;ypnyO?><_X;@9}VH#d2ObV{dobeqH17TXghsb(srtXEf`@u4t-^AKQ3zkIduK6WPVd)+GR7+(~ zd&3U322;q!h-iHG!DS2u87$@2BeYCkLM2O4q)F5!J4me*+{l^#Z{C~-Jf?w!$2m;AlGoHEPx4h$%Q0r~rS zwVNvlv>#;}$T-xLd{gkFWADI2)Ke%a5TUiboT5r{Rz+c#T`=Fvqw8Ky7-_Nu8bLXg z(_IZTy0~my=PA~`;BPOtheH1oiaJXe zo9*`QI4PC7=r=`%Il@^Bggdx9x`%HBiTnchzm51z3dNL=@7`HpZq^P|*dklBuQE?F zb$+cM$ty^+_)h2>TvuJFv0i#F-Z9ply3ev-=)N=;GW(x={TFwm(+2+e1|HCr(OY$A zYZ3up3G^IoaGBOoVB?oa z*(K{{G?}^}FfRiQSBm@uv$qBOlH~JMDwK(Jzdy<`!gVi#3MyPK_$zGoJ9mHrb`3DV zm2<7Sog4L5KZ4|wH1g2;#XUPL@Jx*x;$lGo=h;FJuvXSr@8hcjQ6vzI3s)KVC{7vc z1V={1WWYI)W;Ax-W*#o8Y8BkRhjF%opQ;36xpfBSbcZpa4~D?MyXO{GZKaH3?N+gP znDrM}_!7FsS?ZqsnQ71i-^1PRdy5<)8w2~J_*i@pYhgnxNWMaEg;o;<1Pt>>RV#$Y z)FUV7>tl@5NSxtEVvPAwbve57gJw9Ng0KoCth%@()t>2i_|SYW4OG2^p}rtws0=bm z4yf}-xM*ZskI7(VqnO+Iq>ar7TP+y_{YpmwJ6LVYMe1;xRFW7`o?ZOWP(WJV!CJx$H2wt7#G%=^?kE%KWR{ibA? ziFaWF<_=VHZusb}>#Z~=kDNd|{@&u$QmQR$LtXBHD=;Z10C7-!kk+pCz=Ua^R<@+H z71@>w+qF9Z3~V`vqk^Ck^I|mIsS)5jm@$(7@r#T#c9Z^;8|L`6-hNI^PJSfY%J-`U z0jb3AlFm-)YQxYKm}XgpF7RNsrh$vt`j?JlwPfyxm+$>;NHsW$NNVxLhsV>je4o1TMu;1uS1ZyB zI^Qze+L2+Ho9pKk|J{}11hQfOlXYNW+9enA>a4D`biS*7yR}*B1a&RNRUL3$Nqpl^ zw$lP5f%r1_E-t#LB9NcUQ~F!&Dm7G?Cj>f93s=p#l*f7PomajFLBD8^rNkZLf~5jF zy{`|t(f@~0^*=#+j`&EA2r5N&+#CZS-EJYtgXEJL*{~Lkc8qH_YSd+HW(s3$b%=FI zyXEy81h>amSvue7lBw4s>uLufjeexv{VU&ozWFOYr`~u*SEq80!W@WQCTA|p8bYL_ ziJ9J@^Xr^`zj18w-IhxK`13u_2-$OUWv0`y>U5474IhSa-_4S(-QDFVi^XYz^3YrY z%~pYe%e1Qb%Nz6_cJ_x6{x3S(#?y~CJ1;{gP3sis>tCvrw&?=kSps;)7Rcm(9@k$n zPg@;1c{&g z^E`Z+g)Wll(6k}O{FPI8xyhL8@CIGPm*r-|vnpC(pRwMM=Bt2b{LCc3KKJvC<#fd- z&pYHNFIdhuC+;veJ|E{%ixaHcK;K#6t0Z#gB*qPiNA(M(8cVY_W5*CtQHr3 z)t_2^MiF&{D2jSPH5lmCk~j^Alw3$h6_AhZoUeH>%{`|UP+(h1UzQJ$U-=cv>!-I5 z-a;bb*y#hhMwN#E6$hj9$<{>ib0%xvc;_R^W0vgU_h%&y?tCDJ@~#57ZM{JQYeSSZ z7En-eFmK=jK(xFhUQUmw1l~FS?UPihA2nO#ZoJ&Bpo|;E%AK&|ypPj*j)<*ha4@DP zG5cvs!!T8R1PGA7zn2pS=13E8Bp>yS=YN_H%MAVbL<<+e;C(=~gaqmJW)d>Dpkqj_lt~L)giA#w;~ul=wH15j zw}u?UPM)qZ7RhO#N^bd;8@0Rj&hHCbPg)T60tET1>nWeh7~9|oRf<9)pYlXJ)?jqJ z(4R$;LF**Jr{6O!+rOs7d)%fSLOQa9Jj(z0&7qZz+-z(u|L%HXH+_V^d%T(~a4*xk ze13P8TL92amap)=A1mc4l#>?YsI7q5v*OerwL;i{+g)Tzz}$pm$^x0;h}Gt?ozE zEFHHLtUl6}Eta9sT4%&Eft}woY!hLl6;11J4F~VH53{^~rn%g1_3kF?JNBm<`Fap3Z34-48Xqug1URobW{+5!$&aH`MIm zX6)QpR3F!?i_Bb+v5c%1eS^}e7s@(2*Zhp}3Ew&BdV>yWzgb5aoQd^8t5uE@d_=7N z&gWh!@@J8fH<>3<0*#bW-=RGT2JvrsFnS&ant7|rg@sbsmDhwCcugTpzr)q=BK5uK z$Ghx7d4bF*2`P5mj|>T=SrB>CTH%(FyK3Mkvg;hi%xw(*QJaOQ=GxXNEhJ-mn0$f)G^%#@K|4jjh5gnwmZT{l0vf7JgYGUG0gF$zxsWu^ayP4&i zDSaECZz|HOKQ^DgFc%bi$GaW>P>qZA#L{sSNfzv3pOUwdhBDiUYnj$+ zAinz>OMHuYj>VXVw#YW(+J7w#tg-X*rHZ3bINIHvQA+6zC1Lhl^@xfdgr{>|^PYUF zJ-t5~4ZfO4QlI2iPi8bKmnU3gC!=Uub4f68*@ADcbgjME?fl044xKbNVg0P_DS3ov z(TVc9NV!GMQYott^ri!z(Cs|O<>#WS#-OtBog_``caJ*Rb_SMC4Ql09g_+xoni2Z4 zA(9^!FhFA7?lO$*b9Tb8!%D-<(bYM582HLkiv7TRG`*s5o&hnSn2=k1BX{Ssk_yLK-0VX^E42HPY-!WeqZtt0NU(C0p^=s zVlE7oOm0~w;x7rxBJuBe7BTwj(Jn6r$wnJj?8~qo6u#`uX(t{#jWRX)`?Bi9y#a*# zTpt(U3$g7ZE%{!Jr)hef=r}aYC1SX(I5Z7I$R$kLcU}`zzr0f1ckH{M+>IPg;Cjw_ zd6b!4`6l$q)_3)8$NaJR3TrSiGNtAFE>wQ5XQbf#hOD}?(Kv{0=Q{i}N!uvi&|?`v zvP3NgotP8s_&Ops_TFX1N#b{V(6!%phnMpG-Yb?i;L(oH(c1U34u-4FR2CR!nsVH- z@Xh50=KkB}ePzBA!~I9s>qF2`b#i)n(cHRpWn0?zfMy=1EtQNGvH6R zB*I21*3ixQVLZnzvbI69o9aO%5_-bZZ_Vp<)RR3 zz3Fq|-WYJ;!FCyZ`I+&N8l(cL?tOT^yV@U3x2r5E_&Jt_0vG_2=p!@3iERgC#ikrp zW>C?5^K!}ksn>G59cA7ZzQcKf`iLg<^jp35|8RAdVNt%_+7}!I1Zn9QU;vRu=^9{w zp+o6zC8VXhrG`#Hq@@v%?(UG1hM^mz>%ITav-h+2em~6z;5hCBuKQxGb^gwCEqPp_ zPSsy7c`ENMSsva0#ZJdISs$07$tzl3(;0PgQPh5sqo|_B zM9;ZeP9r?o`3ZWoYxuWD*mVM{Pp1oTpsEMde7a%(k}ox|dsPJg!@{r-qIz9$p<=Qj zx@aO;TX7)>uYj#t*ArnP49H;bo^MtlD9&I)oR@i@kb05^I&uek zKnC#m*S8+Ick9<%(7F#COp)aDPmQVk2rYdNe+n?Vuo#Qy)(c-Rh$XnW-i^!j0XJl> z%io7dM#teHZMj+gi@sGWS(8Cg-9es|SCCYrtL)G|v1KoPrtU{<7P_CGx=0pOT(U%N z25*mAa*~%?7hTG2D$Qx!H-H$;p~7{p@Oo(4%a{G`gzO0@DM1i2q@VZ2?_|)V<#1Aq zw`;=5mIG#bY9SUem&$6msZy*e(^oo4E(Zq&VxQ@}kd-?gjNu$1F&=bD31iq1 z-wP?%VDxIViMORMo0eXQ?=xCWLB^(U`Mg`XHY7=3R>V;IGV9Q>@LredIjMUW1_6Y< zaEj12esJ496$4KS8l-|n4v{o+Cw>Ug;EGgaLnI`1>^>=tPI&E}OGLQO!2fKZ@}((V zx_N4HuX;_At8t=c9@kkzo->~bdM{6{pb4ov877gH3kVX2Dg&nd7&I;Oyz-@=LLB7Y zegPvW`NRf={Ii$6f?LLuP~j~nZCaB~uU*P8(i5$qx60tv`giJzSS&znb0nsP0=H8~ zT8hVM7%niuIwfb7lvqf_Tf?B2wxTocg40XW(N+Qn^@|fG>UgTpv*JpkJ7%f-eUzp1)k#~Ko=W{hy;M$- zdJ)#BUzrg0Ro-0=^vE)yqYej?gOL;g$&mJjKE4Xl>fTR{gY$N+F9Iaw$s(+$NwrY3 zOKWqW0l%LsLI2AFx08PvI|rQ zo80I4toKI6%U77;R#FNhRZ<0Q(=3*4XC8prlHP$3+mDK)f()-JJ%PC}biE#A>Q-jd zjnW!uv7admLSo=mDg0!R6&;%&Ecj8DuKt#q9`Sdn;@9SRWAi1j%i-o$Uk*G6pWJ=V z6pgYtC4<%){NGssn)+;njC$XKp7sFOGL6=odV_xEMifb%>Tg0e+s2Of=Rc8y*M=Pv zQpzH{f2u#SEPLC5fXOo)Y|Kw>oh0Au_BpI%+MUP!phh#-v^TmUz_BI+H{(l$JQ8=W zgzd7OTzxcCBoU9>ipXUMO%{l)*Q8X&75z4gO~(EHuwn1$ zkH+IeW59}2GC^txwt&LJ#jp7qwzzOOc-)lCWx)kK#+;t`W5~w-hsv#zpQBywr%n6V zY6LNw2EIqZc@@Ka^9o8G*T{JtC3P`R#|XNgv)dF_OJy~`_<#X5!O&0()=HLa&_AOil7|gohtg4I_A07hKfQ+3R{m zx{fYvz){44Py@y!;0>24HMK_AfEn%KlsH{KbI)w@`cf*f)8nN#7Ww~ib6xR(kALFB zCpf}<%{00Elir1vU&0yvt)r9ghttT?Qw$l{gNlv_Sn}U7(JSsR*~=7AFZ!Hm&$n!W@jxVT7bKK#WngL?}+i^0X>9q^qD`1#Gx@-7yQQS zIVPl&3SeYu#uhOnsH&lkgNi>lB)syDN*$fM01;RCzNse^hZ=I!bYAPc`&*mZ!z4P1 z;t6*zNtX8y<3oObMYShPt^5w67k4LBk0?*YPx)m&_2g3b6D3U2xUP0PZX0)+-TW># zUkfJ8J=@hs1}878to4_9|BAmh9GStCo1P~yoXX<7fw@z~J1dLvXfjO|j5es6p!Q?i z#&<=X6uNRU-aYti9mq+vqv;z$#-2;PU_2nJl;_@krf0EMO0>3}f4GX7fJHn(nA^}j`V2@O zTGVSDJQUghV%|t7sv5{=?^?*PW5X(eUyaVZ+gxo84#`V-&lAC5(G7Viy{Oj`VwRD+ z8(W1SH;9I!dc(_3a`EY}XGtBtw<3_S5?VC=-S{t9{Bz;YBTf_Fe~%x}Kzv5h(8qk^ ziKLq3*MV$yA@TVhNco~e7g>&loxc4Tz2QfeJOxeZuueUV{J{c@c*~xM0`T*D?r?3x zY;_U>DY{cY0X!7W9z6lmYL+g4GxX4Fn=uU$<)x3}C&29EA}%<8IRJlT6kWWw`60Bnut{$69-4pP?c_e681I#(<@l+B0K%4HNRN zKw)ab=>7JytDmD{@2qj3;&!RAR+NeN{+ZjFG4NI7oiz$1@;B=lO69h>;w%jvOo4cM zo+mIn{vMavtKze4uL>5JoWlJ|C{4ZE088E`qd#goi?*pc=}{$rYA1ftEB2r|BD{`W zI|lxuC)G-fIx9ty4}1;yPSwJu{o*dGl%j~Ff&oMK{OM)lp4 zuiGC*<-pgC`L=cK((oUWi_(tS(G-^t@dHil)EseIbws38xAOAJVysqTQ;n%PD#6OjeHTlD+cc8 z3^n<0Tn65<7I*rL=apSBS{aFw|!0I3DS7ug;mf1Nv@w!t~%w&zD zV=l91H?JAaeFh_B{~W=`MtUX}G@yc`apTz1{^pj>hV(J(K~OADGVK4{ky@$vS3tN5 z<#&M^NbFb|y1|9%M48mjO~LSX{#G3QCNr)Uxy`60j;*v`Hte=1!RGQM=*lva*Lj?! zhU-Zs_zM+)GgG)KfPIf;z6VRQ;#}n)3FNBz9|&9;XPd(1`U}M;$yvq(uPdm@qa3IFJdE;j+u@xa@toU7gINv2fqk*^oO_#1s`sUQN2@j z&O5(b#f>XwFV=G5tG(2f`$=v(R zK0+AN&n1JM{BR}VGZ49l6w#ueBhiqxA>bY)%4p2Y$Am1QhWBOhF1|l(Iil@Gp3fL0 zq8oXyM9ml`{`!6TWV|hx+9K3ebTL?#Zk48=3{EPCipl!%rP10Vp)?&G8sk|rYcC<6 z3R^#m926W2yWL*HIFtAAQO}9L8q2bsYdss!C!mE=uY&3c=o0ulE@Vl=!m)nPJFoBq zy&#Rts@&v@-qWE8n*TU@-C9 z7XM~o{ZeVB_)$ANA%I_kK$Z)hrq>fzZDWSJhSv(Bvz7)tL%OYm9r$m90UuX2(3RPU{tW zv&@J@&`U)x%D)E$Q5daru5*i2i>hH}$$vMc2l?-CWMnJ z14sfnihocpzB1kFDX+(VrS8b0$Ky}YLLUt*$d{+_InW=GOdPWiAyz&-TRfs+Aj@GRLs1PEaKo z4v~jjNa%;}f=!0T(ww_Dz*>=h-HFA>M&c#UzpGP!g(jp4 zJpu-at=p7m{~Fd1ot*lnoCg&%u4l!Si4M{B{N?=S&c%h$W0K3XHo811)wgNc!h)mQ zY;XkP_bC+y)93;t)wZr>(QF|*w)kMui}k|b4i>4}(0`kac0{CQiA6h=g~O-y(ubq-49HNpdc85Tp84T{8L}3jip7;+%cRn;#jnSTQ;dg zIN?)OSR|9k5v*JDiNW?ybvSFbeaDZcCW+TZI?I%dew^YmsIu?sN@Dn;NO*&vXGj05 z0Q3V2Kr;8XXjMBVL*HVhgVpb8i=n?+5fBW>tApeU0rR0(?)$5uTyv4~bWDBtbx-A= z-mS*$eZhxQYie(?>ziH0%JeVY9s;|P-}w&=Jg+}GY&5?(pE3Rj(!v#=(|kPt>^vNk zFoc27s_HEhS}i_^H$$exZ;Z=O$BonPv)p?ep%a*k_?vaO0}iae!;Hs!X3O`_`odzF zOxy#+U<{khkC_UMH?Q5d+iw&0+eN=8|6p>7;#0+fjKf4Gj~k^-WcNMyC^e#aKF$-X z>>s!eGYZY&A{DCJInzUxPoH}+~>orSuwQ zYn@y}wkMiHw=T(kLX{?3Xr6odkCaxSWHfuTL=~JN3^x%hjUW=I1Mx8=tX$Tl49<+L zVPNFsvFl-BeU&CZGT58W6y4_LF}YTMJuzrZ3_E^UjTZ zf@A}t#i432RLroKQfL*>fbyF&>@0v~>NExyOVnnU~n zPvZvTR+6mtHT#j|8vJERj9;BxN7$&iImY+*Yi`_~gfboTZ_^=Dna2wm1Gscvhj!s{M;~f9iP?#WJ1rdojLX!)r0)=H z({jD38ZO5=*U6yT@cH2N90nv%{8hFdRZqR$a?9xzp|YRXakKNzf`E6ViI$Sc!Fw_> zV+j~W_C`(~L-!Ze-yf3vvot)Xknkj(MxDD(pllW}VL%Svb!J}Y7cBLV{=`0Ug5%RTL{I;stBYuy#O4s~PC z!(FrPE(v$We}+;MLJ&hw{c{y{*^SrP{yC#KjD`i}op+S(s7XSfXN^6zPy|%-6&s(K zh^Xegxs2jlMx4(WD&vSahp|6(!u(4nV3ivSlXlcjpVgN`?Z=FUa!F^%BSol#Sr~a9IB1t@~z?zQB#dOl?Rv*J*6!rR>SqL z2JOyU3}h{uMX@iE39zRNcQ4iG$_2#9sw|w|cAm?UlGj{D!Rhy_jYowmE!lGan z7&c)MEZudWdxyh~d{fjxRWp5XPLlt*5(k%G@MaE|{9@LV??IHHxuVmw*COQY1z`Seno zsWsktz%J18u&MA^b4q}_oRLHW{>NWIYAVI2jN&`~FAr z->%aCs>#~yX#5Su{9(OM?u_E#89W3^EkqsUn8`IK@%kA?%&;HA16!Fik<+2j3 zy2Jvs_sNuQi{dmw5j_vg1x}dhAsCPxaj-kQJY7zq?feaee;0X4d^G3fvSqrh**gW| zqo%!26O@JxzNgDE=50%!ukcsedpF@TpBByb$qM>)?b=^I`Kuc6glTbV!_QBJna1~T z_CDVVv>s#_`nVT0v+?ce<*&i2*FZwhD9nZ1d)h|f?Ij@tLQfeB0$**tm~#YX^V3z= zNxHI+i4{wbMeCwq5?1Ce3DXK%$bNT4d47J@+!+V28nNDjm zrkf(E_BQfCcxN?w5{H<0vT8vDXpT{UHz67u6*HU~9P^F5RA|BvRdDO$vv?!B*{csk z#ik5hD9uvoOKV?tqJZ?;-`N9f%@S%*cY$z-G&QY%SWsLQH>dV6u=*VH2}BVH0c-+1Fsz+$S1i zb=a_2cFU*BY?kpcbv1ajD{EZbHi_r>PiurxmpfkV^u$3(DSt;_nGC*}>ah>#9Apg8eiqK|Nu|JvIso@MW(09gHDG#$6UeU5;FxA^zBJRC_Xcrd=g( zI~D`%T2=QLb=P(7Hq##guqV8Nom`NM|AviC)z47L0F4V{;teXj?>^*fvCYM?kEig~+=7jlr{vN@-r{QUrJ z*_-8{f(Ve1|N3XzJ>NT;Dh7m|UW3!C^%$80?y*K!JNNsjnF{1E!OrjTq$c<4m%1Gm z$1Ak_JxA5!)wGI<`WB#@W4&eSpbXnzi_#Z8aZ>4@8j6Soh`JKy?OY+nLvr7JIQ^t4 zY<^`26$T8Yt=B!2=~QcrM`%T>6yp@r#}siDvurxS@PCNle!2?z)8On^ndpVNp!7Q^Luc!fy=jSh7v8lHivOXnbBo{$)x*)g*TAH%d! zBG~IHEB34zDem{i6)TI6lSHQpl3n04Uo(%-eWdmraJS52_HEp-zysNQ|4O)@Fnv|i|;KkaSMD4FB zi+Sbu__???Iathy&8)h!VXo&IkV@JmLk65iMcG1eMcx~peKS9Z8C~}V_Of=MVUXkP z+TnOlBiBl1LwBszGjcTravT=Za9zgJf;ZJqQTmx7jL`g#)70S<2}KM9wMUcH21&mh zRp&FI0nRS5qbWOiv>>XCwBg>r=8?+ww%=53lWkK+!T|WNG|G=vO%(?@X! zY4>RBIdqXJ^U`Gp-ETA_bg0Gao|wf22zMpESIgRVUS4?H|J`K#^01DxoWE)!3Gl9@ z62qUpAcy=~@Q46#=tZ;m_Xauz{HKNViBO3S41FL2HQ)PmuAu5>w|MY)wR0mW{Zl?% z-)Uj1`B^csUJIl?Xm}WGgAK4alwu}9dP1i8qh+F)FvxM&2#%=lZ11V_b}t_Mnbor0 zREu5G_+?Rrnj=zGroM&3A8Cds#12YbMM2ErkaB_r`S_M?oZL?~lKDtLJzWVctvgO0-wJ#0P_mG{p8eH|5jR9NTo&was)@G9VD zKmelDksAL=&^b=;W31L6%iU_`Q-Boe9}zkz>HVQ>;2U_pp~#B%PD3N#Op^M@v?o%$ zmE*Ul&BDBHU?st*@LBa=f3);e($+Aj;?J%+7=9IXna8TObIcK*m$l%DSj6oWHI2bAtVU%c)pk3Z*|g+2r`APTpB90+Y! zI!-F`4H)7)U~y)Fx4wEB(6#nC&_~C!lxMIyZ4D(ZR{SLg#3jmI3<$4<#!wj-@yG(x zSVAI)kF3UryUjz$76A`EgFr4b2XLiQdfYle=K zGt+x=3TE*}0k;rq?R0u7sMb!LCd9TbgB26vbtuU*<+h|7v{jE*lX%L;`i-b_LW(Mr zBpXUkfjLJ93gZj;DFsAbfz%7+4Ro~`NN560K3;Pa>khP9{ejEs>yEjY3_?`rN>JD> z|1$KfQ3(@r^i;<3yuMT4cE|n zdac7C!fZDwmJkc&X03ucM)R&>LLSjk`%Pnjy2dT;?xGPm(=;1zy)Z>dKye43_nAnP zn%*ZT^Kbik=jGM~mC9abTAMIu+&a^FW-ZRXlL%} zr~A)im^ZSTN&u(!N7rJRQ=TzHh`4@C=5E*0 zvLKL;g;?ps^${Rvko>R+iP4&a_cSS(x|c^>YA65r;9D*FZyCmHhB#Dq%T7-g-?7(U=x{~PI7qn5Sp%VJ zH$be;{q1EkI*o^l=-sj890sv(7}{dPUMY*R*m*+9pKQq-Oo*mJCM$h34Xu1KdtzrO z4ZG8(aFP5}?M^jVhuuEu^H;Z#`trLj;|J88aLX4>-yyWV{C zO>ABKOp$vcP80gp(<&K)h#aa48paG~u(`QhR;0G~K5AYK32!N9QqH^i1d7W6TzO@g z+ze9u+3ZrmQm0Ro2N-1KIORYP^+MI6y;H@p2TZQ2#PDyO4>+AQ&kMX zzrbPLS{=gE_WW8SPT>CT%a<=^T@Jm2H8TN2=$h|;D`aMz)zv;8OX3bbXlX=74=xHT z(a|j+Byl^dcwKkgxy|~r1$_Y7#4+F})bVW?pQd8HoWmcl$>HYb+>S_0N3t-wrbC;@ zt%E5mjKPa`ZV6=(5l!DvASGm1_B4A(K%z8*Q*7O7Q?$rK6eMyv?<)4C5;OF?vz+dCNG zbF6?){D1W(ZQEA2pw^S3r?I)Uyfnsf7q|K;FV}15Id;zNaZjxaedqm&GpdwPovZHD{H?)vn0F zF{1bY_(zYnn7MvZcEti#8{?;I7$u%XxTkPtBzCgBwjiF&7kPOgKk^)(0YT~>1R=1F zxOY7GX1@2-<@jFRT){O_J8d^Omnf-_Df+3*b`~Q72sL1h^?Mtq41C6M+Ei$JW8Pp;p;%S_UN%SS5vAt zthi+%O$Fj2(I5&ctnGB%;-fW4^w@-4iw-51JVb6N4;w(Ogm_3l3nR_B+r~d)zWK7VL zon(2463b}7{$@n17DE}L`br=CpxjhR>e5k^%=@lQ8!TEc@B&9{&0akWL~ha`iov;mX&g#rK@4}6WygcFqxqXvxrsXU9d7Ut7_*8InIgt)Sz>jr5l-ogD-$un- z3CDk6Fpm4rhfJj>jmOkU=R1v^(N*@V62pTGj9I=9+QyGNqJW|7K1v6e{vZK6L}DP0 zAlw20b-cq&E8}mzkc%YT6|?CxPGRi}R!{Ua|F!5kc?!r9-#2ON*H%MmVgb`ReNE5{ zmcid=`rGwR5~EbLM-)5#ckzt+>`Z=z9i}mZkH?ftpKcElGaMq ztN@~sOpmC*aYdOly7-z{pdK$9&&WI%X*=xcn`tv=DK8=hht6A%Hk%(V)a!I(J-QhH z>XJNzRcY(tjcN_9$SGpKVXsW?LE99_BNmqV)Z|c0>DAYML$Oe_ZY9?c{+x%@&)|Y) zOGSOpsGC_4{4vneKmWgU67o3}!~f_csHocbZ6f;OFGRn@(rKelPYe2S?q%IqZ4^ii zGt{V``lwfWX@pv?c?mB7Ds^2}$dlt-o;YDv!vyp-6(4;e=2$i(?_9P|vJ}?-AQ}TW z*J*3`RzSH?aL~!h0~3ak@M6x>v>BC>5FzCx7oYA_$yfiuA5r|XzO>0Hf@NLEr{Ojq zDHaxtt14wFney7yYV)kfJ%84(vGHBiA$Vwu?Yk2(c>d|*Te1F$AC^VGjJffg8=`RG z9){Bs#djG~Ff|-=6lAQjA{PEU@kgp!`UiEN*puMHl|sdRku`OWk33c`LEd0h0jlt9Eop<|Gj}V#B1flX&m7DypGhx0$znI@aZEN6oj< z`;7(0m5+Y@jsu3HZE;U7%-=Fyh^1V%WH?Qeo!YUgw{4DnJ0r`FDDRg1dIYtZ~2?To;pH$z%c?o^Ymc2^CMJjdzf4PL= zCl-AQuh=+=ISfa419=a5Eq@MxeurUB#+WIvqst7^o10hj2PB(smI8ae3@7$?R!lm`m+ky%_$x^Rh8WW9F4jc12!={K`PF0j*JA8{!_#AgM8+Rc|EedS zJAnv#0QVdWd+l5A6PM42Cz?x_;^)3Z{#{fS`0mC%kzq#S-#eE-wdzlI*DLip-B%5= z$8&6rCiiO^d;}5TNpJ7s!(aVHhXk;R56seN1m2wQF*Q%`GuXAB*D7T2t6nVoiq#Xj zSP;Nxdw=#ucTX_hz83d)P-+po>7xha*$;SfEk;;T_W7_*5P{a)21;arDt$L0T#Gr` zrry@wTdWJ%G2+YFA!CG@BKCMaDk%EZL0`YlKGtCVgTMKcq}m;fJsbdv3t7NE?JF*C zdOh0y18(CF14tL(Cw;I9t|}kb86%TbD-t>wsCSm!x2VXTpDxn31-Sr7B{Gp0{3siY9pQ>j<5fZF@>jL$C9B_YMh*ih0rg1R(J%@4bZkf9X_i^6_ROeS z1jW$p{+rQ(+(D-P9^XG&jC!2nrA2P2n1iu*_Fb_u5c}N{7%sv4vJ|i2eE@`>KpAYc zFZme0akFQK0AQaQU`zU5N7dWG$@uGSH$?%@{kf`TpWFUtTALwmK7PQ)Dryhdh~Sw5 zLxPqPzA~5$6}A5>1Tl*y5%1kfCJWt(5NyTKP{x^hAfyq@6tZhRPh#IXI~^>q^P<}d zxN^VQDHyCSnnZSuGf6wf{a|m}mZ;I-ri97i@+bSJal3pGzD82cSsrLeeEDST( z9eK}+2at=qd8gh6rN39n#Ohwc+7_KOG#!d=Z7X97hwM!$v(l4Sd=iP_Ej@44otfrS zI%t*O(L!g%K?CL8p+Z_7KfaZb!Nt)?NwgwH+fREdINl}dGV)Y_gET4rw{PY64ei)l z5W(x@jm*~(+m^f17BwGIAp{F=|6Gm{*XpI})N59`Wfz;_w=kP)9YOVUEY8K8gsqFU zgWu=22W4pws(AlX+3Ef({K6~DJ9|`AU(mER4hFAS>0XSNi4)DwJU?CcPFnBM+IMpN zW5zfdX+0g*HD2TC%G|Dby6ko4^80g@hz{+EgU{F2-5*rQ_(z`-!h_%bwkbTJ&O-GS zX%(Ak);|&n*!^={K4e`Hwl9CV;>#vvtoX;>0(&+Y-AuCMSF3>*j{K?o7*SqU&s%jd z;Z?i$rZdJ$5}>#X#gZ60int*nX*E~`Iv)fgT5KVq2q*ylVhf#OZ0P+6(co@UsF7XG zq`V-g)Iznk{KF^<(cr~3 zUF*ybMOVt^{O}U%1znJ=0k9PDCX6X!EG|r&I$NsxwGIt!I0%Vv=Kxzz+1H@?2vEvy z4n<}JTEfTEGTTm()ua2r=JCQhey4i>-mqSwNbR~QO_Bwh*5{_*-h}pl0EEsutBIPt z9}^g|7Jx4@1npalJ$AzM=omoxBeW;k90q(F|K_`S} z3w0-m9NWA2*-q2#99%IqiOl45i&`f4km-+iF$uD0FmPWoR4G~Ihsz#s(z04or7KVS znM?kBFU#FR$NOt_`%J!?e`k#T?hCp3kIaCF*B1iC>3dwP43azQ;GJOn1@g>S-uRuwrvX4#vqXG z6p$Pk4SZ7IbZYfHS4v-ZHdV;>t}mmS#exd0|V+n;-^IStGZVt!Q4yg zcfx;yb^ep}dweUg!Y2pTu1DuODdRnaYtY71D1;4$sQjzO`tSr;J96qPc@gQT=Qw;W zT@Ah#=Yw2xQWqq;p~Nb=*2^QZv_>}5vFl@#R|_+g*spm_vc70FR3Qc|7)Qmi%4nJAAcD?!q_A0bir1xgaga%v65qjiVz5K2SI& zW%`j)=kxG6k!roNd%i()leVLj2``DzQQ08pKTM$eHBmKNLsY{ zprN5f>znh9p#CWm_wXD1$O&zJxq)^^;mPEPb!WWnveZrczn#SQhi)h_xvcb=cwD4B zUng=5f&y6CbGVV5m>2Bf2FB0)b8W#0vv%&V|MhlgrQ-FWta>eGBvlz3TLTRJD8-(Y z{piK$7pYTK{i658pdJZR2VDbEVS_-UR>niy8Odpl*`!dmBQ^OGoGp5<52sv9l?ffn zi)0+-{fL(D7%O^xrOXM_HCJIQ1;y2a2Xw&#Yye=`ST?I}(q9nQ5L{Jw!7>Kll$W9w zWyFBQk$%H_{@<)Al#mwKwW$@iy<%)$0e8l{Y%V$VSZPK5Q>vKIxUx>1yS6$UANy^1Bb?|l_4H>VJXp)dZt zv6{C!anW{Uicsr%9EVaY|=Q}}U&85=-$?+P+J&D*r! z0wcjB;Q5dxiVd$c@pSYxVAi?k%QD`h_2$!dTHKrC0>^~4^WxjsAXt|%MLJAg-)W`TJC@Xtr zQqRB1#Kw_!Fo~?VqPTl{_XNYlzrrR!Ar~$UhSF8R6krJ$gvQKkv=AStgajrA5muyx z3P_^qlruakzB0TwCY9@rNT$rC^QHG!r>hpbQuW3Q(c6rc%Zr1VgPJ3e#vdB$r8T?7 z-XkKOGp?HABOZbl^H(6_9Gc)RIz+|GJ7epc^&+!Z+`G>Sq8z>$n590YJUb@&I$ zKef+r&+AGDi8nt`bbX0>@j>!2%&!9j0!(atw_$sS0m4>i;-sk#o@prlxrV#|<;w7Z zgjp6s7X?ruEl|4DbwjsT>oucX&(ZUv(Y`)+mnX$U#Vi-!`~^)@H4ND9^}QJ`m(kc! z#f0pe{hWB`WF1@w&E9z9yYc2ve#rV`p5dL8?Z!zvu1|&6zA24lPzcjt1V@Y3!>o*$ z&XP1TyOUDH&^p_K{N*8RUH+Xw+`-;<>rd&l<@dj5W&$XALO++*@JutaBWv~3%e}4g zr`hFIcwU$2M<<7imv1+>czD|yZVYF*>Nn?3E{o6gn;a^1I9cWl@)*>q%&4SW5+=x$ zm#RvY{dDMtT+CHA41Vj0NLtz7SS98qal)cN7mkO4@!=o>f8e9e5I-dVdfFL}wSnso zbxb+1{^Rg4GNQY2xj8ey{-8}86EAKgs=Fe3rH`R9!iK1CUUzRwYFTLD@{wKa7CEE% zaN6i5YEL#wZXti!y2Kwp@Bf5G%V?fFPA2m;&8rxt<#)A=#q_-^%rbLdTi+RIdo?#1 zw7k3E`vh6t`aC4RtMKpVaQlW2N9`Bkzt1tWlnHkBG4B@PuX1Jv9`ld~1U%pz&F$n= zP1bd=uUa^+cpV18GtKPOnd}%EcF~_^SyBh6T79?7I@0uot0o%TSQI)dCi*qqyzAya zxV<++Pw{qp^|(cjD|VflC&-GmxdM)(%#W67bcK}2f9c2sNskd?8i<3r2oZhSwJ|nBG4^|Sc=Yhs*_2pUz+V=Lk5JGFkYE6^Vnlu@N8wo@L)D~4j^&>JRU3Ar zRximjm@G|=3#c$JS{)TX-^u|}Ia$C2(s0VTIrHjRDttLX0Mdg*sz{(>V$dfT0?CFj z0s{Gz0v`%bJUHF+u*8q^(xz7vw?6d%^$H@mzy$Ks=n!GTD0eSiK(OaSSoDrIK&wiI z2|1udfVv!qVr@&!t|nT%+QOGo#1=Y2@MSLWgOQsc0x8H&tPHD1IKB)glQ z)Y_yZIfi*z5=4km??b1JMP)I4^;r9}Zo`L-)8xwFDBEkb;!kNi*Frk>=s#%k9aWl& zzOM6a3z%C;!+K}L_UonVpLsXME;sF|9FdD{pMLXDp~TtcOriP3n_UYFS2&4_{rF*sxH6w ze@-x|j2}MS2Llv`OBD<4*dl6;!hjgcfZ`S-q1-r!T)AB?(WNSzXG|wg)&&;MPH#8s zU#4B0yh0y;%e36le8=K;z({6{ruIv|sm&?kVD9?#up2k2w_r5EX)>Y?@bg?^&{)il zY!0lQpDtd{3`{X+O4;BXN`5!a4~NnrFd(SFhdnFk6M&ghZ)6?j3=a;JOUsn=r>)w2 z1-^<4L9J{%eV6qxF8Gl3&>{BQ(iM+A{SM6BBNJsNz2K_6}7ALQ5V#kLj?3*fASFwA~t_MVWy1OLDp z8Y8<^@6VWoo2N?zn{9xv*6`g0H3n^$x+w9vkj9p|nd3bYqKp(d%m+Qf%yftaV8a^_ zqEKfWg)hg73P@|ji6ArlI0YCrZEO&XkU;i$nc<37)pRW=N^VVs2tVQ#UHb93^jL%EADAsG`&aligr*Yvr+q$_q#g%aq_e(2JlKkqJERCRLTnl7FwQyy9W zCxYXl?QAr8FqtEn#J~+@X63o#AgztYrFF(98l4A4LFm@rJEAm#w=ySx7~79eg&r2~Y74fig3Sahvkd=z8>0#56M5XxK>#Voa@94$@6J zJR`hqEYH5qX%1S)lMI?*-4bua{`+wMbH$!XQ6JCFa#8phYNiz@e zC@PvPkHa+oX&sn>w56#IA!qyLu5+)N`e#;I=eMCC_}d)myT6w6+sa2xE4;5(veWQW zcit1yOfvZbg~^}qPgN8a>2P0-abLhat z1v7_T`N2skQ-C~9Lv){X(X($nqA4I-mhd4abWB9 zJ{O&X^<7ax<7~&KU_U)Lbbrkyu>6&&u_1^+Sqe<+0J5DGg+n@&O)tafhl+<1KFgx) z(41!Dzt{>C5hVL8`;68s;_N$HkPa%Q`9e=f7Xco}ah&a@_}{r8nhcJMEsepyfwh=# zaPwd5;)CL5qeFsX@2RuRV$ATT=wJGqF%tBn@VaEG)AcKywI5hT!c1oL5i-s%8jSzc z80N1MzJq~jxk6^L2rctTv-Fc8LpFVuuG;;+SLe&N5gR?}ff$fRad7O3f$j~SO#F-S z@ktNbX@#Rdl&_oA(|22y!W+lk-~3(qoFGFM0$s&7X$N57Wk)6g)}N8GA7OvK_9zp5<@SdIzinbETsG$n4&D=ma=% z?td=iIvV_x;eqwD;Zyo_++-%ckp$Z%tR*CWn``w9&ZmU(eM7c#J0o4S1*Z*%DvT9k zGEf|_2{3q=VSx|Ww(5x5I(fK$j&m5i+;e}&bLTW5sup%yw~pZ_16ZJ2%Z2&w>BB@F zjd$icUx&KQoJ_RO46tkjJ60@;`f5$lZ~U)ISqr2T4V8#EZ#S~^f&Esu_=M>{E>o2w z@mXKHGM5kSU*8!?iwBC!x(-+Vz1w;CL@qHv+9*)Hyq^u~j z^eX$N@-9f|i5o+iU#gQmu2cvlq_${*|HctyZnut1lLXf)cM`PK)?k1VdRWI)JaU&*`>ju8~HrY!`8GjAs0W6eI+oA;SQJk zMOH(iivpb;JJmkdcZ@K4w;E8Kw-f}$7zBzF0O|=aiaYYjhC2d&ToHHHbjTntI&xej zZ@cf(2#E?;g+ss5%7&ORMow+Mv1i?of82X?MnjeXtEB#4RbL$yWgoPSxU_Wlx-2Eq z-L=3{A_{_Z3ew#n4Z_kXN`unf-Cc^n0@B?qoxbbyz0d3O?LYU~bKvZ~_s(zTnrmjR z`8@wHX{?;BT34-8ariTb%9! z6Sv5`eiPds=4t-~L!d&C1=clf09oOLFJGV?Jr^8BSbP@YjiY0p<)WK5IG^&3v z@;^{{c@vXs7l|PJC1Y$~Ew+1>iD46A9o=ft-i^88Ub=JcBf+g6aEQsCHleiwyG%EJ zZ;z`jh=Yv!yw`p;0SgqXf|t1K=X>t*EB=1p#~AeB-N#sokvs=u5f6@w{ zsfCR`r0v1@s{dog#h6Gr!#9LtD-XF#nhGI&Emf<*txB$cT&@n`AD4SO!n{Wyd3((X z9EYN}bP64Q!8+%L+VKa+srk0h2SC(ij-^-z7{HR*QNEQZD69gC5NVAb zH@<~Xxk-AYz_Wp;oIi3^m?Ba_k)kpHU*s<28$%rVAyq+4f~W0!qP5KdVZHuP&+WLx z-{#$w*ckj(JXMM8EcUwqX2?f*8PSn7b7sD?x~X#1`}~RFD5^Gwbp5jMSmz}@VcpkxNZWklb`xGPh1BtmYbNe=<-+Ggn zW`;AkDjbtEm0_fNx%;e$L<7I|Pi9jY&q`&=lrXj54dpa>RN7yF)n&3&Krr$S}sN0vYTNt|C8Jqp9 z?;9;Su;!Ya3xS9k5k8aC*`S!{(e$Ben3>B91$`S)e!Gia)xtr6(HV>G4fXOHed`}> zSI~UZMs3^~mDP6{wGVey1(FIts9ktBxgE)Q_boQy15-H1NzTtOrwX zTyD(_C+)P1oX5}xahkBHt&Ap6V#QyPQS}`T^$xQqfb)>=N1TERQw}Oa zEbsx_kOnLJ)CE2kww8G8E0a)^sgp|R^P0&Sv_|~fa0R~{& zK2piAs{dvHBhD;FM~Qcfs;^2d)- z-wB|2v0KVWTLq=*0*D^b&(v;0zKRG6s8mzd@mqy!lf4f%BaFu9gms>p0^zD+kR2SBPygV6W2loWtGLT5F3s zGu@`VRpavP61%l-59fpu_6AnT)V!ci&c4sjl)mret>lF}7pQCXL;&uzqJs3ioBE1C zN(`a=zjo?i`1Hfk>(>k6l46;O?kT(*tdOUT!Tw@G!~R?yDaLl(UZ&h^_5orDs>6E& z_GVDbNW7Snp{lcpHv;qd@xpE#{Kp1H0X^&1*OZER#L5LxS3)`BS5SH4QIdTk{9_5|gC zm|*|k<^D}|_k)@DK8!RP-_ht?09ew)uXHSn^zkyYGwNK~oAr`vdgWV_ZOhZQ))Y&Je_>o;HA3)XAGcA3bK@y=db)iQy2V1;IRwY=qI$$N zmG0&9mVM;-@EBrQ<}mAA2@8>Hk0I2R0=3{>=XZS89KD*k@Y zt(0rUQqz`qfTr*y%YMx{ftIf-XC!KliWJW!)$I#LD7xI4ZgP*N?`!2;Tp6JWQ5Fdo zH)N?i5fI-Ae#iYceLK_w9QUSz<9Qq8yz^|5l|8;VqhcM+l&w769aP1TKNO-~E>n80 z`+eCyy9E;h1J?KV;}9e3vK!yeSZz#yv>Q@X%OM8F?yRoI?us{HJIdyj5$q9&|0V4H zT!>|tqY0qf2g{8s5xC1WEFb$zmDhy5dgDKm{6j}nU2Q=? zva|Dj7n+vn1xUO!O=NA1=)x)T4Ct*(ka7tz{vgifF8+IGPB z_=F%vp~)uXqcGiO#R#=Vf%InTYP%nF^CkA`hmA^0yp0+;6LkF3NThZ~0!)@s7_HSx z5v!Om;W69SbPv}$C=EAaK%?ie9lZ=spuMpy0+T^1Tm_YKfN@TeQe+q8myi;*M*6fOBYA($|p1xlq(2PQgW2r$E6C)!8Ri82HdCkFwZu+X-=ph$a+k6Mo$+vt=zg?3@pH4?6Lty``> zOh^t#F0OjcfdYc(r$_KEwR(iKxof?VK2me#Uwgs}`+IoY%q_^6){<1VJb5l`DiH*T< zui3MeU-^O*N)nm1(hL>WmDVrsV^`bUlADtC%XWKjp|OfazQyP!TGSWijRfiPGxKT_ zooJI+T&$d68g73C3MgOVrPO#3DcPL*%f`jlX)=*(yXYYHZtH@DqgG-EC!l$V z212Cz;d#@Zh9T1@1x!y5@=QH)O=C^_gKrDb9OUsQHImBr0s*GXKR;+r5j1_Q6~6xN zVp+92^TKtj-nhSNZg0wHJfm!Y=xSOuMeORAH$XD z{u4Ny{s89niWWvy({a80<89LVbp^KBTaL@; z0N?iPng@C&!4{0wr5Yw8%wG|qQ*_Fh5w#na`od!bj0@w^1WT&**uCSt1jTj-NYvS) zVmr{hW(glXGJ7mf^^{c_f;P-{gK0j?As6@jOz;u&c6D!ypVBS2!8J4eDCgijn(mFj zPv{fDZ%MZ*<{0O#KC#dowLHtP=|> z0azJxpi5C0ypByEf1%#KbuB(nnA$KDeO%G9vR;Q3UOG-hkx4(WPwuTD3&V5f(JN); zX%Y}psHhCE4lKvQ0{MNhK?)CJZU~eEQM1Q3<9S%JGmZ)0uP1d$D1wj;!`#6D%IGuz zA#-9ZUspJT$_bsAlotw71e7sxrFHOek>_TisII!UdQmT;kKB0MoJb+?c`o-&s(|Og zstDixtMVV5_jC5h1kf&u0P2O?hka7!S$bW(tmOIc;rT;02S~|y zv(aHihbut(ovv!!iUbJ`P!vLJDyni0zFhwUYV1BrAu;-)nopH=B+}UTzD+8`&b*-n z$9&N4lG~?KeB_UlvyiVrju04cN7su!cz8C;{3&xjrhcFv$FMbHBJU^9j{@Ggp}?D1 zKAHK0N%D%C068rVhdDPEXk~aAni@yOZJ>=H$94+tgF^k5x%IxmPmB-2HzdEFl5JD3 zVv=vd@+RUGNPY$O0OA#ptkwH~n>>}rIWI^Zt8UE*#MaZV%?aEkn$l?z6k=BSK|);P zi6TgXBhfsixa|EfU0d{%`RQ;)eS;L!m&;*3^6Xed$l(zZ8N>kH07w)Z4n^m|+N~|c z!6f-8B7-0@2giRKlTDCmx1l6?_m+p3C3Brz%=}{lx#po*^@TJGmhdlfbpWLSbCbM> z{xJs67&S6wji><-)e%<)_uz1JIXi0I3u_hhL%}7?0l^T$D8io9$NOQW-x$1EUPto` zGTfG6OhOdQebQ+&%S^s*NJT7F zOB=8IJ5K-e_RAr`MWh(lck7NoCL^G0Z5;$AQ~&0d{kOxddU#ga#MzVi&FnBwRW<6hnhEhflRu^Nsdu6vvon8hr|h7t_(&3Tp!Dn^k<89 zcJEhdHKr}!TCwEfMiaQb6V+sMF7q*x9bJ>Lyr~Hjf3Ky^W$TL<@O(lfJTo=v_eZ6(8}GYmaf5a;U?rbUv`ufRC5sDsRmXGfpJ*og+; z!TX#ORB-2{_;%fVtg(dLPa907Dr&W!_+tC&lC!S(Lma^#&>@`604nzv8`i#;JU z7NjEwp(RvD>P&>In1BI9iWMI?O#-*z{l1e>8x+kx$Kx!+3*~l|t|;@c!cRr`dvC4h ze`KM!iW6b&y$?iKMovvApernw%ExC_-kB++c%^}3#R=qV#9?)Loo@UK8KD3|c_wME z57uhx0?-^OK0G2OlX)_EaAmg(#v0J!SV>s7pQC?=JKEt*$lRQ|S?jg(K~JjzwWV=S z3=1@y0pM9#r^AaaK{+NCIz=*Rf)$Quic$>()v;=vfG2z@eqdh7ZxsYQs6_G;C zDDEJrtJ54jofVCo7@()Y-ror;#LY_H!Jkj#jN7UW4Lwdf2hjXTM(m1TQ$6LviK~1yWBnXMlxO2~n6MGaOZV_M4^;>j zOjhjAY*)vC3^*ZV?MkdpSwT`JnSgIuAZ+2HcPs(aKLlcO@WhB<``O=fYsze`3+w|| zj|Z)8@(uPhHRIir^rKtRJ{L|d6;FgyzW1qWk2^zay~WN6%2#$(My=uP)fDI9S3~L| zV9MaLF^o5LW*3p3YwnW|WbHMX5J9K26aLV2|63&dbNPz*Xz|IiEBbF7C&x;4jup>| zZlL0aXW8X@%?<7zUq^;?Pg|YPy!{Uyy~!3YaSwUb7&(A(HlyQ7r;!RnvKz02d4&xt zJh>byZLP~V%Mz^<1cwhvFjet)?{^BjK^XtXzATsn?C=AEgLJ%v-ZSVwZ5!rV5I;SC zyEhS%L~7Ge=k$$r_@6r~fgsaa$@3ja!};Tak#GiivNUf1QKXCvDw-lA)Ump_r;7@Y}`21lh1^Ci@(( zedLzjbA0+x)@K?Dx}c&CcNk+|S(ThAx1p(6ozd)&C9*^tzWMSs5d_(<^%Rz6`+QaR zEKGZO%R}^D%wFN3$;BKJ->;c`VdHmHBB0YHE2};~r8X$nnQ-;ODo~{BsxRwyDohBMi%B zBoG;)w9Sj7%yyGKCj)|)nr$a@Q~U!^F-rzR)zHn>wM_pVNn~g!i-rIr3axap-}N^Q z={GVLCufO6F}-ka({nWMx%59(yNNHAsSiwI(bH;vLwq3Gc6W8v2PwTCb>%N%a5d__8b)85HyT%W?B=c^_7oNTo)@cW)_ zr}?@~?+2F2QB{dJJTah+3BhjaKf z8K~N3CAuq|{}d}D=~!+R)Bbs%9S0rYgHzPMXR(7;YMBfReCDvjn%C&dcS1|C+xp&Q zq_K*?vTm4b5oYzLVPlvC^EYl#$ zGm}UPBp_OyFli(fsL&ph*ZCl)3lG-+ly27%|)jO%@g9n zMTBM3Kh1ZApPI;t5hL8wbJWQH8zj)Clqblq!W+PtJJpw$_d1J+K zMgDoXO+q561y`dC99u!VcanR)Y8Asnb{rpsh(hD6j>o_R1LgLQdXxFW>mGH54=_Mk zV@h?xg$Gr5^|V?Fpoy_h?ro!Bs+M?8n59`bjG6^|F=HoM6yH9@JKdM?axROcuI`5vzC1Hm&wyCg|~nVh)_{0i*A0h`P<*f)lbz)5*2 zsx;X?TRV~vFckcPZt{&JT>v;7lmzUx4$niaCw@4Kc>2(GY@Ol3YC#k2B(apWJFzYZ&>hCfSy94MO~W z-6Cw`d5Ce6CVUQpAz4I1seduSME$1XRV|M1_lPkcd<3%#L#r=q7CzCCa=Yf z4?QY$CZ^Bm{d{qB81HCAJT2ZUN`C&4?y%ILjZ4jK(!gm}NU}(Q@5)U){ya6>;+vYL zW9N}&DfjXS@|y_!v0%4DwYIn2a6faYOohj)_XE_q~FMezy!;^oADeM$VdBw05f{P$?tkp|2w0JANW z@mWTHk*?~}4*Smd?>{O+udE8JwPrgKee!(;38@;IF#!SV_P)F08VWTNFF=^&`;ET1 zibUEy=pJl z+ZS+Os^7&cQy6gKMwFXTfmfFi*pTU2@cYN}PO%Nr)DvpLgN&}QMA#aWM&u#UG9c4b z>`+vZ`(19Nlu0B)&t;=a)b1g_o6H!w=QI^RNi2{c|BSh=(wJVip&kQccf3}ibioau zctq}weWLtc^&5|;a=Yi5@W0 z(bls1a5YNhrWQ^ct;dVu=105{Z7dk7C_YC8bb(BxeCC%JPlSYQ0 z5paLaZ@zZm62ITrPXNk#tM>b#`~qSMAQI?M5y9z67xfb$?kN8n64DSIN-AOTG+Ou- z`CfHiq;^Hd5#xC^Qu$F#NBLF%-dGujvLkI;^B3FUm4%4B$T_1II_H!f&m}QZZ{9X> zJLu=e?#|_b?lPVP1piJmKcdyiKdNFiyl!M z6xkhHRZoK6>!>)ACRaA8zr+g@t4P7RzzL{g;WNjmLoNuf|B;$o=LI#G2NGX<(9a|% zpX|=Pcy;|<*z9zKD&=Wm?NCokb%bFO%8*MxKN|6h>=nt_;P%IaJ^Iqp7f-CyKZ-au`1H(Zc zO~7^!!NPD56>Z_XLZdHOKCGBffx%<|b0PIr>9Pw^qFw zKP&z#8k)Bj2>r4s;&LHlbgl}!7krKOaZk>(zL3n4=3{@Fco_g04 z4BeV)SC0cmMf(c3>A5e#dQxQSP{?w-1w19y`F-z`BN&2d7;022e$IAF_~> zG^&W~QeVI_LZ`Mad~{uF7!S(dRIg*8H zU04=pI$S!s4!UeQRfK=aWZxo-Nep9-NpjvWhUmikd>=i;70@L9>J{Cv@~qbDwzgjr zv4aqP%5TMQ*}_P}WBSt~`A_yk9x$&Ad}#C1rwOJ;hJ^BUQ5BUT0}LSKa0mz$ zW4&sUN_`O^=KM&V0+}sfJi)IIaMVDJNWdUzd>RhG-ZhFmm8ald9b!`Cl|{w6nJ}K4 z>SDG3bUsXMSN=9zhcxB1$Rb@xZ(=CGmq6ZxE*0Gqf-`H0RdF}!suy38#J%*`Pav*6+nFlx5jF>&8y&0Qs`r6uy&kfsOpSUVX8OB|{R;Izq zt~K>{MfhE0WN{#Sc!g=NQ6uvj+*r4q3X#1SwtUFm9zh6@TLz>5Mb$u*$CY(7CKxp1 zp+OX{)Pz)d%rK+&=PtiYxXZF_-W*|$hswxN>=EY7Kx?PpaY@|Yba0r9Sy~y6qhjAiVOR^Fg{CSqhamsjl55;4G z$x#lJ-}|O=S3@)ieRW@rP?_$*;~f553R7%m53ET%|5Ylp#q!>60;pw4ya?a7ihOKs zJ<@>SBj=05Tf0*!&)=BTao_#*C%e8+ObN}Zt|6lOHgwps@TRkDbZqQa5ukT>8cu0vBl97Hs-vvpu&>Tf=h9jY~GCV7Ug?csU8@hwioXK1DoHSlpQ8I|%??gBJ>GfFcZI|iadiZc-y=PsY%_?zOAchQD#HO-j*@kY78*gxL^dDra)-~b3A zJ(ObEpH~i&6eZOaW_Smh_e~4QW1mytC~gcb`<;jy+7l<)7N0=~#mqL{e(!T&PW9VJ ze&lMHfgzRxk5n+=m6`z@{KyhzRwHeI+9jo`{y0*LaUJ8FG9V9)=k(u9@Q+{mj0fBb~{B3@MPF9a`rQvbd;(h#_JIsAir)7zW`x$lSs5dSp>*|GH+5YM(zyCWfUu!t6l zW>0!NmujEHdwMz>y$KS?6^>zlFF>kj=3lAh#-w!)n%)}DM`R!{hP!|CS0Y!8)E*)61q(?EKdzXw-Q0P)mFF883f7?_BR>WcY^$iSKUb+dCUrCzMQ03U9{(UaYQ5{&s(CuF*sUT~wFUPS*(M`36 z3DJh0?&t|`{ydf`Ad=%vF}xWoqa zJD1a!;P_z-e8st754D<2Ap zrOb&KAqZI?S%0ecHcWTkh$P|5wdh9gb;_{r53M1SQ-}2T9Nw|uZi~|1$X7;7< literal 1476413 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 z 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

    tuV0@rJ9`U!9TsLWJ>hR$L zI>vn4{Dz&IkLtgy7M_29TOD z;Nak&45`2a&5OS-a!TeRjrZC z!s$C(y(XJO*l-7@3nEN2IeQ~Wqmq7;`)x>Ja#j+E}S@yc*m<033o?IsqnIH_LW|@q`agmQ>Q2p(qfQy|U zr$qs7rnxdt(QjALK~L4eOvB%8D4IRyR^mnc_h6utvw}0@GrfSw0hZficg#ko;v9IDn@4p5YGhri8p^H=a%6U$vN~-FItg>+HnAavmud;I+nYWG2 z%3J|8_bSvR)SQ7`o{!DK|1k<4_T@3SsC?cVq``_2QX4=nZqpKtvKr-OfI2gRDd zK2X1vKc|Gk0Ec`alOrUtG7Sp6=zHLPg@8(HP<@31Z-w5}K_fwb6yN4Qz8*$5Qvl3z zZ15ZVx82G6EI>k73- zP2nEW{}Ya-;an;Ps&3Zs4y5OFR8Xwe=GNRF4;QLKm|dxh_&o7U9=hJ8qnaB`$rGW< zrsf4-9k$l)IwD!PW+TJf_;jzTquyER;)i0R%4a-7@mf;HpD?|MwG~-6wmOrOhWfMY z%aLIUe}%a346CYT=dQ2Kn33vgBCGAT2t+qcyv5t@+UL7-eH-voubp}esj&_XTyqgZ z$)C1+)%&7)U^36I&RDb1PDx?eAX~g)Oro!WzpzI@VCsb4ez%$wWuTX%kCGlt&2YzeLEkyhxgt z^Fbq$s8_3HcV}fd$&Y0<()7F_Ay+2)ic{h3F?-JCC`tn*%Y*K`FGbG)Cc)-nAZ?z$ z(*>|#3gN2=-;iZWI+>~nJZ|{BFVf_eK`xpWOO*5Sg0(zUWhoisgKlXMuq4Or`unu$ zl1KnROpK*5+d8mia?tw`q}Xe#xNq{JvrokSQOqT zNGGU;b}i>A(G2t~wk$5Tl-#!50;`g4Z{u&{$%(}_IyyY|MkPWZt^KzbokxDN=>0gF zJ~I3F;+It4=st=kGli@SJ|cn+NbettA0uyCZux8>qGH{a7>0HQz-BU7?*bMQzpnRM z3~7xucPBQz#*O{p>5LdgwD<#XvnfhEXfKSte+dv3NyK!!OgT!ax=b4loKXZnEIalZ zPaATrB8WJ;$8@Op40LcrZ{|LY4VwLI3y+p#IKMqk}yAuVx zXjjEHugpk{ZJFs*Mgf#eMCpDSkj!^BvpfGJBh6GWBU){HOUcO1dEI1^x&Vh^MwEc3 zUkMb$rqqimo=o8dUV%OC2c>ShIJ47O&#kmU%$F2*SzD(wzpph)X<(6ILQ)C}G_$0? zY`K*83GInENgFkAbsm>JE7|I(KdsLD91Y9!DXPDivClkw&lclw#6Ww*)#|X~rHZrk+rDUN_gWSjiU6AIp8y@t8|e zcp9)fK&(f8cvE3J@EkO@vt((^YaO}y-O}y{ZZ8^!Hjs*@R8=O}a+Gj+u1&d_xlDE| zg1mvsbeW>%sQ0oBnurT74BhI|zvzj&&o2ecq@79N{~0TW5((C1~W7?HjI z>m^_>1iZc6-wtdmo*ZxoKbrh{Vt-o> zzO%5Xf13x043oaQx4U1jUxV+y2b~oM?g_mn247*nZruYd&yb)ypVyhUXFyT&f$F{2 z4Zb)EqWUOek8}$#amlYfZ<|8@WoZ9lzgWXNyWzwxZk

    }h)q`uo^frG@{T&r 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

    nl}a8uI!>i)r? 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

    |c@& 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

    iJO!1b(SY|0Izy;X6?q1Ky%ch^uLu>?Xa z-KTF84KfUqkynGqzf}cP=?bR6t^)A}akkrUUy5wvqH3&%_lzSqUq~f#|M7Kwl^=wQ&{a z<3KiiXf~I$#0<`oelj9=h#AO?+n_ddJI3WLk2`9gk%X&uc?REP-&$yVB6}tP6n{(b zU#&B>Oc#lihb6a>nUA-mvhl%~))yMowD$c`K?NMl{qvnmX+UG5?p*IOh?{rE+RhxI zW?2K$l6<+!LRf>zq)ZjEcgIrowR|Yozz`9a30M27j_I{?146d2K6zV88LqR5o2CS` z5IXJNEz{F=I2(}q^xaSy7!p%Fb#g~Y8fVHm~*7fRc2iLDw z2etmy>Gi7mcF!R=!s9=e-sEe+vjPWhz^(&^CTWiT0Hr6jQ$-EMX;;jb}3=S9IjU-K4&&Z)4W5UA4V0?3Eq~mtv7@RM@|C%y%vTQhX}uj zJeMB(6cn-j2sP7Oc1h+v!*#KJqL^ktZ}kLKfsF-dvrfS7v6NY?QPog=qJmyz@*{Vj1TBiANj2Y_5(@{r3 zG#p9e9y&49@Fz_Gk+TXU^1r2y0(eXrK*P*8Xsa4T8b(d0Uz+qsLSg2y3uH?KW5VW{ zAz(8?%J)KRzAt~Xx=+*e_)%uUqFZy$xh`{UX1(M}9TYID zw-RT9L*WLG3CdozY)jDAw?77$vuH8rtr43*<~oGqG--NSc50qUOwp5|A3NmQOEN@! zTg4Qq*bGbg6&mGP+L?NJZkE#Pz+}!JP0JeOGM?jcnFRIo2``~5u|C3y1P%=w`A+T3 zJ}o;nzFfR?(5o)J2DN_bba6Fqem>It&Li?~pjARjb8RI?2nJ7RabK?}-i# zvfKi*UH$OZ=XVku|Jwin+2G?b$^}zGVO7_-e;25mkMlJwGS(Xt;H_qvXptj0Dxgv( zR#L`LvbtL>t)sofr~lel%C)AG#STY6jWB@{9O%$CSIE?nv4YmT44!rLoISbwjC!Zq@JIoFAq<%o387DM@Xm6j+OC#j0+ z;anUAOV|ZeGf=3xe3kgPjLQjFS2Vtf0ltUm;2^*qcL^>EtAy9;rfiTJ@+_gDBpgi` zg^8)iF$qV0gWViUKR26FO}Ng@%PXDpYv1tg>rAL_?a+g za*5K_>XosV5v5C3Ab8fn`AR!pwF`$3azBDjY0$4vykqYe6bh+8GQmKr7c3fr?q>f;$7uxb-{BKjWnbs-xt5+(Xr zsTz2~Df(Rh(fS1{n3)%)U4Gi~Tlv28b=M#8h#Pcpx^%I#dxg3XQMmc_uRn0UyJx!W z3+$|S@2$7e@6`L#rSEdOFKuEwD(Eb#2Q;28IP-5khl0Z4J6SuvlR0DeojCNp)_<<_ z1O7Y(T|ZHz$xSD|PbdaQKYD-E?LE%!y~h`Py#&Xh?RWRTX%>7wRD5)bKGBE67l7uM z0Qd7Q`zz=pyV1ZuE`mQiL@$RwpEV0!VPiCd{^$nr2PQI$K8K0I(H1<9&=$Y^K=lc> z90-INb=WRr9KhZyIpTlHlErKP7hpugXAzLUirt?Bd&@48q@fZ6H6P!%fC}qDNmT1|1_!(%ss$ceQa`WxTsq@+?Q3yD)`X&b|P}STnu1EDcj)>UT6RYBTM^@o|kB2CuiI z*ORB77v@TvEK`DWdItgYH1V4I5_NA%EE5TZ5t~O?Xx8!cmdY@++kK6jEyD6@NpEI~ z;&-$jc=s8`!E(fP;*>ttju;nY5}$r;BiHXTQa3dbFuGf{#bJlc8a{0%hoQ0|3ueQS zIoH^{Yad;-X^W46FvRA~m&VqZEiLlmty8Iny;{mbJ`CEweo|)4gm<~lHfnVcTZAJB z&4iC(A&Q}(C4qU+|6Wrdqq!xrA^aZ}usTkp;8dTNn^K|Hm8ItU+;S)IGV0UYAWIU8 zz0G+=36X#u(6IVr%)|;-bK`q97KB{oQqi##%LMH2jcIrbADPUk%Na^` zfpBvwK6a@FE44xkJgO36So=Y)rJzvN5$3b{N!`4j;oRBdCUyX`)=$ngHSOpV18V#v z>KYX0XI>Ql@MOFL6LE2gu;EW|HWVpXZ_I%0*%FBG`yN(i8NEmW*aTC$8qM1E0tN6R zs^BO)f=D}2DX_>5CAw*@3=Mm8ZUC}Hpk80!h0aH;M~krwsBD;^^Lp$B(|OxxD88AH zx9t>4qwV4<(oC=4B*b~eDkA4BOY?H1iP5CB-h|%<2%`$z5T*t>L1921uzTSS+#8=>5A+JPyx(Mc6M2x0C{=c;lkVYDp}KgWtK|ZcKSj(phSH4E@&WE zN!*Htbu=>3cu3y%csfuvk4R;a4KrdWzE!5tTczxjQK_5kAz_Y9vkLUz+Qx z@pf(>RR_PQm%`5tHrnc+sZ?nkxHvktB8Pv-Hm|Xvx1~MVD8fcyT&kk;9s9Q=A!R+y zbj)(OQnQSQD1MbmAeA1}bhSd_9Ocj%J;*#WQ_-L)W^JJ~k$%{Zt~Q7}uBTsZInVPg z+lZf@o`yqH3aqccykr%J+1NKm@OTy$_9lH`!+y--BRH~dAw<#Sa5#5HGVVt$4 zVbsJHL_yg_7#$0FALgnEq;=Yvd1;K;PJq758|c-J>E7(f;wY2W!iggZ6|Xa(=Dlb1 zjFWhjrM{X4IJ5Cq&CK8?MP0&$5~hgajTYH4C%hLkx7H>V{!1d!uBGq+)O6yP_S%$8 zs*pi{hp-tzs+igTXFaJ+ND0cY)YRf&r=D`siXTDyp}AfNa_Mn}mB@5J^%L8LQn{-8 zpMAGm2-BcUwlI;+gL*Z5wntpt*}=)&g1($x_&vAM#eF|9A}hiHFEV?(o4+VdKHer{5zDYi?1R5i4rXgAL%`R{1q@C#e zLPSN@iISs>_8_=vT4z7mZZs}!jlRvN^)6JpW9-NhI-y^LIJl_GpZ2p()pu&x`;(mT zWQFeg9PC$rtqAq&GD-fppd{KC%zD-k)=OzK-uhxPAM*yBEDd ze=AJ>O%}Y<13uMBA1nI)R)4aPmWY5>qQCw<j7~-V3)CM(z{&?-k+h!u|_n5KTsND;Q%RnjhIF2 z0h<6hOO}pL7nic0QmTTFVq0?pR3<~si~{{8{~dXe0Tq3szc-@e`e+;#akP3G`gLXH zSaNch(n%@vOors@Vc?W4)lz3aHLbG`89-K_YQq&Do$lKOAE$1PSe=Nlh7f?pNwz5G!W`? z%@XL%whZE}7+zH{ot=blL|ed1wkF9jx*oCpnm^Fv;3bS^^9N;ql|}3kjtY+pM{LY) z+*yeE9CDqI0Z6Y&3u=JQ! zL(-cICNb0EHjPK}eYnS}@cT@_yH_}HhzKmbl_I4T;m? z+@$z5=V>~#2>T{hRFZqlaC5aCjAGq8k=rEM|YHJ=peI!|O7V45Cc&e;Z2` zgy9FbKK}VA4>BXzDW{(|lSwET%(c*YAaE=}YAQ09DJ=;lEP;?U;sy1cqkfcYu7rE2 zat_s2*D+s5U;8r$Ktv@=qj8q;g*)6$nuiKMOo-J}+6~SL;)X=uaTI|2PbMd|PFuQx zB7IFYn=&6q!V(>blNLq$fCSNCvRX-~U8vguV0EIr3KOoZAI|HG7NWqcRXAlznROIv zj&B`0$QFo+?8C?b0%Seh-}2>@#LXn=VH+`p$$PcycQzXI39m>EJA^f{Zr%Z^ra$(c zAA=ct64eg)ZAfObqP<%7#2$>|*7vYs-uj~0>bPh5$1oLV<8RnAaTvoRDreHt@$HCn ztdlMJv{G2Lmflc?ikMPTtY>A2^u_*__7%! zLxxwwF<&C6M~zbjgD9Y2+xFa{+AvH0J` z*lB6^<`QyL4xb$TBP>Yksz$~UHrnjzvN(h_ywXTS;osEQ&|3Y(+uJk5*4A^0#!Kf2 zxdjEShmfd33*io*K6)YT!Eb*q!unrw5})c(n|A6Ogx?W99f<2~Np2}Zh*+p|^dW@8 zeL?KR-WcPJlPLeTz+wOE%el^&*opHHjbVqL2So#uYs3vj$8mnsjYlnS9=51aD*nj(P__ zJqi7x?|~A0eRWtwTe=FFs!ClO?cKz#P{nx9D&jI4s_}4ROFoIzJ0|@$4 z-g`(ief^#Bd;eqa>*Jt;&MN5hUi1hA;?df^ysq_s680Ssey#Msu5tN*7CShU4uA5$ zMjc?VZ$96g(&KKRY4Ob{1%=_Hc=|^ZSM2H1PWPOr^E2!wGReYx4Q7|O7 zW!AGR&C8F44?sz>HF~-?x+(2^sFPw)j)kvh7#z0X`g1yZ>-@NMcaOO zYNiW!-7>OFu5AFS=evQ-@(r8j#Rxk|3v&e+PA4$F!(n_^cjm4!bO7~2sZ=T+!tq-T zWV4(J1fn9(3ATWDI;;{TzEtZLmn5;u>Cm?l_$cIu4(VI^CZyoUkm^jNb|NZXM&qGp z{6C)FDk`ppYud%#-QC^YA-KD1a6)iRaCd^cy9XKx?(QBMhsGU(!{7TI=R3DO)@6@1 z*Q|P~reaqgleh8LYfa=zz)~UY;srJ`LHs6>MHQlPrmJ(6ECk@844LT?+z+^XdR3S=&x(<^5Sf37s)f72J5t9VK|#x$il+=!Fj8%7TbVx!Y6#_d3q>3|I5 z1C?5K-1C(3qKgm!eHFz~5FuO#nrQwOO#+wa=dK&1T;BaanLU9*jVTw#kJnH5^_J zVil563zXt#5w+kB^P*Hkq$;Tux*~(&0|rH0H-_QrzZp_`Q_3%)Nk}DNa|4)o{q9WS zwGUo_EW-vbA%piY%&15n!J=G$3;Uh=Q50r+6V5?XdR2Op+k-m2Pk&DrDVi4b{qOC> z*WfC7ag`_anp_Vh!7?`QpWAi1FrO!xS`1MkaNtSsqpSrG<^ga+w9 zP|9Og|7~%y;=2T>zPH5Dm1Dp5FD$*>zy#xRZ>!^|1F~1dYFGTRJ zI~mR~I@mXxJ~01%Buyu@DGt{Q|;66?aVoHn~hWfr>Z_q+<+2jAT_-*NB8MeaIv9#)y>ER$0^D%Z74nk4$>CF`q? zC^5>8K>IEl^X3}Sa0%Aoa7&tVLbHINKulFDnqO$$+I5So)lU(dprLA@8{y%35XegU zcwn*&6;pry@Xd_!eLg%1S3q}GC9A^SW!Qo8!>_{p3k}Q}m?okUpI8~I131#UMlu4X zbiO-7*uV>=0W@RD9zw>tl9L&e^Fs1qFSWBaV5jibWtM6x50a8a)@XyJ){t6pXxa!H zk`De)3rLSIF)b_!AA8m$rd_p{1M~r59C7FiFSv^vNr>|xXJj35a|4piEWSk-b7f`; zM;(CctB>T2BbB06h0IZkDKV3YuEXJqc%vfV*>j66MooT^GuTx7QWbJHhi|}+BiT@O z&WS}GB*6B+twGrbE1kii+t{?V{dL%Ew4uV+k`jQ`@l?`vo8V_U#kTfp|!>rZ~?XJ9HtGlhS z?FW<3)JCcS%=hmOmh2|;5pWviLN8k;65Bf9ud(mT1!QOw0op;8k z__X*9wzxtlc#2gFNHQLRr<|kdeKCITrDsEl&k*{@4mu@RCJe*~Kmy4Z-e})pgP+IQ zz9HSl42bu4gIy@$Wo9E#>)-6wgJS)`V_H}ldZHRPdt+>VFcc4je3p?|!8H_0s`yv5 z{lM9|zIWUAjnPn@IXg$r>IDS8`{y;?VeBD0Vs0Q4OKqHboVXZ48lg{x5>d|fTd&%q zLLp-Ff=S1B_{)Twd$A?YfV4Em zoBZjyGqMvV55fK}^vqaQJHW|1<4?EDvV`Z%ypyW{w!S1JO%fvEo~f|_!N5xOK3|I* zhMOtM1ln|Psk{LR?3_Ad*_2ctR8c71_H)FZ9o!b;wbbXtdFMtn-9p#h}Iw zXWfm9Q(?7Dd!x)s1Yk4UJIS z4%8KMmEF8!`ldIPqiDZUY%#SLsh(2|BH}4p`41?-l&CnOfN@%7xaNvns7UPbjwwAx zUr=rbtJdiJ08IIBndtNeGt9Y6I4PW0SBwbBTOKs(8ze*3VqeQvZf#J9d1*S61CWId ze50kw$4jckN(dlBYZ3G^g~v; z;K~j0Ql*v!)b@E$_jypL*RVqg>0%bO%L&D=WtC1?R4s=Ec+T?2w*5NSo!X27D7#(j zKOuLqFNJ$u1H1xy1h?yFJ+^dna3LG(S6?Yip&30H$3&Z$mwEi%`3L6hG=Jxc(9RN; z<^~_ZsL_*f(t1nuYUQ%*8qur_vXQ{3;#M$zkTN?F3iGSo)h?5dN}9W_?YZV3X||-G z>^n1-Wtyxg>xpWCZm7717F*}BqQBuSXtkT#ec=v~V^PDm<%||dAS1)&Pwwn+RH>X= zcb_nbW;ukJgV9dIiWf8h-~bCM2yG*SgZ?&dqrSc)L|70(ZixQJx?!i(-jN6!rx>`^ z+Go75J$9%liE!)MvE{_aof{h-0ET zvQV0kNtS!g^q5;C_^r=(z+Wm@kHVoIe`aT%qcD>Di61eUM2@EJVAK^#xB<(mqkL9Y zun+NndaQDIVW<(CqHe(_+79;zq;Z4|#Bl}dS*RzVGl>_!iP(_Q>Q}M2NkS;$<>jRD zp~z;V8Rm?12Qv$U*-M`LqNwEDO!ki%vYD>b(?YTa7(PuB&D(1a!tCqb{- zb6EE;^-Z(x^ymB-sMDy`!5-$cC=G%KP|0c+7qa}i2?}fE&?4qMZ>NMfRAgG10>&3C zCinr3kA^qd?`08Nl)H3bD>H4JCuC_*fu_5abTL`)cC=a;9&|H2BSo%Tsov z(=G_Z&EJn#jDyuta4K!T&~8GPft41yQ%(gWTOI2B75G&@WIymT;YYlG0Brt!DZQu3 zEKkP_C|b@(dH>rU(EV&OaLc*1C}7?TC+CfC$J;(GX>R9auj{CDx%ZWSq6&2REAY_s zko;}zBdXv9aCW@22?$O^{O+4~t2vBo+Sq0DKV%@7zxzaGD%Gs=34pYFIqbN7jqo;p z6KQiGx~Jv}cI7|$18>znqM6&TdR~F=Rca zrS`U@_U^9jX#y`k97=e=x8Jf3_`zNWq4y(k!Q*N89Ku<@4vX}Fnxif65;S8H9!+oJ zUV832o9PCo(2FJ!D>EtW-6H&pLtnsH75DicW^QRT7hhBcp|7g=Nm^*9K4w%bgujy9 z;)rtpQP@M=4ZGEGjeU`d-*}xc`GQTb3FKkcHH6~2rWj1uTqdAl%wyVW znz|m<^koK3*)Kw4gp_4$*1^@s@{c`d=m@bK4xCxsqHf^ZO9wKN(I|wdus5j~BGEfi z0wm6ncS@KBLR{|CO{}QBM2ugDXz^D|{!o2!MPe$pb5P~dIQU%zMO>q-z#6ZP{XD>o z-0;g``q+{#0eUP%Za!{mc#TLxfwbe*(A-;A4=U`2UY0)$I)h+$ecdk_nF=QTm;y7q zt~v@0jxPq&`C&Ny!Ebnz*A?a4TJ`MDiuX&Q*}MuTsp>E%mLAECNeIicol>*Q>Uo7Fg2IY_Rpio&AC^X-QWWhy&{L` zj6+<#?vwD-d$}AzGkB`|BEt*luWL6N!Zl3UI(!)Dngi6P9$hzJ7Pg^KpL``4g9#j7 zmY*D$sO7JD@B@?+CR(WVve9Mo(ArS4r*;r$@A^0}LHs0LUvGu&(XwT26!YCI2T1*kF3#4odEs-_3}c?Zf%h)k zBcT)9BdTzO4Sob2A#q`GWX;9tbg`hVvt_?&v}{|u5T0F@WHlFOWHyHJRJx6l?AaO` z?y^AjCJ6yBF?FuJm4{SEg~J=$7dut(t8?F`$k^9f2+{i$BQ# z<08D#pCD$Rh4csukjj7-rOLtYZLN9JPH9{QU}qyaGG9B&MUv8 zZw$k4R%*n>M5MiszNNaH*gJIAtnz2`8#oiOeaC$5_5JaHZw#~=aoNZo_A>1XttT!0NQ2w|M-`b_b7D60 zDs(TZ-cIl!xxM&@;R7GZTQbS%r_h_yy-S=J5B1eQ=c|!Iu7EW|18_b|2dC8myb?&b+39A<}$==>YCGwF_+qwz?G2EW0rs^M%Ax& z6Gktx`yb?GdiyKz5o~{m|Bn@;HM<@DFQR?tA253*_{}|a^yZWt(6hYLbOUhtUMu0( zQmzq8UgW>xwO#4Y;H~t71H{JC;mkxsQ@@Y4)8oVl^14EtH2@&q%A;lFF#1~UjU4@) zTRPt4ks%HWP|yp=s?kd#E{i*a6+FT@P}rOr9O$Q8g~MG(HH0C`+(@Q|QO}~kzjU@x z)E)Gh$->-kIuh9&9YM|87bAB|+@asCBBquoy+Pg9l8iqx_pD^2BnhFfCnSKN^}1 zL81LMmwT5^+q#e(-YOEw`@0mD-<$hrwEec~&*UC1eETj^YVm8mp*kx?P!x`y`h0Ez zsxzGxoJFN2`do|dfJ|+x&_etv1nN{Sxob(qwkk*R)G#dX293Noebq*-+WdF)KuZrL z0T(3%7l0_TyeWJCz(qF4E?kc}_H6_KWl{994Ztuoe@A9ib@-#{={(prJ+}-tTSM8n zzg4QMR`!>uz_;P$$@Fvd|jf6lVc>1Z8 zgx={(5;{Z^SY$PtO=?dFWVmL7UGx!q@wit}ZXygglquC#;R8E?~X=Vi~IE06P*zFJ;t zZ|$9e*j_1xbA`0`2H-cfAR?oHn=@qL)EUQkmcN}Z5e6{n86lJ#F}rm4XEa{F8` z=S2`{aR32!C8o<#4UZ4m^xTrj%6p9JUY7j;5q!lL>o(1($FFun2&=?YYD@L@LqfL$ z=l3w6T&~u}Q5p`EscB%mz0Jy~C_QW7jDmz}Y!W6^%fXcUhY};Vs%pD1$~m2!^;+UU zpE5{8a@IFH(=^X^Ux6hp0VNW)){|h?@7un?q5>d*Kk$l9p^A9E;$FF1yf6$J`L7gDnXr{ zN|)s4s)@J-TJFYOf+u`MS`Ktdv^J3JKu`?n0a+SkfHw)0N{j z638&kcqsvkSQGxXpjfGv$t5B81+?!bGN=tQN)hE$5+^u4`h0icmetB&wXrRhkIvzX z0*$O#$R4J{0VqWJ*A(jxsBjzvK4|}4fKh>lx5Y4)jSN_S(hk)nob!W}!s+bVXD4SG zG=loB7P0j-vb{(CZ*(yADn@Y2gmVD>CtSmIr=`i23VlOKXyW?M!?KAQ+()13+u#2g z>K0%_U4}HU?vIk~`+o2BZRFMS{1|DLpUMx`tH{8o?YHpW>l3}}x1+$3il2Y)0-wM? z_M`NGcpHjNnR{PLz2Z}-h7GSlFDyJ;0y9I*d&>`-*QZfXW` zTb;P_L%?fs6ZSFY$1nUNt?nI0`lM#}@2wP)`AcKyUlR~(oa3wOSEd=DkTs$CAIqrA z8=+>A%fPERIDg<)?y4BA>QU01MH~?7C9XkDCCM2PD`_QWmz(Z<9n|^t@w$Uhd0lIy zT|dJ5D=ocRbUAAUyxYAhh)t5PgK;;3a!ty(Sl{HUj-%w#C`*Te4~Fx?YrklhLWc%@ z%;fz3MHy42DkJ+C{BET^l;5QYu}6mT@eaZi7T&QYoM4spH4Y7D1x(0c(r;#LxuhB& z<|iupbh#+1MM*yQ(7z##JUSV9e=rUckcV_q2)N|5G?kplRZiA}Fy{_NtdVP^(z=T&m2DGdJVoRngq#LppLgNPSQ# zf$E7=4K1Xx=DO9EVd3+2;P`ir6~TD=Z~uQwv`Owc_A|LpC`Xl4iiN3~x;!Jfh~vW@ z=~Wn{E%sC-oLCevFfkEP4l?bQ?7k$C8ZyoHbYD4Drdm@wc&a%!GF_HYrtnmC)xHi1 z_}AfgAN{9G$f(CL|8u)nog8|<{wox3f0DXc@eDbNxClju2`&0ELmG)iS3)%{5IKch(fB< zlZoOZrV1f0mQ_*D%#Y*>vgtOh(`~u*XVsV>P+(h-;V^!ftpLy(g0fQDY!K{|PogyC zot>wu2#(O`E9^&H-?pwsMYquR1(YSQv)5cL@)hSj>hNCv7`UlLcTWgf5K>a|3bt1q zydfZBu5SVryd<5y!dQp=bn-(qm9oOKn)xO71@8>0Vpj+##z|K(&V*a)rxOwvV{G3Fc(P@Uy$Wz0xVO0o*z_4jr1gWO}s!&--aJaU# z`S>#7I~y0?tODLa|FDlni!yh$oTUu|!|zC)lm?w#oysJgKUJnCf}|63N&Sws2mlT3 zNsL;dTg>B2l=dGoX9`V-*GZuocKV8!-&WY_l)My@lO&=zWP)5^zPK<@SvoaI>=x2{ zyX$eexwm&9u<4hSi%+NoMVfZN@COt(M3XNzwIC#C&Fhb&hVT+F-Gw?~f$y9`1%#W)ntdL#xef3h`_B`OP^#PoH7eT#5Ab$#;^%(`{Nc6f- zSH(eAV*e(4-1N%9pmdC?E}s9+H|I{c_xRmz6#IpLurT^S@x8hJ~o%4 z3U-Fbmz0K&P}9bF_+14`dB_8>>}BbiAVcI3fud+6R&42N?KGy4j0v@1s)lQVu>OHT zFRdU3$rGQ%LRzT?F29sSOU8Qtp`4wbvFx4jS}cWbRn6aJ63d7v>)p#)^-L+@Nb%;* zeWC8SzA`=xBV@%gA*vj4a;N3q3sGSjUA|nzj;JnMvP-W z1())3^D__#CZT3I8TC`}B2Z#%k<(<82P1wTL8~6dM&VP5M_whubC`!5nbCBbuv%Q% zZ95uXMC_tT8rqEY_jC;(C&@~8X%IN6f@1;He4i1dhs%$)!e}}XHqmeJ+qC$ud&U|Z z*N0`O9h9tokX`NBYxpSYz47xBfy%}y(_Mx~d7ewrd<@R&yxl}hxeHGeau2wh(czM| z9abDd;M)@1gg#k3p5V^mnvDqy)~!8u5Tt%_&-C!{FXh=L!+X@jDLxdZ>3v%(wf4&B zPel}dkOb~F@K2f91Im}YnRTN)7ku)UQabQz+=pL%nHG7lmkFZVTspp#S{7@UXFV@v zMrL&&1P~qvr^F2p0!Ea|%n+sKSRBeQsgDjw$F>fau=|6Q{)r)*xE$oN(odRVH|`Cb zd$tN0WI04f?TAd7Q?&~yFOqc>R>bS5jW~eV9)4cxowt>5KalSB0S|Gm^?B9C2}AE} z%6Y5OhS>n%ZVO!-m~yCEUEUx)8@F7$!*Kg*N=UqZLZYD_uid_wL$e1G;a1CTQ^?^Z zzOy=sW7y%C7ndestny0)_p~GYu2fB8rU7FsHtUrx#VlHi+2VmqIS)rPF_lG@x!>BD z&h0rXjJCSy=$;e0r0~eKMsop+GaG*KiYY}3t5v=e9d(?1z|Gvl>Sc$jvYjui?d4p4 z!NI`wU*NV-su)y|&3H)lpH<(H#pukx0vOgC*mfHi7_#+tk&;EboO^TG(>PXD8D3Lg zC%Ut&Q4lXd7&-`aZruH-4^ln;Ny`1yY)k^f}bN6B!!}v zXs?^5l0%#MEMX?7ep+S`OZW(jCnY_Nn`9q4fbFK=6Dd6 z!mKXoc38$3o0^^QLm9?zT~z>aMU#sP;g~3&ZB~p zA^WsCG5}1^5b50UL0=h|9fmQg|IAHNI2es|L0@iCo%s_gGXS)qhEuq$o`3%&j5D)apEwZ@sEGa z1wWT~g4OQS0$&yjbwzIfOI=(GcMS@Y#3F25{F4?tFhFQ~-^MNu=Ui~Dwp=I|y znc5st=oEjE6TdF?7_~ek+clTyiK|Jw01dzn^})9;y>}n zWB-;lQX*N%T~~GAvUI5<)t3$1F2pD8SG6JNKSGAZ+%iswxJV|bMn$l!8Vz^PFnk`$ znT(@-So9C&U)gAy|E zwC1}=c&nS)`BN%10WHCW_Jf&mH2=p1G?Jsb?nxO(XhO>-5bDZG_rMr5&kdf0@|H-_ zS~%`%I+%61I2MkRTBrtu?S{?ADo&%l@EYDC$*^e$z{#qkA*iRqY9f!G<&XVdTw4&8xpooV z_&KrC=%zoou}4IJn+KO5Q4d-XTyK+FjUT3q_Bt*iI9D~3&%Ff=BbfBtCxTwh!Txf& zn_zA~sw#+4mVwrfsMNvXJYO@$JPyxt`H@-ILIoI+Mq%`DrnB0tDtKsoKX_D+ zqwajk(AwU0KgH~$@-ILn@ylRQcduUG&s?Jv(yuVgI5uByLwvN3#%zVy{fdNfI#xQg zM@P5SAOz-U-L?dHFyg~~hkI{H@ zmlTp$pao%T>mb>QxJ;kVyY({#)y0kbTMKw^0j$6^IG&ZDqYI+mZ219cUO#??;H$adS z9YqS7zDksl@)*%x)W`U~Qhk*yE1aCz+zfS`r(8I{eXuN*@g>7hi4{UNLeQKC#f3l= zt&)EaV0(JyTs*?6jdwur#^7ubuq3Z3#FX8aniIqr7E2Xg_WY};9ra+NsGqV|rFpb0 zrp+?vG3~SQ4`ai#Xa|(qk3H7{fnHQ!P)?9TOnBWBDVrFqdKQg zlgn09{cTHmf!FLkpRC{fI=#?4UIRbC!gv|``+SASp?B}`m%xn9@{)_h&!@y!u#8g9 z4o=K9Z(k)&Fc0*8tbV>MHv~NVhuDAvcilm1r*&T4rk~Tj&%S1lo}bsgv#+J)f^L>c zac*$}ZqV0X%zhl zUvBtlxPRY4|0vv#V=&!kGYOWvSS?wok3{d9@szC6UM^Pqa4{ir3GEvV2zCsHtIEbf z)uy3j-#j)b0=H=Ls)uBwRKS?IJmFlusL#@Sm@rYe_fojb?Ehu0c=~>?(V=x#K6z${ z#9&OVTIPaFER|Mhna8a71j$p6d=iTwYgfEdj>8UX8sZ>XD>>5jw=Oy|6orJt@eA;X zOBYD-H_YF1oYfb@6nba}F#u{6N7N=>p4z+=KJ>IP$FkCnCSFS!!G^3+_S^QgSqR?= zM-JU0!tCyp=C$IZA|bV$^D&APd^Q9;&T=RkGMa7%6&<2-qZTk{vGt*kNb&g$lrgT3 zaNwor1XG?l42vWr3q6H^wj_f(1!TkgLZXfvP$e5LjcuJiLWN+7Qw24oh^GE3EKkdb zxAqjLEQ5h20ww9fvuBFlWmt^{%q7L~K-2V^jiyMv%QGOl|GSoUNNSXb6pFz{LrgPmI7E$txH01#<6;-saqmR+AmQBQqA*WRxT zGXSJz!hc(a6-Em`b0g|)t~eKrr7rbIWu;X&DQVski6Wq66Uc}{(;xwgNkjRY5P=KPDro*C% z50YpzbD-^|T$&{gOM_!30V^RJWsQ6Q`C_Sfa1cPdGmJg@*gS*ue!ag+B8UV0WuKxB z>^o0;+Wu-?4ITjL_L&u;nM09WiQ#tG@q`RUmzt}#<=YKH;0$@gq{+(KHA(%!*XR{p zE0lzX-Pq9Zj#)suACU*=^n%JPv<6)bN%llK0?w3)c><%q%{|*g_s21-En2PKe-YF{^ z>?RFBmfKKXN{ZWrNo3&9?FVquJ?2OyxfDRg2ZFR@tLeECjsh_*GSjMoSkPL1sA_dt zGBiOQr?J`L4~xaw9a(?rW))I5(`exy4^|{5IV2vdrWR$!oOTW_qpMImO=RG4DRRL` zjv$#;)`&rKmJ(x}qe$j$|24f}IyP|Al_RTz5-JqmX;*?>9D7U>Zc`f~3nUw1drwTi+5>9hn zYgqf;n(tDFg9qeHfWi?MAz{-Z;}s^V>~azqzD^E2t*T(03Idg&|6@my? z5-vOi-s;1&X+#Oq(@#}X%5Vt3^jmY|d{213VA}lpuVq9Hd6kQOq!j^O;xICa+0c|`C3sG8J=zFPnihol^kQVCGLX?XSeyb@!6k1Y7Nx^)GETyV!|Pe7)H zw&ghEf+B$OO_u~6O#$40XXOH$z`nN6{K$EH08mOiMe!M*Q=x_qwG*^n#ZCxo!Iz_4634$WQh@`hN!gFX3zy zHT&At+YxvTvHSgP#8K>h(d>GJzvt$8_Om7M@haeHm_1;A`|~yM3O-=xRqS$K?B8nO z`|5wx|9OlOIGeD2{a0F_k;QSTUDxTUYr}}eFO6A~f-b?xKBF{8Sn3|pRPM?y_%AlVTD+hg z1T+W~$Y9`XSTzOOO@ z+gM<^M60&KI4n7}|W**cBdmhrj!rL=@~+fHcH}QWAJ5 zbcqAYYw^&rb=cf=1S)pS6a{_BWwgtUq|VieJog#mYpLag3$C_H&~{$%43`;6XkWmf zBdMPbbU1YE$^fyPy&-bC^s8gOAO@p#QikINUgM6bU$?<`uv@81nTcRjOJs&k2Xhtx zxO~xBWhO{L*eg85V4+x3@h!}jq3 z6R9?P*o-;xVx)&3cR{!dvj)YKgb~q6F(6gMl}Irw!Gsvx6f^iu)EN@97`y8g*&l?* zv><3FD3_@P~9e`He9xHe#Rw(|wJo>31?wHsaqnaJr5I_Nc^Y45J=3 z-wZW+Pdh(SvjJ_n%`5no;f$$J!GGJ}Twr)`08^*u}6u1#s1BIV~PjDc~km zGeUo%KBc0DtU>Q=naF8n$`V^k!&N1|e8JOWjASNNL~zKdB>-TlU!TUM*H>+1A?UkI z!=HpL3=RJOo=sKyBSEu>7jlwjq4ubetV#yAT9D7TYzC~kgZlst1AnFPS?5oXSOM%B zcHt13$F(5tAP0LSewWk|k*F(WS3o~&s`DZOI)eqU8wD5u)2%y_SrxuS(e|qQ9H(cY zPk%Ndw_)HOOE=k`rZv`ogMX&HV3s_)vZ*d31!jU9WWnvmay#*<)oxy$`!Eb``WzF%;5?#Vy@L9=O z{b}mN;|g>_2bzXxLCFQQy5b$e+^Tn*$_2gv03cw%cnM{H_IYY2IG~H7N}SW zV~`ukMNs!dFw47e?InXp@kq0GEQ=~4Dx%R47=k+EI-g;Sba?X;Khc75jAQ>#3mB0m zL_(=qNE8+LB~&O9$@Ys9j3}1EDJa%`rQa(SoCX5bCMnJ4)nPR53eQ_0f9HtHYu(5B z428D%iB$Tcb4_bbOy{fyTBfG8KlV2WJZ@I>&OMa#cSi@-U4b*m)7&&~(ioM~L5*`) zPo%vitN5%`?( zIY#a)9^%#e`1r9!{+yg4a^)NNZ~MKIT=1K3&0B2mQ|xTuhwYEq#~)YV4Bhp)t@xS2 ztRDzWL4fO_K2F>VUc1a*0cM>GAK;wX#pkv7+jBX zkJS zl@J|6swir`7!US8(=}WhVN^NBa&ox8vt6k*YM>YC?+*vt3Hg!MMg4&VR#L zta@ywU4dd&3|{4Ye5A&myH z4Z|JJmwMn?QS5ptB;>c}bmD4J8|%w?2907HMV93#8edTgj=NShtM6GbC536)lxhwu z($-8DM`zl)Db3ic5jGIw5z@>$3wBf+qyEYosTE=OBeRAdywg?^X-(r-(18xk$)_7F zcYodTW+ho}Fo0&204_Jk)T*q`hb0q^QcSm*ckXb{fW1e|HuX0PZ5XR;+rFTw;PO_M zKau^n{GcvxydkeIUKzSDwu<|!QI2y3>2WQ47Wt$U`j-S7(D z)9{lXgcW@JkVM3BcvB2&`y{h$--#i_&57i11BPBS%qQ>ye*!?B_EulpwINh>#UvT5K zw}!S4!I+ANNa&JYRZKJ`S%xEIuX>(pp@z7f3(0uWm~8*Y##v6v7S70U7mFB3M2|!n zt#Q2~8$VssXUvM0#Q8*WCZ=*XCJh(iijDwr8Sx&_yMYP={fN9x4X$X~OknCm8MO$b zdjSV8@WqQ09UVRe7cfO|J-XJcCo09 zxx{KPDMf^Z#l<7@Bzdsx*jym`9J&Y4R{UllDuUcov>falM`D6O;qA|^`N)rO{G$jpjH>Hub2;RYQ^c|a!oYy|>%okUf`tPKhrBx>}LN(fhfKFvbXW1XFqrRA2w$7S6t3E9Cebg6= zDFtt(Hn$(ISKkMC16dj%Bq^jMr=>%r!=k_uWb*IKeJkz|e`^J?NaDbmmCOG}Sa1_k@NrTg2zVp^82o(Bzj_ucxJLYJ(4xJaH2qfq&Ubx)B7d$$ z1`f%+jf30%sKs`m^KZbqQQPNP;4=AX=|80Z8j&7g*?o2w3qIsN?+ZS{Y{g#_!R>y5 z18N@!pRQ%o1)q1bwuR&`MdUrjpXJ|QMvuYMr1zi_?31hpuGqeRsr`9A`e85f8K(9$ zl+k@|z5TwqE#2IEt0(rlb`CDOh@Ja!#~*m6u^0v};P@mJg`ClK>Po#W#_xU#6+6yS z^ZyGU!VfMIDUiD8*SF>t9yr4<`2RD((tQ{ z<|(q4!TgnPYN~Fxc$LqM=H6fAuInfE3QN;56Gz2=HMSg%>s^1e=9PqIg#U*lRfy&5QdHV z?Qh=f!by6qftP`&Jjeu=SLA?>)e5mSvjk0lDN~*{G7bkpQcJoW!k<`40lz~jLh=WG zMswLp$mg{pC)O7SaDUd|7w=`oZ65T2CNF>rN`PFPf@zQe7yHD@FCTrYkOR4doq9g! z^dFL{`C5CYS;)sdSGqsjOdrlXdogu~VB2y6ptWU=E0GSCnI5{myN_nv^hEI=EoBOv z&=RJQqJ$^3S#ei@K6FsSAj`5P-}=R=W*rQM^uzu`1w-|9#Fg5Sl3maxBcdDdrhA;O z%t#d>z3b0isb2iljwiTx*19^#TQ#q4#?!TVVIj{H7g>;=ReIHxy4SF-y=0pK4IruS zs+X94`Y*yocdpir$bl7r(UJ+WHw?iGEyh^nnc*Is35Q%>sO?~Pjyqu>;o?^tlkxe3or%lx&iN1dsmJ`c5yS|F$|P|Em8_Et54>rc4SDM-(N;u|W+V}pDfw*!p6bD8 zdp^4Cz;FCzI1B{ix;FFfE$0>6ocJJ=mt`UE8m+KpVRN4!h`fq`WB8_Dcwk%FNhnrF zUzp1xyWE$KH8a$KG5b$WIztC&DZTMZuN$jEX{Yp?kxSHF>q1D4p^CxTkV7Lm*L-=X zLeR;;4MR9(knS2!QqviuBj$-5+?0t*-9Oib9HMn zW#0IJ{d={25wsWL%E162@@pPc@ayI!1~u^FaqL=@2j!Ko2#-|zk*~~`txTJ93!5mU zq`JeNm)FDJ4n@k!Pim7TXjQ`WXh@2lkICC)+uNyNi|mY-SP^)2?&KffMVDKEiG|{Y z_eLTmw2_}T?@SCIXB7J2L|WFkOh9xpH5PKFEM; z=FT8?O}rowU@1^6I|V38Iih|2G$&kbr@o@6&_(v2D0u zv!V;?0-wqINUzr4Jp1!p&h$mY?0Wcfk3QgbdiL-&V2|EjcAtOyT-DL+@y}}a9&Q7{ z=#8rI!bk60#^)`#MWPx5t?=5WKfU|ykUg+;t7ehseUJTP8(f;v`)o7XwXc{9;|;v{ zGiYTG4&)vxXN^)jWSx@W-@6oY>^dRc;mG{7$amr#LO zPsv>=PIcy{2+eBX4qxdC!3+|0H37d{cr02hAK<1#8{_wG9Wd7akApJ|-;SI%j})q- zY%-J2aK}L_g+cl`BPV+(y*-U>B(%~cV{qjcI1pL)TbLaP4H~|V6lT@0FUW-IM>7+8 zS=~7yqN)NfURihwfGUm7ztx4?(JSXSZfVgEnC?0a0?7u=Zym8<+CJs~(R7wwZMI#v z#@*csPH=ZxytsxSMS^<@1gCH#!QBZ~+#P~Lad+1Og+ifdDNyguv&VScz|7En{03|feG=+$19XdJ#D0ORXcx2;-%wOhGXi4hH*7gL z9u4#-O1^CQ^~ms{$t)PT7?wmHklS7bDkeLk2;hh6(zHrWnCF5f5&#&v-O8lsOCwf^ zCH12nrs;E5Iza8a-FO6E&%6E1&`qs?A0_GZ`(n5+EXuolTAItY)k|Io5U5w5TcT^D zOCPveWc4>Xozs+j`EGjHViDVO#A7uU_QyS@*;eSn?ee?5B$!58RDmB_Ry(HI8dEzf z1N<$L(+gs_%YI!&s3=KQaazyZSOi#~MS3`|uRQm%ZV%I@cyt}I; z!8!^1sz3E^i7y_ri%qF##}h9Ey4mn(c{y~elvg%xzx+FB=Kr*S%1YA_Z2=Y?Q}>A% zL&G|PraDZNPo-VK-ap%lh7YogT+EO5Uss(d(8|hDxS<}i$+h;b1HFfVI2^dD`T5Kp zRY`rw5l7rm(OB_h$IQ4FR&KgZ4}_~A*XHo}8+$$uI}L^Q&+|JX&N$k3rc*GIpY-*z8f#~$d5lO0|M_S=!hW=uxdD0P(N_n*N>#NzHp$K4g07_!40 z_Bm1~yyy3KlkFKiDL$97ST=2sAiMnfcU0brdB~XI$iFnRx+^lyT8t-$BLB$Y4g{`; zQNtx8to8L4fxs$2n!5Y^{=z;(w+2+f^d_X4j7uE-C}-+sr1VKhK3|({m~!e&?CLmk zE`shv6J)#+Rp*yUbC6jK0%!vnXMrro;ieV!gv=D_`WI>-Bb!o;%t~bDqSc7?KDI)-`HD&)Fv-30iaL5CRbxRAtWk zK;8CB^EAE&{nz>TZu8}Q&|S4iKd7}k;`0%Wl!B!+G+_E#`9eEsPF?$^_49T6S-{Bk zz4ie2-ufGxe_<_)+lk$t+?^K=}3V(}}q+w8sq3zfr<|nf=;r%FN%@2HQVdC~gi4<~H$F0_rk97RI;W#&opO|4<2^Z!8b2H-m%;=xEde&AAYN;7t z4dUS!X6xJW<;%2x45yK*x}VHc>qz=A9cGpRV;G_v6l zGGJp~-SN}D0hrWQOt^l%ND<9)G$}yrtm*9CF-ZfB)hTkIF6Qe#&CL2D;doxk8ATSB zhi+8rf7tREHu4zIu?zi~@||zUut$wR`U`aM2Hdd!T=zvG+KLo?bS+r2*RsCPU!P)L z2U`OaCN$|#S>rAQQ(dVLaH_l0Zp*IcY5?mQ#JznEsFeKx;EEQ<$4UpvttFy2g$Q_W zFsil`FbKc1bZ$UxtK3Jq9q03K z6n|jBdJCBF36f1l0VQz1Ojs#zalnRj<|ev4z~dgMBq${4&)pokbEI=NPII%qxPEH` zgiT?5v*t+2R7Zh65lIlJvL`LKc15B&Z9Bu`tH}@SI(3zn5_CRRlOhk0qEu0{-8AaG zR*R;X#}Gm(#`5Sr;v%%;ki8Zu>-U#^gpl8Vzt+ zS@YFeqZ(sG4#LA2c)otNj_cD5_BiXbc_Z~2z00D-NYu&F71_bN!bmuIneP!PYT3q8 z3u{u>Zn)vD)KNR+{iSj?soao$7WG~YeaZ*0Ty1W~X$H1t!rXW3EAnPE?0XZX4 zxcZe*unW?l;$)!^Pk5@sPilS3Q=Tz=I4+hid{TBBeG(}sZYm3!*R zE^5JT*&dLjVw|mMhrLJ=mU(HScK7@0>bC&=;Q=;tO$e9R`1{5WL*~pwAJ?VyHY7Rr zhYY@Gqt~UrKVD8v3$kk>a&^QDT8mS)$UgDb61~@w?CTvlq! z{~M|wY|y0&uA#6~G;bo59CDjWEi>eq)^gZC@!;{2b@zWGRqk)%AxEu7Le&a{UhyB)hEjz+XtmemXcsL1dq57 z71j)ub$gP_^A+&5_8FABbC2l8T4&;&9Bmm@Ge6dZbiL$%m1@nOQ=Ux4FrY`7b;JyE z_2?P|CMA!G@qHju$%cZM-&>y-{*xJ|H(k-dK>$kIEXu3Qf&z2^y)sdUVDCU!%`6J0 zvY!9m$jia*@Z|Gb0TOD^*Z)z4vKWkqx{|2&L z(x26)*c5l4!%y*|5Iwlv8h+?@S~hGB6gI7_6k_HKt%{n%3s`X;anoo>Xe=4AJ7xNR z^4rXmV*+<{F>W!$Iq4i81PPf1Z=miZ=cUU+JtS({B_`}NYMphr{nY0EUrf6#AHD4k zyr?8W$=*%1Y{+2b?4Pe(Doe$m<}Dm0u}(I3@SJFMCI;5gwDH097e{%CB3pbG4DeXv zS_;iokUnv1%<0fE^7t=0690x*RVuhl%j^SB6*vVp((-m?g`ZqkpcO~#hWjRAT6Hq#%ApCB9l4FaWZzV9Bsz6%bzOl^(R%b6H``F4B_yXvb+;uG0o ztXKyctO%eVS>2Sd^iYYvW&C-rewH<^(?ZtCdGn(6V&G9RL&a{R1+2LK7&c``DU$=> z0>?CI#$v-fk1YfxljACCF^q0YD6{~t)XnO6U4y9HlWff)6jw{|y^{>T_$l%iDvnAf z1+Fr*&bEYM_h_i(j`Fs1_V_SSBzGkwIhlaGnOjIhUXtBNLgE9jbG$3+?VTxeR{!p) zHu>d=#25LCgfZz+I7$*AJrN-a#X>)hC;!yS8fV88qh;VKU#?JTQnchovYNUOLZJin zM>i4V)F6c}e`JLADYytR?aa%rr}|qTK6;*LchYzayt($0ea3s@K zKwd4di~N(1nv|CJrJSjow!@`g(RUL6nXlPP(Jm%kfUSBD@V+?M7Xr)(#n70X z92(VqWKFDHIo0Gur2m+Ezoc+_WuVfYYt*F)P3I_7Pr;T|$SmZL0z{_27Gf#hFXUx; zyrhnSWM{LQbV9E!bKG-L`oo~9A%V9(w6H<}#D?>Gx@A)>W|0+RszqxqOZ^E_>W>-T z+g&5%v&v=k0qx&(1Lgcy{rY4; zHY(ZNJgjIIzM4e^aGYxSCoL6t@_~YhU2R=~#}%c-p=O|sHF{Tm3be!Fi!9pzX5wdrg zo$1mUy@WC&QT1~`p-Ok3@~|96nHYS2qp{%n2N2CTEwPImU$*6WR)0idd$=s`mlSsYQNz)hQ_bl8K zaARC5vyDCK6u1HPDIbudh`5a>Xk?xv7q|esxxU>#)-c^#Y(mNF?POzF4c`2|AlDM2 z?tJKkpk$_Lv+twXrP&{CIrqNi=nl{s5D{};^;Os4_oZUj8%cFXd+93_mA19Nckf{T zkZ9_`I zj-Ln~8!if%zv1re|1qrpaNu^PH%QS5i{&9i(LEjDFEKnZuXjYnO2 zUw^Ly@w3?a1>40>r`A1n_y5xZM5rS8N{==DBKyT)Ff!e!Bq9f%;r8xwWZa@hg2OO+ z{-p%%K7y*uY&v~Sl1L$8Eu8K-6fpH1dXF-7TtA0q0v5taS>0rbIOx-DAx+p8bYiGE;0%L%?wkiz8pM~E7PD>N|lY>5HdaXb4aJvTcZMXo#^G!3f&ta zjlKwZxn+r=P7t)Zo-+1xdIFP%ub*bXG>S4%-r@?Xq(x*gsC;zoT*VKBX=|U6&}@#Y zj;L!i^(qt5pEs?Ka)6^~VpzlzBvvjed?KJ?WjUuHX~X5?+z${zb&rbR%B)OK(|5q{ z5+SOaA*$&#b5L4Ka>~A^)clX{w*4HoC#d}S zFI0Qat(oo}3ZF~*{(sO~csw4J|t!Z zvZ4&quY=tl@l4Oi8{A!mN7UufznkUIFmJ-k;XgO#-m& zFgN(5;W(CA@j7*RziAS35=wE_jVTV!9nuKxaWn22UuW8J@3^p(aD;wA3l!hD#?bO; zs5|V8PtB*&Rno(uwdXbC%V?%;2CR!U>ljX8gY!tn8vv2H zmZg@Q%sux5%Y8KG7ih>n=E(Lw+UKKn21-FFtzjU)x98}N7ej~U{EM1(e*&`RpCwu? zYGH>a?w^0563#^?H@mW}e2fZ*Yn4Y>qOr<{rVQ+NA}Hi44SDisz)1T6$pV!1?KWx3 zqz@gBdgfWeyWT;5iP!Wld6-Bs3W~oNjvV5hgxZ2CKtJ5+PT667sl$|+>boI5#Eu_u zWCdp2h%#Xy&Jn=l&GRvs?^z6lF)F99fp#+ARGcXT~lcDqsk1_)~7o|Lj-_RVIdpD?Vdv z;xv;Ek3LF}6jZ1&o4yq5OTtZTerR3$Rf(j|G2Ix1F|NP)_OX$-Y$oB|e1yJuAdDyBm9qwo5?Lkz z3D?`epUa9)Sg;zO6mdiC;uE6zHKIGMqs}N)0i@4%8Ya`x&!|7)Q^~Oh(D$nQ70j`J z$SQ?SlpI0%YWbhy^Tf<1?dwb3`%L%0{YEfl>aawe)Gwy&>wlG1mPN*FWsZlcwdA0D z1y`C@e->0Wd{LYksn)%IPi6 zoi~b3^2}Jq&tBgrzDZKC&?$5K7-?&~GE-@2$xtc>jLB?ouyA0Jt0VvbS(RY`EyBHE7r^=5$van=A1Zjz%-B@0 zyTCO@g2`tl*4B{F6`|ZvyT0nW849v*suCJcIKf-}xsKyvagI25S5|n_6myKVkY;Ff zQ5)1TT2^H%NjXT<)IcVH#R)K)d9(KbuIjhU;smfpUi#pEaQ0gKy@*1rhrekVrYyOG zOO5>hm-(Kvz!L)R8m*q%V12X%5o46&d9V}1lfQ7!c|4%w;(rV63Ch#ZJC%2LAd}QT zcm8T?@1(_a%C?im`oHE^sIHnX)IkFOgFh9?;52gv`8U}3a~$?CkHT|wB7^xJ%&Xh< z9S}8gMn!y4B3tFZUiJVZL_)cg@Yp$>a}P3KOD%;fX;&4?FyeAKaGtMcdhlE z0|Y~-6Yx|H$$94*OmR0+vrOvePsquikb{=Zddnu)tbWs*pX=lt^SQp*1Z365#kfvF z{(SdXR2(*V-+Dj|Z6y0j9iJm=%5tB6-#gyHkpzoi~!pNFbHGn`G&y9D6X`!2gPTz>|aBe+F`FMicD79XQ6cus4iFT zzETM4{JhmrA?+_#A^XX4u)vHyiY@Q@{*Y3cle~y7PLVv>hci(^|3Lzmx^`hV8S}t7 zh0{=p-k6%&JYmwWK+FGZ!J;zCXlCESHptUoOdrk@xQ~mls2TV4&7|n~R*PM57F-aY zlN?<{`0q^XkV9Y%M1Z;ARC4ZCu;I*vyAWTiGyi;sNqQH0VYfSP4%vjzIliepRB(W= z%+E6i-T`ekfIUeSmP&=YB)Tc8qYa(wZaBxYRxaF)52{V5{Kfyz z>3D=Vp=c5}jeTNF{$##wA=g?F!-7P2*q5(P47C9wo=OmCk(Q5uLZiR8EZc29MaIh4Nie0dJDC zhAZ<4O^k$7>w*i;N!%U8>?FN{naMnYt*Zik>ul-z4j*KbVv&PGlQ9vm`tWdnO+O zgKSc8^A0(*>nzvmbSYmf^+=^Y$b9}1?TNO1ix@@k{}V1Pl6C+keaZxW{VlqLny;Sw z!<~pS8Jsq`B}#tdD0e~0_!`dAgsdW2__?plv163|D1J$qkcX*x+R&icW`ktqQ7QY| zSq`pZ`KAoUM4aN}bVETAX*3R) zlm0!Z`iiemJw|ydAa&LV%}LueS&j0UmyvU3CAKySYZY6DQ0G|1oxqGnceGH)&K#9Y z+*mbmL;TL9PZL%(HLAOZAbC8YVsfTP&ev1xp0h+XA(15AB{Ca`{HgD8FKVi4BNXY% z(+XdOkLb@$hgU_e87DLz8;@9ind?I(POk7mttf=sq~3%(xQdvMV?f*nl)RwAa7GWkNY*X|`*beTozlTZ} zA}_xuZ4N3Pe%Y~Z8Q$~5zS$i?DFL#9L3tz0VLmqxe9A*RA9W&;y5MR#LZ=d?;wfoRZ_npxL(eg7CvnNCO@Td033J1AHdyO*9>3HBJj9@}<+&MYhKk*yFj!G^X%;XG)r9H%i7lEy=8+N;A~A)(?AC zD)2Zsq}+4a|Jb+JNJYh|(WCe_f$Woe(`U&0@+#DhDzBsR_?@Cmwr#j>7bJ6$Gp27u zs%OEHQ7)b;9U(~8nNT$;jxJ1Q(Udex7SxDg^C%PldWCYO#|&4m>k==#(Q9j;ngi_8 z!ERGXVT1G+P|}yBq`L<5H}9fi2JU(vT0+Wh`&lm46p7uS0?oQ#CGvs`rZT3-Wr)T~ zTGimJ0e6L1<`MSr{=zw0f@gWlTKbe%A1O}M4z(nfOn~Ah!lsTQ4)N|ul^E@0Qy_n2 zC##rTJxnl@pOR{QXMW$Da_m#(LDx8zv9|0dCG8p6xm2f+Jo*CeeTFIYR0)GD5rYQ> zql2QN^WgGSjd?h}s3`aBZ6#rV@-GhJ&|T5jatjYufCY>inJ6F+x^!j(-qKB!1wl~L zht%}cHLDu@SC8Fx(q9X{XtIG6;vcRRUwxbPr2Gz~fI!{G224B)F0tuZ?dBxRKo6_e@0~LH>ucw98bRC%JysR*5 zIsTC1&?g%c_)6k2q6T*Ke<+{vcJ>#{J>=o_Fv+gR?Z;NJG7FGB_vJOsi42DwLrpLk zBY9)MEJedFBSA9nV1ZZaduH#PAi|HEUsgvXHFB-M!LT7G+8%%6|Fi((Iji$tT?ilL zh(~!eQ}Zy2rWDQ;bxZzKq;D73>Yy>og3vP35w~N&JyXP9cmTnBsfNv?E`mRPGHL=B zYpiiNr8B;WrqZIcrkEQUa#zVx9z!k&!r*&5gzW>juxS*5R7$06Yj!*Bd)o8ILVeyRAWq0-iZSl8r~r5_QKr zB`PWkj1$XNmHkAODu5>{geOB&`mmRVJS#f5UJCqH1Zx^xy4?@`?|C0~qxk-i;n!Zp zt2CBB3=@8+wr3VF={JSe)cc(7(|f)75GEyfkcYix2G@p-~~v zJfp_Ym7`Uak|a;^70F>Y8r2mMr8XP%I=!hsn8nj~SHjSfl26bi=C%xR-Kn?r4NMD2 zJuV<)+#gse=w2Ot$E)YmkyFTcIzrCCTS7%unS=5|5|p_Ur9gzr3E^pZ znq-(SM;2z@+Ud`zJAV{xDlZ|15tjRVf$CX=Sx(sN)#F;b#HaDq@IoI^W5)*HuPTdK zt0hhoR2LZd;MyTFo8*|re+B$8)$%;?LG(c#%#FZGX6TqClB=^ESztSj2z7iT(?2u> zWjW$dr4;%t`853M#a9|uAM+zrAss5L+Hs(}dXs1E(*8j%_^3TM3HQSVI&|$r-EV*d zft76F4Syr&Np*?*AA2?2-qJYQo2N6&vjX%o<*?{h&1#vvBGW2MI35{TGVs2D$lSLy zDRPndTM7J>ocZd=Ix+p#M|Uy*o8l@*Zv*GyhTs&PA>-cbhHD%4=6C!R=f*G~8`hHP zgmDsNWW`fmg3*v6te!t)a;Us)DN|>m7poE|&?F*Z?rfiSbL&@j=xlz0dlWglQ2Z?x zSES2Z#otQ#bx)xqKCj1m!JbLJmP2|HyL6>VCVVu7^^;?}Wu{mhwuG#B_0&EVXCk$v z_9hJlyFY(TDg`z13b7XkpQhd%PBMArt}#ke$dR(Z==w&PRmvYLx(VU06R$_$8KSGA zdT-eZ90a)#Wc!S+?ym|bhl(My5X0B;tvZG$B5CK5qt2W@+(($ zzFhqEKD^0s8C52#+x@=Nu&wmi5+w_1A~+iAnHbf3!5Yv4oZ`K1!o&py)w))58J95a#>Lfyy`DiW{Oog`Y?DK z*K9J+!4;fKF41dsCcC7@J&C%-#$+_Ej)P=ahQGc9C}1(C#hr+{x6wN(=y3?*&yreKM94U+h*OU+g%g*JO9Z{(OzbDUWIUnfC>haK+Vc1Go{TJN|K3^!%Ss2KK6=P2GE|vKYXlon9|BxAf zn;#)N^g6VmjS)rb(vqo|mtC^pUlsb8;Kl*W%ckW+t^;5&m;CHL4Mmr^&5YiwPj+w5^Z(dk6c3U;6(R&RqeF^+NC18hmOjPDu%rx?LFl`RMNV&Sa z50V-G+crWehw)AvhpYB08NERfGK1oe7*X^$MRfl*8z&?05xH^E|_;u9*IN6}wU~l(xz!)iDiui!QBc8BN(rYS+wRxc) z9GS^PxSCdAf(Ytm4C;4g`IfasqEQR4Jb7XjnXw2^N*S9=&YM?Gwjukoy|WrY!hc;Jq-1sCssQtbmzr5dDehW79ABU<4!xa&tp zucuFz@b9sk$m@yz!NiwW{C)HPPJ$xROyBm5mWC~>^c;PROu`jnIpVt(KY`;NZKO;c zNQ?+V3){^e~0ilbu%>+Y3M@dof#piZLbY zKE9Q7XfGamV}`yMvYN%4u#8YJ5h!a?zhRc&e3=-;b!K#7Vd{(Fksh}(Zl1wKDzQ^r zMK|X+!@}SrpP_2RjvLE{2tBn=niL?oF>=sfndj4Tl{KkAOSAW4svygkl5}A*D#b44 zi{M?xP&4VP6U^{ZDJxY2&nP!oVmoW#uCv#w>gC_a#N1Jzu4qen`B9H4V1>lh zbl3L(MOk4=O0c9oyv?B~gdK@l+F|9u$LpbNa*_b7T33ly*&K#SL8y*;OS$%gyc0Kl zP?gycf3d`8?yz%2VJSuj0=+!4fXBfoM%1x%t9FM+T8=ihOd4jm_1NjHlH~j?yF-P_ z%12$-o)Zt9B+g;%>y-K}ei3s<;aAigO>;2B;${~UT^i>!4-qQ2^q0`8K5=EI=B*PT zPl_#X1R>c!St`|;LZUQYfe#iIGI29`o`oXU{Y!PS5AHZ8QJr9FXBOQ7qVjNs3A0Wy zlcGAW(oVXR3Jf7~)`9o$)831QEZL8+@ovs#T8M|2^W#AB>+2BmYj!wwI_S@fEAcua z=SmN==fj^*TVYk}MPG{c1l+657Yz!S99vW_iWGt=PALL|CyEyH>m#C-nyRt|PK)kA zn>hO7cGYeSHAZZQ^eslJ>HZ~7S;zEzIn>MVWV1VuhECSeN#4oCiHN!R@5^CPe>zhtMuPTq$}B%07&mhGGaH)e7{}FB2*)|jCMwyf>xwKD$R*M3v_?OHB5h7Z z<9C^KMlh+xDsX@L7>JU<&YMJ(yd-k!Ae~e!lHwMxbqBQKDYA*GuLGv?aoW&|O{m>~ zpg$irg_o=ztj=W#_qK4Sg0ZG9Wb~&_WTM7`JY_EFSV#mec*Eh7CmE)CQ`?H?zqZ!_cRbq8eD0~iiR;sPe#wpen$FSAUgxEbmp*_->x3?nS$ z8-D2BQ~s{QlvRU_y$t<=`%>=pNKGvos)LLi6%?Em7L7o>i;pf_VO!$& z27*&s{6DjH!0s3NdMB=u4s|s%*?bV}Zj??Vu*tv*!CnQ(vjv*mLWlR^ny8Oq(tf?| zENzkrH-B2m?+jmHkNSJ)CWKwhsZ!li%oBWJ#BA+Z`jHqjbeb?({ms8(`LEb5ZMeHz z;O|Xu0|TEKgdf&=J4sb-vC{E4kO&HM_JMWO>M0TuaqU34H@^dx>PAgdhM)*q;TBt( zRhtPs+JO%&uB^@9ODCq9wnD4&HmnuA?}vFVBEMWq2_=W+QaXk z)#n<&3=+N5hUOC;e#;wYWuhmf~$?L zOAkDjZYm!^aAWpvx{memwL^1<5T3^(p`(chx$XeS?TA|Cf$Bbxx(!&htU7Z^oLa4% z=cAtFYvnkJJt%C|Eo}_O7i-u^0pJdd^q9vBdoUD%XZX;QPRpd%#152vW=4ZPUX zx~F_>JsiR53DVSZIYiFIt>}kc1@&2zJ<40Div2CPoR#Yvk+*3E!G(UAJy@x~#{@C%AJ9RJBRdUCAk_%X=P(OyCS#D{6h4P#9g4qT$=6L`6$q1!9w zu^MF#m$cE-maP>_Feb2=K{~<{D^5FG+h+f+#X3cu3UTTH+x7^JRkWtQ)j@-_J_U1+ zONzE+6k#M5NluKCp;OmE&`)IAtHwl%&|Vp~kO_v!dw$NZlbknP%R6kGC;v|OewKpNy>>EY#3&_OdM zltMXWvKN4-!Z77y0WN_x#$dYUl+7PxX@)(QM@FJ`-1em&n_RX+zQ)$cGxf-)Fel6_ zcoi_9|IKnI zsp}0H-)3N#`uuJ61l}7cwB$e`G=Lbo_?cci5exTCbBkL=3u)$O_io!mFlH*NjHdP0 z)ZNTjl9zo>US$az4O{kX$-5D6{$+lnHxn||3gu~~iXjI0fyk#Jt+R0MLUlH}uLXsY zgT>_j?pm>{#PqR2BrkldNW0vH>lxw7pL+cG;MSNyv|9CFhL80qxYy4C$lWWCNqL@{(Kx382N_Ca@ zCLr0+?);2LE=x9cmGP0z(hDT>c7QZ^@d(4oogkqmiJX&;*bS3*-N)5#AWD``4_lNt57MYTh8aXsTF_qedNXEWqnftDUn{!-PShd z(z}=Ec>uz_G-ZJ?jfrBbgwV9qGPmfQCGuan3nrIzc* zxrTh&uP%`9bLp&&xLu@Xds9uM0l(*5X-TaV?kvvHZ(3f8!#j;s57N*(RqE6SnvUE>=99` zS&eI5tMPKWsyxFR){Pr_HrZHjDzVN!jP!2t&c@I;x6|=k_V9IV#cL!hJ=OQV z*u1c61xP!ZeFZ#pMBxh3Olx}Q#qD=#1i^8?sDxo`#vvE@<;lf`8 z#X!eEiD_?XDHB~bVux2+QP_2(AhlMrinS|ABNHC`OI`{SkxbQUEpB{4#9X_(7|uC{ zIfK4|uTER7P%x?7t-(Li(eQ4Mm65-Ee{Z9=MxH~nLH=VTl_j5#jt(HGr>3E5P$U0Y zM8`{7{Xw=?Jp~~+{&AEjb&Jn75X}6rTaxdqUz;d}C?ei$_mIp&GB66~GVmy1C8ipR zcsugXV?^3VixX+fi1>RTmzh}oX8KSVW9hq*;Hi%R{ePfSVK3;^`abYHh8+TPvnWz1 zV0Hmq4T*B2SE*m7&@;)9d$zxW?_-L8>7qVKp1AELKKif?Vecs;D}3 za%QV@=_M}lxp`i$BpQxfANbtK-x zzZ(FuTz(1UlB?A8#cWD@p?9%|06-|`z|?^gs&2n7F2ag>P{ft?eb{7$HJR!+DOWje zrbnL%ywqE(G+(0{ucmMrQwE#|FOoeWF9!c zOja9<=rb60PnRXie56Se$tf1F5{EMM`Xcf` z{&Kp#HF#6I^II30cpz8E7dhf_z}Rqw*f&K8vEG6jouF(b&FplJ`UBbi!Uk=u{-`-* z1nAE@Z#?0%fh0uT`LcPzIKc(MXd?U`84OwPE)MMX{`v7S zyDyufM8aTxZTpm3fE!YzVM9*r-=ywZVE-uk`DAc-;Wf-jsEcaJanCb1#7Vo0oGVZo z0wvTvJ!|F+)*id5y2d)0bGRcvVYxEd{ESGW zeRQm_>q**skoCv(tKIs;@Lwpc%d;e?NoIsoMcYdY3xOvo`D65@01ISpyGQDES0=I7 z*O>SEEZa8k_XvOZTOK$G8Ym3w>8^RQc3a+$zCR7|P5SMHc+QEkcF9>61 z5*cYj)p{A))mvL>Fd|_KFg$wbI0ow&wNAw~!Oyk=jLWsgnU9O_hZpo9fA$aKbX6rr zdSSeHlFbwKrZ>ENzJe4{w9tY=H0f`MdTemLD1DiwAJ+#gQ&avNFh&zYqGrLUH3u)U zRrfo_8nzYE(jqD7Q#rS@IjdW4VSk^w{ea4xZ7y(WT>BGx0f#VPY%)rUE!!jE7r`sL zQ*&9Z@AKxkghX1S7ju=9!idyj|0npo}V5Z6dFl!ZMk?1$hTkv98l>b>d7Z zr#h*?s&@{zBQuo|^;_}25TVK(OWsVX61zgSZ(#RSqt{3%@AIPf?#(ZI$LJA837-81 zQOxFz+N8M8*W9}%OiNg}WtRtJ(2=;wvlm9BbWG0TuVHF=yfLVjtDE0Rd2pNwhEgkE z%HQ@&d^>=mjW1w?-v1dov?T{JJ(-O`52Nk2h*h_4jaxL!f?XD4Ufip+oMDT&dtqQs zbr|!LQW_{JC{7bjYXk2r>oto&L|mJ~F`Gt>?iNrlAQHck8w{RbG;~TH+;GP+@8k(= zX6mmb(>?@(*IeRgqL4_;Bg%8sNs%)t=*jP6@0!O7}hKFJ_N`dm@ z^n=wI+1H|TS$39z7&xlQrbO>4!QOljV&VyZ2O`P0 zd7@@RZJ!s(12c;jcQGmw1b%Z?M?UuMPTV;h76d|8zw?pyTyN?3q8Y2*m~x^jK#xT* zl7CxP?rtTe4uO+y;zvO~7VO!=KG0^i}2e?aKt*^8)hKMZtw>VI8h)I}O zl(}WVv#+p#MTpRLSZh-Ymb84F@{Q}Xsa=Ea&fo>(p*zTmf?kTm3)%Tv`I=qZH!r2I zSXnMq4K#aHnWa)C`5(JZlcR=hYlO0qL}&A9x)()^_%`=kQRdF5z;tw>SMQth;%VBI z1!f;Tj~QzQKF{w0)S+bM&otwsJ zOGb<0fO|FS_*V(I_~O#YO?=SJ^#BE>r!jw5K}}moe}3OE&PBq#34TAGLG{ zx0!Rwkuk4PcQ$8CY0-V;7PJv}|zTrl>_ zsc2*6?taCWB=`Q`W6@J+#De|YuELI5S3BxNF9?p<5*D_j*|3>Lo#>M++b^uVSi5ab zCTwy8?uREZ-zDR&@;H18-~LwoQswKSApUDm3*B?S(pC_vv$T(3x_a0SzYI<<{og+N z8$+IJ8?x|le$T!jUYo?NOZBEoV2qBHyiX!w&pVN@GA&wavE@Jm_XXrC_z9)t6Asja zXKU-JJiZP1?m)VRed{15XN~q}B@~#BSR^OWMZGVAChD#tVvT$ZtFs;nDosvR$)##I zQek*v4e5L;MyOm5Uo&TdiWAyERk9CoT3CRtlv0BAQ+=(wX=0E%Nm({;;#Q(@Et%qS zn@ocdkH%ZAa*q5xd^S@RTD>E+f*3jtduXSBb}FRi7fR7ZnpHBu2$~-!`|^P%H1^dX zd$p8cKaz8y;<3u!jYm&A%eDk>guYGJQI4v``7EV*LI<_;BD{a`o5FJ)>uT$lfPUzE z4k5hQKQI2az_VWvpjokE-!vLy@0@;ZqWNZxJs{Sx^b|Bgr8);0?4<0}oT+qJHy}+mr(|$BRh( z+)4eT{(Fy%QJcW$emmUjz+Z}iUr}4-HtAUN`Q_kkf3rb?Q^A@MGLt{;mjVzVO5rP$ zELa`z-?R6Bf&bwid^i~D3A_LJ%oXM=M~0ERP6Ke*q^aKf5tF_ zBEFvn0we-mGkQ-XQnK(^0JEa%oLElNYZ9p(%Q(^ zUQ0R#Mz($>eM5hGIzseJkMEtG<+BXXIwlpJ7o85`G76lqRDdAX?YEqrDEXqio!ejI zz57f^09=O`CJ#VQYbjxL6oT*^dWKWsy6M1q>aE7HUVJ(+x||+<2)|8{l%p1WaMRSE1TG!HUdYjP zfQh$Oq)lkW!9o+jLpbc+=Wqyb?%(^TiHWP*K z52sB`=bCfOyc|`LqX`$x1g9AiQ(Hetxm^%TRWj;>i;dS_+#Spu2xM$~Y`%)>xV3Eg zXeE#~g1-00x@*78(-*p&PxxJCxZ%q6@UlqtaCJBzz}(URnF47OlrvlemOCnA`P30O zd5*t3s3Yk)Id3&)^WU}}_@qo$N!pMyY?(x8Evxi}xywmlv2>x{9Gq=WYOQ^!oQ`v? zSOHS<*qr&H2XWIZh{YsX=`aXW=K4UEa!;o&Owz6I`JkD%pm)JKttdG~F_TvzsPE1S z?of3&8zA4=(OTIfXo6#r1;_&$br&CP7~nhk7Gj!;-j8Q%2Rwzr(Y>h82j~(MRHK}^ z6V*Ax(b*3r=cb=UzLhX_8VJ)BEtIP#PB6KjOeq-M2x<(s#aRoIbQdJ@C@~eh<&V1& zGRKoPd)xdvH*ah5w?%4*Q4MOJ? zQ$S>T?;QaKe@BQf0pWj`=N6GC^Ywqor`r?K_NW7tsy)=r7V&I{KFS7TJ;A9=`74H$Bfy-m@E%V~aB`IgquuF|H(L zlK?r9_v7}Nii1$QWbe%qacZXVg#KMBkFeb*RbF8I*FpImFio1vwVCpx*bxf>xj<}gWd&sksE|))!EsD- z)unCP8#}-6kVmvlIWL`_K0_1puQ0tko|&r`=|?9mPk)~w+#$uB$&!_Y>ha<;B1h1g zRFkU_Q=Bm#7&X_IJ6G>Ai{fL}+(P|#1y=?z(l9_KGsq~>f>GDS0&F9dgJQ%S zt;U(r!_0GH2hEd>UBh1~F+{z?QyLNb@v5NMP68aZK?4(0XSLNK<&-Lv2gkK_BfLEx z-kutJGzA;zK}*;s$iyTOuhnQ`Qb|kDg*`an0LOF2Np^!$S=-G;}8}A}N@YlEa8?TS7uD14G#)nE=>uLKCBGSyvfVm6h9LXx53c!0PP*Uq5 zBJmvN&^qW!2D#NtrE^q3p0fVjqb;HYNn$VwitL9nQES(hvrteE?|h_|=`?a!p~hDS zl|C**R?xii=RW)r^z0fqXA#T)cDDcb+EhUSmocI#3B7uojw!6=8 zbIWjJmU8!WbMtgV-k0D>b1%mn)0JBN+5E!F$NyjJZ_eO=0Km>j!USbWSQDEvH*ER$~@zx1Y$LWSYiwx~~8UOjOQt#WW>_9ScBYQ&Gp}{#Q2zcS%nd0SOG0 zY_w_X6GE5y7t~*!nsW=$ZSbW+6)`03h6x)P%0C2@3|24%!F`a#93>f8JJONyVI?Y#xuP0 z{qP^4F1fm8z7$o4wC}9NjxBp0+=McNu>QoyIl)O@x$`7Xp0npF*{Ijc|`EB5Mr_1b% z+{&}UI=B=>oCru$0To=8RD9yIYS@jYzq=svsV$UNP zMNEZ>_2dNX>hX!dK<+JpAK(snlFEaKf= zP_XsOr|Iqd&jP=KZab+C*`hSub7MYWzWMLL{aR)ay-m{{82;O^?PZ9dd6Uv(je74sN=-pG z*SDyJV^EW14GoLTTq_a*^0TIW7r^#20uEDx*a^c95820GU$clz!Dw5s(B% zA z=(TW;iu5G{rx4b zpE=6dI0oGxp@-Oc_uabdHqP==?svuFis3E%u+Hpv_ae2nomg6Ud2?T$8I%jnin?NB zu-eFuo#$?kQOX3k5!2o@j?J^?8c!DReSA|$fOnmzp*HcliYZ+P9|soO*396`u?eBS z{8e%5KZ1YJF2lc@8E%X>yOW%V0f>A^aNF&wCRe)5%OB2 z?q|-Z+!~y*g~I@1g2IFVjR|L|v|}%7CYW6hay&*<=raMqGXeD{&13Nz(tQfMCE4Xw z3C!CYP~pjljC;Yw-uz(b*o`1W>+{Sn>C2c$OaS@`k#b`%Ql|IVE5Kf{^FWaLSW5sTM=$xK(GIu6 z_yzgNUi&zgq~VRH|GI^wt^8#VdPwy9Uw8U%aobk=y!?81OUrh{J|Fk@?%%dFqbi~1 zvOc8C?rCcZM2~rQ885HtzQvWXIW5&EsgOHONyeq(qP_W8vZFQ11sP11x1g$f zh33g7l;nm3 zzdZ~WvlEOg`2L>$G;)YQBSZd3{QLRPwZ-fq5dN-H@(6nNA1DcBBMxCkUHxy5d_XcE zL5G^Q*}GXF_DF>K^ND!RYNqAhRzTgAq3s83EWTM{f+j!L>OcCtH!xzm&A%Zi{Cns* z2kTXYIq}*BLtTJNA{ljW*<7IH(hE<`G3Bx9V`nPb zb@?E2RKl?b)4B4N>S(r*Pg^~N(c`qDgzcT`pEP8P#Bvb{0sWL}5TMm%qI?a8l)WZ- zC-2?~iJi~Qv|0r7_+3W6^5mc@Xrl*QYY#dLi|RMFsWkfaP)i8Pcl2}=i|l?hx(lkH zsP7>m3L?3=T}eB`dwwPu#XysiS@@o*LsGzANo%{TJSr?6sP~<+ug#0LR)|v=tto9H zI^pk7zv?oqzn27bTR_VMr+`0<0YBa#K4Kk+(JSju;#vx>LjLl>_=E)CLhSc@9kxQl zhRSS02Pa6P8N8FjP~f{0aKuOeZ@%&YC&$_*nAi&NFJdzAN5P->n= zUL)%-v7+;+6&n$4fj>E=Xw&iBj7JiBk^DB!r77s&%yks@3YGai1*sB!7+{Er1gkVU z>C9o##+9OM_;UG9y)TNJKcOix2l7Gl${U??H;S{=`7XTL3%gZbZ`GhCBVU1CaM`PX z;gE&6yoj0KRJIL;A&N7Ey6}2NdtEMwJi9Gs59B4S7IGU*zVslTNZiO*ensr6$~%(or36&sTlf%35(HyB^IY;Na;tD3Z-c=s#o|}F*4D0 z=N&rE`@Ele={(9Jh9k{+Gk!2KN(DeZ3)k1PDgU^jiFrLY*LoFy_78BuB542rSO6e2 zzsD*XD0|aKqLN+S{4m-kZ&sny2lVa$7huK;gRy`)IZ9NU*L|#;jdjc;aHa>yxZ=66 zn3k}ylKO_YYG92-uBIV-Wz7^OH&5)vSyr?FF;%OBwz5s8CY!&wSO#Gg;m>IeWL#L$ zmhw%GHbe<~H!(J^a+!W}7FiH0hjp`;NIO=`>9qT-6DSRFs#@bqG=JP=jh1(T=X0N3 zr@|MzCC=!((fo_}6)wFFH>bdB$$Gbhx!#HADlN1U{&QA9%c!W#V<5n4wSslTAy!fo zzQdc<6ca>Ze0bXZ7L<^gU3$P)-+I?1q^EEZt((@@HX-7zuMX?C@d*uGH41^DVivPl zy_@qWahxx08=w%_J6lwN9YCLvD%g>=+zVsMF%|z?ID@4JYg)zJ-?)*Rubtq8_sa~b z7Z?k2lF{C-u>cU$Q_$#JEt$h&|$_K(J4}x zJ1yJrIFVIaK?;pc?k54volW&TJy#n^zQ^_(w<*J+11fr1q|NGlons_LA(Gq7*+OL{ zQ$3}5h>JEG<$Iyj>8f9IW`)I8$wV)+ZR#C$m#J4-Mp2^L!Fye`I1!fN<8JFJ9cKC zN*|NcPbf}$8d=#~=fV56Hb`^~9R4q1pBZ8j@U7n6wwR~fVao^&i(dEIsP-erlm7pda6E zBhvMkzBN5(&eZxHJdsT>%H}<>dg%I>qJi7^-Byg?o0I1SeCjxu^KB2mFW2JmYzn

    ll(i#(MI%ePwCCZ& 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

    Ud{9*+ubJLKYRLsB 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 w&@hJJ5)~Y-qTrmX!^dsc$IU+>ijq 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
    +T=9QklpqLR3EtvX;l+E0 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%0A3}$8OUQTg)+19{Gi26=d(dm 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%0AXLTv0EYpzuS%9Q@FoKUc;Rv8R8-~6P{ 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⁣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
    x<#eR)APF9fp)xRn<2=`)aI7o> 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 diff --git a/scripts/demo_hyperbolic_clip.py b/scripts/demo_hyperbolic_clip.py index 282e7a8..6da1a79 100644 --- a/scripts/demo_hyperbolic_clip.py +++ b/scripts/demo_hyperbolic_clip.py @@ -3,11 +3,13 @@ import hyperview as hv -DATASET_NAME = "cifar100_clip_hyper_models" +DATASET_NAME = "cifar100_coarse_clip_hyper_models" HF_DATASET = "uoft-cs/cifar100" HF_SPLIT = "test" HF_IMAGE_KEY = "img" -HF_LABEL_KEY = "fine_label" +# NOTE: HyperView disables distinct label coloring when there are >20 labels. +# CIFAR-100 has 100 fine labels, but only 20 coarse labels. +HF_LABEL_KEY = "coarse_label" NUM_SAMPLES = 200 CLIP_MODEL_ID = "openai/clip-vit-base-patch32" HYPER_MODELS_MODEL_ID = "hycoclip-vit-s" From a6dbf82a191d697e227ddbc88b2e63e53d44b7a0 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Sun, 1 Feb 2026 21:38:52 +0100 Subject: [PATCH 62/75] Remove unnecessary note on activation command --- notebooks/INSTALLATION.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/notebooks/INSTALLATION.md b/notebooks/INSTALLATION.md index 7101f11..2e332d8 100644 --- a/notebooks/INSTALLATION.md +++ b/notebooks/INSTALLATION.md @@ -75,8 +75,6 @@ If you see "no such file or directory" when activating, check the path: source .venv/bin/activate ``` -Make sure you typed `activate` correctly (not `acticate`). - ### Package Installation Errors If you get parsing errors during installation, avoid using commas in the package list. Install packages separately or use spaces to separate package names. From e1ecd007a5435e9a8c7d74153f310c40a0377596 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Tue, 3 Feb 2026 17:36:22 +0100 Subject: [PATCH 63/75] Place hyper-models outside of hyperview (same level) --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d687f7d..a502d46 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -100,7 +100,7 @@ asyncio_mode = "auto" testpaths = ["tests"] [tool.uv.workspace] -members = ["hyper_models"] +members = ["../hyper-models"] [tool.uv.sources] hyper-models = { workspace = true } From f2ebafa9ff38fc3a67640c1be44cb82d59a77120 Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Tue, 3 Feb 2026 17:38:00 +0100 Subject: [PATCH 64/75] Update CONTRIBUTING.md with hyper-models clone Added instructions to clone hyper-models repository. --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dc95ba9..a35dbe9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,7 @@ Clone the repo and install dependencies: ```bash git clone https://github.com/Hyper3Labs/HyperView.git +git clone https://github.com/Hyper3Labs/hyper-models cd HyperView # Create virtual environment and install dev dependencies From 04212aae3c9bc82b3ad7064327c1c32aa71a15dc Mon Sep 17 00:00:00 2001 From: Antonio Rueda-Toicen Date: Wed, 4 Feb 2026 13:54:26 +0100 Subject: [PATCH 65/75] Update demo link to HuggingFace Spaces --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f228ad0..d4b8f57 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ Traditional Euclidean embeddings struggle with hierarchical data. In Euclidean s **[Hyperbolic space](https://hyper3labs.github.io/warp)** (Poincaré disk) has exponential volume growth ($e^r$), naturally preserving hierarchical structure and keeping rare classes distinct. -**[Try the live demo →](https://hyper3labs.github.io/HyperView/)** +**[Try the live demo on HuggingFace Spaces→](https://huggingface.co/spaces/hyper3labs/HyperView)** ## Contributing From c5aa6689aec18bd933cb1bbd6c2e769311a4caba Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 7 Feb 2026 15:24:01 +0100 Subject: [PATCH 66/75] Update CONTRIBUTING.md to include instructions for local development of hyper-models and modify README.md for demo link. Remove hyper-models workspace configuration from pyproject.toml. --- CONTRIBUTING.md | 27 ++++++++++++++++++++++++++- README.md | 13 +++++++++---- pyproject.toml | 6 ------ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a35dbe9..c50efae 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,6 @@ Clone the repo and install dependencies: ```bash git clone https://github.com/Hyper3Labs/HyperView.git -git clone https://github.com/Hyper3Labs/hyper-models cd HyperView # Create virtual environment and install dev dependencies @@ -28,6 +27,32 @@ npm install cd .. ``` +### Optional: Co-develop `hyper-models` locally (uv workspace) + +By default, HyperView installs `hyper-models` from PyPI. + +If you want to develop HyperView and `hyper-models` side-by-side (without publishing `hyper-models`), you can tell **uv** to use a local checkout instead: + +1) Clone `hyper-models` next to the HyperView repo (as a sibling directory): + +```bash +cd .. +git clone https://github.com/Hyper3Labs/hyper-models +cd HyperView +``` + +2) Add the following to HyperView's `pyproject.toml` (keep this change local unless the maintainers decide otherwise): + +```toml +[tool.uv.workspace] +members = ["../hyper-models"] + +[tool.uv.sources] +hyper-models = { workspace = true } +``` + +3) Use uv's project commands (`uv run ...`, `uv sync`, etc.) so `tool.uv.sources` is respected. + ## Running Locally For the best development experience, run the backend and frontend in separate terminals. diff --git a/README.md b/README.md index d4b8f57..03957dd 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@ > **Open-source dataset curation + embedding visualization (Euclidean + Poincaré disk)** -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hyper3Labs/HyperView) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hyper3Labs/HyperView) [![Open in HF Spaces](https://huggingface.co/datasets/huggingface/badges/resolve/main/open-in-hf-spaces-sm.svg)](https://huggingface.co/spaces/hyper3labs/HyperView) --- @@ -21,6 +21,11 @@ - **HuggingFace Integration**: Load datasets directly from HuggingFace Hub - **Fast Embeddings**: Uses EmbedAnything for CLIP-based image embeddings +## Updates + +- **01-02-26** — [The Geometry of Image Embeddings, Hands-on Coding Workshop](https://www.meetup.com/berlin-computer-vision-group/events/312927919/) (Berlin Computer Vision Group) +- **17-01-26** — [The Geometry of Image Embeddings, Hands-on Coding Workshop, Part I](https://www.meetup.com/berlin-computer-vision-group/events/312636174/) (Berlin Computer Vision Group) + ## Quick Start **Docs:** [docs/datasets.md](docs/datasets.md) · [docs/colab.md](docs/colab.md) · [CONTRIBUTING.md](CONTRIBUTING.md) · [TESTS.md](TESTS.md) @@ -28,7 +33,7 @@ ### Installation ```bash -pip install hyperview +uv pip install hyperview ``` ### Run the Demo diff --git a/pyproject.toml b/pyproject.toml index a502d46..fc26f6c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -98,9 +98,3 @@ ignore = ["E501"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] - -[tool.uv.workspace] -members = ["../hyper-models"] - -[tool.uv.sources] -hyper-models = { workspace = true } From b6d754c5ab268c8b67186da53da19bdd94acd38d Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sun, 8 Feb 2026 00:47:50 +0100 Subject: [PATCH 67/75] Update README.md to add Discord community section and recent demo event, and refine related projects list --- README.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 03957dd..2c6d5f5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ > **Open-source dataset curation + embedding visualization (Euclidean + Poincaré disk)** -[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hyper3Labs/HyperView) [![Open in HF Spaces](https://huggingface.co/datasets/huggingface/badges/resolve/main/open-in-hf-spaces-sm.svg)](https://huggingface.co/spaces/hyper3labs/HyperView) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/Hyper3Labs/HyperView) [![Open in HF Spaces](https://huggingface.co/datasets/huggingface/badges/resolve/main/open-in-hf-spaces-sm.svg)](https://huggingface.co/spaces/hyper3labs/HyperView) [![Discord](https://img.shields.io/badge/Discord-hyper%C2%B3labs-5865F2?logo=discord&logoColor=white)](https://discord.gg/Az7k4Ure)

    @@ -25,6 +25,7 @@ - **01-02-26** — [The Geometry of Image Embeddings, Hands-on Coding Workshop](https://www.meetup.com/berlin-computer-vision-group/events/312927919/) (Berlin Computer Vision Group) - **17-01-26** — [The Geometry of Image Embeddings, Hands-on Coding Workshop, Part I](https://www.meetup.com/berlin-computer-vision-group/events/312636174/) (Berlin Computer Vision Group) +- **11-12-25** — [Hacker Room Demo Day #2](https://youtu.be/KnOiaNXN3Q0?t=2483) (Merantix AI Campus Berlin) — First version of HyperView presented ## Quick Start @@ -86,6 +87,12 @@ Traditional Euclidean embeddings struggle with hierarchical data. In Euclidean s **[Try the live demo on HuggingFace Spaces→](https://huggingface.co/spaces/hyper3labs/HyperView)** +## Community + +**Weekly Open Discussion** — Every Tuesday at 15:00 UTC on [Discord](https://discord.gg/Az7k4Ure?event=1469730571440885944) + +Join us to see the latest features demoed live, walk through new code, and get help with local setup. Whether you're a core maintainer or looking for your first contribution, everyone is welcome. + ## Contributing Development setup, frontend hot-reload, and backend API notes live in [CONTRIBUTING.md](CONTRIBUTING.md). @@ -93,12 +100,7 @@ Development setup, frontend hot-reload, and backend API notes live in [CONTRIBUT ## Related projects - **hyper-scatter**: High-performance WebGL scatterplot engine (Euclidean + Poincaré) used by the frontend: https://github.com/Hyper3Labs/hyper-scatter -- **hyper-models**: Non-Euclidean model zoo + ONNX exports (e.g. for hyperbolic VLM experiments): https://github.com/Hyper3Labs/hyper-models - -## References - -- [Poincaré Embeddings for Learning Hierarchical Representations](https://arxiv.org/abs/1705.08039) (Nickel & Kiela, 2017) -- [Hyperbolic Neural Networks](https://arxiv.org/abs/1805.09112) (Ganea et al., 2018) +- **hyper-models**: Non-Euclidean model zoo + ONNX exports : https://github.com/Hyper3Labs/hyper-models ## License From 65f96bc9d781631fcb90bf5d6ca0dff6082ea917 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 21:00:10 +0000 Subject: [PATCH 68/75] Initial plan From 1b3e041c508efec4596f0dd58996399dd1f2eadf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 21:01:13 +0000 Subject: [PATCH 69/75] Fix devin-review workflow TTY error by emulating terminal Co-authored-by: mnm-matin <45293386+mnm-matin@users.noreply.github.com> --- .github/workflows/devin-review.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/devin-review.yml b/.github/workflows/devin-review.yml index 5754ba5..8c5c644 100644 --- a/.github/workflows/devin-review.yml +++ b/.github/workflows/devin-review.yml @@ -20,4 +20,9 @@ jobs: node-version: '20' - name: Run Devin Review - run: npx devin-review ${{ github.event.pull_request.html_url }} + # Use script to emulate a TTY as devin-review requires terminal features + # The -q flag suppresses script output, -e exits with command exit code, + # and -c runs the command. /dev/null discards script's own output. + # CI=true ensures the tool runs in non-interactive CI mode. + run: | + script -q -e -c "CI=true npx devin-review ${{ github.event.pull_request.html_url }}" /dev/null From 4f93ea9b9be4b9521a09668116e67f77389b134f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 16 Feb 2026 21:02:25 +0000 Subject: [PATCH 70/75] Improve workflow: use env block for CI variable Co-authored-by: mnm-matin <45293386+mnm-matin@users.noreply.github.com> --- .github/workflows/devin-review.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/devin-review.yml b/.github/workflows/devin-review.yml index 8c5c644..ea1410b 100644 --- a/.github/workflows/devin-review.yml +++ b/.github/workflows/devin-review.yml @@ -23,6 +23,7 @@ jobs: # Use script to emulate a TTY as devin-review requires terminal features # The -q flag suppresses script output, -e exits with command exit code, # and -c runs the command. /dev/null discards script's own output. - # CI=true ensures the tool runs in non-interactive CI mode. + env: + CI: true # Ensures the tool runs in non-interactive CI mode run: | - script -q -e -c "CI=true npx devin-review ${{ github.event.pull_request.html_url }}" /dev/null + script -q -e -c "npx devin-review ${{ github.event.pull_request.html_url }}" /dev/null From d0a5bd16a598ee50d2c6bab7dfd9a4f06eee26af Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Mon, 16 Feb 2026 23:57:37 +0100 Subject: [PATCH 71/75] Refine frontend panels and label color settings --- .gitignore | 2 + frontend/package-lock.json | 58 +--- frontend/package.json | 2 +- frontend/src/app/globals.css | 7 + frontend/src/components/DockviewWorkspace.tsx | 19 +- frontend/src/components/ExplorerPanel.tsx | 185 +++++------ frontend/src/components/Header.tsx | 89 ++++-- frontend/src/components/PanelContextBar.tsx | 179 +++++++++++ frontend/src/components/PanelHeader.tsx | 14 +- frontend/src/components/PanelTitle.tsx | 40 +++ frontend/src/components/ScatterPanel.tsx | 197 +++++++++++- frontend/src/components/icons.tsx | 7 +- frontend/src/components/index.ts | 2 + frontend/src/components/ui/dropdown-menu.tsx | 28 +- frontend/src/components/ui/radio-group.tsx | 44 --- frontend/src/components/useLabelLegend.ts | 25 +- frontend/src/lib/colorTransfer.ts | 26 ++ frontend/src/lib/labelColors.ts | 288 ++++++++++++------ frontend/src/lib/labelLegend.ts | 46 +-- frontend/src/store/useColorSettings.ts | 36 +++ frontend/src/types/index.ts | 2 - scripts/demo_hyperbolic_clip.py | 18 +- src/hyperview/core/dataset.py | 20 -- src/hyperview/server/app.py | 4 - 24 files changed, 890 insertions(+), 448 deletions(-) create mode 100644 frontend/src/components/PanelContextBar.tsx create mode 100644 frontend/src/components/PanelTitle.tsx delete mode 100644 frontend/src/components/ui/radio-group.tsx create mode 100644 frontend/src/lib/colorTransfer.ts create mode 100644 frontend/src/store/useColorSettings.ts diff --git a/.gitignore b/.gitignore index 20670e4..f1a301e 100644 --- a/.gitignore +++ b/.gitignore @@ -70,6 +70,8 @@ TESTS.md AGENTS.md **/AGENTS.md .github/agents/ +.github/instructions/ +.github/hooks/ .specstory/ # Generated version file (hatch-vcs) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 399c8d5..c8f7be1 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -12,7 +12,6 @@ "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-popover": "^1.1.15", - "@radix-ui/react-radio-group": "^1.3.8", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slot": "^1.2.4", @@ -30,6 +29,7 @@ "next": "^16.1.6", "react": "18.3.1", "react-dom": "18.3.1", + "react-icons": "^5.5.0", "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", "zustand": "^5.0.1" @@ -1585,38 +1585,6 @@ } } }, - "node_modules/@radix-ui/react-radio-group": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.3.8.tgz", - "integrity": "sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "1.1.1" - }, - "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 - } - } - }, "node_modules/@radix-ui/react-roving-focus": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", @@ -1934,21 +1902,6 @@ } } }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", - "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-use-rect": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", @@ -6063,6 +6016,15 @@ "react": "^18.3.1" } }, + "node_modules/react-icons": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.5.0.tgz", + "integrity": "sha512-MEFcXdkP3dLo8uumGI5xN3lDFNsRtrjbOEKDLD7yv76v4wpnEq2Lt2qeHaQOr34I/wPN3s3+N08WkQ+CW37Xiw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index d257e0f..a3c667a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -14,7 +14,6 @@ "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-popover": "^1.1.15", - "@radix-ui/react-radio-group": "^1.3.8", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-slot": "^1.2.4", @@ -32,6 +31,7 @@ "next": "^16.1.6", "react": "18.3.1", "react-dom": "18.3.1", + "react-icons": "^5.5.0", "tailwind-merge": "^3.4.0", "tailwindcss-animate": "^1.0.7", "zustand": "^5.0.1" diff --git a/frontend/src/app/globals.css b/frontend/src/app/globals.css index 4272f94..417f195 100644 --- a/frontend/src/app/globals.css +++ b/frontend/src/app/globals.css @@ -165,6 +165,13 @@ line-height: 16px; } +.hyperview-dockview .dv-tab .dv-react-part { + height: 100%; + min-width: 0; + display: flex; + align-items: center; +} + .hyperview-dockview .dv-scrollable .dv-scrollbar-horizontal { height: 6px; border-radius: 3px; diff --git a/frontend/src/components/DockviewWorkspace.tsx b/frontend/src/components/DockviewWorkspace.tsx index 42d3f41..a54200a 100644 --- a/frontend/src/components/DockviewWorkspace.tsx +++ b/frontend/src/components/DockviewWorkspace.tsx @@ -28,6 +28,7 @@ import { ScatterPanel } from "./ScatterPanel"; import { ExplorerPanel } from "./ExplorerPanel"; import { PlaceholderPanel } from "./PlaceholderPanel"; import { HyperViewLogo } from "./icons"; +import { PanelTitle } from "./PanelTitle"; const LAYOUT_STORAGE_KEY = "hyperview:dockview-layout:v4"; @@ -254,7 +255,7 @@ export function useDockviewApi() { newPanel = api.addPanel({ id: panelId, component: "explorer", - title: "Explorer", + title: "Labels", position, initialWidth: targetWidth, minimumWidth: MIN_SIDE_PANEL_WIDTH, @@ -344,10 +345,13 @@ type TabWithIconProps = IDockviewPanelHeaderProps & { const TabWithIcon = React.memo(function TabWithIcon({ api, icon }: TabWithIconProps) { return ( -

    + ); }); @@ -459,6 +463,7 @@ function applyZonePolicies(api: DockviewApi) { if (explorer) { explorer.group.locked = true; explorer.group.header.hidden = true; + explorer.api.setActive(); } // Hide tab headers for placeholder panels @@ -607,17 +612,17 @@ export function DockviewWorkspace() { api.addPanel({ id: PANEL.EXPLORER, component: "explorer", - title: "Explorer", + title: "Labels", position: getZonePosition("left"), initialWidth: getDefaultLeftPanelWidth(containerWidth), minimumWidth: MIN_SIDE_PANEL_WIDTH, maximumWidth: getDefaultLeftPanelWidth(containerWidth), - inactive: true, }); if (explorerPanel) { explorerPanel.group.locked = true; explorerPanel.group.header.hidden = true; + explorerPanel.api.setActive(); } setLeftPanelOpen(!!explorerPanel); diff --git a/frontend/src/components/ExplorerPanel.tsx b/frontend/src/components/ExplorerPanel.tsx index 4942f72..b18c36a 100644 --- a/frontend/src/components/ExplorerPanel.tsx +++ b/frontend/src/components/ExplorerPanel.tsx @@ -4,7 +4,7 @@ import React from "react"; import { useStore } from "@/store/useStore"; import { Panel } from "./Panel"; import { PanelHeader } from "./PanelHeader"; -import { Tag, Search, ChevronDown, ChevronRight } from "lucide-react"; +import { Search, Tag } from "lucide-react"; import { cn } from "@/lib/utils"; import { FALLBACK_LABEL_COLOR, MISSING_LABEL_COLOR, normalizeLabel } from "@/lib/labelColors"; import { useLabelLegend } from "./useLabelLegend"; @@ -23,7 +23,6 @@ export function ExplorerPanel({ className }: ExplorerPanelProps) { } = useStore(); const [labelSearch, setLabelSearch] = React.useState(""); const [isSearchOpen, setIsSearchOpen] = React.useState(false); - const [isLabelsExpanded, setIsLabelsExpanded] = React.useState(true); const searchInputRef = React.useRef(null); const resolvedLayoutKey = @@ -34,20 +33,11 @@ export function ExplorerPanel({ className }: ExplorerPanelProps) { const { labelCounts, - labelUniverse, - distinctLabelCount, - distinctColoringDisabled, labelColorMap, legendLabels, } = useLabelLegend({ datasetInfo, embeddings, labelSearch, labelFilter }); const hasCounts = labelCounts.size > 0; - const baseLabelCount = labelUniverse.length > 0 - ? labelUniverse.filter((label) => label !== "undefined").length - : distinctLabelCount; - const displayCount = labelSearch.trim().length > 0 - ? legendLabels.length - : baseLabelCount; const activeLabel = labelFilter ? normalizeLabel(labelFilter) : null; @@ -67,114 +57,79 @@ export function ExplorerPanel({ className }: ExplorerPanelProps) { return ( - - - {/* Scrollable content area */} -
    - {/* Labels section */} -
    - {/* Section header - collapsible with search icon */} -
    - - - {/* Search toggle button */} - -
    - - {/* Search input - shown when search is toggled */} - {isSearchOpen && ( -
    - setLabelSearch(e.target.value)} - placeholder="Filter labels..." - className="w-full h-6 px-2 rounded bg-background border border-border text-[12px] leading-[16px] text-foreground placeholder:text-muted-foreground/50 outline-none focus:ring-1 focus:ring-ring focus:border-ring" - /> -
    + }> + {/* Search toggle button in header toolbar */} + + - {/* Labels list - collapsible */} - {isLabelsExpanded && ( -
    - {distinctColoringDisabled && ( -
    - Too many labels ({distinctLabelCount}) to color distinctly; using one color. -
    - )} + {/* Search input - shown when search is toggled */} + {isSearchOpen && ( +
    + setLabelSearch(e.target.value)} + placeholder="Filter labels..." + className="w-full h-6 px-2 rounded bg-background border border-border text-[12px] leading-[16px] text-foreground placeholder:text-muted-foreground/50 outline-none focus:ring-1 focus:ring-ring focus:border-ring" + /> +
    + )} - {legendLabels.length === 0 ? ( -
    - No labels available -
    - ) : ( -
    - {legendLabels.map((label) => { - const color = - label === "undefined" - ? MISSING_LABEL_COLOR - : labelColorMap[label] ?? FALLBACK_LABEL_COLOR; - const normalized = normalizeLabel(label); - const isActive = activeLabel === normalized; - const isDimmed = activeLabel && !isActive; + {/* Scrollable labels list */} +
    + {legendLabels.length === 0 ? ( +
    + No labels available +
    + ) : ( +
    + {legendLabels.map((label) => { + const color = + label === "undefined" + ? MISSING_LABEL_COLOR + : labelColorMap[label] ?? FALLBACK_LABEL_COLOR; + const normalized = normalizeLabel(label); + const isActive = activeLabel === normalized; + const isDimmed = activeLabel && !isActive; - return ( - - ); - })} -
    - )} -
    - )} -
    + return ( + + ); + })} +
    + )}
    ); diff --git a/frontend/src/components/Header.tsx b/frontend/src/components/Header.tsx index 5970969..b50f9cc 100644 --- a/frontend/src/components/Header.tsx +++ b/frontend/src/components/Header.tsx @@ -2,12 +2,17 @@ import { useStore } from "@/store/useStore"; import { Button } from "@/components/ui/button"; -import { HyperViewLogo, DiscordIcon } from "./icons"; +import { HyperViewLogo } from "./icons"; +import { FaDiscord } from "react-icons/fa"; import { CENTER_PANEL_DEFS, useDockviewApi } from "./DockviewWorkspace"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { @@ -32,17 +37,31 @@ import { PanelRight, Settings, Search, + Github, } from "lucide-react"; import { useState } from "react"; import { cn } from "@/lib/utils"; +import { isLabelColorMapId } from "@/lib/labelColors"; +import { + LABEL_COLOR_MAP_OPTIONS, + useColorSettings, +} from "@/store/useColorSettings"; const PANEL_CONFIG = CENTER_PANEL_DEFS; +const GITHUB_URL = "https://github.com/Hyper3Labs/HyperView"; const DISCORD_URL = process.env.NEXT_PUBLIC_DISCORD_URL ?? "https://discord.gg/Qf2pXtY4Vf"; export function Header() { const { datasetInfo, leftPanelOpen, rightPanelOpen, bottomPanelOpen } = useStore(); const dockview = useDockviewApi(); const [datasetPickerOpen, setDatasetPickerOpen] = useState(false); + const labelColorMapId = useColorSettings((state) => state.labelColorMapId); + const setLabelColorMapId = useColorSettings((state) => state.setLabelColorMapId); + + const handleLabelColorMapChange = (nextValue: string) => { + if (!isLabelColorMapId(nextValue)) return; + setLabelColorMapId(nextValue); + }; const handlePanelToggle = (panelId: string) => { if (!dockview?.api) return; @@ -60,7 +79,7 @@ export function Header() { ); return ( -
    +
    {/* Left side: Logo + View menu */}
    {/* Logo */} @@ -75,10 +94,10 @@ export function Header() { @@ -90,7 +109,7 @@ export function Header() { handlePanelToggle(panel.id)} - className="flex items-center justify-between h-7 text-[12px] leading-[16px]" + className="justify-between" > @@ -107,7 +126,7 @@ export function Header() { {/* Reset layout */} dockview.resetLayout()} - className="flex items-center gap-2 h-7 text-[12px] leading-[16px]" + className="gap-1.5" > Reset Layout @@ -126,10 +145,10 @@ export function Header() { size="sm" role="combobox" aria-expanded={datasetPickerOpen} - className="h-6 min-w-[200px] max-w-[400px] px-3 text-[12px] leading-[16px] tracking-[-0.15px] text-muted-foreground hover:text-foreground bg-muted/40 hover:bg-muted/60 border border-border/50 rounded-md justify-start gap-2" + className="h-6 w-[600px] max-w-[60vw] px-3 text-[12px] leading-[16px] tracking-[-0.15px] text-muted-foreground hover:text-foreground bg-muted/40 hover:bg-muted/60 border border-border/50 rounded-md justify-start gap-2" > - + {datasetInfo?.name ?? "No dataset loaded"} @@ -166,8 +185,19 @@ export function Header() {
    - {/* Right side: Discord + Panel toggles + Settings */} + {/* Right side: GitHub + Discord + Panel toggles + Settings */}
    + {/* GitHub link */} + + + + {/* Discord link */} - + {/* Separator */} @@ -230,14 +260,37 @@ export function Header() { {/* Separator */}
    - {/* Settings button */} - + {/* Settings menu */} + + + + + + Color Settings + + Label Palette + + {LABEL_COLOR_MAP_OPTIONS.map((option) => ( + + {option.label} + + ))} + + + setLabelColorMapId("auto")}>Reset to Auto + +
    ); diff --git a/frontend/src/components/PanelContextBar.tsx b/frontend/src/components/PanelContextBar.tsx new file mode 100644 index 0000000..5eb6c14 --- /dev/null +++ b/frontend/src/components/PanelContextBar.tsx @@ -0,0 +1,179 @@ +"use client"; + +import { Check, ChevronDown } from "lucide-react"; +import { type ReactNode } from "react"; + +import { cn } from "@/lib/utils"; +import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; + +export interface PanelContextOption { + value: string; + label: string; + group?: string; + disabled?: boolean; +} + +interface PanelContextBaseItem { + id: string; + label: string; + showLabel?: boolean; + value: string; + placeholder?: string; + valueTitle?: string; + valueClassName?: string; +} + +export interface PanelContextStaticItem extends PanelContextBaseItem { + kind?: "static"; +} + +export interface PanelContextSelectItem extends PanelContextBaseItem { + kind: "select"; + options: PanelContextOption[]; + onValueChange: (value: string) => void; + disabled?: boolean; +} + +export type PanelContextItem = PanelContextStaticItem | PanelContextSelectItem; + +interface PanelContextBarProps { + items: PanelContextItem[]; + rightContent?: ReactNode; + className?: string; +} + +export function PanelContextBar({ items, rightContent, className }: PanelContextBarProps) { + const visibleItems = items.filter((item) => item.value.trim().length > 0 || item.kind === "select"); + + if (visibleItems.length === 0 && !rightContent) { + return null; + } + + return ( +
    +
    + {visibleItems.map((item, index) => { + const valueTitle = item.valueTitle ?? item.value; + const showLabel = item.showLabel ?? item.label.trim().length > 0; + const selectedLabel = + item.kind === "select" + ? item.options.find((option) => option.value === item.value)?.label + : undefined; + const displayValue = selectedLabel ?? item.value ?? item.placeholder ?? "Select"; + + return ( +
    + {index > 0 &&
    + ); + })} +
    + + {rightContent &&
    {rightContent}
    } +
    + ); +} diff --git a/frontend/src/components/PanelHeader.tsx b/frontend/src/components/PanelHeader.tsx index 78201c4..399fc25 100644 --- a/frontend/src/components/PanelHeader.tsx +++ b/frontend/src/components/PanelHeader.tsx @@ -2,6 +2,7 @@ import { ReactNode } from "react"; import { cn } from "@/lib/utils"; +import { PanelTitle } from "./PanelTitle"; interface PanelHeaderProps { icon?: ReactNode; @@ -25,18 +26,13 @@ export function PanelHeader({ icon, title, subtitle, children, className }: Pane return (
    -
    - {icon && ( - // 14px icon (3.5 tailwind units) with 4px gap to text - {icon} - )} - {/* 12px font, medium weight, tight tracking */} - {title} +
    + {subtitle && ( - {subtitle} + {subtitle} )}
    {children && ( diff --git a/frontend/src/components/PanelTitle.tsx b/frontend/src/components/PanelTitle.tsx new file mode 100644 index 0000000..095fb39 --- /dev/null +++ b/frontend/src/components/PanelTitle.tsx @@ -0,0 +1,40 @@ +"use client"; + +import { ReactNode } from "react"; + +import { cn } from "@/lib/utils"; + +interface PanelTitleProps { + title?: string; + icon?: ReactNode; + className?: string; + titleClassName?: string; + iconClassName?: string; + fullHeight?: boolean; +} + +export function PanelTitle({ + title, + icon, + className, + titleClassName, + iconClassName, + fullHeight = false, +}: PanelTitleProps) { + return ( +
    + {icon && ( + + {icon} + + )} + {title ?? ""} +
    + ); +} diff --git a/frontend/src/components/ScatterPanel.tsx b/frontend/src/components/ScatterPanel.tsx index fc68cd6..1091e23 100644 --- a/frontend/src/components/ScatterPanel.tsx +++ b/frontend/src/components/ScatterPanel.tsx @@ -1,8 +1,24 @@ "use client"; import { useCallback, useEffect, useMemo, useState } from "react"; +import { Settings2 } from "lucide-react"; import { useStore } from "@/store/useStore"; import { Panel } from "./Panel"; +import { Button } from "@/components/ui/button"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuLabel, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; +import { + PanelContextBar, + type PanelContextItem, + type PanelContextOption, +} from "./PanelContextBar"; import { useHyperScatter } from "./useHyperScatter"; import { useLabelLegend } from "./useLabelLegend"; import type { Geometry } from "@/types"; @@ -34,6 +50,7 @@ export function ScatterPanel({ } = useStore(); const [localGeometry, setLocalGeometry] = useState("euclidean"); + const [localLayoutKey, setLocalLayoutKey] = useState(null); // Check which geometries are available const availableGeometries = useMemo(() => { @@ -51,7 +68,12 @@ export function ScatterPanel({ const resolvedGeometry = geometry ?? localGeometry; const resolvedLayoutKey = useMemo(() => { - if (!datasetInfo) return layoutKey ?? null; + if (!datasetInfo) return localLayoutKey ?? layoutKey ?? null; + + if (localLayoutKey) { + const exists = datasetInfo.layouts.some((layout) => layout.layout_key === localLayoutKey); + if (exists) return localLayoutKey; + } if (layoutKey) { const exists = datasetInfo.layouts.some((layout) => layout.layout_key === layoutKey); @@ -60,7 +82,176 @@ export function ScatterPanel({ const layout = findLayoutByGeometry(datasetInfo.layouts, resolvedGeometry); return layout?.layout_key ?? datasetInfo.layouts[0]?.layout_key ?? null; - }, [datasetInfo, layoutKey, resolvedGeometry]); + }, [datasetInfo, layoutKey, localLayoutKey, resolvedGeometry]); + + useEffect(() => { + if (!datasetInfo || !localLayoutKey) return; + const exists = datasetInfo.layouts.some((layout) => layout.layout_key === localLayoutKey); + if (!exists) { + setLocalLayoutKey(null); + } + }, [datasetInfo, localLayoutKey]); + + const resolvedLayout = useMemo(() => { + if (!datasetInfo || !resolvedLayoutKey) return null; + return datasetInfo.layouts.find((layout) => layout.layout_key === resolvedLayoutKey) ?? null; + }, [datasetInfo, resolvedLayoutKey]); + + const resolvedSpace = useMemo(() => { + if (!datasetInfo || !resolvedLayout) return null; + return datasetInfo.spaces.find((space) => space.space_key === resolvedLayout.space_key) ?? null; + }, [datasetInfo, resolvedLayout]); + + const geometryLayouts = useMemo(() => { + if (!datasetInfo) return []; + return datasetInfo.layouts.filter((layout) => layout.geometry === resolvedGeometry); + }, [datasetInfo, resolvedGeometry]); + + const modelOptions = useMemo(() => { + if (!datasetInfo || geometryLayouts.length === 0) return []; + + const seenSpaceKeys = new Set(); + + return geometryLayouts.flatMap((layout) => { + if (seenSpaceKeys.has(layout.space_key)) return []; + seenSpaceKeys.add(layout.space_key); + + const space = datasetInfo.spaces.find((candidate) => candidate.space_key === layout.space_key); + + return [ + { + value: layout.space_key, + label: space?.model_id ?? layout.space_key, + group: space?.provider, + }, + ]; + }); + }, [datasetInfo, geometryLayouts]); + + const selectedSpaceKey = resolvedLayout?.space_key ?? modelOptions[0]?.value ?? ""; + + const selectedProjectionMethod = resolvedLayout?.method ?? ""; + + const selectedModelLabel = + modelOptions.find((option) => option.value === selectedSpaceKey)?.label ?? + resolvedSpace?.model_id ?? + ""; + + const projectionMethodOptions = useMemo(() => { + const methodsForSelectedModel = geometryLayouts + .filter((layout) => layout.space_key === selectedSpaceKey) + .map((layout) => layout.method); + + const sourceMethods = + methodsForSelectedModel.length > 0 + ? methodsForSelectedModel + : geometryLayouts.map((layout) => layout.method); + + return Array.from(new Set(sourceMethods)).sort(); + }, [geometryLayouts, selectedSpaceKey]); + + const handleModelChange = useCallback( + (nextSpaceKey: string) => { + if (!nextSpaceKey || geometryLayouts.length === 0) return; + + const targetLayout = + geometryLayouts.find( + (layout) => + layout.space_key === nextSpaceKey && layout.method === selectedProjectionMethod + ) ?? geometryLayouts.find((layout) => layout.space_key === nextSpaceKey); + + if (targetLayout) { + setLocalLayoutKey(targetLayout.layout_key); + } + }, + [geometryLayouts, selectedProjectionMethod] + ); + + const handleProjectionMethodChange = useCallback( + (nextMethod: string) => { + if (!nextMethod || geometryLayouts.length === 0) return; + + const targetLayout = + geometryLayouts.find( + (layout) => + layout.method === nextMethod && + layout.space_key === selectedSpaceKey + ) ?? geometryLayouts.find((layout) => layout.method === nextMethod); + + if (targetLayout) { + setLocalLayoutKey(targetLayout.layout_key); + } + }, + [geometryLayouts, selectedSpaceKey] + ); + + const contextItems = useMemo(() => { + return [ + { + id: "model", + kind: "select", + label: "Model", + showLabel: false, + value: selectedSpaceKey, + placeholder: "Select model", + valueTitle: selectedModelLabel, + valueClassName: "max-w-[340px]", + options: modelOptions, + onValueChange: handleModelChange, + disabled: modelOptions.length === 0, + }, + ]; + }, [handleModelChange, modelOptions, selectedModelLabel, selectedSpaceKey]); + + const projectionSettings = useMemo( + () => ( + + + + + + + Projection method + + + {projectionMethodOptions.length > 0 ? ( + + {projectionMethodOptions.map((method) => ( + + {method} + + ))} + + ) : ( +
    + No projection methods available +
    + )} +
    +
    + ), + [ + handleProjectionMethodChange, + projectionMethodOptions, + selectedProjectionMethod, + ] + ); const embeddings = resolvedLayoutKey ? embeddingsByLayoutKey[resolvedLayoutKey] ?? null : null; @@ -124,6 +315,8 @@ export function ScatterPanel({ return ( + + {/* Main content area - min-h-0 prevents flex overflow */}
    {/* Canvas container */} diff --git a/frontend/src/components/icons.tsx b/frontend/src/components/icons.tsx index 2d38561..46494f7 100644 --- a/frontend/src/components/icons.tsx +++ b/frontend/src/components/icons.tsx @@ -65,9 +65,4 @@ export const SphericalIcon = () => ( ); -/** Discord icon - official simplified logo */ -export const DiscordIcon = ({ className = "w-4 h-4" }: { className?: string }) => ( - - - -); + diff --git a/frontend/src/components/index.ts b/frontend/src/components/index.ts index f178483..0cc632b 100644 --- a/frontend/src/components/index.ts +++ b/frontend/src/components/index.ts @@ -4,6 +4,8 @@ export { DockviewWorkspace } from "./DockviewWorkspace"; export { Header } from "./Header"; export { Panel, PanelFooter } from "./Panel"; export { PanelHeader } from "./PanelHeader"; +export { PanelTitle } from "./PanelTitle"; +export { PanelContextBar } from "./PanelContextBar"; export { ExplorerPanel } from "./ExplorerPanel"; export { PlaceholderPanel } from "./PlaceholderPanel"; export * from "./icons"; diff --git a/frontend/src/components/ui/dropdown-menu.tsx b/frontend/src/components/ui/dropdown-menu.tsx index 5a20503..cd9a158 100644 --- a/frontend/src/components/ui/dropdown-menu.tsx +++ b/frontend/src/components/ui/dropdown-menu.tsx @@ -27,7 +27,7 @@ const DropdownMenuSubTrigger = React.forwardRef< , React.ComponentPropsWithoutRef ->(({ className, sideOffset = 4, ...props }, ref) => ( +>(({ className, sideOffset = 3, ...props }, ref) => ( svg]:size-4 [&>svg]:shrink-0", + "relative flex h-6 cursor-default select-none items-center gap-1.5 rounded px-1.5 text-[12px] leading-[16px] outline-none focus:bg-accent/70 focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-3.5 [&>svg]:shrink-0", inset && "pl-8", className )} @@ -100,15 +100,15 @@ const DropdownMenuCheckboxItem = React.forwardRef< - + - + {children} @@ -124,14 +124,14 @@ const DropdownMenuRadioItem = React.forwardRef< - + - + {children} @@ -148,7 +148,7 @@ const DropdownMenuLabel = React.forwardRef< (({ className, ...props }, ref) => ( )) @@ -175,7 +175,7 @@ const DropdownMenuShortcut = ({ }: React.HTMLAttributes) => { return ( ) diff --git a/frontend/src/components/ui/radio-group.tsx b/frontend/src/components/ui/radio-group.tsx deleted file mode 100644 index 0bdf685..0000000 --- a/frontend/src/components/ui/radio-group.tsx +++ /dev/null @@ -1,44 +0,0 @@ -"use client" - -import * as React from "react" -import * as RadioGroupPrimitive from "@radix-ui/react-radio-group" -import { Circle } from "lucide-react" - -import { cn } from "@/lib/utils" - -const RadioGroup = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => { - return ( - - ) -}) -RadioGroup.displayName = RadioGroupPrimitive.Root.displayName - -const RadioGroupItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => { - return ( - - - - - - ) -}) -RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName - -export { RadioGroup, RadioGroupItem } diff --git a/frontend/src/components/useLabelLegend.ts b/frontend/src/components/useLabelLegend.ts index 9c58da0..f14ee8c 100644 --- a/frontend/src/components/useLabelLegend.ts +++ b/frontend/src/components/useLabelLegend.ts @@ -2,14 +2,13 @@ import { useMemo } from "react"; import type { DatasetInfo, EmbeddingsData } from "@/types"; import { - MAX_DISTINCT_LABEL_COLORS, buildLabelColorMap, buildLabelCounts, buildLabelUniverse, buildLabelsInfo, buildLegendLabels, - getDistinctLabelCount, } from "@/lib/labelLegend"; +import { useColorSettings } from "@/store/useColorSettings"; interface UseLabelLegendArgs { datasetInfo: DatasetInfo | null; @@ -24,6 +23,8 @@ export function useLabelLegend({ labelSearch = "", labelFilter = null, }: UseLabelLegendArgs) { + const labelColorMapId = useColorSettings((state) => state.labelColorMapId); + const labelCounts = useMemo(() => buildLabelCounts(embeddings), [embeddings]); const labelUniverse = useMemo( @@ -31,25 +32,15 @@ export function useLabelLegend({ [datasetInfo?.labels, embeddings?.labels] ); - const distinctLabelCount = useMemo(() => { - const fromCounts = getDistinctLabelCount(labelCounts); - if (fromCounts > 0) return fromCounts; - let n = labelUniverse.length; - if (labelUniverse.includes("undefined")) n -= 1; - return n; - }, [labelCounts, labelUniverse]); - - const distinctColoringDisabled = distinctLabelCount > MAX_DISTINCT_LABEL_COLORS; - const labelsInfo = useMemo( () => buildLabelsInfo({ datasetLabels: datasetInfo?.labels ?? [], embeddings, - distinctColoringDisabled, + labelColorMapId, labelFilter, }), - [datasetInfo?.labels, embeddings, distinctColoringDisabled, labelFilter] + [datasetInfo?.labels, embeddings, labelColorMapId, labelFilter] ); const labelColorMap = useMemo( @@ -57,10 +48,10 @@ export function useLabelLegend({ buildLabelColorMap({ labelsInfo, labelUniverse, - distinctColoringDisabled, + labelColorMapId, labelFilter, }), - [labelsInfo, labelUniverse, distinctColoringDisabled, labelFilter] + [labelsInfo, labelUniverse, labelColorMapId, labelFilter] ); const legendLabels = useMemo( @@ -76,8 +67,6 @@ export function useLabelLegend({ return { labelCounts, labelUniverse, - distinctLabelCount, - distinctColoringDisabled, labelsInfo, labelColorMap, legendLabels, diff --git a/frontend/src/lib/colorTransfer.ts b/frontend/src/lib/colorTransfer.ts new file mode 100644 index 0000000..fab7532 --- /dev/null +++ b/frontend/src/lib/colorTransfer.ts @@ -0,0 +1,26 @@ +import { + FALLBACK_LABEL_COLOR, + createLabelColorMap, + normalizeLabel, + type LabelColorMapId, +} from "@/lib/labelColors"; + +export interface CategoricalLabelTransferFunction { + kind: "categorical"; + paletteId: LabelColorMapId; + colorFor: (label: string | null | undefined) => string; +} + +export function createCategoricalLabelTransferFunction(params: { + labels: string[]; + paletteId: LabelColorMapId; +}): CategoricalLabelTransferFunction { + const { labels, paletteId } = params; + const colorMap = createLabelColorMap(labels, { paletteId }); + + return { + kind: "categorical", + paletteId, + colorFor: (label) => colorMap[normalizeLabel(label)] ?? FALLBACK_LABEL_COLOR, + }; +} diff --git a/frontend/src/lib/labelColors.ts b/frontend/src/lib/labelColors.ts index 273b519..d38e64b 100644 --- a/frontend/src/lib/labelColors.ts +++ b/frontend/src/lib/labelColors.ts @@ -3,75 +3,117 @@ const MISSING_LABEL_SENTINEL = "undefined"; export const MISSING_LABEL_COLOR = "#39d3cc"; // matches --accent-cyan export const FALLBACK_LABEL_COLOR = "#8b949e"; // matches --muted-foreground -// Rerun-style auto colors: distribute hues by golden ratio conjugate. -// See: context/repos/rerun/crates/viewer/re_viewer_context/src/utils/color.rs -const GOLDEN_RATIO_CONJUGATE = (Math.sqrt(5) - 1) / 2; // ~0.61803398875 - -function fnv1a32(input: string): number { - // 32-bit FNV-1a hash - let hash = 0x811c9dc5; - for (let i = 0; i < input.length; i++) { - hash ^= input.charCodeAt(i); - hash = Math.imul(hash, 0x01000193); - } - return hash >>> 0; +export const LABEL_COLOR_MAP_IDS = ["auto", "classic20", "tab10", "tab20", "wong"] as const; +export type LabelColorMapId = (typeof LABEL_COLOR_MAP_IDS)[number]; + +const AUTO_DEFAULT_PALETTE_ID: LabelColorMapId = "tab20"; +const OVERFLOW_HUE_STEP_DEGREES = 137.508; + +export function isLabelColorMapId(value: string): value is LabelColorMapId { + return LABEL_COLOR_MAP_IDS.includes(value as LabelColorMapId); } +const CLASSIC_20_LABEL_PALETTE = [ + "#e6194b", + "#3cb44b", + "#ffe119", + "#4363d8", + "#f58231", + "#911eb4", + "#46f0f0", + "#f032e6", + "#bcf60c", + "#fabebe", + "#008080", + "#e6beff", + "#9a6324", + "#fffac8", + "#800000", + "#aaffc3", + "#808000", + "#ffd8b1", + "#000075", + "#808080", +]; + +const TAB_10_LABEL_PALETTE = [ + "#4e79a7", + "#f28e2b", + "#e15759", + "#76b7b2", + "#59a14f", + "#edc948", + "#b07aa1", + "#ff9da7", + "#9c755f", + "#bab0ab", +]; + +const TAB_20_LABEL_PALETTE = [ + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#ffbb78", + "#2ca02c", + "#98df8a", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5", + "#8c564b", + "#c49c94", + "#e377c2", + "#f7b6d2", + "#7f7f7f", + "#c7c7c7", + "#bcbd22", + "#dbdb8d", + "#17becf", + "#9edae5", +]; + +const WONG_LABEL_PALETTE = [ + "#e69f00", + "#56b4e9", + "#009e73", + "#f0e442", + "#0072b2", + "#d55e00", + "#cc79a7", +]; + function clamp01(v: number): number { if (v < 0) return 0; if (v > 1) return 1; return v; } -function hsvToHex(h: number, s: number, v: number): string { - // h/s/v in [0, 1] - const hh = ((h % 1) + 1) % 1; - const ss = clamp01(s); - const vv = clamp01(v); - - const x = hh * 6; - const i = Math.floor(x); - const f = x - i; - - const p = vv * (1 - ss); - const q = vv * (1 - ss * f); - const t = vv * (1 - ss * (1 - f)); - - let r = 0; - let g = 0; - let b = 0; - - switch (i % 6) { - case 0: - r = vv; - g = t; - b = p; - break; - case 1: - r = q; - g = vv; - b = p; - break; - case 2: - r = p; - g = vv; - b = t; - break; - case 3: - r = p; - g = q; - b = vv; - break; - case 4: - r = t; - g = p; - b = vv; - break; - case 5: - r = vv; - g = p; - b = q; - break; +function hslToHex(hDegrees: number, saturation: number, lightness: number): string { + const h = ((((hDegrees % 360) + 360) % 360) / 360) % 1; + const s = clamp01(saturation); + const l = clamp01(lightness); + + let r = l; + let g = l; + let b = l; + + if (s > 0) { + const q = l < 0.5 ? l * (1 + s) : l + s - l * s; + const p = 2 * l - q; + + const hueToChannel = (tIn: number): number => { + let t = tIn; + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * 6 * t; + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + }; + + r = hueToChannel(h + 1 / 3); + g = hueToChannel(h); + b = hueToChannel(h - 1 / 3); } const toHex = (x: number) => { @@ -82,20 +124,27 @@ function hsvToHex(h: number, s: number, v: number): string { return `#${toHex(r)}${toHex(g)}${toHex(b)}`; } -export function labelToColor(label: string): string { - if (!label) return FALLBACK_LABEL_COLOR; - if (label === MISSING_LABEL_SENTINEL) return MISSING_LABEL_COLOR; - - return colorForKey(label); -} - -function colorForKey(key: string): string { - const seed = fnv1a32(key); - const val = seed & 0xffff; // map to u16 - const h = (val * GOLDEN_RATIO_CONJUGATE) % 1; - - // Match Rerun's defaults: saturation 0.85, value 0.5 - return hsvToHex(h, 0.85, 0.5); +function createOverflowColor(index: number, seedPrefix: LabelColorMapId): string { + const paletteSeedShift = + seedPrefix === "tab10" + ? 17 + : seedPrefix === "tab20" + ? 43 + : seedPrefix === "wong" + ? 71 + : seedPrefix === "classic20" + ? 101 + : 131; + + const hue = (paletteSeedShift + index * OVERFLOW_HUE_STEP_DEGREES) % 360; + const saturationBands = [0.72, 0.64, 0.78]; + const lightnessBands = [0.46, 0.54, 0.38, 0.62]; + + const saturation = saturationBands[index % saturationBands.length]; + const lightness = + lightnessBands[Math.floor(index / saturationBands.length) % lightnessBands.length]; + + return hslToHex(hue, saturation, lightness); } function stableLabelSort(a: string, b: string): number { @@ -104,20 +153,19 @@ function stableLabelSort(a: string, b: string): number { return a.localeCompare(b); } -/** - * Builds a deterministic, collision-free label → color mapping for the given - * label universe. - * - * Notes: - * - No modulo/cycling: if there are N labels, we produce N colors. - * - Deterministic: same input set yields same mapping. - * - Collision-free within the provided set via deterministic rehashing. - */ -export function createLabelColorMap(labels: string[]): Record { - const unique = Array.from(new Set(labels.map((l) => normalizeLabel(l)))).sort(stableLabelSort); +function createAutoLabelColorMap(unique: string[]): Record { + return createPaletteLabelColorMap(unique, TAB_20_LABEL_PALETTE, AUTO_DEFAULT_PALETTE_ID); +} +function createPaletteLabelColorMap( + unique: string[], + palette: string[], + seedPrefix: LabelColorMapId +): Record { const colors: Record = {}; const used = new Set(); + let nonMissingIndex = 0; + let overflowIndex = 0; for (const label of unique) { if (label === MISSING_LABEL_SENTINEL) { @@ -126,28 +174,68 @@ export function createLabelColorMap(labels: string[]): Record { continue; } - let attempt = 0; - // Deterministic collision resolution (should be extremely rare). - while (attempt < 32) { - const candidate = colorForKey(attempt === 0 ? label : `${label}#${attempt}`); - const normalized = candidate.toLowerCase(); - if (!used.has(normalized)) { - colors[label] = candidate; - used.add(normalized); - break; - } - attempt++; + let candidate = + nonMissingIndex < palette.length + ? (palette[nonMissingIndex] ?? FALLBACK_LABEL_COLOR) + : createOverflowColor(overflowIndex, seedPrefix); + + let safety = 0; + while (used.has(candidate.toLowerCase()) && safety < 2048) { + overflowIndex += 1; + candidate = createOverflowColor(overflowIndex, seedPrefix); + safety += 1; + } + + if (nonMissingIndex >= palette.length) { + overflowIndex += 1; } - if (!colors[label]) { - // Should never happen, but keep UI resilient. - colors[label] = FALLBACK_LABEL_COLOR; + if (used.has(candidate.toLowerCase())) { + candidate = FALLBACK_LABEL_COLOR; } + + colors[label] = candidate; + used.add(candidate.toLowerCase()); + nonMissingIndex += 1; } return colors; } +/** + * Builds a deterministic label → color mapping for the given label universe. + * + * Notes: + * - `auto` mode uses `tab20` as the default categorical palette. + * - `classic20`, `tab10`, `tab20`, and `wong` use fixed categorical palettes + * first, then deterministic overflow colors for additional labels. + */ +export function createLabelColorMap( + labels: string[], + options?: { paletteId?: LabelColorMapId } +): Record { + const unique = Array.from(new Set(labels.map((l) => normalizeLabel(l)))).sort(stableLabelSort); + const paletteId = options?.paletteId ?? "auto"; + + if (paletteId === "classic20") { + return createPaletteLabelColorMap(unique, CLASSIC_20_LABEL_PALETTE, "classic20"); + } + + if (paletteId === "tab10") { + return createPaletteLabelColorMap(unique, TAB_10_LABEL_PALETTE, "tab10"); + } + + if (paletteId === "tab20") { + return createPaletteLabelColorMap(unique, TAB_20_LABEL_PALETTE, "tab20"); + } + + if (paletteId === "wong") { + return createPaletteLabelColorMap(unique, WONG_LABEL_PALETTE, "wong"); + } + + return createAutoLabelColorMap(unique); +} + export function normalizeLabel(label: string | null | undefined): string { return label && label.length > 0 ? label : MISSING_LABEL_SENTINEL; } diff --git a/frontend/src/lib/labelLegend.ts b/frontend/src/lib/labelLegend.ts index 2d43e93..22546e3 100644 --- a/frontend/src/lib/labelLegend.ts +++ b/frontend/src/lib/labelLegend.ts @@ -2,13 +2,11 @@ import type { EmbeddingsData } from "@/types"; import { FALLBACK_LABEL_COLOR, MISSING_LABEL_COLOR, - createLabelColorMap, normalizeLabel, + type LabelColorMapId, } from "@/lib/labelColors"; +import { createCategoricalLabelTransferFunction } from "@/lib/colorTransfer"; -// Past ~20-30 categories, color-as-encoding becomes unreliable for most users. -// We choose a conservative upper bound and fall back to a single color. -export const MAX_DISTINCT_LABEL_COLORS = 20; export const UNSELECTED_LABEL_ALPHA = 0.12; export interface ScatterLabelsInfo { @@ -65,12 +63,6 @@ export function buildLabelCounts(embeddings: EmbeddingsData | null): Map): number { - let n = labelCounts.size; - if (labelCounts.has("undefined")) n -= 1; - return n; -} - export function buildLabelUniverse( datasetLabels: string[], embeddingsLabels: (string | null)[] | null @@ -117,14 +109,14 @@ export function buildLabelUniverse( export function buildLabelsInfo(params: { datasetLabels: string[]; embeddings: EmbeddingsData | null; - distinctColoringDisabled: boolean; + labelColorMapId: LabelColorMapId; labelFilter?: string | null; unselectedAlpha?: number; }): ScatterLabelsInfo | null { const { datasetLabels, embeddings, - distinctColoringDisabled, + labelColorMapId, labelFilter = null, unselectedAlpha = UNSELECTED_LABEL_ALPHA, } = params; @@ -156,13 +148,11 @@ export function buildLabelsInfo(params: { categories[i] = labelToCategory[key] ?? undefinedIndex; } - let palette: string[]; - if (distinctColoringDisabled) { - palette = universe.map((l) => (l === "undefined" ? MISSING_LABEL_COLOR : FALLBACK_LABEL_COLOR)); - } else { - const colors = createLabelColorMap(universe); - palette = universe.map((l) => colors[l] ?? FALLBACK_LABEL_COLOR); - } + const transfer = createCategoricalLabelTransferFunction({ + labels: universe, + paletteId: labelColorMapId, + }); + let palette = universe.map((l) => transfer.colorFor(l)); const filteredPalette = applyLabelFilterToPalette({ palette, @@ -177,14 +167,14 @@ export function buildLabelsInfo(params: { export function buildLabelColorMap(params: { labelsInfo: ScatterLabelsInfo | null; labelUniverse: string[]; - distinctColoringDisabled: boolean; + labelColorMapId: LabelColorMapId; labelFilter?: string | null; unselectedAlpha?: number; }): Record { const { labelsInfo, labelUniverse, - distinctColoringDisabled, + labelColorMapId, labelFilter = null, unselectedAlpha = UNSELECTED_LABEL_ALPHA, } = params; @@ -199,16 +189,12 @@ export function buildLabelColorMap(params: { if (labelUniverse.length === 0) return map; - if (distinctColoringDisabled) { - for (const label of labelUniverse) { - map[label] = label === "undefined" ? MISSING_LABEL_COLOR : FALLBACK_LABEL_COLOR; - } - return map; - } - - const colors = createLabelColorMap(labelUniverse); + const transfer = createCategoricalLabelTransferFunction({ + labels: labelUniverse, + paletteId: labelColorMapId, + }); for (const label of labelUniverse) { - map[label] = colors[label] ?? FALLBACK_LABEL_COLOR; + map[label] = transfer.colorFor(label); } if (!labelFilter || !labelUniverse.includes(labelFilter)) return map; diff --git a/frontend/src/store/useColorSettings.ts b/frontend/src/store/useColorSettings.ts new file mode 100644 index 0000000..56d0971 --- /dev/null +++ b/frontend/src/store/useColorSettings.ts @@ -0,0 +1,36 @@ +import { create } from "zustand"; +import { createJSONStorage, persist } from "zustand/middleware"; + +import type { LabelColorMapId } from "@/lib/labelColors"; + +export interface LabelColorMapOption { + value: LabelColorMapId; + label: string; +} + +export const LABEL_COLOR_MAP_OPTIONS: LabelColorMapOption[] = [ + { value: "auto", label: "Auto" }, + { value: "tab20", label: "Tab 20" }, + { value: "tab10", label: "Tab 10" }, + { value: "wong", label: "Wong" }, + { value: "classic20", label: "Classic 20" }, +]; + +interface ColorSettingsState { + labelColorMapId: LabelColorMapId; + setLabelColorMapId: (value: LabelColorMapId) => void; +} + +export const useColorSettings = create()( + persist( + (set) => ({ + labelColorMapId: "auto", + setLabelColorMapId: (value) => set({ labelColorMapId: value }), + }), + { + name: "hyperview-color-settings", + version: 1, + storage: createJSONStorage(() => localStorage), + } + ) +); diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index 2cd5560..8efc617 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -34,7 +34,6 @@ export interface DatasetInfo { name: string; num_samples: number; labels: string[]; - label_colors?: Record; spaces: SpaceInfo[]; layouts: LayoutInfo[]; } @@ -45,7 +44,6 @@ export interface EmbeddingsData { ids: string[]; labels: (string | null)[]; coords: [number, number][]; - label_colors?: Record; } export interface SamplesResponse { diff --git a/scripts/demo_hyperbolic_clip.py b/scripts/demo_hyperbolic_clip.py index 6da1a79..74c4bfb 100644 --- a/scripts/demo_hyperbolic_clip.py +++ b/scripts/demo_hyperbolic_clip.py @@ -1,22 +1,20 @@ #!/usr/bin/env python -"""Demo: CLIP (Euclidean) + hyper-models (Poincaré) on CIFAR-100.""" +"""Demo: CLIP (Euclidean) + HyCoCLIP (Poincaré) on Imagenette.""" import hyperview as hv -DATASET_NAME = "cifar100_coarse_clip_hyper_models" -HF_DATASET = "uoft-cs/cifar100" -HF_SPLIT = "test" -HF_IMAGE_KEY = "img" -# NOTE: HyperView disables distinct label coloring when there are >20 labels. -# CIFAR-100 has 100 fine labels, but only 20 coarse labels. -HF_LABEL_KEY = "coarse_label" -NUM_SAMPLES = 200 +DATASET_NAME = "imagenette_val_clip_hycoclip_demo" +HF_DATASET = "Multimodal-Fatima/Imagenette_validation" +HF_SPLIT = "validation" +HF_IMAGE_KEY = "image" +HF_LABEL_KEY = "label" +NUM_SAMPLES = 300 CLIP_MODEL_ID = "openai/clip-vit-base-patch32" HYPER_MODELS_MODEL_ID = "hycoclip-vit-s" def main() -> None: - print("Loading CIFAR-100 from Hugging Face...") + print("Loading Imagenette validation from Hugging Face...") dataset = hv.Dataset(DATASET_NAME, persist=False) dataset.add_from_huggingface( HF_DATASET, diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index 74429c7..ce62480 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -66,14 +66,6 @@ def __init__( from hyperview.storage import MemoryBackend self._storage = MemoryBackend(self.name) - # Color palette for deterministic label color assignment - _COLOR_PALETTE = [ - "#e6194b", "#3cb44b", "#ffe119", "#4363d8", "#f58231", - "#911eb4", "#46f0f0", "#f032e6", "#bcf60c", "#fabebe", - "#008080", "#e6beff", "#9a6324", "#fffac8", "#800000", - "#aaffc3", "#808000", "#ffd8b1", "#000075", "#808080", - ] - def __len__(self) -> int: return len(self._storage) @@ -495,18 +487,6 @@ def find_similar_by_vector( """ return self._storage.find_similar_by_vector(vector, k, space_key) - @staticmethod - def _compute_label_color(label: str, palette: list[str]) -> str: - """Compute a deterministic color for a label.""" - digest = hashlib.md5(label.encode("utf-8")).digest() - idx = int.from_bytes(digest[:4], "big") % len(palette) - return palette[idx] - - def get_label_colors(self) -> dict[str, str]: - """Get the color mapping for labels (computed deterministically).""" - labels = self._storage.get_unique_labels() - return {label: self._compute_label_color(label, self._COLOR_PALETTE) for label in labels} - def set_coords( self, geometry: str, diff --git a/src/hyperview/server/app.py b/src/hyperview/server/app.py index 26e897a..9de8c00 100644 --- a/src/hyperview/server/app.py +++ b/src/hyperview/server/app.py @@ -79,7 +79,6 @@ class DatasetResponse(BaseModel): name: str num_samples: int labels: list[str] - label_colors: dict[str, str] spaces: list[SpaceInfoResponse] layouts: list[LayoutInfoResponse] @@ -92,7 +91,6 @@ class EmbeddingsResponse(BaseModel): ids: list[str] labels: list[str | None] coords: list[list[float]] - label_colors: dict[str, str] class SimilarSampleResponse(BaseModel): @@ -174,7 +172,6 @@ async def get_dataset_info(ds: Dataset = Depends(get_dataset)): name=ds.name, num_samples=len(ds), labels=ds.labels, - label_colors=ds.get_label_colors(), spaces=space_dicts, layouts=layout_dicts, ) @@ -243,7 +240,6 @@ async def get_embeddings(ds: Dataset = Depends(get_dataset), layout_key: str | N ids=ids, labels=labels, coords=coords.tolist(), - label_colors=ds.get_label_colors(), ) @app.get("/api/spaces") From bd9e948ac78af5da93030335a9335045b40968f9 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Tue, 17 Feb 2026 11:07:22 +0100 Subject: [PATCH 72/75] Update screenshot asset to reflect recent UI changes --- assets/screenshot.png | Bin 1479425 -> 377551 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/screenshot.png b/assets/screenshot.png index 92a7285ba1ea9b143e22c4156bdda0ae542b19c1..d3f3b43940850f27808d4135bb6c4eae613ca607 100644 GIT binary patch literal 377551 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%0D1^=D zVxGEW?eF^6_D|Z}y66Pk9I8cKm>R=w8!$Bh?z$xHy00g{kD|3JBS_r{FS^+)kDVLk zc|CdElXPC`C|UYImB=-Cag#nZVK_5$DYC|p%$c#ClDib~nPlHeGB@-Qj}WD4dxkrL z($gg+sTqZ5T$^k5Rsi3u__NTR_>jExje zaz_Gj!rjC!Qf+A7Y5x4UP3=~S633QQe?=~$2 zx|=Qr=6Rm?ea{a)Mm?Ij9rQW=c+c;nY5kn<^E~hKa_|t5@-WqlOqY^2oE0!-BgAk| z?dm=b+`V?k5T=xtgjq=!G=|!rL@kED&|~e6(4;{PNP1YGiN;wfF~&-7jbpYkCObvo z@(zi7rReNzJOqt2DOADIl0j19{&CS1D9s;}Hr-|+Q~H=Dl6Ij=4*;1bdOuE5f}dFr z6h>2o>6N|9wuPMtHCkaTweH6IxYT%ZZq4G--Dqm-Ya23-Oip5*x*VbeSY0X)W2NoP zVfDZsGLKsMExQj4wsNF8$+&Ugu(m6x)QxYq%?H2E6Mhq+>|xEo!B(Z?O{$c4A~l5R znpu?^E?$PyI*z=pp$Nnx3K%i1AEu^BXs%%w7#0V;Slz~;Xe`G0iakj6zAxLcZC1M> z#xjobsT4pIFp616GYVxk1-L3bWhfp0eR^?4+5kc`?rJ7=TG2FDMd`q)(nfxcH~Vy0XxhfUFWWr*XdhSRNsZ#8et#w!N@ENcaf&1z7u{duD?eea zdH`rNT8hU5fk0Y!@#@~*xE?4)=}9Cl8dIfuGP}*=aVRtS6>+eI?v(7~6ux8-(R!|dN?%`5Z z*SD=oBQ0eqXX!d)Dakl;?lKqeHgkz$&3E2ercSaHrl=NN3D!ZCqKkK$cM>HZZysgl zVJcsz04Z?vf@x8cY(?5$-dZ1K4z*QUXa4T_I)4jO04J${@B(*Nx7{*FFGC!B4eeWXL)xJG+phTCd z8DL!vCfW;1twW*$NW1s#-oW?abYCt?hcyGQvC*=$+vP49Ny>bKC|%~Fvt{a0BqBP+ zu=g~Jm{R8#!^dk#Jfi8!inh2IU0$aCFzA&{)v+JUG>A=Vg$?SsKLcqH^rlg22_vLqr(=|Nv>sVT|1O|39iN>I#p5`jjV?vghA72~ zft;NCLX;jCf5P`i`+DUgJy6Q_3QUg%0tu-1q-y)&o*-YE`IM$roQ z@tS#BGw&>ti#mg;B`QjFj%e{`zR)gk`?tneskv9s5T(7zQs*^~*l=mS{*a>)rjCNR zj!$L(BoY~>cs&_1xeJtvA<_gh zEn?K9SjAcqF)i*3mQoV${xJ`ik}L(Lt!U9@jFch^Q$RuvQ|u7~O>7uSlBW+P?iItu-@TUo+Q*A)U)00f1lzDlZW2JWTw$?tMsb&h9+JtP4G7q(u zC>^TOYh-D{nJn!g^N3h#fTt&tHo(+b4A)tOe(?qL3ev`}028zPJsiowz9dQqv5@`5 zyRY2d{a>k4l^Gp8!P#T_2(xS-EXttFViy=T3Qa_m zC>-M>*^EcxlywvZl%~_6l7gECM4&Xy!luhCQi`xg6)h?TQg7H}k-U4%K9>Jebf`-EB1@fT9$ETp^h#0-Or1fom%aJ`(uOaghi)(qZ*T@zl>YKnw_jRp z;+8#GlPb-MIk$_4L0v94&cR~0$HgS0$7Mq4s4VyWx)UBZ99LCkLTT0wHtG$*ZU zyL$yS`#@6a37R^*9Sq{gqPReVB_Kq3&e8NV zc7I9bIZfHyMV$c@v765$QSV2UI1NB!0H0~nF;b;tgwn$m=HLya1EJ_FLn$L^T97op zSmYA4$UE?GQ7QtZtXjh(YeyIyU#=@vYA-YOw4-bKmg=x=+GL82MQZdc?J7W8v72pD zrM31QbXus=p@Y{}mUjOG{KxtE`MJ4XS=tAZa+qS$kKa-42#4dw!My|}8}$rQ%h%8w zNuBKM8&pwhXwsItG`l5%?H0Hyb??Ajn8aXAlH5d6Nm6NU1lGk+F;-!lsyfP1nhC?) z&ge~Ce}QCaLhb6{9*+|8dee~!ka}J)9KqWc88MGWN&xjoeq{|rnU9853u&4XRj{`U zOi`4dFpICHP$;A*B_*2RGT*Irm`-nNu7BL23C|l_-e5SwoYAUDpRF=)?t##)^d!Y1lnXv+3qRZ*P}|EF!R*8cn`ei^JBSh7%-eXAYs`DuI)1;=YAe6-jnnbH zmcIb}N$`e6pY?i;UHyLjiX5l84b1O}-%;PvxsRWIAba!Sd&i|3{QV=T9mLEsx7J0ziG~ z8OiR@Qb4KnQXch$8GZY08P!85^<+Hq@TYBP-=q!Dzc)T4NLK^Id^i8$(;Kv2S=vXE z^3+%KxB73soV_1C$`k#*dT#?seUl+g(?Xq|#hIej|NaB_zx->1H5I7vNYW0ud8^d~ zs#2Cj6qc%XDBU9XO42TgoZadcp_DR}5=_?i+1#q?9ua9r)7jxq+t7w6{Y{ORJnD4Z zQs3PC_a8Y)iKcHpe&-x~{bUh!1QA-%cXKH9=_l#M8QcB~@l9&muin0W`|3jRceuZk z^krpW3mrA0v}uEBNn(V`a%V4560j-TppB@k{#t>ujz&DPd(>4> zr#t>>Q_n8Te+~mzN;CVeazs^6c#V{Os)VlG^Hd0qkG&I4_(h&Q)VN zQ_s%Mwl2xa?4?Y{{elm8dH?=BHesgx1y6?y@f2q&9de{3Z2$lu07*naRQBP+hwRvR zXyeHY7Q-pC>l=|Ni*#&o87ZS$Owy>#_=~q$-{qt{pDzoIW64(iwal zScZSS7r(h}GW+pIe7(1@@GQBsTP`OTX!hPFU%Ifso15+Io_OeO_68H$W``4P&Y$|D z!8T3r&%))UXSQ1mJW9Kgr9Q;yCz7KeNZ(NN)0}g3^bJDPTbQlD{r`$D`u z-3nN4Ez|?oL?M%i zZM`h#a(7n~w`XL`2T~My#uE$%Z{NP1Nu@HGOsbGbOi!z7Y-?+0Cr4J!m5<81;c$3q zDVbafFC`@@nM_ub)unKFcQ>4rlCUm(l!G&5JTtEUvUfhAZRA%RH*r)f2OLR8lD&*$ zML|QBiU|V}6Un2S9ovK=1y{{1*s`bC&_KYw^boC9EI2rG5?HDo40e`16mrU?5FPfA zLckEZ7l+WEa@f-*VIA6oK@bdm@AqeB^v@bOa$B(9j7GoTPcx%GhxzFH-uu152x|2dIw7=7%XqDOs&6o`gCbCNG*h;n;$pJ*b0$Nh_?7bdO_C1l^jL~g0`VkwergP z)Ad^|Upn`Ka9!d6Yinq*gxD7~ZqoMyFM}KBk`~Hv5z#awMJ$LU8bDu=tIZB&$(Csrx`<6p0K&_yQav`UQ1|Uw)E3?G}kx3avZ1h%PS6rIIEt&L^TuDIU*- z1t2MqUI4!D=5@3@{5z1EP-?ddSsS{QjjnC=n8Bfq!OMu!EJG=P^w!GM()#|>7fXoF zW|Y>k)O-X(_BKN*>+qpoViVW0)q%5@%Paec(z1Q0bChx;_o_^FlBMqJUtUGeu8pLW zrF*weO48oy(&4%~2ZVXf#Hk~c5;4-y4R!@ONSrbf5}N& zJvut7R*znN|18k!dA>A(`)uA4=I@=-j-05{k^hY<9Z_Tb_5FK}QA)4~dJ;ujMnq{R z>c;G3aTc0lJ|{_;ye`9FNz3KpV6e?`?a7`HpoLPtgy_^ufKWOy0-7ZPQ=Rb?p4JFT zxn70QLJko3n@uT2{DfirKo*99zeKfLe0t1;-qh=;wvVWMR_(kw*$HqV459_ z6al3QfK*wGF3L!KK|t)IWRBt2%gYApR_~gwbCfQ0!eOPpNgk_RA{7pL!(eRb)FG-$ zIUP}wE-e8{U%Z$qGf|0vESGOJpft#IsnrkizNttBAea=zZXHG0UE@k)jYcTZZ+DVEmJsCp*uT1r@U)ElI6>w58sT)zsrWKz-lKMMNhEaK} zbfmvYm8vW{I&DX3zZomVx(%nON*hVavUwe$G#0xDT2sJWB|*rD3Bpo?#PAZvnx5ay z0r%FtFesKvg;EKgMDe#`y~&n|l%0ABp{na-Tel~wUc%BfMS;`GdLf6(bON-f5Jo)5 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�`DW6jxjxSBKr>FI80Re93Nu3Ve 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

    d6 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

      3WRAnlG#jCPx38<5ODc4~B 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

      `_F9%srt3Wy$>p+D#YE8|<7p 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℘|Y~MC6}a0&;OyhC*6WDU=x7|SOe$ijiT^m-(bBY#6}X?Dxo^73d2FS5 zxGkSFk^1It%}mU z_x%uc56wf+<-_@eAZcO9*DapTaEk^%2(4$d#r}55B!OV&72*SQTRp7nnx{>8{$Dvk z@lQy&#JOX||Myrqar_2ZC-Yoogom-bru>`2)_jiCyrO|Nu^&&^7D%lUj!`!1-NONC zl;C>17UDAs8|kU|%ZQZ0|0P+4EZg$#<3TY@D~lH{=^1Z}gB3523Nva`yrGOT(Bh*- zpib(J81)`xp;NDtopodx`z%49Sc%K@>=_!Iib3X5fxNvh>A@d7NEo*9jDO8VG^tN*HuAA;cl3YG49k*%D{?YR(We^q$7H;wz3_P4rg)((Teqpw*+a$OWFKj zxI1H!laxyAz>?Glp0Be+0+eBA(MYk4sHIG@U%mzcb-vC4l2zSBHCaMrzQm{HzXREx z>5%SMf?!_03V97r|Hl6%le0JaGa>D{Im{XPD42g=6;*bG0Du^+kWt*K)+=xj!N)3q z>;Pd1^$x4meFj4Ys(G{Y!grExRR-7N_OL7aLMmP-r`|H>ec(&H356uNAda>G@UMXv z1WJq8-7m#wJ2bFig#2q67da=$Akr(6?Bh8}{*TsgFWY?`Cj2BpH1I!job_;3hB(dY zL=>G1Qmb{`D|}`}xp!Fm?#?Sm*8b)fWZ%?Xs7OGIWzDdDRB$*_{AxcTpEte&wj4#p zkq+Ipfkf6m^&8xfd!!(~kp7Akwx94uqs$uXjSOMGowt8(fKnzf+z}WmK&lsmmHP|H zJKDl9_&&xTKgRVWhJe*ic_s}+HU3q@dc5Z;D8-{W1dsDLu4rv0X|%>~w(NGCG<-G$ksS|-aTh5H#n9wVMQTD;eCGgR`R`Rb=j zr58MfqqFgjMkg-J3_AdmLF}lh4Es2tO64!*X8!BKBb*Gu5=IBz8jPAg!ufkjs~Vh_ z+V2^=D+K4t*GqR0Q|dXNcJ8iFyum;X?Ht`j$Zx#;f~DhxKSFyQVSmPmKTk!~zRn*? z0ua}^vj5vNs}6(ia?d^M^M;ilc)vU@FL=!$BmlHW=?>6;S}x>#R0@7+DP z2-nVHI+3=YLt;yhtw)Tyc}5yM5D!9S>)XMH$)f zX0V1IHqfAJhUVzE)mTXyy)!$8ij&6t~-Z}6O+_Z7-Cf6%I(8(Poz{((+ zcW=p;l8v?6WNusAS>LKBfDe?k=58NOsV+$PKZIKnv~CDwo?>cqx4RVmzZE-dcqGux z&$hmk*f;MB2U^+6IaKm`D4DXe3ROl_i7!x+5GK~IYfgSw->KaAmT`M3`m&OW6DVpG z<-&?XPRNyPg_c1h7rCy?_ytUSn(%_=1ky(tfTe?Ym4l1XLtR&uSxY}N4;W6LW7jb0 ze>=lrc4wSKCPb3Dwoyj3XP9#=-kV^dS+bQtG^E~2ItxuMw&`A?+h+o+U=-t7+hWJi z;}-|+(&QkAk@_|nqv_5o4D2;Q_?x8LSIp7<^nhaYW+1KvE$i8LM%j7#vk$0_UrS@B zf>}@GP7;c+2wkA|>Q#G~;d0D7j*n-mpAK3Zo70MmCLK5pjaNhBx%{@j%6&@_&M07i zAMQM9b8aXl2^KDzv3r*h02|m|!*#(USD27&oV2W3sk=@{Vc)kiw~M0%Ak}|8j|8^d z$Gq^3@=FU11z`UfJGKsg6Wcurhl1v|8dM{$3HUaE5#{ptivh>*3rAom@OX5o)W2bR4)X{%jR&%afn^(j(Hn>E3db;P4COskK>1BvcUul|+bX_ZMwkLRHg0TS4?l;NE;%MyBnql%OKx1fWTnd6jw*z- zYOHjPEzNVyFFV$10O#0q�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 z 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�&v5+lP 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

      P{@i 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
      ~S)C>K6!EhE;@_Q%&I=b7a+$ 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

      s9{PAG=002GUbdwrSoH`j|?rJ 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

      Wp!=` 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 From 87bdb6317187ff74612536f831b2871f18d055a9 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:00:15 +0100 Subject: [PATCH 73/75] Enhance dataset loading: add shuffle and seed parameters for diverse sampling --- .gitignore | 2 ++ scripts/demo_hyperbolic_clip.py | 1 + src/hyperview/core/dataset.py | 30 +++++++++++++++++++++++++----- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index f1a301e..031517d 100644 --- a/.gitignore +++ b/.gitignore @@ -72,6 +72,8 @@ AGENTS.md .github/agents/ .github/instructions/ .github/hooks/ +.github/skills/ +.agents/ .specstory/ # Generated version file (hatch-vcs) diff --git a/scripts/demo_hyperbolic_clip.py b/scripts/demo_hyperbolic_clip.py index 74c4bfb..1da0aaa 100644 --- a/scripts/demo_hyperbolic_clip.py +++ b/scripts/demo_hyperbolic_clip.py @@ -22,6 +22,7 @@ def main() -> None: image_key=HF_IMAGE_KEY, label_key=HF_LABEL_KEY, max_samples=NUM_SAMPLES, + shuffle=True, ) print(f"Loaded {len(dataset)} samples") diff --git a/src/hyperview/core/dataset.py b/src/hyperview/core/dataset.py index ce62480..09cba36 100644 --- a/src/hyperview/core/dataset.py +++ b/src/hyperview/core/dataset.py @@ -197,6 +197,8 @@ def add_from_huggingface( label_key: str | None = "fine_label", label_names_key: str | None = None, max_samples: int | None = None, + shuffle: bool = False, + seed: int = 42, show_progress: bool = True, skip_existing: bool = True, image_format: str = "auto", @@ -214,6 +216,8 @@ def add_from_huggingface( label_key: Key for the label column (can be None). label_names_key: Key for label names in dataset info. max_samples: Maximum number of samples to load. + shuffle: If True, shuffle the dataset before sampling (ensures diverse classes). + seed: Random seed for shuffling (default: 42). show_progress: Whether to print progress. skip_existing: If True (default), skip samples that already exist in storage. image_format: Image format to save: "auto" (detect from source, fallback PNG), @@ -240,6 +244,22 @@ def add_from_huggingface( except Exception: ds = cast(Any, load_dataset(dataset_name, split=split)) + source_fingerprint = ds._fingerprint if hasattr(ds, "_fingerprint") else None + + dataset_size = len(ds) + total = dataset_size if max_samples is None else min(dataset_size, max_samples) + + # Select source row indices explicitly so sampled subsets are clear and + # sample IDs remain stable for the same underlying row. + selected_indices: list[int] | None = None + if shuffle: + rng = np.random.default_rng(seed) + selected_indices = rng.permutation(dataset_size)[:total].tolist() + ds = ds.select(selected_indices) + elif max_samples is not None: + selected_indices = list(range(total)) + ds = ds.select(selected_indices) + # Get label names if available label_names = None if label_key and label_names_key: @@ -251,7 +271,7 @@ def add_from_huggingface( # Extract dataset metadata for robust sample IDs config_name = getattr(ds.info, "config_name", None) or "default" - fingerprint = ds._fingerprint[:8] if hasattr(ds, "_fingerprint") and ds._fingerprint else "unknown" + fingerprint = source_fingerprint[:8] if source_fingerprint else "unknown" version = str(ds.info.version) if ds.info.version else None # Get media directory for this dataset @@ -259,7 +279,6 @@ def add_from_huggingface( media_dir = config.get_huggingface_media_dir(dataset_name, split) samples = [] - total = len(ds) if max_samples is None else min(len(ds), max_samples) if show_progress: print(f"Loading {total} samples from {dataset_name}...") @@ -268,6 +287,7 @@ def add_from_huggingface( for i in iterator: item = ds[i] + source_index = selected_indices[i] if selected_indices is not None else i image = item[image_key] # Handle PIL Image or numpy array @@ -287,7 +307,7 @@ def add_from_huggingface( # Generate robust sample ID with config and fingerprint safe_name = dataset_name.replace("/", "_") - sample_id = f"{safe_name}_{config_name}_{fingerprint}_{split}_{i}" + sample_id = f"{safe_name}_{config_name}_{fingerprint}_{split}_{source_index}" # Determine image format and extension if image_format == "auto": @@ -311,8 +331,8 @@ def add_from_huggingface( "source": dataset_name, "config": config_name, "split": split, - "index": i, - "fingerprint": ds._fingerprint if hasattr(ds, "_fingerprint") else None, + "index": source_index, + "fingerprint": source_fingerprint, "version": version, } From b035d7739c5788e89b54903f674eeaccc6496582 Mon Sep 17 00:00:00 2001 From: Matin Mahmood <45293386+mnm-matin@users.noreply.github.com> Date: Sat, 21 Feb 2026 18:32:56 +0100 Subject: [PATCH 74/75] feat: cosmos cookoff fork baseline --- .gitignore | 6 + README.md | 4 +- frontend/next-env.d.ts | 2 +- frontend/next.config.ts | 2 +- frontend/src/app/page.tsx | 83 +- frontend/src/components/CurationPanel.tsx | 243 ++++++ frontend/src/components/DockviewWorkspace.tsx | 90 ++- frontend/src/components/GlobalSeekBar.tsx | 92 +++ frontend/src/components/Header.tsx | 4 +- frontend/src/components/ImageGrid.tsx | 2 +- frontend/src/components/VideoGrid.tsx | 383 +++++++++ frontend/src/components/VideoPanel.tsx | 194 +++++ frontend/src/components/index.ts | 4 + frontend/src/lib/api.ts | 50 +- frontend/src/store/useStore.ts | 151 +++- frontend/src/types/index.ts | 62 ++ scripts/create_cookoff_fixture.py | 171 +++++ scripts/curate_submission_metrics.py | 262 +++++++ scripts/demo.py | 2 +- scripts/demo_hyperbolic_clip.py | 4 +- scripts/load_cosmos_curate.py | 725 ++++++++++++++++++ scripts/load_nuscenes.py | 330 ++++++++ src/hyperview/server/app.py | 287 ++++++- 23 files changed, 3092 insertions(+), 61 deletions(-) create mode 100644 frontend/src/components/CurationPanel.tsx create mode 100644 frontend/src/components/GlobalSeekBar.tsx create mode 100644 frontend/src/components/VideoGrid.tsx create mode 100644 frontend/src/components/VideoPanel.tsx create mode 100644 scripts/create_cookoff_fixture.py create mode 100644 scripts/curate_submission_metrics.py create mode 100644 scripts/load_cosmos_curate.py create mode 100644 scripts/load_nuscenes.py diff --git a/.gitignore b/.gitignore index 031517d..195707d 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,9 @@ AGENTS.md # Generated version file (hatch-vcs) src/hyperview/_version.py + +# Local workspace overlays (not part of upstream HyperView fork) +cosmos-curate/ +PLAN.md +TASK.md +submission/ diff --git a/README.md b/README.md index 2c6d5f5..aa253c3 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ This will: 1. Load 500 samples from CIFAR-100 2. Compute CLIP embeddings 3. Generate Euclidean and Poincaré visualizations -4. Start the server at **http://127.0.0.1:6262** +4. Start the server at **http://127.0.0.1:6263** ### Python API @@ -72,7 +72,7 @@ dataset.compute_embeddings(model="openai/clip-vit-base-patch32") dataset.compute_visualization() # Launch the UI -hv.launch(dataset) # Opens http://127.0.0.1:6262 +hv.launch(dataset, port=6263) # Opens http://127.0.0.1:6263 ``` ### Google Colab diff --git a/frontend/next-env.d.ts b/frontend/next-env.d.ts index 9edff1c..c4b7818 100644 --- a/frontend/next-env.d.ts +++ b/frontend/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/types/routes.d.ts"; +import "./.next/dev/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/frontend/next.config.ts b/frontend/next.config.ts index 7dbfdbd..ae8d588 100644 --- a/frontend/next.config.ts +++ b/frontend/next.config.ts @@ -15,7 +15,7 @@ const nextConfig: NextConfig = { return [ { source: "/api/:path*", - destination: "http://127.0.0.1:6262/api/:path*", + destination: "http://127.0.0.1:6263/api/:path*", }, ]; }, diff --git a/frontend/src/app/page.tsx b/frontend/src/app/page.tsx index a04d188..8632790 100644 --- a/frontend/src/app/page.tsx +++ b/frontend/src/app/page.tsx @@ -2,11 +2,13 @@ import { useEffect, useCallback, useMemo, useRef, useState } from "react"; import { Header } from "@/components"; +import { GlobalSeekBar } from "@/components/GlobalSeekBar"; import { DockviewWorkspace, DockviewProvider } from "@/components/DockviewWorkspace"; import { useStore } from "@/store/useStore"; import type { Sample } from "@/types"; import { fetchDataset, + postCurationFilter, fetchSamples, fetchSamplesBatch, fetchLassoSelection, @@ -36,10 +38,12 @@ export default function Home() { lassoIsLoading, setLassoResults, labelFilter, + curationQuery, } = useStore(); const [loadingMore, setLoadingMore] = useState(false); const labelFilterRef = useRef(labelFilter ?? null); + const curationQueryRef = useRef(curationQuery); // Initial data load - runs once on mount // Store setters are stable and don't need to be in deps @@ -97,6 +101,7 @@ export default function Home() { useEffect(() => { if (labelFilterRef.current === labelFilter) return; if (isLassoSelection) return; + if (curationQuery) return; labelFilterRef.current = labelFilter ?? null; @@ -116,7 +121,60 @@ export default function Home() { return () => { cancelled = true; }; - }, [isLassoSelection, labelFilter, setSamples]); + }, [curationQuery, isLassoSelection, labelFilter, setSamples]); + + // Refetch samples when curation filters are applied (non-lasso mode) + useEffect(() => { + if (!curationQuery) return; + if (isLassoSelection) return; + + let cancelled = false; + const run = async () => { + try { + const res = await postCurationFilter({ + ...curationQuery, + offset: 0, + limit: SAMPLES_PER_PAGE, + }); + if (cancelled) return; + setSamples(res.samples, res.total); + } catch (err) { + if (cancelled) return; + console.error("Failed to load curation-filtered samples:", err); + } + }; + + run(); + return () => { + cancelled = true; + }; + }, [curationQuery, isLassoSelection, setSamples]); + + // When curation filters are cleared, restore standard paginated samples. + useEffect(() => { + const previous = curationQueryRef.current; + curationQueryRef.current = curationQuery; + + if (!previous || curationQuery !== null) return; + if (isLassoSelection) return; + + let cancelled = false; + const run = async () => { + try { + const res = await fetchSamples(0, SAMPLES_PER_PAGE, labelFilter ?? undefined); + if (cancelled) return; + setSamples(res.samples, res.total); + } catch (err) { + if (cancelled) return; + console.error("Failed to restore samples after clearing curation filters:", err); + } + }; + + run(); + return () => { + cancelled = true; + }; + }, [curationQuery, isLassoSelection, labelFilter, setSamples]); // Fetch initial lasso selection page when a new lasso query begins. useEffect(() => { @@ -175,6 +233,25 @@ export default function Home() { return; } + if (curationQuery) { + if (samplesLoaded >= totalSamples) return; + + setLoadingMore(true); + try { + const res = await postCurationFilter({ + ...curationQuery, + offset: samplesLoaded, + limit: SAMPLES_PER_PAGE, + }); + appendSamples(res.samples); + } catch (err) { + console.error("Failed to load more curation-filtered samples:", err); + } finally { + setLoadingMore(false); + } + return; + } + if (samplesLoaded >= totalSamples) return; setLoadingMore(true); @@ -198,6 +275,7 @@ export default function Home() { totalSamples, setLassoResults, labelFilter, + curationQuery, ]); const displayedSamples = useMemo(() => { @@ -236,7 +314,7 @@ export default function Home() {

      {error}

      - Make sure the HyperView backend is running on port 6262. + Make sure the HyperView backend is running on port 6263.

      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�P0TR%ybB~kj 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

    @@ -266,6 +344,7 @@ export default function Home() { >
    + {/* Main content - dockable panels */}
    diff --git a/frontend/src/components/CurationPanel.tsx b/frontend/src/components/CurationPanel.tsx new file mode 100644 index 0000000..8c7467d --- /dev/null +++ b/frontend/src/components/CurationPanel.tsx @@ -0,0 +1,243 @@ +"use client"; + +import { useEffect, useMemo, useState } from "react"; +import { BarChart3, Filter } from "lucide-react"; +import { fetchCurationStats } from "@/lib/api"; +import type { CurationFilterRequest, CurationStats, HistogramBin } from "@/types"; +import { useStore } from "@/store/useStore"; +import { Panel } from "./Panel"; +import { PanelHeader } from "./PanelHeader"; + +interface CurationPanelProps { + className?: string; +} + +function Histogram({ bins }: { bins: HistogramBin[] }) { + const maxCount = useMemo(() => { + let value = 0; + for (const bin of bins) value = Math.max(value, bin.count); + return value; + }, [bins]); + + if (bins.length === 0 || maxCount <= 0) { + return
    No score data available.
    ; + } + + return ( +
    + {bins.map((bin) => ( +
    + ))} +
    + ); +} + +function scoreLabel(value: number): string { + return value.toFixed(1); +} + +export function CurationPanel({ className = "" }: CurationPanelProps) { + const { + datasetInfo, + curationFilters, + setCurationFilters, + setCurationQuery, + resetCurationFilters, + } = useStore(); + + const [stats, setStats] = useState(null); + const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState(null); + + useEffect(() => { + let cancelled = false; + setIsLoading(true); + setError(null); + + fetchCurationStats() + .then((data) => { + if (cancelled) return; + setStats(data); + }) + .catch((err) => { + if (cancelled) return; + setStats(null); + setError(err instanceof Error ? err.message : "Failed to load curation stats"); + }) + .finally(() => { + if (cancelled) return; + setIsLoading(false); + }); + + return () => { + cancelled = true; + }; + }, [datasetInfo?.name]); + + const applyFilters = () => { + const request: CurationFilterRequest = { + min_aesthetic_score: + curationFilters.minAestheticScore > 0 ? curationFilters.minAestheticScore : undefined, + min_motion_score: + curationFilters.minMotionScore > 0 ? curationFilters.minMotionScore : undefined, + max_cosine_similarity: + curationFilters.maxCosineSimilarity < 1 + ? curationFilters.maxCosineSimilarity + : undefined, + caption_query: curationFilters.captionQuery.trim() || undefined, + dedup_status: + curationFilters.dedupStatus === "all" ? undefined : curationFilters.dedupStatus, + }; + setCurationQuery(request); + }; + + const clearFilters = () => { + resetCurationFilters(); + setCurationQuery(null); + }; + + return ( + + } /> + +
    +
    +
    Dataset
    + {isLoading ? ( +
    Loading curation stats…
    + ) : error ? ( +
    {error}
    + ) : ( +
    +
    samples: {stats?.total_samples ?? 0}
    +
    with video: {stats?.with_video ?? 0}
    +
    with caption: {stats?.with_caption ?? 0}
    +
    + dedup kept: {stats?.dedup_counts?.kept ?? 0} +
    +
    + )} +
    + +
    +
    Aesthetic score
    + +
    + min score + + setCurationFilters({ minAestheticScore: Number(event.target.value) }) + } + className="flex-1 accent-primary" + /> + + {scoreLabel(curationFilters.minAestheticScore)} + +
    +
    + +
    +
    Motion score
    + +
    + min score + + setCurationFilters({ minMotionScore: Number(event.target.value) }) + } + className="flex-1 accent-primary" + /> + + {scoreLabel(curationFilters.minMotionScore)} + +
    +
    + +
    +
    Dedup + Caption
    + +
    + max sim + + setCurationFilters({ maxCosineSimilarity: Number(event.target.value) }) + } + className="flex-1 accent-primary" + /> + + {curationFilters.maxCosineSimilarity.toFixed(2)} + +
    + +
    + dedup + +
    + +
    + caption + + setCurationFilters({ captionQuery: event.target.value }) + } + placeholder="e.g. pedestrian" + className="flex-1 h-7 rounded bg-background border border-border px-2 text-foreground placeholder:text-muted-foreground" + /> +
    +
    +
    + +
    + + +
    +
    + ); +} diff --git a/frontend/src/components/DockviewWorkspace.tsx b/frontend/src/components/DockviewWorkspace.tsx index a54200a..fe48bca 100644 --- a/frontend/src/components/DockviewWorkspace.tsx +++ b/frontend/src/components/DockviewWorkspace.tsx @@ -18,15 +18,17 @@ import { type IWatermarkPanelProps, themeAbyss, } from "dockview"; -import { Circle, Disc, Grid3X3 } from "lucide-react"; +import { Circle, Disc, Film, Grid3X3, SlidersHorizontal } from "lucide-react"; import type { Geometry, Sample } from "@/types"; import { useStore } from "@/store/useStore"; import { findLayoutByGeometry } from "@/lib/layouts"; -import { ImageGrid } from "./ImageGrid"; +import { VideoGrid } from "./VideoGrid"; import { ScatterPanel } from "./ScatterPanel"; import { ExplorerPanel } from "./ExplorerPanel"; import { PlaceholderPanel } from "./PlaceholderPanel"; +import { VideoPanel } from "./VideoPanel"; +import { CurationPanel } from "./CurationPanel"; import { HyperViewLogo } from "./icons"; import { PanelTitle } from "./PanelTitle"; @@ -36,6 +38,8 @@ const LAYOUT_STORAGE_KEY = "hyperview:dockview-layout:v4"; const PANEL = { EXPLORER: "explorer", GRID: "grid", + VIDEO: "video", + CURATION: "curation", SCATTER_EUCLIDEAN: "scatter-euclidean", SCATTER_POINCARE: "scatter-poincare", SCATTER_DEFAULT: "scatter-default", @@ -45,13 +49,17 @@ const PANEL = { const CENTER_PANEL_IDS = [ PANEL.GRID, + PANEL.VIDEO, + PANEL.CURATION, PANEL.SCATTER_EUCLIDEAN, PANEL.SCATTER_POINCARE, PANEL.SCATTER_DEFAULT, ] as const; export const CENTER_PANEL_DEFS = [ - { id: PANEL.GRID, label: "Samples", icon: Grid3X3 }, + { id: PANEL.GRID, label: "Clip Previews", icon: Grid3X3 }, + { id: PANEL.VIDEO, label: "Video", icon: Film }, + { id: PANEL.CURATION, label: "Curation", icon: SlidersHorizontal }, { id: PANEL.SCATTER_EUCLIDEAN, label: "Euclidean", icon: Circle }, { id: PANEL.SCATTER_POINCARE, label: "Hyperbolic", icon: Disc }, ] as const; @@ -164,13 +172,35 @@ export function useDockviewApi() { api.addPanel({ id: PANEL.GRID, component: "grid", - title: "Samples", + title: "Clip Previews", tabComponent: "samplesTab", renderer: "always", ...baseOptions, }); break; + case PANEL.VIDEO: + api.addPanel({ + id: PANEL.VIDEO, + component: "video", + title: "Video", + tabComponent: "videoTab", + renderer: "always", + ...baseOptions, + }); + break; + + case PANEL.CURATION: + api.addPanel({ + id: PANEL.CURATION, + component: "curation", + title: "Curation", + tabComponent: "curationTab", + renderer: "always", + ...baseOptions, + }); + break; + case PANEL.SCATTER_EUCLIDEAN: api.addPanel({ id: PANEL.SCATTER_EUCLIDEAN, @@ -368,11 +398,19 @@ const SamplesTab = React.memo(function SamplesTab(props: IDockviewPanelHeaderPro return } />; }); +const VideoTab = React.memo(function VideoTab(props: IDockviewPanelHeaderProps) { + return } />; +}); + +const CurationTab = React.memo(function CurationTab(props: IDockviewPanelHeaderProps) { + return } />; +}); + // Grid panel uses context to get samples const GridDockPanel = React.memo(function GridDockPanel() { const ctx = useDockviewContext(); return ( - ; }); +const VideoDockPanel = React.memo(function VideoDockPanel( + props: IDockviewPanelProps<{ sampleId?: string }> +) { + return ; +}); + +const CurationDockPanel = React.memo(function CurationDockPanel() { + return ; +}); + // Watermark shown when dock is empty - just the logo, no text const Watermark = React.memo(function Watermark(_props: IWatermarkPanelProps) { return ( @@ -410,6 +458,8 @@ const Watermark = React.memo(function Watermark(_props: IWatermarkPanelProps) { // Stable components object - never changes const COMPONENTS = { grid: GridDockPanel, + video: VideoDockPanel, + curation: CurationDockPanel, scatter: ScatterDockPanel, explorer: ExplorerDockPanel, placeholder: PlaceholderDockPanel, @@ -420,6 +470,8 @@ const TAB_COMPONENTS = { euclideanTab: EuclideanTab, hyperbolicTab: HyperbolicTab, samplesTab: SamplesTab, + videoTab: VideoTab, + curationTab: CurationTab, }; // ----------------------------------------------------------------------------- @@ -500,11 +552,37 @@ export function DockviewWorkspace() { api.addPanel({ id: PANEL.GRID, component: "grid", - title: "Samples", + title: "Clip Previews", tabComponent: "samplesTab", renderer: "always", }); + api.getPanel(PANEL.VIDEO) ?? + api.addPanel({ + id: PANEL.VIDEO, + component: "video", + title: "Video", + tabComponent: "videoTab", + position: { + referencePanel: gridPanel.id, + direction: "within", + }, + renderer: "always", + }); + + api.getPanel(PANEL.CURATION) ?? + api.addPanel({ + id: PANEL.CURATION, + component: "curation", + title: "Curation", + tabComponent: "curationTab", + position: { + referencePanel: gridPanel.id, + direction: "within", + }, + renderer: "always", + }); + let scatterPanel: typeof gridPanel | null = null; if (hasLayouts && euclideanLayout) { diff --git a/frontend/src/components/GlobalSeekBar.tsx b/frontend/src/components/GlobalSeekBar.tsx new file mode 100644 index 0000000..8e296e3 --- /dev/null +++ b/frontend/src/components/GlobalSeekBar.tsx @@ -0,0 +1,92 @@ +"use client"; + +import { Pause, Play, SkipBack, SkipForward } from "lucide-react"; +import { useMemo } from "react"; +import { useStore } from "@/store/useStore"; + +function formatTime(seconds: number): string { + if (!Number.isFinite(seconds) || seconds < 0) return "00:00"; + const total = Math.floor(seconds); + const mins = Math.floor(total / 60); + const secs = total % 60; + return `${String(mins).padStart(2, "0")}:${String(secs).padStart(2, "0")}`; +} + +export function GlobalSeekBar() { + const { + activeVideoId, + globalSeekTime, + setGlobalSeekTime, + isTimelinePlaying, + setTimelinePlaying, + videoDurations, + } = useStore(); + + const duration = useMemo(() => { + if (!activeVideoId) return 0; + return videoDurations[activeVideoId] ?? 0; + }, [activeVideoId, videoDurations]); + + const canSeek = Boolean(activeVideoId) && duration > 0; + + const jump = (delta: number) => { + if (!canSeek) return; + const next = Math.max(0, Math.min(duration, globalSeekTime + delta)); + setGlobalSeekTime(next); + }; + + return ( +
    + + + + + + + + {formatTime(globalSeekTime)} + + + setGlobalSeekTime(Number(event.target.value))} + disabled={!canSeek} + className="flex-1 accent-primary disabled:opacity-50" + /> + + {formatTime(duration)} + +
    + {activeVideoId ? `active: ${activeVideoId}` : "Select a video sample to enable global timeline"} +
    +
    + ); +} diff --git a/frontend/src/components/Header.tsx b/frontend/src/components/Header.tsx index b50f9cc..ebc3521 100644 --- a/frontend/src/components/Header.tsx +++ b/frontend/src/components/Header.tsx @@ -47,9 +47,9 @@ import { useColorSettings, } from "@/store/useColorSettings"; -const PANEL_CONFIG = CENTER_PANEL_DEFS; const GITHUB_URL = "https://github.com/Hyper3Labs/HyperView"; const DISCORD_URL = process.env.NEXT_PUBLIC_DISCORD_URL ?? "https://discord.gg/Qf2pXtY4Vf"; +const PANEL_CONFIG = CENTER_PANEL_DEFS; export function Header() { const { datasetInfo, leftPanelOpen, rightPanelOpen, bottomPanelOpen } = useStore(); @@ -173,7 +173,7 @@ export function Header() { > {datasetInfo.name} - {datasetInfo.num_samples.toLocaleString()} samples + {datasetInfo.num_samples.toLocaleString()} clips diff --git a/frontend/src/components/ImageGrid.tsx b/frontend/src/components/ImageGrid.tsx index 7e1e457..d1fd07f 100644 --- a/frontend/src/components/ImageGrid.tsx +++ b/frontend/src/components/ImageGrid.tsx @@ -299,7 +299,7 @@ export function ImageGrid({ samples, onLoadMore, hasMore }: ImageGridProps) { /> ) : (
    - No image + No preview
    )} diff --git a/frontend/src/components/VideoGrid.tsx b/frontend/src/components/VideoGrid.tsx new file mode 100644 index 0000000..261e1b8 --- /dev/null +++ b/frontend/src/components/VideoGrid.tsx @@ -0,0 +1,383 @@ +"use client"; + +import { useCallback, useEffect, useMemo, useRef, useState } from "react"; +import { useVirtualizer } from "@tanstack/react-virtual"; +import justifiedLayout from "justified-layout"; +import { Play } from "lucide-react"; +import { useStore } from "@/store/useStore"; +import { getVideoUrl } from "@/lib/api"; +import { Panel } from "./Panel"; +import { CheckIcon } from "./icons"; +import type { Sample } from "@/types"; + +interface VideoGridProps { + samples: Sample[]; + onLoadMore?: () => void; + hasMore?: boolean; +} + +const BOX_SPACING = 2; +const TARGET_ROW_HEIGHT = 180; +const DEFAULT_ASPECT_RATIO = 1; + +function getAspectRatio(sample: Sample): number { + if (sample.width && sample.height && sample.height > 0) { + return sample.width / sample.height; + } + return DEFAULT_ASPECT_RATIO; +} + +function computeLayout( + samples: Sample[], + containerWidth: number +): { + boxes: Array<{ width: number; height: number; top: number; left: number }>; + containerHeight: number; +} { + if (samples.length === 0 || containerWidth <= 0) { + return { boxes: [], containerHeight: 0 }; + } + + const aspectRatios = samples.map(getAspectRatio); + + const geometry = justifiedLayout(aspectRatios, { + containerWidth, + containerPadding: 0, + boxSpacing: BOX_SPACING, + targetRowHeight: TARGET_ROW_HEIGHT, + targetRowHeightTolerance: 0.25, + showWidows: true, + }); + + return { + boxes: geometry.boxes, + containerHeight: geometry.containerHeight, + }; +} + +interface RowData { + startIndex: number; + endIndex: number; + top: number; + height: number; +} + +function groupIntoRows( + boxes: Array<{ width: number; height: number; top: number; left: number }> +): RowData[] { + if (boxes.length === 0) return []; + + const rows: RowData[] = []; + let currentRowTop = boxes[0].top; + let currentRowStart = 0; + let currentRowHeight = boxes[0].height; + + for (let i = 1; i < boxes.length; i++) { + const box = boxes[i]; + if (Math.abs(box.top - currentRowTop) > 1) { + rows.push({ + startIndex: currentRowStart, + endIndex: i, + top: currentRowTop, + height: currentRowHeight, + }); + currentRowStart = i; + currentRowTop = box.top; + currentRowHeight = box.height; + } else { + currentRowHeight = Math.max(currentRowHeight, box.height); + } + } + + rows.push({ + startIndex: currentRowStart, + endIndex: boxes.length, + top: currentRowTop, + height: currentRowHeight, + }); + + return rows; +} + +function hasVideo(sample: Sample): boolean { + const metadata = sample.metadata as Record; + const videoPath = metadata.video_path; + const clipLocation = metadata.clip_location; + + if (typeof videoPath === "string" && videoPath.trim()) return true; + if (typeof clipLocation === "string" && clipLocation.trim()) return true; + return sample.filepath.toLowerCase().endsWith(".mp4"); +} + +function metadataScore(sample: Sample, key: string): string { + const metadata = sample.metadata as Record; + const value = metadata[key]; + if (typeof value !== "number" || Number.isNaN(value)) return "—"; + return value.toFixed(1); +} + +function captionSnippet(sample: Sample): string | null { + const metadata = sample.metadata as Record; + for (const key of ["caption_answer", "first_caption", "caption_raw"]) { + const value = metadata[key]; + if (typeof value === "string" && value.trim()) { + return value.trim(); + } + } + return null; +} + +export function VideoGrid({ samples, onLoadMore, hasMore }: VideoGridProps) { + const containerRef = useRef(null); + const [containerWidth, setContainerWidth] = useState(0); + + const { + selectedIds, + isLassoSelection, + selectionSource, + toggleSelection, + addToSelection, + setHoveredId, + hoveredId, + labelFilter, + activeVideoId, + setActiveVideoId, + setVideoDuration, + previewVideoId, + setPreviewVideoId, + } = useStore(); + + useEffect(() => { + const container = containerRef.current; + if (!container) return; + + const updateWidth = () => { + const width = container.clientWidth; + if (width > 0 && width !== containerWidth) { + setContainerWidth(width); + } + }; + + updateWidth(); + + const resizeObserver = new ResizeObserver(() => { + requestAnimationFrame(updateWidth); + }); + resizeObserver.observe(container); + + return () => resizeObserver.disconnect(); + }, [containerWidth]); + + const { boxes, containerHeight } = useMemo( + () => computeLayout(samples, containerWidth), + [samples, containerWidth] + ); + + const rows = useMemo(() => groupIntoRows(boxes), [boxes]); + + const virtualizer = useVirtualizer({ + count: rows.length, + getScrollElement: () => containerRef.current, + estimateSize: (index) => rows[index]?.height ?? TARGET_ROW_HEIGHT, + overscan: 3, + getItemKey: (index) => { + const row = rows[index]; + if (!row) return `row-${index}`; + const rowSamples = samples.slice(row.startIndex, row.endIndex); + return rowSamples.map((s) => s.id).join("-") || `row-${index}`; + }, + }); + + useEffect(() => { + const container = containerRef.current; + if (!container || !onLoadMore || !hasMore) return; + + const handleScroll = () => { + const { scrollTop, scrollHeight, clientHeight } = container; + if (scrollHeight - scrollTop - clientHeight < 500) { + onLoadMore(); + } + }; + + container.addEventListener("scroll", handleScroll); + return () => container.removeEventListener("scroll", handleScroll); + }, [onLoadMore, hasMore]); + + useEffect(() => { + containerRef.current?.scrollTo({ top: 0 }); + }, [labelFilter]); + + useEffect(() => { + if (isLassoSelection) return; + if (selectionSource !== "scatter") return; + if (selectedIds.size === 0) return; + + try { + virtualizer.scrollToIndex(0, { align: "start" }); + } catch { + containerRef.current?.scrollTo({ top: 0 }); + } + }, [isLassoSelection, selectedIds, selectionSource, virtualizer]); + + const handleClick = useCallback( + (sample: Sample, event: React.MouseEvent) => { + setActiveVideoId(sample.id); + + if (event.metaKey || event.ctrlKey) { + toggleSelection(sample.id); + } else if (event.shiftKey && selectedIds.size > 0) { + const selectedArray = Array.from(selectedIds); + const lastSelected = selectedArray[selectedArray.length - 1]; + const lastIndex = samples.findIndex((s) => s.id === lastSelected); + const currentIndex = samples.findIndex((s) => s.id === sample.id); + + if (lastIndex !== -1 && currentIndex !== -1) { + const start = Math.min(lastIndex, currentIndex); + const end = Math.max(lastIndex, currentIndex); + const rangeIds = samples.slice(start, end + 1).map((s) => s.id); + addToSelection(rangeIds); + } + } else { + const newSet = new Set(); + newSet.add(sample.id); + useStore.getState().setSelectedIds(newSet, "grid"); + } + }, + [samples, selectedIds, toggleSelection, addToSelection, setActiveVideoId] + ); + + const virtualRows = virtualizer.getVirtualItems(); + + return ( + +
    +
    +
    + {virtualRows.map((virtualRow) => { + const row = rows[virtualRow.index]; + if (!row) return null; + + const rowSamples = samples.slice(row.startIndex, row.endIndex); + const rowBoxes = boxes.slice(row.startIndex, row.endIndex); + + return ( +
    + {rowSamples.map((sample, i) => { + const box = rowBoxes[i]; + if (!box) return null; + + const isSelected = isLassoSelection ? true : selectedIds.has(sample.id); + const isHovered = hoveredId === sample.id; + const isVideo = hasVideo(sample); + const showPreview = isVideo && previewVideoId === sample.id; + const isActiveVideo = activeVideoId === sample.id; + const caption = captionSnippet(sample); + + return ( +
    handleClick(sample, e)} + onMouseEnter={() => { + setHoveredId(sample.id); + setPreviewVideoId(isVideo ? sample.id : null); + }} + onMouseLeave={() => { + setHoveredId(null); + if (previewVideoId === sample.id) { + setPreviewVideoId(null); + } + }} + > + {showPreview ? ( +
    + ); + })} +
    + ); + })} +
    +
    +
    +
    + ); +} diff --git a/frontend/src/components/VideoPanel.tsx b/frontend/src/components/VideoPanel.tsx new file mode 100644 index 0000000..bae5717 --- /dev/null +++ b/frontend/src/components/VideoPanel.tsx @@ -0,0 +1,194 @@ +"use client"; + +import { useEffect, useMemo, useRef, useState } from "react"; +import { Panel } from "./Panel"; +import { fetchAnnotations, getVideoUrl } from "@/lib/api"; +import { useStore } from "@/store/useStore"; +import type { VideoAnnotation } from "@/types"; + +interface VideoPanelProps { + className?: string; + sampleId?: string; +} + +function formatScore(value: number | null): string { + if (typeof value !== "number" || Number.isNaN(value)) return "—"; + return value.toFixed(2); +} + +export function VideoPanel({ className = "", sampleId }: VideoPanelProps) { + const { + selectedIds, + activeVideoId, + setActiveVideoId, + globalSeekTime, + setGlobalSeekTime, + isTimelinePlaying, + setTimelinePlaying, + setVideoDuration, + annotationCache, + cacheAnnotation, + } = useStore(); + + const videoRef = useRef(null); + + const activeSampleId = useMemo(() => { + if (sampleId) return sampleId; + if (activeVideoId) return activeVideoId; + if (selectedIds.size === 0) return null; + return Array.from(selectedIds)[0] ?? null; + }, [activeVideoId, sampleId, selectedIds]); + + const [annotation, setAnnotation] = useState(null); + const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState(null); + const [videoFailed, setVideoFailed] = useState(false); + + useEffect(() => { + setVideoFailed(false); + }, [activeSampleId]); + + useEffect(() => { + if (!activeSampleId) return; + if (activeVideoId === activeSampleId) return; + setActiveVideoId(activeSampleId); + }, [activeSampleId, activeVideoId, setActiveVideoId]); + + useEffect(() => { + if (!activeSampleId) { + setAnnotation(null); + setError(null); + setTimelinePlaying(false); + return; + } + + const cached = annotationCache[activeSampleId]; + if (cached) { + setAnnotation(cached); + setError(null); + setIsLoading(false); + return; + } + + let cancelled = false; + setIsLoading(true); + setError(null); + + fetchAnnotations(activeSampleId) + .then((data) => { + if (cancelled) return; + setAnnotation(data); + cacheAnnotation(activeSampleId, data); + }) + .catch((err) => { + if (cancelled) return; + setAnnotation(null); + setError(err instanceof Error ? err.message : "Failed to load annotations"); + }) + .finally(() => { + if (cancelled) return; + setIsLoading(false); + }); + + return () => { + cancelled = true; + }; + }, [activeSampleId, annotationCache, cacheAnnotation, setTimelinePlaying]); + + useEffect(() => { + const video = videoRef.current; + if (!video) return; + + const delta = Math.abs(video.currentTime - globalSeekTime); + if (!isTimelinePlaying && delta > 0.08) { + video.currentTime = globalSeekTime; + } + + if (isTimelinePlaying) { + void video.play(); + } else { + video.pause(); + } + }, [activeSampleId, globalSeekTime, isTimelinePlaying]); + + if (!activeSampleId) { + return ( + +
    + Select a clip preview in the grid or scatter plot to open its video. +
    +
    + ); + } + + return ( + +
    + {!videoFailed ? ( +
    + +
    +
    + aesthetic: {formatScore(annotation?.aesthetic_score ?? null)} + motion: {formatScore(annotation?.motion_score ?? null)} + + dedup: {annotation?.dedup_status ?? "unknown"} + + + sim: {formatScore(annotation?.cosine_sim_score ?? null)} + +
    + + {isLoading ? ( +
    Loading annotations…
    + ) : error ? ( +
    {error}
    + ) : ( + <> +
    + {annotation?.caption ?? annotation?.raw_caption ?? "No caption available."} +
    + {annotation?.reasoning ? ( +
    + Reasoning +
    {annotation.reasoning}
    +
    + ) : null} + + )} +
    +
    + ); +} diff --git a/frontend/src/components/index.ts b/frontend/src/components/index.ts index 0cc632b..370b265 100644 --- a/frontend/src/components/index.ts +++ b/frontend/src/components/index.ts @@ -1,11 +1,15 @@ export { ImageGrid } from "./ImageGrid"; +export { VideoGrid } from "./VideoGrid"; export { ScatterPanel } from "./ScatterPanel"; export { DockviewWorkspace } from "./DockviewWorkspace"; export { Header } from "./Header"; +export { GlobalSeekBar } from "./GlobalSeekBar"; export { Panel, PanelFooter } from "./Panel"; export { PanelHeader } from "./PanelHeader"; export { PanelTitle } from "./PanelTitle"; export { PanelContextBar } from "./PanelContextBar"; export { ExplorerPanel } from "./ExplorerPanel"; export { PlaceholderPanel } from "./PlaceholderPanel"; +export { VideoPanel } from "./VideoPanel"; +export { CurationPanel } from "./CurationPanel"; export * from "./icons"; diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index e340b00..1d420dc 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1,6 +1,15 @@ -import type { DatasetInfo, EmbeddingsData, Sample, SamplesResponse } from "@/types"; +import type { + CurationFilterRequest, + CurationFilterResponse, + CurationStats, + DatasetInfo, + EmbeddingsData, + Sample, + SamplesResponse, + VideoAnnotation, +} from "@/types"; -const API_BASE = process.env.NODE_ENV === "development" ? "http://127.0.0.1:6262" : ""; +const API_BASE = process.env.NODE_ENV === "development" ? "http://127.0.0.1:6263" : ""; export async function fetchDataset(): Promise { const res = await fetch(`${API_BASE}/api/dataset`); @@ -101,3 +110,40 @@ export async function fetchLassoSelection(args: { } return res.json(); } + +export function getVideoUrl(sampleId: string): string { + return `${API_BASE}/api/video/${sampleId}`; +} + +export async function fetchAnnotations(sampleId: string): Promise { + const res = await fetch(`${API_BASE}/api/annotations/${sampleId}`); + if (!res.ok) { + throw new Error(`Failed to fetch annotations: ${res.statusText}`); + } + return res.json(); +} + +export async function fetchCurationStats(): Promise { + const res = await fetch(`${API_BASE}/api/curation/stats`); + if (!res.ok) { + throw new Error(`Failed to fetch curation stats: ${res.statusText}`); + } + return res.json(); +} + +export async function postCurationFilter( + request: CurationFilterRequest +): Promise { + const res = await fetch(`${API_BASE}/api/curation/filter`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify(request), + }); + + if (!res.ok) { + throw new Error(`Failed to filter curation samples: ${res.statusText}`); + } + return res.json(); +} diff --git a/frontend/src/store/useStore.ts b/frontend/src/store/useStore.ts index c440b10..6285652 100644 --- a/frontend/src/store/useStore.ts +++ b/frontend/src/store/useStore.ts @@ -1,7 +1,31 @@ import { create } from "zustand"; -import type { DatasetInfo, EmbeddingsData, Sample } from "@/types"; +import type { + CurationFilterRequest, + DatasetInfo, + EmbeddingsData, + Sample, + VideoAnnotation, +} from "@/types"; import { normalizeLabel } from "@/lib/labelColors"; +type SelectionSource = "scatter" | "grid" | "lasso" | "label" | "curation" | null; + +export interface CurationFilterState { + minAestheticScore: number; + minMotionScore: number; + maxCosineSimilarity: number; + captionQuery: string; + dedupStatus: "all" | "kept" | "removed" | "unknown"; +} + +const DEFAULT_CURATION_FILTERS: CurationFilterState = { + minAestheticScore: 0, + minMotionScore: 0, + maxCosineSimilarity: 1, + captionQuery: "", + dedupStatus: "all", +}; + function computeLabelSelection(embeddings: EmbeddingsData, label: string): Set { const target = normalizeLabel(label); const ids = new Set(); @@ -14,7 +38,6 @@ function computeLabelSelection(embeddings: EmbeddingsData, label: string): Set void; setBottomPanelOpen: (open: boolean) => void; - // Dataset info datasetInfo: DatasetInfo | null; setDatasetInfo: (info: DatasetInfo) => void; - // Samples samples: Sample[]; totalSamples: number; - // Number of samples loaded via offset/limit pagination (excludes ad-hoc fetched samples) samplesLoaded: number; setSamples: (samples: Sample[], total: number) => void; appendSamples: (samples: Sample[]) => void; addSamplesIfMissing: (samples: Sample[]) => void; - // Embeddings (cached per layout key) embeddingsByLayoutKey: Record; setEmbeddingsForLayout: (layoutKey: string, data: EmbeddingsData) => void; - // Active layout (for sidebar context) activeLayoutKey: string | null; setActiveLayoutKey: (layoutKey: string | null) => void; - // Label filter (sidebar-driven) labelFilter: string | null; setLabelFilter: (label: string | null) => void; - // Selection selectedIds: Set; isLassoSelection: boolean; - selectionSource: "scatter" | "grid" | "lasso" | "label" | null; - setSelectedIds: (ids: Set, source?: "scatter" | "grid" | "label") => void; + selectionSource: SelectionSource; + setSelectedIds: (ids: Set, source?: "scatter" | "grid" | "label" | "curation") => void; toggleSelection: (id: string) => void; addToSelection: (ids: string[]) => void; clearSelection: () => void; - // Lasso selection (server-driven) lassoQuery: { layoutKey: string; polygon: number[] } | null; lassoSamples: Sample[]; lassoTotal: number; @@ -65,21 +80,37 @@ interface AppState { setLassoResults: (samples: Sample[], total: number, append?: boolean) => void; clearLassoSelection: () => void; - // Hover state + activeVideoId: string | null; + setActiveVideoId: (id: string | null) => void; + globalSeekTime: number; + setGlobalSeekTime: (seconds: number) => void; + isTimelinePlaying: boolean; + setTimelinePlaying: (playing: boolean) => void; + videoDurations: Record; + setVideoDuration: (sampleId: string, duration: number) => void; + previewVideoId: string | null; + setPreviewVideoId: (sampleId: string | null) => void; + + curationFilters: CurationFilterState; + setCurationFilters: (patch: Partial) => void; + resetCurationFilters: () => void; + curationQuery: CurationFilterRequest | null; + setCurationQuery: (query: CurationFilterRequest | null) => void; + + annotationCache: Record; + cacheAnnotation: (sampleId: string, annotation: VideoAnnotation) => void; + hoveredId: string | null; setHoveredId: (id: string | null) => void; - // Loading states isLoading: boolean; setIsLoading: (loading: boolean) => void; - // Error state error: string | null; setError: (error: string | null) => void; } -export const useStore = create((set, get) => ({ - // Panel visibility (for header toggles) +export const useStore = create((set) => ({ leftPanelOpen: false, rightPanelOpen: false, bottomPanelOpen: false, @@ -87,11 +118,9 @@ export const useStore = create((set, get) => ({ setRightPanelOpen: (open) => set({ rightPanelOpen: open }), setBottomPanelOpen: (open) => set({ bottomPanelOpen: open }), - // Dataset info datasetInfo: null, setDatasetInfo: (info) => set({ datasetInfo: info }), - // Samples samples: [], totalSamples: 0, samplesLoaded: 0, @@ -100,10 +129,7 @@ export const useStore = create((set, get) => ({ set((state) => { const existingIds = new Set(state.samples.map((s) => s.id)); const toAdd = newSamples.filter((s) => !existingIds.has(s.id)); - - // Advance pagination cursor by what the API returned (even if some IDs were prefetched). const samplesLoaded = state.samplesLoaded + newSamples.length; - if (toAdd.length === 0) return { samplesLoaded }; return { samples: [...state.samples, ...toAdd], samplesLoaded }; }), @@ -115,7 +141,6 @@ export const useStore = create((set, get) => ({ return { samples: [...state.samples, ...toAdd] }; }), - // Embeddings embeddingsByLayoutKey: {}, setEmbeddingsForLayout: (layoutKey, data) => set((state) => { @@ -135,7 +160,6 @@ export const useStore = create((set, get) => ({ }; }), - // Active layout activeLayoutKey: null, setActiveLayoutKey: (layoutKey) => set((state) => { @@ -160,7 +184,6 @@ export const useStore = create((set, get) => ({ }; }), - // Label filter labelFilter: null, setLabelFilter: (label) => set((state) => { @@ -185,19 +208,26 @@ export const useStore = create((set, get) => ({ return nextState; }), - // Selection selectedIds: new Set(), isLassoSelection: false, selectionSource: null, setSelectedIds: (ids, source = "grid") => - set({ - selectedIds: ids, - selectionSource: ids.size > 0 ? source : null, - isLassoSelection: false, - lassoQuery: null, - lassoSamples: [], - lassoTotal: 0, - lassoIsLoading: false, + set((state) => { + const nextActive = + ids.size > 0 && source !== "label" + ? (Array.from(ids)[0] ?? state.activeVideoId) + : state.activeVideoId; + + return { + selectedIds: ids, + selectionSource: ids.size > 0 ? source : null, + isLassoSelection: false, + lassoQuery: null, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: false, + activeVideoId: nextActive, + }; }), toggleSelection: (id) => set((state) => { @@ -207,7 +237,6 @@ export const useStore = create((set, get) => ({ } else { newSet.add(id); } - // Manual selection from image grid, not lasso return { selectedIds: newSet, selectionSource: newSet.size > 0 ? "grid" : null, @@ -216,13 +245,16 @@ export const useStore = create((set, get) => ({ lassoSamples: [], lassoTotal: 0, lassoIsLoading: false, + activeVideoId: + newSet.size > 0 + ? (newSet.has(id) ? id : (Array.from(newSet)[0] ?? state.activeVideoId)) + : state.activeVideoId, }; }), addToSelection: (ids) => set((state) => { const newSet = new Set(state.selectedIds); ids.forEach((id) => newSet.add(id)); - // Manual selection from image grid, not lasso return { selectedIds: newSet, selectionSource: newSet.size > 0 ? "grid" : null, @@ -231,6 +263,7 @@ export const useStore = create((set, get) => ({ lassoSamples: [], lassoTotal: 0, lassoIsLoading: false, + activeVideoId: ids[ids.length - 1] ?? state.activeVideoId, }; }), clearSelection: () => @@ -244,7 +277,6 @@ export const useStore = create((set, get) => ({ lassoIsLoading: false, }), - // Lasso selection (server-driven) lassoQuery: null, lassoSamples: [], lassoTotal: 0, @@ -275,15 +307,54 @@ export const useStore = create((set, get) => ({ lassoIsLoading: false, }), - // Hover + activeVideoId: null, + setActiveVideoId: (id) => set({ activeVideoId: id }), + globalSeekTime: 0, + setGlobalSeekTime: (seconds) => set({ globalSeekTime: Math.max(0, seconds) }), + isTimelinePlaying: false, + setTimelinePlaying: (playing) => set({ isTimelinePlaying: playing }), + videoDurations: {}, + setVideoDuration: (sampleId, duration) => + set((state) => ({ + videoDurations: { + ...state.videoDurations, + [sampleId]: Math.max(0, duration), + }, + })), + previewVideoId: null, + setPreviewVideoId: (sampleId) => set({ previewVideoId: sampleId }), + + curationFilters: DEFAULT_CURATION_FILTERS, + setCurationFilters: (patch) => + set((state) => ({ curationFilters: { ...state.curationFilters, ...patch } })), + resetCurationFilters: () => set({ curationFilters: { ...DEFAULT_CURATION_FILTERS }, curationQuery: null }), + curationQuery: null, + setCurationQuery: (query) => + set({ + curationQuery: query, + isLassoSelection: false, + lassoQuery: null, + lassoSamples: [], + lassoTotal: 0, + lassoIsLoading: false, + selectionSource: query ? "curation" : null, + }), + + annotationCache: {}, + cacheAnnotation: (sampleId, annotation) => + set((state) => ({ + annotationCache: { + ...state.annotationCache, + [sampleId]: annotation, + }, + })), + hoveredId: null, setHoveredId: (id) => set({ hoveredId: id }), - // Loading isLoading: false, setIsLoading: (loading) => set({ isLoading: loading }), - // Error error: null, setError: (error) => set({ error }), })); diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index 8efc617..8aeb275 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -52,3 +52,65 @@ export interface SamplesResponse { limit: number; samples: Sample[]; } + +export interface VideoAnnotation { + id: string; + caption: string | null; + reasoning: string | null; + raw_caption: string | null; + aesthetic_score: number | null; + motion_score: number | null; + dedup_status: string | null; + dedup_keep: boolean | null; + cosine_sim_score: number | null; + source_video: string | null; + video_path: string | null; + span: [number, number] | number[] | null; +} + +export interface HistogramBin { + start: number; + end: number; + count: number; +} + +export interface ScoreSummary { + count: number; + min: number | null; + max: number | null; + avg: number | null; +} + +export interface CurationStats { + total_samples: number; + with_video: number; + with_caption: number; + dedup_counts: Record; + score_summary: { + aesthetic: ScoreSummary; + motion: ScoreSummary; + }; + aesthetic_histogram: HistogramBin[]; + motion_histogram: HistogramBin[]; +} + +export type DedupStatus = "kept" | "removed" | "unknown"; + +export interface CurationFilterRequest { + min_aesthetic_score?: number; + min_motion_score?: number; + max_cosine_similarity?: number; + caption_query?: string; + dedup_status?: DedupStatus; + offset?: number; + limit?: number; + include_thumbnails?: boolean; +} + +export interface CurationFilterResponse { + total: number; + offset: number; + limit: number; + sample_ids: string[]; + samples: Sample[]; +} diff --git a/scripts/create_cookoff_fixture.py b/scripts/create_cookoff_fixture.py new file mode 100644 index 0000000..815f9d2 --- /dev/null +++ b/scripts/create_cookoff_fixture.py @@ -0,0 +1,171 @@ +"""Create a lightweight Cosmos-Curate-like fixture for local UI development. + +This script builds a synthetic split output using existing MP4 clips so the +frontend/backend can be developed without running full cosmos-curate pipelines. + +Output structure: + / + split_output/ + clips/*.mp4 + metas/v0/*.json + previews/*_0_20.webp + ce1_embd/*.pickle + summary.json + dedup_output/ + kmeans_centroids.npy + +Usage: + uv run python scripts/create_cookoff_fixture.py \ + --source-clips-path /path/to/mp4s \ + --output-root /tmp/cookoff_fixture \ + --num-clips 40 +""" + +from __future__ import annotations + +import argparse +import json +import pickle +import random +import shutil +import uuid +from pathlib import Path + +import numpy as np +from PIL import Image, ImageDraw + + +CAPTION_TEMPLATES = [ + ( + "The ego vehicle approaches an intersection with moderate traffic. " + "A lead vehicle slows down near a traffic signal while pedestrians remain on the sidewalk." + ), + ( + "The car continues through an urban road segment with lane markers clearly visible. " + "Oncoming traffic is sparse and no sudden hazards are observed." + ), + ( + "The vehicle moves past parked cars and approaches a crosswalk. " + "A cyclist appears on the right edge of the scene and the ego car reduces speed." + ), + ( + "The camera captures a highway merge with multiple vehicles changing lanes. " + "The ego vehicle keeps steady distance and follows lane guidance." + ), +] + + +def _normalize_dir(path_str: str, *, create: bool = False) -> Path: + path = Path(path_str).expanduser().resolve() + if create: + path.mkdir(parents=True, exist_ok=True) + elif not path.exists(): + raise FileNotFoundError(f"Path does not exist: {path}") + return path + + +def _make_preview(path: Path, *, index: int, clip_id: str) -> None: + width, height = 640, 360 + img = Image.new("RGB", (width, height), color=(20 + (index * 17) % 120, 40, 70 + (index * 11) % 120)) + draw = ImageDraw.Draw(img) + draw.rectangle((16, 16, width - 16, height - 16), outline=(255, 255, 255), width=2) + draw.text((28, 28), f"Cookoff Fixture Clip {index + 1}", fill=(255, 255, 255)) + draw.text((28, 60), clip_id[:18], fill=(220, 220, 220)) + path.parent.mkdir(parents=True, exist_ok=True) + img.save(path, "WEBP", quality=92) + + +def _make_caption(index: int) -> str: + base = CAPTION_TEMPLATES[index % len(CAPTION_TEMPLATES)] + return ( + f"{base} The model reasons over traffic flow, relative motion, and road context.\n" + f"{base}" + ) + + +def main() -> None: + parser = argparse.ArgumentParser(description="Create synthetic Cosmos-Curate fixture") + parser.add_argument("--source-clips-path", required=True, help="Directory containing source MP4 clips") + parser.add_argument("--output-root", default="/tmp/cookoff_fixture", help="Fixture output root") + parser.add_argument("--num-clips", type=int, default=40, help="Number of clips to include") + parser.add_argument( + "--embedding-dim", + type=int, + default=256, + help="Embedding vector dimension (default matches cosmos-embed1-224p)", + ) + parser.add_argument("--seed", type=int, default=42, help="Random seed") + args = parser.parse_args() + + rng = np.random.default_rng(args.seed) + random.seed(args.seed) + + source_dir = _normalize_dir(args.source_clips_path) + output_root = _normalize_dir(args.output_root, create=True) + + split_output = _normalize_dir(str(output_root / "split_output"), create=True) + dedup_output = _normalize_dir(str(output_root / "dedup_output"), create=True) + + clips_dir = _normalize_dir(str(split_output / "clips"), create=True) + metas_dir = _normalize_dir(str(split_output / "metas" / "v0"), create=True) + previews_dir = _normalize_dir(str(split_output / "previews"), create=True) + embd_dir = _normalize_dir(str(split_output / "ce1_embd"), create=True) + + source_clips = sorted(source_dir.glob("*.mp4")) + if not source_clips: + raise RuntimeError(f"No .mp4 files found under {source_dir}") + + selected = source_clips[: max(1, min(args.num_clips, len(source_clips)))] + + for index, src_clip in enumerate(selected): + clip_id = str(uuid.uuid4()) + dst_clip = clips_dir / f"{clip_id}.mp4" + shutil.copy2(src_clip, dst_clip) + + preview_path = previews_dir / f"{clip_id}_0_20.webp" + _make_preview(preview_path, index=index, clip_id=clip_id) + + caption = _make_caption(index) + meta = { + "clip_uuid": clip_id, + "source_video": str(src_clip), + "clip_location": str(dst_clip), + "span": [0.0, 2.0], + "dimensions": [1600, 900], + "framerate": 10.0, + "num_frames": 20, + "aesthetic_score": round(random.uniform(4.8, 9.6), 2), + "motion_score": round(random.uniform(3.1, 9.8), 2), + "captions": {"cosmos_r2": caption}, + } + (metas_dir / f"{clip_id}.json").write_text(json.dumps(meta, indent=2), encoding="utf-8") + + vec = rng.normal(loc=0.0, scale=1.0, size=(args.embedding_dim,)).astype(np.float32) + with (embd_dir / f"{clip_id}.pickle").open("wb") as f: + pickle.dump(vec, f) + + summary = { + "total_videos_processed": len(selected), + "total_clips_generated": len(selected), + "pipeline_duration_seconds": round(2.5 + len(selected) * 0.05, 2), + "models_used": ["transnetv2", "cosmos_r2", "cosmos_embed1_224p"], + "embedding_algorithm": "cosmos-embed1-224p", + "total_num_clips_passed": len(selected), + "total_num_clips_with_caption": len(selected), + "total_num_clips_with_embeddings": len(selected), + "num_input_videos": len(selected), + "num_processed_videos": len(selected), + "pipeline_run_time": round(0.2 + len(selected) * 0.02, 2), + "total_video_duration": float(len(selected) * 2), + "total_clip_duration": float(len(selected) * 2), + } + (split_output / "summary.json").write_text(json.dumps(summary, indent=2), encoding="utf-8") + + np.save(dedup_output / "kmeans_centroids.npy", rng.normal(size=(4, args.embedding_dim)).astype(np.float32)) + + print(f"Created fixture at: {output_root}") + print(f"Clips: {len(selected)}") + + +if __name__ == "__main__": + main() diff --git a/scripts/curate_submission_metrics.py b/scripts/curate_submission_metrics.py new file mode 100644 index 0000000..c87a6a3 --- /dev/null +++ b/scripts/curate_submission_metrics.py @@ -0,0 +1,262 @@ +"""Compute submission KPIs from Cosmos-Curate outputs. + +This script aggregates split + dedup artifacts into metrics used in the hackathon +submission and demo narrative. +""" + +from __future__ import annotations + +import argparse +import csv +import json +from pathlib import Path +from typing import Any + +import pyarrow.parquet as pq + + +def _normalize_path(path_str: str) -> Path: + path = Path(path_str).expanduser().resolve() + if not path.exists(): + raise FileNotFoundError(f"Path does not exist: {path}") + return path + + +def _read_json(path: Path) -> dict[str, Any]: + with path.open("r", encoding="utf-8") as f: + return json.load(f) + + +def _dedup_summary_path(dedup_output_path: Path, dedup_eps: float) -> Path: + tag = f"{dedup_eps:.6g}".rstrip("0").rstrip(".") + return dedup_output_path / "extraction" / f"dedup_summary_{tag}.csv" + + +def _safe_div(numerator: float, denominator: float) -> float: + if denominator <= 0: + return 0.0 + return numerator / denominator + + +def _load_split_metrics(split_output_path: Path) -> dict[str, Any]: + summary_path = split_output_path / "summary.json" + if not summary_path.exists(): + raise FileNotFoundError(f"Missing split summary file: {summary_path}") + + summary = _read_json(summary_path) + clips_passed = int(summary.get("total_num_clips_passed", 0)) + clips_with_caption = int(summary.get("total_num_clips_with_caption", 0)) + clips_with_embeddings = int(summary.get("total_num_clips_with_embeddings", 0)) + clips_transcoded = int(summary.get("total_num_clips_transcoded", 0)) + + return { + "embedding_algorithm": summary.get("embedding_algorithm"), + "num_input_videos": int(summary.get("num_input_videos", 0)), + "num_processed_videos": int(summary.get("num_processed_videos", 0)), + "pipeline_run_time_min": float(summary.get("pipeline_run_time", 0.0)), + "total_video_duration_sec": float(summary.get("total_video_duration", 0.0)), + "total_clip_duration_sec": float(summary.get("total_clip_duration", 0.0)), + "clips_passed": clips_passed, + "clips_transcoded": clips_transcoded, + "clips_with_caption": clips_with_caption, + "clips_with_embeddings": clips_with_embeddings, + "caption_coverage_pct": _safe_div(clips_with_caption, clips_passed) * 100.0, + "embedding_coverage_pct": _safe_div(clips_with_embeddings, clips_passed) * 100.0, + } + + +def _load_dedup_metrics(dedup_output_path: Path, dedup_eps: float) -> dict[str, Any]: + summary_path = _dedup_summary_path(dedup_output_path, dedup_eps) + + if summary_path.exists(): + with summary_path.open("r", encoding="utf-8") as f: + reader = csv.DictReader(f) + rows = list(reader) + if rows: + row = rows[0] + kept = int(row.get("kept", 0)) + removed = int(row.get("removed", 0)) + total = int(row.get("total", 0)) + reduction_pct = _safe_div(removed, total) * 100.0 + return { + "eps": float(row.get("eps", dedup_eps)), + "kept": kept, + "removed": removed, + "total": total, + "reduction_pct": reduction_pct, + } + + threshold = 1.0 - dedup_eps + pruning_dir = dedup_output_path / "extraction" / "semdedup_pruning_tables" + if not pruning_dir.exists(): + return { + "eps": dedup_eps, + "kept": 0, + "removed": 0, + "total": 0, + "reduction_pct": 0.0, + } + + kept = 0 + total = 0 + for parquet_path in sorted(pruning_dir.glob("cluster_*.parquet")): + table = pq.read_table(parquet_path, columns=["cosine_sim_score"]) + scores = table.column("cosine_sim_score").to_pylist() + for score in scores: + if score is None: + continue + total += 1 + if float(score) <= threshold: + kept += 1 + + removed = max(total - kept, 0) + return { + "eps": dedup_eps, + "kept": kept, + "removed": removed, + "total": total, + "reduction_pct": _safe_div(removed, total) * 100.0, + } + + +def _top_duplicate_pairs( + dedup_output_path: Path, + *, + dedup_eps: float, + top_k: int, +) -> list[dict[str, Any]]: + pruning_dir = dedup_output_path / "extraction" / "semdedup_pruning_tables" + if not pruning_dir.exists() or top_k <= 0: + return [] + + threshold = 1.0 - dedup_eps + rows: list[dict[str, Any]] = [] + + for parquet_path in sorted(pruning_dir.glob("cluster_*.parquet")): + table = pq.read_table(parquet_path, columns=["id", "max_id", "cosine_sim_score"]) + ids = table.column("id").to_pylist() + max_ids = table.column("max_id").to_pylist() + scores = table.column("cosine_sim_score").to_pylist() + + for clip_id, max_id, score in zip(ids, max_ids, scores): + if clip_id is None or max_id is None or score is None: + continue + score_f = float(score) + if score_f <= threshold: + continue + rows.append( + { + "id": str(clip_id), + "max_id": str(max_id), + "cosine_sim_score": score_f, + "cluster_file": parquet_path.name, + } + ) + + rows.sort(key=lambda x: x["cosine_sim_score"], reverse=True) + return rows[:top_k] + + +def _to_markdown(metrics: dict[str, Any]) -> str: + split_metrics = metrics["split"] + dedup_metrics = metrics.get("dedup") + + lines = [ + "# Cosmos-Curate Submission Metrics", + "", + "## Split Pipeline", + "", + f"- Input videos: **{split_metrics['num_input_videos']}**", + f"- Processed videos: **{split_metrics['num_processed_videos']}**", + f"- Clips passed: **{split_metrics['clips_passed']}**", + f"- Caption coverage: **{split_metrics['caption_coverage_pct']:.2f}%**", + f"- Embedding coverage: **{split_metrics['embedding_coverage_pct']:.2f}%**", + f"- Embedding algorithm: **{split_metrics['embedding_algorithm']}**", + f"- Pipeline runtime: **{split_metrics['pipeline_run_time_min']:.2f} min**", + ] + + if dedup_metrics is not None: + lines += [ + "", + "## Semantic Dedup", + "", + f"- Epsilon: **{dedup_metrics['eps']}**", + f"- Total clips considered: **{dedup_metrics['total']}**", + f"- Kept clips: **{dedup_metrics['kept']}**", + f"- Removed duplicates: **{dedup_metrics['removed']}**", + f"- Reduction: **{dedup_metrics['reduction_pct']:.2f}%**", + ] + + top_pairs = metrics.get("top_duplicate_pairs", []) + if top_pairs: + lines += [ + "", + "## Top Duplicate Pairs", + "", + "| id | max_id | cosine_sim_score | cluster_file |", + "|---|---|---:|---|", + ] + for row in top_pairs: + lines.append( + f"| {row['id']} | {row['max_id']} | {row['cosine_sim_score']:.6f} | {row['cluster_file']} |" + ) + + return "\n".join(lines) + "\n" + + +def main() -> None: + parser = argparse.ArgumentParser(description="Compute hackathon KPIs from Cosmos-Curate outputs") + parser.add_argument("--split-output-path", required=True, help="Path to Cosmos-Curate split output") + parser.add_argument("--dedup-output-path", default=None, help="Path to Cosmos-Curate dedup output") + parser.add_argument("--dedup-eps", type=float, default=0.01, help="Epsilon used in dedup") + parser.add_argument("--top-duplicates", type=int, default=20, help="Top duplicate pairs to include") + parser.add_argument( + "--output-json", + default=None, + help="Output JSON path (default: /submission_metrics.json)", + ) + parser.add_argument( + "--output-markdown", + default=None, + help="Output markdown path (default: /submission_metrics.md)", + ) + args = parser.parse_args() + + split_output_path = _normalize_path(args.split_output_path) + dedup_output_path = _normalize_path(args.dedup_output_path) if args.dedup_output_path else None + + output_json = ( + Path(args.output_json).expanduser().resolve() + if args.output_json + else split_output_path / "submission_metrics.json" + ) + output_markdown = ( + Path(args.output_markdown).expanduser().resolve() + if args.output_markdown + else split_output_path / "submission_metrics.md" + ) + + metrics: dict[str, Any] = { + "split": _load_split_metrics(split_output_path), + } + + if dedup_output_path is not None: + metrics["dedup"] = _load_dedup_metrics(dedup_output_path, args.dedup_eps) + metrics["top_duplicate_pairs"] = _top_duplicate_pairs( + dedup_output_path, + dedup_eps=args.dedup_eps, + top_k=args.top_duplicates, + ) + + output_json.parent.mkdir(parents=True, exist_ok=True) + output_json.write_text(json.dumps(metrics, indent=2, sort_keys=True) + "\n", encoding="utf-8") + + output_markdown.parent.mkdir(parents=True, exist_ok=True) + output_markdown.write_text(_to_markdown(metrics), encoding="utf-8") + + print(f"Wrote metrics JSON: {output_json}") + print(f"Wrote metrics markdown: {output_markdown}") + + +if __name__ == "__main__": + main() diff --git a/scripts/demo.py b/scripts/demo.py index c703922..dbb821c 100644 --- a/scripts/demo.py +++ b/scripts/demo.py @@ -22,7 +22,7 @@ def main(): "--samples", type=int, default=50000, help="Number of samples to load (default: 50000)" ) parser.add_argument( - "--port", type=int, default=6262, help="Port to run server on (default: 6262)" + "--port", type=int, default=6263, help="Port to run server on (default: 6263)" ) parser.add_argument( "--no-browser", action="store_true", help="Don't open browser automatically" diff --git a/scripts/demo_hyperbolic_clip.py b/scripts/demo_hyperbolic_clip.py index 1da0aaa..7e781eb 100644 --- a/scripts/demo_hyperbolic_clip.py +++ b/scripts/demo_hyperbolic_clip.py @@ -31,9 +31,9 @@ def main() -> None: hyper_space = dataset.compute_embeddings(model=HYPER_MODELS_MODEL_ID) dataset.compute_visualization(space_key=hyper_space, geometry="poincare") - print("Launching at http://127.0.0.1:6262") + print("Launching at http://127.0.0.1:6263") - hv.launch(dataset, open_browser=True) + hv.launch(dataset, open_browser=True, port=6263) if __name__ == "__main__": diff --git a/scripts/load_cosmos_curate.py b/scripts/load_cosmos_curate.py new file mode 100644 index 0000000..e69d7cd --- /dev/null +++ b/scripts/load_cosmos_curate.py @@ -0,0 +1,725 @@ +"""Load Cosmos-Curate outputs into HyperView for hackathon demos. + +This script builds a HyperView dataset directly from Cosmos-Curate artifacts: +- split output metadata (`metas/v0/*.json` or `metas_jsonl/v0/*.jsonl`) +- split output embeddings parquet (`*_embd_parquet/*.parquet`) +- optional dedup output (`extraction/semdedup_pruning_tables/*.parquet`) + +It then: +1) adds clip samples with preview thumbnails, +2) imports precomputed embeddings as a HyperView space, +3) computes Euclidean + Poincaré 2D layouts, +4) launches HyperView. +""" + +from __future__ import annotations + +import argparse +import base64 +import csv +import io +import json +import pickle +import sys +from dataclasses import dataclass +from pathlib import Path +from typing import Any + +import numpy as np +import pyarrow.parquet as pq +from PIL import Image + +sys.path.insert(0, str(Path(__file__).resolve().parent.parent / "src")) + +import hyperview as hv +from hyperview.core.sample import Sample +from hyperview.storage.schema import make_layout_key + + +@dataclass(frozen=True) +class ClipRecord: + clip_id: str + filepath: str + label: str | None + metadata: dict[str, Any] + thumbnail_base64: str | None = None + + +def _normalize_embedding_algorithm(raw_name: str | None) -> str: + name = (raw_name or "").strip().lower().replace("_", "-") + aliases = { + "internvideo2-mm": "internvideo2", + "iv2": "internvideo2", + "cosmos-embed1": "cosmos-embed1-224p", + } + return aliases.get(name, name) + + +def _infer_embedding_algorithm(split_output_path: Path, split_summary: dict[str, Any]) -> str: + summary_value = _normalize_embedding_algorithm(split_summary.get("embedding_algorithm")) + if summary_value: + return summary_value + + for model_name in split_summary.get("models_used", []) or []: + model_norm = _normalize_embedding_algorithm(str(model_name)) + if "cosmos-embed1" in model_norm: + if model_norm == "cosmos-embed1": + return "cosmos-embed1-224p" + return model_norm + if "internvideo2" in model_norm: + return "internvideo2" + + if (split_output_path / "ce1_embd_parquet").exists() or (split_output_path / "ce1_embd").exists(): + return "cosmos-embed1-224p" + if (split_output_path / "iv2_embd_parquet").exists() or (split_output_path / "iv2_embd").exists(): + return "internvideo2" + + raise ValueError( + "Could not infer embedding algorithm from split summary or directory structure. " + "Expected summary.embedding_algorithm/models_used or one of ce1_embd[_parquet]/iv2_embd[_parquet]." + ) + + +def _normalize_path(path_str: str) -> Path: + path = Path(path_str).expanduser().resolve() + if not path.exists(): + raise FileNotFoundError(f"Path does not exist: {path}") + return path + + +def _read_json(path: Path) -> dict[str, Any]: + with path.open("r", encoding="utf-8") as f: + return json.load(f) + + +def _embedding_parquet_dir(split_output_path: Path, embedding_algorithm: str) -> Path: + algo = _normalize_embedding_algorithm(embedding_algorithm) + if algo == "internvideo2": + return split_output_path / "iv2_embd_parquet" + if algo.startswith("cosmos-embed1"): + return split_output_path / "ce1_embd_parquet" + return split_output_path / f"{algo}_embd_parquet" + + +def _embedding_pickle_dir(split_output_path: Path, embedding_algorithm: str) -> Path: + algo = _normalize_embedding_algorithm(embedding_algorithm) + if algo == "internvideo2": + return split_output_path / "iv2_embd" + if algo.startswith("cosmos-embed1"): + return split_output_path / "ce1_embd" + return split_output_path / f"{algo}_embd" + + +def _embedding_model_id(embedding_algorithm: str) -> str: + algo = _normalize_embedding_algorithm(embedding_algorithm) + mapping = { + "cosmos-embed1-224p": "nvidia/Cosmos-Embed1-224p", + "cosmos-embed1-336p": "nvidia/Cosmos-Embed1-336p", + "cosmos-embed1-448p": "nvidia/Cosmos-Embed1-448p", + "internvideo2": "OpenGVLab/InternVideo2-Stage2_1B-224p-f4", + } + return mapping.get(algo, embedding_algorithm) + + +def _expected_embedding_dim(embedding_algorithm: str) -> int | None: + algo = _normalize_embedding_algorithm(embedding_algorithm) + expected = { + "cosmos-embed1-224p": 256, + "cosmos-embed1-336p": 768, + "cosmos-embed1-448p": 768, + } + return expected.get(algo) + + +def _dedup_summary_path(dedup_output_path: Path, dedup_eps: float) -> Path: + tag = f"{dedup_eps:.6g}".rstrip("0").rstrip(".") + return dedup_output_path / "extraction" / f"dedup_summary_{tag}.csv" + + +def _load_dedup_maps(dedup_output_path: Path, dedup_eps: float) -> tuple[dict[str, bool], dict[str, float]]: + keep_map: dict[str, bool] = {} + score_map: dict[str, float] = {} + pruning_dir = dedup_output_path / "extraction" / "semdedup_pruning_tables" + if not pruning_dir.exists(): + return keep_map, score_map + + threshold = 1.0 - dedup_eps + for parquet_path in sorted(pruning_dir.glob("cluster_*.parquet")): + table = pq.read_table(parquet_path, columns=["id", "cosine_sim_score"]) + ids = table.column("id").to_pylist() + scores = table.column("cosine_sim_score").to_pylist() + for clip_id, score in zip(ids, scores): + if clip_id is None or score is None: + continue + clip_id_str = str(clip_id) + score_f = float(score) + keep_map[clip_id_str] = score_f <= threshold + score_map[clip_id_str] = score_f + return keep_map, score_map + + +def _select_caption(window: dict[str, Any], caption_field: str | None) -> str | None: + if caption_field and caption_field in window: + value = window.get(caption_field) + if isinstance(value, str) and value.strip(): + return value.strip() + + for key, value in window.items(): + if key.endswith("_caption") and isinstance(value, str) and value.strip(): + return value.strip() + return None + + +def _select_caption_from_row(row: dict[str, Any], caption_field: str | None) -> str | None: + windows = row.get("windows") or [] + first_window = windows[0] if isinstance(windows, list) and windows else {} + if isinstance(first_window, dict): + caption = _select_caption(first_window, caption_field) + if caption: + return caption + + captions_obj = row.get("captions") + if isinstance(captions_obj, dict): + preferred_keys = [caption_field] if caption_field else [] + preferred_keys += ["cosmos_r2", "cosmos_r2_caption", "caption", "default"] + + for key in preferred_keys: + if not key: + continue + value = captions_obj.get(key) + if isinstance(value, str) and value.strip(): + return value.strip() + + for value in captions_obj.values(): + if isinstance(value, str) and value.strip(): + return value.strip() + + for key in ("caption", "first_caption", "cosmos_r2_caption"): + value = row.get(key) + if isinstance(value, str) and value.strip(): + return value.strip() + + return None + + +def _extract_reasoning_and_answer(caption_text: str | None) -> tuple[str | None, str | None]: + if not caption_text: + return None, None + + reasoning: str | None = None + answer: str | None = None + + think_start = caption_text.find("") + think_end = caption_text.find("") + if think_start != -1 and think_end != -1 and think_end > think_start: + reasoning = caption_text[think_start + len("") : think_end].strip() or None + + answer_start = caption_text.find("") + answer_end = caption_text.find("") + if answer_start != -1 and answer_end != -1 and answer_end > answer_start: + answer = caption_text[answer_start + len("") : answer_end].strip() or None + + if answer is None: + answer = caption_text.strip() or None + + return reasoning, answer + + +def _default_label( + *, + label_mode: str, + source_video: str, + keep_flag: bool | None, +) -> str: + if label_mode == "dedup-status": + if keep_flag is True: + return "kept" + if keep_flag is False: + return "removed" + return "unknown" + return Path(source_video).stem or "unknown" + + +def _iter_clip_metadata_rows(split_output_path: Path) -> list[dict[str, Any]]: + metas_dir = split_output_path / "metas" / "v0" + metas_jsonl_dir = split_output_path / "metas_jsonl" / "v0" + + rows: list[dict[str, Any]] = [] + if metas_dir.exists(): + for json_path in sorted(metas_dir.glob("*.json")): + rows.append(_read_json(json_path)) + return rows + + if metas_jsonl_dir.exists(): + for jsonl_path in sorted(metas_jsonl_dir.glob("*.jsonl")): + with jsonl_path.open("r", encoding="utf-8") as f: + for line in f: + line = line.strip() + if line: + rows.append(json.loads(line)) + return rows + + raise FileNotFoundError( + "No clip metadata found. Expected one of: " + f"{metas_dir} or {metas_jsonl_dir}." + ) + + +def _placeholder_image(split_output_path: Path) -> Path: + placeholder_path = split_output_path / "_hyperview_placeholder.jpg" + if not placeholder_path.exists(): + placeholder_path.parent.mkdir(parents=True, exist_ok=True) + Image.new("RGB", (96, 96), color=(35, 35, 35)).save(placeholder_path, "JPEG", quality=92) + return placeholder_path + + +def _thumbnail_base64_from_image(path: Path, fallback: Path) -> str | None: + for candidate in (path, fallback): + try: + with Image.open(candidate) as img: + if img.mode in ("RGBA", "P"): + img = img.convert("RGB") + buffer = io.BytesIO() + img.save(buffer, format="JPEG", quality=85) + return base64.b64encode(buffer.getvalue()).decode("utf-8") + except Exception: + continue + return None + + +def _build_clip_records( + *, + split_output_path: Path, + metadata_rows: list[dict[str, Any]], + dedup_keep_map: dict[str, bool], + dedup_score_map: dict[str, float], + caption_field: str | None, + label_mode: str, + max_samples: int, + allow_placeholder: bool, +) -> list[ClipRecord]: + records: list[ClipRecord] = [] + placeholder_path = _placeholder_image(split_output_path) + previews_dir = split_output_path / "previews" + + for row in metadata_rows: + clip_id = str(row.get("span_uuid") or row.get("clip_uuid") or row.get("id") or "").strip() + if not clip_id: + continue + + windows = row.get("windows") or [] + first_window = windows[0] if windows else {} + start_frame = first_window.get("start_frame") if isinstance(first_window, dict) else None + end_frame = first_window.get("end_frame") if isinstance(first_window, dict) else None + if start_frame is None or end_frame is None: + num_frames = row.get("num_frames") + if isinstance(num_frames, int) and num_frames > 0: + start_frame = 0 + end_frame = num_frames + + preview_path: Path | None = None + if start_frame is not None and end_frame is not None: + nested_candidate = previews_dir / clip_id / f"{start_frame}_{end_frame}.webp" + flat_candidate = previews_dir / f"{clip_id}_{start_frame}_{end_frame}.webp" + if nested_candidate.exists(): + preview_path = nested_candidate + elif flat_candidate.exists(): + preview_path = flat_candidate + + if preview_path is None: + flat_matches = sorted(previews_dir.glob(f"{clip_id}_*.webp")) + if flat_matches: + preview_path = flat_matches[0] + + if preview_path is None: + nested_matches = sorted((previews_dir / clip_id).glob("*.webp")) if (previews_dir / clip_id).exists() else [] + if nested_matches: + preview_path = nested_matches[0] + + if preview_path is None and allow_placeholder: + preview_path = placeholder_path + if preview_path is None: + continue + + source_video = str(row.get("source_video", "")) + clip_location = row.get("clip_location") + video_path = str(clip_location).strip() if clip_location else "" + if not video_path: + default_clip = split_output_path / "clips" / f"{clip_id}.mp4" + if default_clip.exists(): + video_path = str(default_clip) + + keep_flag = dedup_keep_map.get(clip_id) + cosine_sim_score = dedup_score_map.get(clip_id) + caption = _select_caption_from_row(row, caption_field) + caption_reasoning, caption_answer = _extract_reasoning_and_answer(caption) + + span = row.get("duration_span") + if span is None: + span = row.get("span") + + metadata = { + "clip_id": clip_id, + "source_video": source_video, + "clip_location": clip_location, + "video_path": video_path or None, + "duration_span": span, + "span": row.get("span"), + "window_count": len(windows), + "first_caption": caption, + "caption_raw": caption, + "caption_answer": caption_answer, + "caption_reasoning": caption_reasoning, + "has_caption": bool(row.get("has_caption", False) or caption), + "aesthetic_score": row.get("aesthetic_score"), + "motion_score": row.get("motion_score"), + "dimensions": row.get("dimensions"), + "framerate": row.get("framerate"), + "num_frames": row.get("num_frames"), + "dedup_keep": keep_flag, + "dedup_status": "kept" if keep_flag is True else ("removed" if keep_flag is False else "unknown"), + "cosine_sim_score": cosine_sim_score, + "dedup_cosine_similarity": cosine_sim_score, + "preview_path": str(preview_path), + "preview_is_placeholder": preview_path == placeholder_path, + } + + label = _default_label(label_mode=label_mode, source_video=source_video, keep_flag=keep_flag) + sample_filepath = video_path or str(preview_path) + + records.append( + ClipRecord( + clip_id=clip_id, + filepath=sample_filepath, + label=label, + metadata=metadata, + thumbnail_base64=_thumbnail_base64_from_image(preview_path, placeholder_path), + ) + ) + + if max_samples > 0 and len(records) >= max_samples: + break + + return records + + +def _extract_dimensions(metadata: dict[str, Any]) -> tuple[int | None, int | None]: + dims = metadata.get("dimensions") + if not isinstance(dims, (list, tuple)) or len(dims) < 2: + return None, None + + try: + width = int(dims[0]) + height = int(dims[1]) + except (TypeError, ValueError): + return None, None + + if width <= 0 or height <= 0: + return None, None + + return width, height + + +def _load_embeddings( + split_output_path: Path, + embedding_algorithm: str, + *, + clip_ids: set[str], +) -> tuple[list[str], np.ndarray]: + algo = _normalize_embedding_algorithm(embedding_algorithm) + parquet_dir = _embedding_parquet_dir(split_output_path, algo) + pickle_dir = _embedding_pickle_dir(split_output_path, algo) + + vectors_by_id: dict[str, np.ndarray] = {} + + def _store_vector(clip_id: str, payload: Any) -> None: + if clip_id in vectors_by_id: + return + if clip_id not in clip_ids: + return + + vec: np.ndarray | None = None + if isinstance(payload, np.ndarray): + vec = payload.astype(np.float32) + elif isinstance(payload, (list, tuple)): + vec = np.asarray(payload, dtype=np.float32) + elif isinstance(payload, dict): + for key in ("embedding", "vector", "emb", "embd"): + if key in payload: + vec = np.asarray(payload[key], dtype=np.float32) + break + + if vec is None or vec.ndim != 1 or vec.size == 0 or np.any(~np.isfinite(vec)): + return + vectors_by_id[clip_id] = vec + + if parquet_dir.exists(): + for parquet_path in sorted(parquet_dir.glob("*.parquet")): + table = pq.read_table(parquet_path) + cols = {name.lower(): name for name in table.column_names} + + id_col_name = next((cols[c] for c in ("id", "clip_uuid", "span_uuid", "uuid") if c in cols), None) + vec_col_name = next( + (cols[c] for c in ("embedding", "vector", "embeddings", "embd") if c in cols), + None, + ) + + if id_col_name is None or vec_col_name is None: + continue + + id_values = table.column(id_col_name).to_pylist() + emb_values = table.column(vec_col_name).to_pylist() + + for clip_id_raw, emb in zip(id_values, emb_values): + if clip_id_raw is None or emb is None: + continue + _store_vector(str(clip_id_raw), emb) + + if (not vectors_by_id) and pickle_dir.exists(): + for pickle_path in sorted(pickle_dir.glob("*.pickle")): + clip_id = pickle_path.stem + if clip_id not in clip_ids: + continue + try: + with pickle_path.open("rb") as f: + payload = pickle.load(f) + except Exception: + continue + _store_vector(clip_id, payload) + + if not vectors_by_id: + return [], np.empty((0, 0), dtype=np.float32) + + ids = list(vectors_by_id.keys()) + vectors = list(vectors_by_id.values()) + + if not vectors: + return [], np.empty((0, 0), dtype=np.float32) + + dim = vectors[0].shape[0] + filtered_ids: list[str] = [] + filtered_vectors: list[np.ndarray] = [] + for clip_id, vec in zip(ids, vectors): + if vec.shape[0] == dim: + filtered_ids.append(clip_id) + filtered_vectors.append(vec) + + if not filtered_vectors: + return [], np.empty((0, 0), dtype=np.float32) + + return filtered_ids, np.vstack(filtered_vectors).astype(np.float32) + + +def _dedup_summary_metrics(dedup_output_path: Path, dedup_eps: float) -> dict[str, Any] | None: + summary_path = _dedup_summary_path(dedup_output_path, dedup_eps) + if not summary_path.exists(): + return None + + with summary_path.open("r", encoding="utf-8") as f: + reader = csv.DictReader(f) + rows = list(reader) + if not rows: + return None + + row = rows[0] + total = int(row.get("total", 0)) + kept = int(row.get("kept", 0)) + removed = int(row.get("removed", 0)) + reduction_pct = (removed / total * 100.0) if total > 0 else 0.0 + + return { + "eps": float(row.get("eps", dedup_eps)), + "kept": kept, + "removed": removed, + "total": total, + "reduction_pct": reduction_pct, + } + + +def _manual_small_layout_coords(num_points: int, *, poincare: bool) -> np.ndarray: + if num_points <= 0: + return np.empty((0, 2), dtype=np.float32) + if num_points == 1: + coords = np.array([[0.0, 0.0]], dtype=np.float32) + elif num_points == 2: + coords = np.array([[-0.35, 0.0], [0.35, 0.0]], dtype=np.float32) + else: + angles = np.linspace(0, 2 * np.pi, num_points, endpoint=False, dtype=np.float32) + radius = 0.6 if poincare else 1.0 + coords = np.stack([radius * np.cos(angles), radius * np.sin(angles)], axis=1).astype(np.float32) + + if poincare: + norms = np.linalg.norm(coords, axis=1, keepdims=True) + mask = norms >= 0.98 + if np.any(mask): + scale = (0.98 / np.maximum(norms[mask], 1e-9)).reshape(-1, 1) + coords[mask[:, 0]] *= scale + return coords + + +def _create_small_layouts(dataset: hv.Dataset, *, space_key: str, ids: list[str]) -> None: + euclidean_key = make_layout_key(space_key, method="manual", geometry="euclidean") + poincare_key = make_layout_key(space_key, method="manual", geometry="poincare") + + dataset._storage.ensure_layout( + layout_key=euclidean_key, + space_key=space_key, + method="manual", + geometry="euclidean", + params={"reason": "too_few_samples_for_umap"}, + ) + dataset._storage.ensure_layout( + layout_key=poincare_key, + space_key=space_key, + method="manual", + geometry="poincare", + params={"reason": "too_few_samples_for_umap"}, + ) + + dataset._storage.add_layout_coords(euclidean_key, ids, _manual_small_layout_coords(len(ids), poincare=False)) + dataset._storage.add_layout_coords(poincare_key, ids, _manual_small_layout_coords(len(ids), poincare=True)) + + +def main() -> None: + parser = argparse.ArgumentParser(description="Load Cosmos-Curate outputs into HyperView") + parser.add_argument("--split-output-path", required=True, help="Path to Cosmos-Curate split output directory") + parser.add_argument("--dedup-output-path", default=None, help="Path to Cosmos-Curate dedup output directory") + parser.add_argument("--dedup-eps", type=float, default=0.01, help="Epsilon used for semantic dedup") + parser.add_argument("--caption-field", default="cosmos_r2_caption", help="Preferred caption field in windows") + parser.add_argument( + "--label-mode", + choices=["source-video", "dedup-status"], + default="dedup-status", + help="How labels are assigned in HyperView", + ) + parser.add_argument("--dataset-name", default="cosmos_curate_submission", help="HyperView dataset name") + parser.add_argument( + "--persist", + action=argparse.BooleanOptionalAction, + default=True, + help="Persist dataset in LanceDB (--persist) or keep in-memory (--no-persist)", + ) + parser.add_argument("--max-samples", type=int, default=0, help="Max clips to load (0 = all)") + parser.add_argument( + "--allow-placeholder", + action=argparse.BooleanOptionalAction, + default=True, + help="Use a generated placeholder image when preview webp is missing", + ) + parser.add_argument("--port", type=int, default=6263, help="Port for HyperView") + parser.add_argument("--no-browser", action="store_true", help="Do not auto-open browser") + parser.add_argument("--reuse-server", action="store_true", help="Reuse compatible running HyperView server") + args = parser.parse_args() + + split_output_path = _normalize_path(args.split_output_path) + dedup_output_path = _normalize_path(args.dedup_output_path) if args.dedup_output_path else None + + summary_path = split_output_path / "summary.json" + if not summary_path.exists(): + raise FileNotFoundError(f"Missing split summary file: {summary_path}") + split_summary = _read_json(summary_path) + embedding_algorithm = _infer_embedding_algorithm(split_output_path, split_summary) + + print(f"Loading split output from: {split_output_path}") + print(f"Embedding algorithm: {embedding_algorithm}") + + dedup_keep_map: dict[str, bool] = {} + dedup_score_map: dict[str, float] = {} + dedup_metrics: dict[str, Any] | None = None + if dedup_output_path is not None: + dedup_keep_map, dedup_score_map = _load_dedup_maps(dedup_output_path, args.dedup_eps) + dedup_metrics = _dedup_summary_metrics(dedup_output_path, args.dedup_eps) + print(f"Loaded dedup flags for {len(dedup_keep_map)} clips") + + metadata_rows = _iter_clip_metadata_rows(split_output_path) + records = _build_clip_records( + split_output_path=split_output_path, + metadata_rows=metadata_rows, + dedup_keep_map=dedup_keep_map, + dedup_score_map=dedup_score_map, + caption_field=args.caption_field, + label_mode=args.label_mode, + max_samples=args.max_samples, + allow_placeholder=args.allow_placeholder, + ) + if not records: + raise RuntimeError("No clip samples loaded from split output") + + dataset = hv.Dataset(args.dataset_name, persist=args.persist) + samples: list[Sample] = [] + for record in records: + width, height = _extract_dimensions(record.metadata) + samples.append( + Sample( + id=record.clip_id, + filepath=record.filepath, + label=record.label, + metadata=record.metadata, + thumbnail_base64=record.thumbnail_base64, + width=width, + height=height, + ) + ) + dataset._storage.add_samples_batch(samples) + print(f"Added/updated {len(samples)} samples in dataset '{args.dataset_name}'") + + ids, vectors = _load_embeddings( + split_output_path, + embedding_algorithm, + clip_ids={record.clip_id for record in records}, + ) + if len(ids) == 0: + raise RuntimeError( + "No embeddings found for loaded clips. Checked both parquet and pickle embedding directories." + ) + + expected_dim = _expected_embedding_dim(embedding_algorithm) + if expected_dim is not None and int(vectors.shape[1]) != expected_dim: + print( + "WARNING: Loaded embedding dimension does not match expected model output: " + f"algorithm={embedding_algorithm} expected_dim={expected_dim} loaded_dim={vectors.shape[1]}" + ) + + model_id = _embedding_model_id(embedding_algorithm) + space_key = f"cosmos_curate__{embedding_algorithm.replace('/', '_')}" + dataset._storage.ensure_space( + model_id=model_id, + dim=int(vectors.shape[1]), + config={ + "provider": "cosmos-curate", + "geometry": "euclidean", + "algorithm": embedding_algorithm, + "source": "cosmos-curate", + }, + space_key=space_key, + ) + dataset._storage.add_embeddings(space_key=space_key, ids=ids, vectors=vectors) + print(f"Imported {len(ids)} embeddings (dim={vectors.shape[1]}) into space '{space_key}'") + + if len(ids) >= 3: + print("Computing Euclidean layout...") + dataset.compute_visualization(space_key=space_key, geometry="euclidean") + print("Computing Poincaré layout...") + dataset.compute_visualization(space_key=space_key, geometry="poincare") + else: + print("Too few samples for UMAP; creating manual Euclidean/Poincaré layouts...") + _create_small_layouts(dataset, space_key=space_key, ids=ids) + + if dedup_metrics is not None: + print( + "Dedup summary: " + f"kept={dedup_metrics['kept']} removed={dedup_metrics['removed']} " + f"total={dedup_metrics['total']} reduction={dedup_metrics['reduction_pct']:.2f}%" + ) + + print(f"Launching HyperView at http://127.0.0.1:{args.port}") + hv.launch( + dataset, + port=args.port, + open_browser=not args.no_browser, + reuse_server=args.reuse_server, + ) + + +if __name__ == "__main__": + main() diff --git a/scripts/load_nuscenes.py b/scripts/load_nuscenes.py new file mode 100644 index 0000000..ea8e73a --- /dev/null +++ b/scripts/load_nuscenes.py @@ -0,0 +1,330 @@ +"""Load nuScenes mini dataset into HyperView for embedding visualization. + +This script: +1. Loads nuScenes mini (10 scenes, ~404 samples) +2. Extracts front-camera images and their object annotations (hierarchical labels) +3. Crops annotated objects from camera images +4. Loads them into HyperView as samples with hierarchical category labels +5. Computes CLIP embeddings + both Euclidean and Poincaré projections +6. Launches HyperView to visualize + +Usage: + uv run python scripts/load_nuscenes.py [--dataroot ~/nuscenes] [--max-crops 2000] +""" + +import argparse +import hashlib +import os +import sys +from pathlib import Path + +import numpy as np +from PIL import Image + +# Add src to path for local dev +sys.path.insert(0, str(Path(__file__).resolve().parent.parent / "src")) + +import hyperview as hv +from hyperview.core.sample import Sample + + +def get_2d_box(nusc, ann, sample_data): + """Project a 3D annotation to 2D bounding box on the camera image. + + Returns (xmin, ymin, xmax, ymax) or None if not visible. + """ + from nuscenes.utils.data_classes import Box + from nuscenes.utils.geometry_utils import view_points + from pyquaternion import Quaternion + + # Get the annotation box in global frame + box = Box( + ann["translation"], + ann["size"], + Quaternion(ann["rotation"]), + ) + + # Move box to ego vehicle frame + ego_pose = nusc.get("ego_pose", sample_data["ego_pose_token"]) + box.translate(-np.array(ego_pose["translation"])) + box.rotate(Quaternion(ego_pose["rotation"]).inverse) + + # Move box to sensor frame + cal_sensor = nusc.get("calibrated_sensor", sample_data["calibrated_sensor_token"]) + box.translate(-np.array(cal_sensor["translation"])) + box.rotate(Quaternion(cal_sensor["rotation"]).inverse) + + # Check if box is in front of camera + if box.center[2] <= 0: + return None + + # Project corners to 2D + camera_intrinsic = np.array(cal_sensor["camera_intrinsic"]) + corners_3d = box.corners() # (3, 8) + corners_2d = view_points(corners_3d, camera_intrinsic, normalize=True)[:2] # (2, 8) + + # Get bounding rectangle + xmin = max(0, int(np.min(corners_2d[0]))) + ymin = max(0, int(np.min(corners_2d[1]))) + xmax = min(1600, int(np.max(corners_2d[0]))) + ymax = min(900, int(np.max(corners_2d[1]))) + + # Filter out tiny or off-screen boxes + w = xmax - xmin + h = ymax - ymin + if w < 20 or h < 20 or xmin >= 1600 or ymin >= 900: + return None + + return (xmin, ymin, xmax, ymax) + + +def load_nuscenes_crops(dataroot: str, max_crops: int = 2000, camera: str = "CAM_FRONT"): + """Extract object crops from nuScenes mini with hierarchical labels. + + Returns list of (image_path, category_name, metadata) tuples. + """ + from nuscenes.nuscenes import NuScenes + + print(f"Loading nuScenes mini from {dataroot}...") + nusc = NuScenes(version="v1.0-mini", dataroot=dataroot, verbose=True) + + # Create output directory for crops + crops_dir = Path(dataroot) / "crops" + crops_dir.mkdir(exist_ok=True) + + crops = [] + total_anns = 0 + + for sample in nusc.sample: + # Get camera data + cam_token = sample["data"].get(camera) + if cam_token is None: + continue + cam_data = nusc.get("sample_data", cam_token) + img_path = os.path.join(dataroot, cam_data["filename"]) + + if not os.path.exists(img_path): + continue + + img = Image.open(img_path) + + for ann_token in sample["anns"]: + ann = nusc.get("sample_annotation", ann_token) + category = ann["category_name"] # e.g. "vehicle.car", "human.pedestrian.adult" + + # Project to 2D + bbox = get_2d_box(nusc, ann, cam_data) + if bbox is None: + continue + + xmin, ymin, xmax, ymax = bbox + crop = img.crop((xmin, ymin, xmax, ymax)) + + # Skip very small crops + if crop.size[0] < 24 or crop.size[1] < 24: + continue + + # Save crop + crop_id = hashlib.md5(f"{ann_token}_{camera}".encode()).hexdigest()[:12] + crop_path = crops_dir / f"{crop_id}.jpg" + if not crop_path.exists(): + crop.convert("RGB").save(crop_path, "JPEG", quality=90) + + # Parse hierarchy + parts = category.split(".") + top_level = parts[0] if len(parts) >= 1 else category + mid_level = ".".join(parts[:2]) if len(parts) >= 2 else category + + visibility_token = ann.get("visibility_token", "") + vis = nusc.get("visibility", visibility_token)["description"] if visibility_token else "" + + metadata = { + "category": category, + "top_level": top_level, + "mid_level": mid_level, + "visibility": vis, + "num_lidar_pts": ann.get("num_lidar_pts", 0), + "scene_token": sample["scene_token"], + "sample_token": sample["token"], + "camera": camera, + "bbox": list(bbox), + } + + crops.append((str(crop_path), category, metadata, crop_id)) + total_anns += 1 + + if len(crops) >= max_crops: + break + + if len(crops) >= max_crops: + break + + print(f"Extracted {len(crops)} object crops from {total_anns} annotations") + + # Print category distribution + from collections import Counter + cat_counts = Counter(c[1] for c in crops) + print("\nCategory distribution:") + for cat, count in cat_counts.most_common(): + print(f" {cat}: {count}") + + return crops, nusc + + +def load_nuscenes_scenes(dataroot: str, camera: str = "CAM_FRONT"): + """Load full camera images (scene-level) with scene metadata. + + Good for a broader overview. Each sample is one camera keyframe. + """ + from nuscenes.nuscenes import NuScenes + + print(f"Loading nuScenes mini scenes from {dataroot}...") + nusc = NuScenes(version="v1.0-mini", dataroot=dataroot, verbose=True) + + images = [] + for sample in nusc.sample: + cam_token = sample["data"].get(camera) + if cam_token is None: + continue + cam_data = nusc.get("sample_data", cam_token) + img_path = os.path.join(dataroot, cam_data["filename"]) + + if not os.path.exists(img_path): + continue + + # Get scene info + scene = nusc.get("scene", sample["scene_token"]) + log = nusc.get("log", scene["log_token"]) + + # Count annotations by top-level category + ann_summary = {} + for ann_token in sample["anns"]: + ann = nusc.get("sample_annotation", ann_token) + top = ann["category_name"].split(".")[0] + ann_summary[top] = ann_summary.get(top, 0) + 1 + + sample_id = hashlib.md5(f"{sample['token']}_{camera}".encode()).hexdigest()[:12] + + metadata = { + "scene_name": scene["name"], + "scene_description": scene["description"], + "location": log["location"], + "num_annotations": len(sample["anns"]), + "annotation_summary": ann_summary, + "timestamp": sample["timestamp"], + } + + # Label by location + description for scene-level clustering + label = log["location"] + + images.append((img_path, label, metadata, sample_id)) + + print(f"Loaded {len(images)} scene images") + return images, nusc + + +def main(): + parser = argparse.ArgumentParser(description="Load nuScenes into HyperView") + parser.add_argument("--dataroot", default=os.path.expanduser("~/nuscenes"), + help="Path to nuScenes data") + parser.add_argument("--max-crops", type=int, default=2000, + help="Max number of object crops to extract") + parser.add_argument("--mode", choices=["crops", "scenes", "both"], default="crops", + help="What to load: 'crops' (object-level), 'scenes' (image-level), or 'both'") + parser.add_argument("--model", default="openai/clip-vit-base-patch32", + help="Embedding model to use") + parser.add_argument("--port", type=int, default=6263) + parser.add_argument("--no-browser", action="store_true") + parser.add_argument( + "--dataset-name", + default="nuscenes_mini", + help="HyperView dataset name. Use a unique name for isolated runs.", + ) + parser.add_argument( + "--persist", + action=argparse.BooleanOptionalAction, + default=True, + help=( + "Persist dataset in LanceDB (--persist, default) or keep in-memory only (--no-persist). " + "Use --no-persist for a guaranteed fresh small run." + ), + ) + parser.add_argument( + "--reuse-server", + action="store_true", + help="Attach to an existing HyperView server on --port if compatible.", + ) + args = parser.parse_args() + + # Check dataroot exists + if not os.path.isdir(os.path.join(args.dataroot, "v1.0-mini")): + print(f"ERROR: nuScenes mini not found at {args.dataroot}") + print("Download: wget https://www.nuscenes.org/data/v1.0-mini.tgz") + print(f"Extract: tar -xf v1.0-mini.tgz -C {args.dataroot}") + sys.exit(1) + + dataset = hv.Dataset(args.dataset_name, persist=args.persist) + + if args.persist and len(dataset) > 0: + print( + f"NOTE: dataset '{args.dataset_name}' already has {len(dataset)} samples. " + "Use --no-persist or a different --dataset-name for a fresh small run." + ) + + if args.mode in ("crops", "both"): + crops, nusc = load_nuscenes_crops(args.dataroot, max_crops=args.max_crops) + + print(f"\nAdding {len(crops)} crops to HyperView...") + samples = [] + for filepath, category, metadata, crop_id in crops: + sample = Sample( + id=f"crop_{crop_id}", + filepath=filepath, + label=category, # Full hierarchical label like "vehicle.car" + metadata=metadata, + ) + samples.append(sample) + + dataset._storage.add_samples_batch(samples) + print(f"Added {len(samples)} crop samples") + + if args.mode in ("scenes", "both"): + images, nusc = load_nuscenes_scenes(args.dataroot) + + print(f"\nAdding {len(images)} scene images to HyperView...") + samples = [] + for filepath, label, metadata, sample_id in images: + sample = Sample( + id=f"scene_{sample_id}", + filepath=filepath, + label=label, + metadata=metadata, + ) + samples.append(sample) + + dataset._storage.add_samples_batch(samples) + print(f"Added {len(samples)} scene samples") + + # Compute embeddings + print(f"\nComputing embeddings with {args.model}...") + space_key = dataset.compute_embeddings(model=args.model, show_progress=True) + print(f"Embeddings computed (space_key={space_key})") + + # Compute both visualizations + print("\nComputing Euclidean projection...") + dataset.compute_visualization(space_key=space_key, geometry="euclidean") + + print("Computing Poincaré projection...") + dataset.compute_visualization(space_key=space_key, geometry="poincare") + + print("\nDone! Launching HyperView...") + hv.launch( + dataset, + port=args.port, + open_browser=not args.no_browser, + reuse_server=args.reuse_server, + ) + + +if __name__ == "__main__": + main() diff --git a/src/hyperview/server/app.py b/src/hyperview/server/app.py index 9de8c00..86d4f9b 100644 --- a/src/hyperview/server/app.py +++ b/src/hyperview/server/app.py @@ -6,7 +6,7 @@ from fastapi import Depends, FastAPI, HTTPException, Query from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import JSONResponse +from fastapi.responses import FileResponse, JSONResponse from fastapi.staticfiles import StaticFiles from pydantic import BaseModel @@ -37,6 +37,19 @@ class LassoSelectionRequest(BaseModel): include_thumbnails: bool = True +class CurationFilterRequest(BaseModel): + """Request model for curation filtering.""" + + min_aesthetic_score: float | None = None + min_motion_score: float | None = None + max_cosine_similarity: float | None = None + caption_query: str | None = None + dedup_status: str | None = None + offset: int = 0 + limit: int = 100 + include_thumbnails: bool = True + + class SampleResponse(BaseModel): """Response model for a sample.""" @@ -113,6 +126,150 @@ class SimilaritySearchResponse(BaseModel): results: list[SimilarSampleResponse] +def _extract_caption_sections(caption_text: str | None) -> tuple[str | None, str | None]: + if not caption_text: + return None, None + + reasoning: str | None = None + answer: str | None = None + + think_start = caption_text.find("") + think_end = caption_text.find("") + if think_start != -1 and think_end != -1 and think_end > think_start: + reasoning = caption_text[think_start + len("") : think_end].strip() or None + + answer_start = caption_text.find("") + answer_end = caption_text.find("") + if answer_start != -1 and answer_end != -1 and answer_end > answer_start: + answer = caption_text[answer_start + len("") : answer_end].strip() or None + + if answer is None: + answer = caption_text.strip() or None + + return reasoning, answer + + +def _resolve_video_file(sample: Any) -> Path | None: + metadata = sample.metadata if isinstance(sample.metadata, dict) else {} + candidate_paths: list[str] = [] + + for key in ("video_path", "clip_location"): + value = metadata.get(key) + if isinstance(value, str) and value.strip(): + candidate_paths.append(value.strip()) + + if isinstance(sample.filepath, str) and sample.filepath.lower().endswith(".mp4"): + candidate_paths.append(sample.filepath) + + for candidate in candidate_paths: + path = Path(candidate).expanduser() + if path.exists() and path.is_file(): + return path.resolve() + + return None + + +def _metadata_number(metadata: dict[str, Any], *keys: str) -> float | None: + for key in keys: + value = metadata.get(key) + if isinstance(value, (int, float)): + numeric = float(value) + if np.isfinite(numeric): + return numeric + return None + + +def _metadata_text(metadata: dict[str, Any], *keys: str) -> str | None: + for key in keys: + value = metadata.get(key) + if isinstance(value, str) and value.strip(): + return value.strip() + return None + + +def _sample_has_video(sample: Any) -> bool: + metadata = sample.metadata if isinstance(sample.metadata, dict) else {} + if _metadata_text(metadata, "video_path", "clip_location"): + return True + return isinstance(sample.filepath, str) and sample.filepath.lower().endswith(".mp4") + + +def _sample_caption_text(metadata: dict[str, Any]) -> str | None: + return _metadata_text( + metadata, + "caption_answer", + "first_caption", + "caption_raw", + "caption", + ) + + +def _histogram(values: list[float], *, bins: int, lower: float, upper: float) -> list[dict[str, float | int]]: + if not values: + return [] + + if upper <= lower: + upper = lower + 1.0 + + counts, edges = np.histogram(np.asarray(values, dtype=np.float32), bins=bins, range=(lower, upper)) + result: list[dict[str, float | int]] = [] + for idx, count in enumerate(counts.tolist()): + result.append( + { + "start": float(edges[idx]), + "end": float(edges[idx + 1]), + "count": int(count), + } + ) + return result + + +def _score_summary(values: list[float]) -> dict[str, float | int | None]: + if not values: + return {"count": 0, "min": None, "max": None, "avg": None} + + arr = np.asarray(values, dtype=np.float32) + return { + "count": int(arr.size), + "min": float(np.min(arr)), + "max": float(np.max(arr)), + "avg": float(np.mean(arr)), + } + + +def _matches_curation_filter(sample: Any, request: CurationFilterRequest) -> bool: + metadata = sample.metadata if isinstance(sample.metadata, dict) else {} + + aesthetic = _metadata_number(metadata, "aesthetic_score") + if request.min_aesthetic_score is not None: + if aesthetic is None or aesthetic < request.min_aesthetic_score: + return False + + motion = _metadata_number(metadata, "motion_score") + if request.min_motion_score is not None: + if motion is None or motion < request.min_motion_score: + return False + + similarity = _metadata_number(metadata, "cosine_sim_score", "dedup_cosine_similarity") + if request.max_cosine_similarity is not None: + if similarity is None or similarity > request.max_cosine_similarity: + return False + + if request.dedup_status: + dedup_status = _metadata_text(metadata, "dedup_status") or "unknown" + if dedup_status != request.dedup_status: + return False + + if request.caption_query: + caption_text = _sample_caption_text(metadata) + if caption_text is None: + return False + if request.caption_query.lower() not in caption_text.lower(): + return False + + return True + + def create_app(dataset: Dataset | None = None, session_id: str | None = None) -> FastAPI: """Create the FastAPI application. @@ -376,6 +533,134 @@ async def get_thumbnail(sample_id: str, ds: Dataset = Depends(get_dataset)): except KeyError: raise HTTPException(status_code=404, detail=f"Sample not found: {sample_id}") + @app.get("/api/video/{sample_id}") + async def get_video(sample_id: str, ds: Dataset = Depends(get_dataset)): + """Stream an MP4 clip for a sample.""" + try: + sample = ds[sample_id] + except KeyError: + raise HTTPException(status_code=404, detail=f"Sample not found: {sample_id}") + + video_path = _resolve_video_file(sample) + if video_path is None: + raise HTTPException(status_code=404, detail=f"No video file found for sample: {sample_id}") + + return FileResponse(str(video_path), media_type="video/mp4", filename=video_path.name) + + @app.get("/api/annotations/{sample_id}") + async def get_annotations(sample_id: str, ds: Dataset = Depends(get_dataset)): + """Return caption/reasoning and curation scores for a sample.""" + try: + sample = ds[sample_id] + except KeyError: + raise HTTPException(status_code=404, detail=f"Sample not found: {sample_id}") + + metadata = sample.metadata if isinstance(sample.metadata, dict) else {} + + raw_caption = metadata.get("caption_raw") or metadata.get("first_caption") + raw_caption_str = raw_caption if isinstance(raw_caption, str) else None + + reasoning = metadata.get("caption_reasoning") if isinstance(metadata.get("caption_reasoning"), str) else None + answer = metadata.get("caption_answer") if isinstance(metadata.get("caption_answer"), str) else None + + if answer is None and raw_caption_str: + parsed_reasoning, parsed_answer = _extract_caption_sections(raw_caption_str) + reasoning = reasoning or parsed_reasoning + answer = parsed_answer + + return { + "id": sample.id, + "caption": answer, + "reasoning": reasoning, + "raw_caption": raw_caption_str, + "aesthetic_score": metadata.get("aesthetic_score"), + "motion_score": metadata.get("motion_score"), + "dedup_status": metadata.get("dedup_status"), + "dedup_keep": metadata.get("dedup_keep"), + "cosine_sim_score": metadata.get("cosine_sim_score") or metadata.get("dedup_cosine_similarity"), + "source_video": metadata.get("source_video"), + "video_path": metadata.get("video_path") or metadata.get("clip_location"), + "span": metadata.get("span") or metadata.get("duration_span"), + } + + @app.get("/api/curation/stats") + async def get_curation_stats(ds: Dataset = Depends(get_dataset)): + """Return dataset-level curation statistics for dashboarding.""" + samples = ds.samples + + total = len(samples) + with_video = 0 + with_caption = 0 + dedup_counts: dict[str, int] = {"kept": 0, "removed": 0, "unknown": 0} + aesthetic_values: list[float] = [] + motion_values: list[float] = [] + + for sample in samples: + metadata = sample.metadata if isinstance(sample.metadata, dict) else {} + + if _sample_has_video(sample): + with_video += 1 + + if _sample_caption_text(metadata): + with_caption += 1 + + dedup_status = _metadata_text(metadata, "dedup_status") or "unknown" + dedup_counts[dedup_status] = dedup_counts.get(dedup_status, 0) + 1 + + aesthetic = _metadata_number(metadata, "aesthetic_score") + if aesthetic is not None: + aesthetic_values.append(aesthetic) + + motion = _metadata_number(metadata, "motion_score") + if motion is not None: + motion_values.append(motion) + + return { + "total_samples": total, + "with_video": with_video, + "with_caption": with_caption, + "dedup_counts": dedup_counts, + "score_summary": { + "aesthetic": _score_summary(aesthetic_values), + "motion": _score_summary(motion_values), + }, + "aesthetic_histogram": _histogram(aesthetic_values, bins=12, lower=0.0, upper=10.0), + "motion_histogram": _histogram(motion_values, bins=12, lower=0.0, upper=10.0), + } + + @app.post("/api/curation/filter") + async def post_curation_filter(request: CurationFilterRequest, ds: Dataset = Depends(get_dataset)): + """Filter samples by curation metadata and return paginated results.""" + if request.offset < 0: + raise HTTPException(status_code=400, detail="offset must be >= 0") + if request.limit < 1 or request.limit > 2000: + raise HTTPException(status_code=400, detail="limit must be between 1 and 2000") + + if request.dedup_status and request.dedup_status not in {"kept", "removed", "unknown"}: + raise HTTPException( + status_code=400, + detail="dedup_status must be one of: kept, removed, unknown", + ) + + filtered_ids: list[str] = [] + for sample in ds.samples: + if _matches_curation_filter(sample, request): + filtered_ids.append(sample.id) + + total = len(filtered_ids) + start = int(request.offset) + end = int(request.offset + request.limit) + page_ids = filtered_ids[start:end] + page_samples = ds.get_samples_by_ids(page_ids) + + return { + "total": total, + "offset": request.offset, + "limit": request.limit, + "sample_ids": page_ids, + "samples": [s.to_api_dict(include_thumbnail=request.include_thumbnails) for s in page_samples], + } + # Serve static frontend files static_dir = Path(__file__).parent / "static" if static_dir.exists(): From 906985787a64df96780e4558768f063fad9a9787 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2026 22:30:00 +0000 Subject: [PATCH 75/75] chore(deps): bump minimatch in /frontend Bumps and [minimatch](https://github.com/isaacs/minimatch). These dependencies needed to be updated together. Updates `minimatch` from 3.1.2 to 3.1.5 - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5) Updates `minimatch` from 9.0.5 to 9.0.9 - [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md) - [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5) --- updated-dependencies: - dependency-name: minimatch dependency-version: 3.1.5 dependency-type: indirect - dependency-name: minimatch dependency-version: 9.0.9 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- frontend/package-lock.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index c8f7be1..40500a2 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -2293,13 +2293,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -5321,9 +5321,9 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": {

    - + HyperView Screenshot
    - Watch the Demo Video + Try the live demo on HuggingFace Spaces

    1J@UI)t+y^yC$1&aR&RKMv=5M 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